Terraform como herramienta para IaC

  • Beneficios de Terraform.
  • Orquestación, no sólo configuración.
  • Infraestructura inmutable.
  • Código declarativo, no de procedimiento.
  • Arquitectura de sólo clientes.
  • Portabilidad
  • Automatización.
  • Fiabilidad.
  • Dependencias de recursos claramente mapeadas.
  • Flujo de trabajo consistente.
  • Una experiencia de usuario elegante.
  • Comunidad fuerte.

¿Qué es Terraform para DevOps?

Terraform es una infraestructura de código abierto como herramienta de código desarrollada por HashiCorp. Se utiliza para definir y aprovisionar la infraestructura completa utilizando un lenguaje declarativo fácil de aprender.

Es una herramienta de provisionamiento de infraestructura donde puede almacenar la configuración de su infraestructura en la nube como código. Es muy similar a herramientas como CloudFormation, que usaría para automatizar su infraestructura de AWS, pero solo puede usarla en AWS. Con Terraform, puede usarla en otros plataformas en la nube también.

Beneficios y propiedades de Terraform

  • Realiza orquestación, no solo gestión de configuración.
  • Admite múltiples proveedores como AWS, Azure, GCP, DigitalOcean y muchos más.
  • Proporcionar una infraestructura inmutable donde la configuración cambia sin problemas.
  • Utiliza un lenguaje fácil de entender, HCL (lenguaje de configuración de HashiCorp)
  • Fácilmente portátil a cualquier otro proveedor.
  • Admite arquitectura de solo cliente, por lo que no es necesario administrar la configuración adicional en un servidor.

¿Qué es un Life Cycle?

Iniciar - Crear - Destruir

El ciclo de vida de Terraform consiste en: init, plan, aplicar y destruir.

¿Cómo funciona Terraform?

Terraform tiene dos componentes principales que conforman su arquitectura:

  • Terraform Core.
  • Proveedores

Terraform Core

Terraform core utiliza dos fuentes de entrada para hacer su trabajo. La primera fuente de entrada es una configuración de Terraform que usted, como usuario, configura. Aquí, usted define lo que se debe crearse o aprovisionarse. La segunda fuente de entrada es un estado en el que terraform mantiene el estado actualizado de cómo se ve la configuración actual de la infraestructura.

Entonces, lo que hace Terrfaorm Core es tomar la información y determinar el plan de lo que se debe hacer. Compara el estado, cuál es el estado actual y cuál es la configuración que desea en el resultado final.

Averigua qué se debe hacer para llegar al estado deseado en el archivo de configuración. Calcula lo que se debe crear, lo que se debe actualizar, lo que se debe eliminar para crear y aprovisionar la infraestructura.

Proveedores en Terraform

El segundo componente de la arquitectura son los proveedores de tecnologías específica. Esto podría ser proveedores de nube como AWS, Azure, GCP u otra infraestructura como plataforma de servicio. También es un proveedor de componentes de más alto nivel, como Kubernetes u otras herramientas de plataforma como servicio, incluso algún software como herramienta de autoservicio.

Te da la posibilidad de crear infraestructura en diferentes niveles. Por ejemplo, se puede crear una infraestructura de AWS, luego implementar Kubernetes encima y luego crear servicios / componentes dentro de ese clúster de Kubernetes.

Terraform tiene más de cien proveedores para diferentes tecnologías, y cada proveedor luego brinda acceso de usuario de terraform a sus recursos. Entonces, a través del proveedor de AWS, por ejemplo, tiene acceso a cientos de recursos de AWS, etc. Con el proveedor de Kubernetes, tiene acceso a productos básicos, recursos como servicios e implementaciones y espacios de nombres, etc.

Entonces, así es como funciona Terraform, y de esta manera, intenta ayudarlo a aprovisionar y cubrir la configuración completa de la aplicación desde la infraestructura hasta la aplicación.

Hagamos algunas cosas prácticas 👨‍💻

Instalaremos Terraform desde GCP (Google Cloud Platform) con una cuenta gratuita, y en una máquina virtual haremos ejercicios con Terraform, así como también podemos hacerlo utilizando una imagen de Docker o instalando en nuestro equipos.

Laboratorio

Qué necesitarás:

  • Una cuenta gratuita de Google Cloud Platform, sobre la cual utilizaremos una máquina virtual desplegando terraform y realizando ejercicios sobre ella, sin coste alguno.
  • También podemos realizar los ejercicios desde una imagen de Terraform de Docker (es necesario tener instalado Docker) y estar atentos a que todos tengamos la misma versión de Terraform instalada.
  • También puedes instalar Terraform en tu pc de escritorio o portátil y realizar los ejercicios.