Infrestructura como código con Terraform

Clase 12 de 22Curso de Introducción a DevOps

Resumen

Desplegar infraestructura puede parecer complicado, sobre todo al querer hospedar aplicaciones de manera efectiva. Con Terraform y Azure este proceso se simplifica notablemente, permitiendo automatizar el despliegue y gestión de recursos de manera ágil. Entender cómo realizar este procedimiento correctamente se vuelve indispensable para cualquier desarrollador que trabaje siguiendo prácticas de metodología DevOps.

¿Por qué es relevante el papel del ingeniero DevOps actual?

La metodología DevOps originalmente establecía roles definidos para desarrollo (DEV) y operaciones (OPS). Sin embargo, actualmente estos roles se mezclan cada vez más. Es común que los desarrolladores conozcan la infraestructura a utilizar y viceversa; de ahí surge la figura del ingeniero DevOps especialista, combinando habilidades para optimizar procesos y resultados.

¿Cómo preparar el ambiente para desplegar infraestructura en Azure con Terraform?

Para comenzar correctamente, es necesario crear previamente ciertos archivos en una carpeta específica llamada "infra":

  • backends.tf: Contiene la configuración del backend que almacena el estado en una cuenta de almacenamiento previamente creada.
  • provider.tf: Define al proveedor AzureRM y el identificador de la suscripción Azure utilizada.
  • variables.tf: Aquí se configuran las variables necesarias con valores predeterminados, aunque lo ideal es personalizarlos mediante un archivo terraform.tf-vars.
  • main.tf: Incluye todos los recursos a desplegar, como el grupo de recursos, Application Insights, Log Analytics y la configuración para el entorno de Container Apps.

¿Cuáles son los comandos clave para gestionar infraestructura con Terraform?

Ya creado el ambiente, los comandos esenciales en tu terminal son:

  1. terraform init: Inicializa el proyecto y configura el backend con el token SAS de tu cuenta de almacenamiento.
  2. terraform plan -out plan.out: Genera el plan de despliegue visualizando los cambios antes de aplicarlos.
  3. terraform apply plan.out: Ejecuta el despliegue y crea efectivamente los recursos definidos previamente.
  4. terraform destroy: Elimina infraestructura previamente desplegada; útil para verificar configuraciones antes de pasar al entorno productivo.

Recuerda que estos despliegues manuales sirven para verificar configuraciones antes de proceder con procesos de integración continua y entrega continua (CI/CD), donde la automatización será la clave para una gestión eficiente.

¡Te animamos a que pruebes estos pasos y compartas tu experiencia o consultas sobre el proceso!