Terraform es una herramienta de código abierto de "Infraestructura como código", creada por HashiCorp.
Terraform es una herramienta de programación declarativa que permite a los desarrolladores utilizar un lenguaje de configuración general llamado HCL (HashiCorp Configuration Language) para describir la nube del estado final deseado o la infraestructura on premises para ejecutar una aplicación. Posteriormente genera un plan para llegar a ese estado final y ejecuta el plan para proporcionar la infraestructura.
Terraform es una de las herramientas de automatización de infraestructuras más populares, ya que utiliza una sintaxis sencilla, puede proporcionar infraestructuras en varios centros de datos on premises y en la nube, y puede volver a proporcionar infraestructuras de forma segura y eficaz en respuesta a los cambios de configuración. Si su organización planea desplegar un entorno de nube híbrida o multinube, es probable que desee o necesite conocer Terraform.
Para comprender mejor las ventajas de Terraform, es útil comprender primero los beneficios de la infraestructura como código (IaC). IaC permite a los desarrolladores codificar la infraestructura de forma que el aprovisionamiento sea automatizado, más rápido y repetible. Es un componente clave de las prácticas ágiles y DevOps, como el control de versiones, la integración continua y el despliegue continuo.
La infraestructura como código puede ayudar con lo siguiente:
Hay algunas razones clave por las que los desarrolladores eligen utilizar Terraform en lugar de otras herramientas de infraestructura como código:
Los módulos de Terraform son configuraciones pequeñas y reutilizables de Terraform para múltiples recursos de infraestructura que se utilizan juntos. Los módulos de Terraform son útiles porque permiten automatizar recursos complejos con construcciones reutilizables y configurables. Incluso escribir un archivo de Terraform muy simple da como resultado un módulo. Un módulo puede llamar a otros módulos, conocidos como módulos hijos, lo que puede hacer que laconfiguración de ensamblaje sea más rápida y concisa. Los módulos también se pueden llamar varias veces, ya sea dentro de la misma configuración o en configuraciones separadas.
Los proveedores de Terraform son complementos que implementan varios tipos de recursos. Los proveedores contienen todo el código necesario para autenticarse y conectarse a un servicio, normalmente de un proveedor de nube pública, en nombre del usuario. Puede encontrar proveedores para los servicios y las plataformas en la nube que utiliza, agregarlos a su configuración y luego utilizar sus recursos para aprovisionar la infraestructura. Los proveedores están disponibles para casi todos los principales proveedores de servicios en la nube, ofertas SaaS y más, desarrollados o respaldados por la comunidad Terraform u organizaciones individuales. Consulte la documentación de Terraform (el enlace se encuentra fuera de ibm.com) para obtener una lista detallada.
A veces, hay confusión entre Terraform y Kubernetes y lo que realmente hacen. En realidad no se alternan, sino que funcionan de manera efectiva en conjunto.
Kubernetes es un sistema de orquestación de contenedores de código abierto que permite a los desarrolladores programar despliegues en nodos en un clúster de cómputo y administrar activamente cargas de trabajo en contenedores para garantizar que su estado coincida con las intenciones de los usuarios.
Terraform, por otro lado, es una herramienta de Infraestructura como Código con un alcance mucho más amplio, que permite a los desarrolladores automatizar una infraestructura completa que abarca múltiples nubes públicas y nubes privadas.
Terraform puede automatizar y gestionar las capacidades de nivel de infraestructura como servicio (IaaS), plataforma como servicio (PaaS) o incluso software como servicio (SaaS), y crear todos estos recursos en paralelo. Puede usar Terraform para automatizar el suministro de clústeres Kubernetes administrados especialmente en las plataformas en la nube y para automatizar el despliegue de aplicaciones en un clúster.
Terraform y Ansible son herramientas de infraestructura como código, pero hay un par de diferencias significativas entre las dos:
IBM Cloud Schematics proporciona automatización al ofrecer plantillas declarativas de Terraform para garantizar una infraestructura de nube deseada.
La infraestructura como código (IaC) automatiza el suministro de la infraestructura, lo que permite a su organización desarrollar, desplegar y escalar aplicaciones en la nube con mayor velocidad, menos riesgo y menor costo.
Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, la administración y el escalamiento de aplicaciones. Descubra cómo Kubernetes permite un desarrollo rentable nativo de la nube.
Una introducción a IaaS, sus componentes, ventajas, precios y cómo se relaciona con PaaS, SaaS, BMaaS, contenedores y modo sin servidor.