Configuración

“Config is Code and Everything is Config”

¿Cuál es el problema?

¿Posibles soluciones?

¿Avestruz?

"Experto" en configuración (Memoria, andres.sh)

Documento de instalación

¿Varios Archivos de conf(uno por ambiente)?

¿Branch por ambiente?

Conceptos

Configuration Management

“Refers to the process of systematically handling changes to a system in a way that it maintains integrity over time.”

Manejo del repositorio código

Tipos Configuración

Configuración del Ambiente

Configuración de la Aplicación

Configuración del Ambiente

Sistema Operativo(Versión, parches y parámetros)

Dependencias(Versiones, configuración)

Topología de red

Servicios externos

Estados esperados (Datos en la DB, Colas)

Configuración de la Aplicación

Librerías

Parámetros(passwords, endpoints, nivel logging)

Momentos para agregar configuración a la aplicación

Build Time (Quemado en el código)

Packaging Time (Archivo empaquetado)

Deployment Time (Deployment script fetches config)

Startup or Run Time (Environment Variables)

Los ambientes configurados a mano son obras de arte

Queremos que nuestros ambientes sean objetos producidos en masa

Configuración como código

Herramientas manejo de la configuración

Pull(agent) vs Push

Idempotencia

System Facts

Templates

Plugins

Taller Práctico

Objetivo

En este laboratorio vamos a utilizar Ansible como herramienta de configuración sobre un conjunto de máquinas aprovisionadas previamente

Ansible Como Herramienta de Configuración

Ansible Como Herramienta de Configuración

Ansible Como Herramienta de Configuración

Ansible Como Herramienta de Configuración

Ansible Como Herramienta de Configuración

Ansible Como Herramienta de Configuración

Ejemplo

  • Revise la estructura de la carpeta /ansible
  • Identifique los inventarios que se están usando
    • Qué hosts estamos usando
    • En dónde está la configuración específica del host
    • A qué hace referencia esta configuración
  • Cuál es el propósito del playbook nginx.yml

Requisitos de jenkins

  • Instalar el JDK para que Jenkins pueda ejecutarse
  • Instalar jenkins

Ventajas de tener las dimensiones como Código

Velocidad aprovisionamiento

Velocidad de recuperación

Velocidad de rollback

Eliminado de servidores copo de nieve(bus factor)

¿Code reviews?

Replicado de ambientes(pruebas)

Evolución del ambiente con el código

Retomando...

Muchas Gracias