Ver a la carta: Pruebe IaC (Infrastructure as Code). Justin Mitchel, fundador de Codificación para empresariosy Instructor de Udemy ha creado una serie centrada en cinco populares herramientas de IaC para ayudarle a configurar y gestionar su infraestructura.
La infraestructura como código, o IaC, le permite automatizar el aprovisionamiento de sus recursos en la nube utilizando simples archivos de configuración. En esta serie bajo demanda, aprenda los fundamentos de las principales herramientas de IaC desplegando una aplicación web basada en Docker Python utilizando cada una de ellas.
Todas las series de Linode LIVE! son autodidactas, lo que le permite ver toda la serie de principio a fin o elegir las secciones que más le interesen a usted y a su proyecto. Esta serie ya está disponible a la carta.
Terraform sobresale en el manejo de lo que necesita ser aprovisionado más que en cómo debe ser configurado. En otras palabras, Terraform se conecta a las APIs de la nube (como Linode) para aprovisionar la(s) máquina(s) virtual(es) real(es) (así como otros servicios) que su proyecto pueda necesitar. Terraform *puede* entonces configurar estos recursos aprovisionados, pero la configuración no es su punto fuerte. Terraform puede combinarse con gran efecto con Ansible, Chef, Puppet Bolt, o Salt para gestionar y mantener la configuración interna de los recursos aprovisionados.
Ansible sobresale en la gestión del estado de configuración de las máquinas virtuales a través de archivos de configuración yaml. Ansible se puede utilizar para automatizar la configuración a tan solo 1 máquina que incluye incluso su máquina local. Ansible se ejecuta sin agentes y configura los recursos principalmente a través de un shell seguro (SSH).
Chef destaca en la gestión del estado de configuración de las máquinas virtuales a través de archivos de configuración en rubí. Chef es una de las herramientas de IaC más maduras, pero requiere una cantidad significativa de configuración y cierta familiaridad con la programación. Chef tiene una arquitectura maestro-cliente (aka no agenetless) y requiere al menos 3 máquinas diferentes para funcionar eficazmente: Servidor Infra, Estación de Trabajo, y un Nodo.
Puppet Bolt es un enfoque moderno para gestionar el estado de las máquinas virtuales a través de archivos yaml o puppet . Bolt es la versión sin agentes de Puppetlabs. Bolt configura los recursos a través de un shell seguro (SSH) y aprovecha los scripts mínimos de bash para manejar la configuración este enfoque se asemeja a algo más cercano a la configuración manual y permite un amplio rango de flexibilidad y velocidad.
Salt (SaltStack) es un enfoque moderno para gestionar el estado de las máquinas virtuales a través de archivos de estado salt basados en yaml. Salt state files (sls) son en su mayoría archivos yaml declarativos que permiten comandos en línea a través del motor de plantillas Jinja. Este enfoque permite una configuración flexible y un rápido cambio de contexto en tiempo de ejecución.