Terraform: definici贸n, ventajas y caracter铆sticas

Planteamos el tema: Terraform: definici贸n, ventajas y caracter铆sticas, lo cual puede ser 煤til para ofrecer servicios para administrar recursos de empresas.

Terraform: definici贸n

Es una herramienta que ayuda a administrar varios servicios de infraestructura en la nube en forma de c贸digo, se debe de codificar la infraestructura, por lo que tambi茅n se conoce como Infraestructura como c贸digo (IaC por sus siglas en ingl茅s).

En t茅rminos simples, IaC es la capacidad de representar la infraestructura en el c贸digo del formulario.

Se puede tomar como ejemplo cualquier recurso inform谩tico en una nube determinada, como EC2 en AWS. Solicitar una instancia EC2 de AWS es una cuesti贸n de registrarse en AWS, proporcionar una serie de valores e “Iniciar”. El “recurso” estar谩 listo en unos minutos.

Siempre que podamos proporcionar esos valores a AWS, vivir谩n en ese proveedor de nube. Por su parte, Terraform proporciona una forma de tomar estas credenciales y entradas en forma de configuraciones y procesarlas para crear un recurso en la nube de destino.

Estas configuraciones describen el recurso en un lenguaje que Terraform entiende. Las configuraciones son la forma en que puede declarar el estado deseado de su infraestructura, b谩sicamente es la sintaxis “declarativa”.

Terraform utiliza las API del proveedor de la nube para crear el recurso.

Ventajas de Terraform

Terraform es un producto de Hashicorp y utiliza la sintaxis del lenguaje de configuraci贸n Hashicorp (HCL) para representar las configuraciones.

En el siguiente ejemplo, puede ver la representaci贸n de la instancia EC2 en su forma m谩s simple:

provider 鈥渁ws鈥 {

                region = 鈥渦s-west-1鈥

}

resource 鈥渁ws_instance鈥 鈥渕yec2鈥 {

                ami = 鈥渁mi-12345qwert鈥

                instance_type = 鈥渢2.micro鈥

}

En este ejemplo se puede observar las capacidades de Terraform.

El c贸digo contiene dos bloques: el provider y resource. El bloque provider le permite a Terraform saber que se desea utilizar el awsproveedor en la regi贸n “us-west-1”.

Por otro lado, el bloque resource le permite a Terraform saber que de todos los recursos de infraestructura que ofrece AWS, se quiere crear un recurso de tipo 鈥渋nstancia鈥 (EC2).

El primer par谩metro lo representa en el bloque de recursos como “aws_instance”. El segundo par谩metro es lo que hemos llamado el recurso, en este caso, “myec2”.

El bloque de recursos tiene un par de argumentos que establecen la imagen de la m谩quina de AWS y el tipo de instancia utilizada para crear este recurso.

Aqu铆, se ha logrado expresar nuestra infraestructura en forma de c贸digo.

Caracter铆sticas de Terraform

Orquestaci贸n

Al implementar varios servicios de un extremo a otro, Terraform act煤a como el n煤cleo del proceso de orquestaci贸n cuando se trata de crear recursos en la nube.

Sintaxis declarativa

La infraestructura expresada en archivos de Terraform es declarativa, por lo que, los desarrolladores, no deben de comprender el proceso sino informar a Terraform sobre el estado deseado y Terraform se encarga de los pasos internamente.

Libertad en la nube

Dado que Terraform es compatible con diversas nubes, incluidas AWS, MS Azure y GCP, no hay que preocuparse por los problemas de bloqueo de proveedores. El registro de Terraform proporciona la documentaci贸n para todos los proveedores de nube compatibles.

Los patrones de sintaxis utilizados para codificar la infraestructura en varias nubes son los mismos, por lo que la curva de aprendizaje relacionada con las API espec铆ficas del proveedor est谩 en un segundo plano, pero no se olvida.

M贸dulos

Terraform proporciona m贸dulos que ayudan a reutilizar el c贸digo Terraform. Una infraestructura compleja se divide en varios m贸dulos y cada m贸dulo se puede reutilizar en diferentes proyectos.

Administraci贸n del Estado

Mientras Terraform crea y planifica la infraestructura, se mantiene el estado. Esto se puede compartir con otros miembros del equipo con fines de colaboraci贸n.

Terraform permite administrar el estado de forma remota, lo que ayuda a evitar confusiones entre los miembros del equipo en caso de que intenten recrear la infraestructura.

Aprovisionamiento

Terraform no es una herramienta de aprovisionamiento completa, pero ayuda con las actividades de aprovisionamiento. De bloques locales-ejecutivo y remota-exec permite ejecutar secuencias de comandos en l铆nea. Los scripts en l铆nea ayudan a instalar componentes de software despu茅s de la creaci贸n exitosa del recurso.

Esto es especialmente 煤til para ayudar a las herramientas de administraci贸n de configuraci贸n como Chef, Ansible y Salt Stack a instalar sus respectivos agentes.

Fuente abierta

Terraform est谩 disponible para su uso como software de c贸digo abierto. Tambi茅n tiene una versi贸n Enterprise.

Le铆ste: Terraform: definici贸n, ventajas y caracter铆sticas, te recomendamos: Declaraci贸n Switch en JavaScript: con ejemplo de c贸digo

Te invitamos a que nos sigas en nuestras redes sociales: Facebook, Twitter, Instagram y Youtube con el perfil:聽@tortugacode