2. ¿Qué es infraestructura como
código?
Proceso de administrar y desplegar infraestructura de
Data Centers, de forma automatizada y rápida, a través
de la definición de archivos de texto en forma de código.
La idea detrás de IaC es la de escribir y ejecutar código
para definir, desplegar y actualizar nuestra infraestructura.
3. Y… ¿Por qué o para qué usaría
IaC?
Velocidad y seguridad
Menor riesgo por reducción de error humano
Reducción de costos.
Documentación y control de versiones
Consistencia, validación y reutilización
4. Categorías de herramientas IaC
Scripts a medida
Herramientas de gestión de configuraciones
Herramientas de plantillas de servidor
Herramientas de despliegue de servidor (orquestación)
6. Herramientas de gestión de
configuraciones
Realizan diversas tareas a nivel de sistema operativo tal como instalación de
software, configuración de servicios, manejo de ficheros, gestión de usuarios,
consultas y escritura de registros, etc.
7. Herramientas de plantillas de
servidor
Se basa en el uso, construcción, personalización y despliegue de imágenes
de sistemas operativos o contenedores que pueden ser rápidamente
replicados en corto tiempo.
Suelen integrarse con herramientas de gestión de configuraciones como
Ansible, Chef, Puppet u otros.
8. Herramientas de despliegue de
servidor (orquestación)
Realizan tareas de creación de servidores y un amplio abanico de otros
elementos de una infraestructura de TI, tal como redes, bases de datos,
balanceadores, VPNs, etc.
Suelen integrarse con herramientas de gestión de configuraciones como
Ansible, Chef, Puppet u otros.
ARM
9. ¿Por qué Terraform?
Ansible, Chef, Puppet, son mejores en despliegue y configuración a nivel
del interno de servidores (sistemas operativos).
AWS CloudFormation y ARM (Azure Resource Manager) son buenos, pero
trabajan solo para su plataforma propia de cloud.
Terraform en cambio trabaja con múltiples proveedores como AWS, Azure,
Google Cloud, Softlayer, Alicloud, OpenStack, VMware vSphere, Cloudflare,
y muchos más.
Además, es Open Source, maduro y con buen soporte comunitario.
10. Ejemplo de IaC con Ansible
Extracto de un código de Ansible
para realizar tareas diversas de
configuración Linux, como:
- Definir variables a usar en la
configuración posterior.
- Configurar la zona horaria
- Deshabilitar SELinux
- Creación de directorio y copia de
scripts
11. Ejemplo de IaC con Ansible
Extracto de un inventario de
servidores a los que Ansible se
conectará para ejecutar las
tareas mostradas anteriormente.
12. Ejemplo de IaC con Terraform
Extracto de un código de la
infraestructura a crear en la nube
de AWS:
- Un juego de llaves SSH
- Un grupo de seguridad
- Una instancia EC2