Gestión de Configuración vs. Aprovisionamiento
El aprovisionamiento (provisioning) es el proceso de crear recursos de infraestructura (servidores, redes, bases de datos). La gestión de configuración (configuration management) es el proceso de configurar y mantener el software y servicios en servidores existentes. Son procesos complementarios: primero aprovisionas la infraestructura (con Terraform), luego la configuras (con Ansible, Chef, Puppet).
En DevOps, es común confundir aprovisionamiento y gestión de configuración. Aunque están relacionados, son procesos diferentes que resuelven problemas distintos. En este artículo te explico las diferencias clave y cómo se complementan.
¿Qué es el Aprovisionamiento?
Piensa en el aprovisionamiento como "construir la casa": creas los recursos físicos (o virtuales) que necesitas.
¿Qué es la Gestión de Configuración?
Piensa en la gestión de configuración como "amueblar y decorar la casa": configuras lo que va dentro de los servidores que ya creaste.
Comparativa: Aprovisionamiento vs Gestión de Configuración
| Aspecto | Aprovisionamiento | Gestión de Configuración |
|---|---|---|
| Propósito | Crear recursos de infraestructura | Configurar software en servidores |
| Cuándo | Al inicio, crear infraestructura | Después, configurar servidores existentes |
| Recursos | Servidores, redes, bases de datos | Software, servicios, aplicaciones |
| Herramientas | Terraform, CloudFormation | Ansible, Chef, Puppet |
| Frecuencia | Ocasional (cuando creas/modificas infra) | Frecuente (actualizaciones, cambios) |
| Enfoque | Declarativo (estado deseado) | Principalmente imperativo (pasos) |
| Ejemplo | Crear un servidor EC2 | Instalar Nginx en el servidor |
Herramientas de Aprovisionamiento
- Terraform: Multi-cloud, el más popular
- AWS CloudFormation: Nativo de AWS
- Azure Resource Manager: Nativo de Azure
- Google Cloud Deployment Manager: Nativo de GCP
- Pulumi: Usa lenguajes de programación
Herramientas de Gestión de Configuración
- Ansible: Simple, sin agentes, muy popular
- Chef: Basado en Ruby, potente
- Puppet: Maduro, ampliamente usado
- SaltStack: Rápido, escalable
- CFEngine: Uno de los más antiguos
Flujo de Trabajo Típico
- 1. Aprovisionamiento: Terraform crea los servidores EC2
- 2. Aprovisionamiento: Terraform configura redes y seguridad
- 3. Gestión de Configuración: Ansible se conecta a los servidores
- 4. Gestión de Configuración: Ansible instala Nginx, configura servicios
- 5. Gestión de Configuración: Ansible despliega la aplicación
- 6. Resultado: Infraestructura completa y configurada
¿Cuándo usar cada uno?
| Situación | Herramienta | Razón |
|---|---|---|
| Crear nuevos servidores | Aprovisionamiento (Terraform) | Necesitas crear recursos |
| Instalar software en servidores | Gestión Config (Ansible) | Servidores ya existen |
| Configurar redes y seguridad | Aprovisionamiento (Terraform) | Parte de la infraestructura |
| Actualizar aplicación | Gestión Config (Ansible) | Solo cambia software |
| Escalar horizontalmente | Aprovisionamiento (Terraform) | Crear más servidores |
| Aplicar parches de seguridad | Gestión Config (Ansible) | Configurar servidores existentes |
¿Puedo usar solo una herramienta?
- Solo Aprovisionamiento: Si usas servicios gestionados (Lambda, RDS) que no requieren configuración
- Solo Gestión de Configuración: Si ya tienes infraestructura y solo necesitas configurarla
- Ambas: La combinación ideal para infraestructura completa y configurada
Ventajas de Separar Aprovisionamiento y Configuración
- Separación de responsabilidades clara
- Herramientas especializadas para cada tarea
- Mayor flexibilidad y reutilización
- Más fácil de mantener y actualizar
- Mejor para equipos grandes
Conclusión
Aprovisionamiento y gestión de configuración son procesos complementarios en DevOps. El aprovisionamiento crea la infraestructura, la gestión de configuración la configura. Usar herramientas especializadas para cada proceso (como Terraform + Ansible) te da mayor control, flexibilidad y mantenibilidad. Entender la diferencia te ayudará a elegir las herramientas correctas para cada tarea.
¿Quieres aprender más sobre esto?
Únete a talleres gratuitos o accede a contenido premium en la comunidad.
Gratuitos
De pago