Descripción:
Este curso está dirigido a desarrolladores y operadores que ya están familiarizados con el trabajo con infraestructura, pero que desean mejorar su flujo de trabajo e introducir la infraestructura como práctica de código. El conocimiento de los componentes esenciales de Amazon Web Services (EC2, VPC, IAM) ayudaría a contextualizar los ejemplos proporcionados. La comprensión básica de los scripts de Jenkins y Shell será útil para los capítulos sobre el uso de producción de Terraform.
Objetivo:
Entre otras cosas, el alumno al término del curso tendrá las habilidades para:
- Comprender qué significa Infraestructura como código (IaC) y por qué es importante
- Instalar, configurar e implementar Terraform
- Tomar el control total de su infraestructura en forma de código
- Administrar la infraestructura completa, comenzando con un solo servidor y escalando más allá de cualquier límite
- Descubrir un gran conjunto de prácticas listas para la producción para administrar la infraestructura
- Configurar pipelines de CI / CD para probar y entregar stacks de Terraform
- Construir plantillas para simplificar las tareas de aprovisionamiento más complejas
Temario:
Parte 1. Automatización de infraestructura
¿Qué es la infraestructura como código y por qué es necesaria? | Herramientas declarativas versus de procedimiento para Infraestructura como código | Infraestructura como código en la nube | Requisitos para el aprovisionador de infraestructura | ¿Qué herramientas existen para el aprovisionamiento de infraestructura? | Una breve descripción de Terraform | Viaje hacia el futuro y cómo leer este libro
Parte 2. Implementación del primer servidor
Historia de Terraform | Preparando el ambiente de trabajo | Los muchos proveedores de Terraform | Breve introducción a AWS | Uso de Elastic Compute Cloud | Configuración del proveedor de AWS | Creando una instancia EC2 con Terraform | Trabajando con el estado | Manejo de actualizaciones de recursos | Destruyendo todo lo que hemos construido
Parte 3. Módulos y dependencias de recursos
Creación de una nube privada virtual de AWS | Comprender el gráfico de dependencia | Jugando con los gráficos de Terraform | Controlar las dependencias con depende_en e ignore_cambios | Dar sentido a nuestra plantilla | Eliminar la duplicación con módulos | Configurar módulos | Recuperar datos del módulo con salidas | Usando las salidas del módulo raíz
Parte 4. Configuración de almacenamiento y suministro
Entendiendo las variables | Configurar fuentes de datos | Explorando los recursos de configuración de Terraform | Echando un vistazo rápido a Consul
Parte 5. Conexión con otras herramientas
Devolver datos con salidas | Probar servidores con Inspec | Aprovisionadores | Reaprovisionamiento de máquinas con null_resource | Usar complementos de terceros
Parte 6. Escalar y actualizar la infraestructura
Escalar y actualizar la infraestructura | Contando servidores | Trayendo alta disponibilidad | Equilibrio de carga y simulación de condicionales | Infraestructura inmutable | Hornear imágenes con Packer | Implementación de actualizaciones de AMI con Terraform | Realización de implementaciones azul-verde | Infraestructura refrescante | Importando recursos
Parte 7. Infraestructura colaborativa
Control de versiones con Git 101 | Mover plantillas a Git | Protección de secretos en un repositorio de Git | Almacenamiento de archivos de estado de forma remota | Conectando estados remotos juntos | Almacenar módulos de forma remota | Bloquear archivos de estado con Terragrunt | Mover actualizaciones de infraestructura al pipeline de CI | Pruebas de integración de módulos Terraform