En este artículo vamos a conocer Terraform, así como sus aplicaciones y por qué está ganando cada vez más mercado y fans en el universo DevOps. Podemos crear entornos totalmente personalizables, con muchos recursos y con muy pocas líneas de código y aún reproducibles con un solo comando.
Terraform es una herramienta bastante simple, pero muy poderosa que nos permite administrar toda la infraestructura utilizando código en archivos simples, concisos y declarativos.
Terraform es de código abierto (Open Source) y es desarrollado por HashiCorp, que también tiene otras herramientas que ustedes ya deben conocer, la más famosa es Vagrant, con la cual podemos provisionar ambientes aislados de nuestra máquina física para que podamos utilizarlos como entorno de desarrollo y ser lo más parecido posible de un servidor de producción, pero eso es tema de otro artículo.
Esta herramienta nos permite crear y/o cambiar versiones de infraestructura de nuestros entornos de manera eficiente y segura. Terraform utiliza archivos de configuración, en los que podemos informar de todos los recursos y componentes que nuestra infraestructura necesita y todavía podemos indicar un orden para la utilización de los recursos, donde podemos definir que un servicio necesita que otro sea iniciado y creado primero.
Con él podemos crear una sola máquina en los servicios en la nube como instancias EC2 (Elastic Compute Cloud) en AWS (Amazon Web Services) al cual la herramienta tiene soporte, o también podemos crear varias máquinas y así crear un Data Center entero y, sin embargo, configurar todo con pocas líneas de código y muy pocos archivos.
Otra característica importante que la herramienta tiene es el plan de ejecución, siempre podemos verificar la secuencia de ejecución de una infraestructura, así que podemos ver los pasos que Terraform ejecutará para alcanzar el estado descrito en el (los) archivo(s) de configuración.
Estos planes también son adaptables, por lo que en el momento en que cambiamos el (los) archivo(s) de configuración Terraform ofrece un nuevo plan con los cambios necesarios para que podamos analizar las modificaciones que se realizarán en el entorno.
Hasta ahora, hemos visto que Terraform tiene muchas características interesantes y que pueden ayudarnos de una manera muy positiva, pero ¿dónde podemos realmente utilizarlas?
Lo primero que podemos pensar es que si Terraform nos permite crear entornos, sería interesante utilizarlo en servicios en la nube, como AWS, Google Cloud Platform, Azure, puede consultar la lista con todos los proveedores aquí.
¿Y qué tienen en común todos estos servicios? Bueno, ellos nos permiten crear máquinas (hosts) para ponernos nuestras aplicaciones en producción y ese es el uso más común de Terraform, pero, ¿eso es todo lo que podemos hacer con Terraform?
No, esta herramienta también funciona con los niveles más bajos de nuestra infraestructura y nos permite también la manipulación de recursos como almacenamiento, red, instancias(hosts) como he dicho, y los recursos de más alto nivel, como el caso de DNS y recursos de Softwares como servicio(SaaS), es el caso do Heroku y otros.
Al trabajar con Terraform tenemos muchas ventajas, pensar que en un equipo grande, a menudo necesitamos un ambiente para pruebas o para homologación o para evaluar la calidad de nuestras aplicaciones.
Por lo tanto, sería un gran desperdicio utilizar servicios en la nube, como instancias (hosts, máquinas), que tienen un costo considerable, y dejarlas la mayor parte del tiempo ociosas, sin utilización, ya que esas etapas (pruebas, homologación, evaluación) no son tan constantes, Terraform puede ayudarnos con eso.
Podemos crear un ambiente para pruebas en pocos minutos, ya configurado y listo para usar, y justo después de terminar todas las pruebas y verificaciones, podemos simplemente eliminar ese ambiente, y cuando lo necesitemos de nuevo, simplemente ejecute un comando y tendremos el ambiente listo de nuevo, eso es lo que llamamos un entorno desechable.
Hemos visto que Terraform es una herramienta muy poderosa para el área de DevOps, tiene una amplitud de uso muy grande y nos proporciona ambientes versátiles, personalizables y sobre todo compartibles y reutilizables.
Así que, es muy importante conocer una herramienta tan rica como esta, incluso si eres desarrollador y tu enfoque no esté en esa área. La herramienta también tiene una pequeña curva de aprendizaje que facilita la rápida utilización de la misma en las empresas, además de una documentación bastante completa.
Jonilson Sousa
Desarrollador de software en Grupo Alura. Trabajando con las más diversas tecnologías, como Java, Python, JavaScript, PHP y usando frameworks como SpringBoot, Flask. Tambien me gusta ver otras tecnologías o frameworks geniales por diversión
Este articulo fue adecuado para Alura Latam por: Priscila Storck
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
65638.41
CLP |
295052.24
COP |
65.90
USD |
260.33
PEN |
1362.68
MXN |
2877.28
UYU |
Plan Anual |
738.82
BOB |
99503.45
CLP |
447279.50
COP |
99.90
USD |
394.64
PEN |
2065.73
MXN |
4361.77
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana