6 puntos por GN⁺ 2025-03-12 | Aún no hay comentarios. | Compartir por WhatsApp
  • Se gestionan más de 165,000 recursos en la nube en 625 workspaces de Terraform y 38 cuentas de AWS
    • De 170 ingenieros, 40 son especialistas en infraestructura
    • Se realizan 225 lanzamientos de infraestructura (terraform apply) y 723 planes (terraform plan) cada día
  • Para lograrlo, adoptaron Terraform Cloud para automatizar el proceso de lanzamiento de infraestructura, reduciendo el trabajo manual y los errores de los desarrolladores

Problemas antes de adoptar Terraform Cloud

  • Necesidad de altos privilegios de acceso a AWS: el equipo de infraestructura tenía que contar con un nivel elevado de acceso a AWS
  • Tareas que consumían mucho tiempo: había que ejecutar terraform apply en cada directorio y repetir revisiones y aprobaciones; un solo cambio podía afectar a más de 120 workspaces
  • Aparición de drift en la infraestructura: se acumulaban cambios inesperados, por lo que al aplicar era necesaria una revisión y acciones adicionales

Adopción de Terraform Cloud y resultados

  • Eliminación del drift → al eliminar el drift de infraestructura, se redujeron el riesgo y la carga para los desarrolladores
  • Ahorro de tiempo para los desarrolladoresaproximadamente 8,000 horas al año ahorradas (equivalente a la carga de trabajo de 4 desarrolladores)
  • Trazabilidad de cambios → los cambios pueden rastrearse mediante logs de auditoría, lo que facilita el debugging
  • Soporte para speculative plans → los cambios pueden probarse automáticamente y los resultados verse directamente en el CI de GitHub

Cómo operan Terraform Cloud actualmente

  • Self-hosted: instalaron Terraform Cloud for Business por su cuenta y operan agentes de TFC en un clúster de ECS dentro de sus cuentas de AWS
  • Configuración del pool de agentes: operan 120 agentes divididos entre entorno de desarrollo (40) y entorno de producción (80) para mantener una alta concurrencia

Elementos que monitorean con especial atención

  1. Agotamiento de agentes y límites de concurrencia → si faltan agentes, se notifica al responsable on-call
  2. Tiempo de plan → si el tiempo de plan supera los 4 minutos en desarrollo, se avisa al equipo
  3. Drift de infraestructura → actualmente no lo miden (casi no ocurre drift)

Optimización para mejorar la calidad

  • Desarrollo de un TFC CLI: permite revisar y aprobar automáticamente cambios en múltiples workspaces desde la CLI
  • Implementación de un sistema de alertas: automatizaron notificaciones en Slack para que no se omitan aplicaciones de Terraform
  • Gestión automática de workspaces: usan Terraform para administrar 625 workspaces y aplicar tags para distinguir al equipo propietario
  • Análisis de uso de Terraform Cloud: aprovechan la API de TFC para recopilar datos de versiones de estado y entender el uso de recursos y las tendencias de crecimiento
  • Respaldo de Terraform State: hacen backup automático de los archivos de estado en un bucket de S3 para poder recuperarlos ante incidentes
  • Gestión de dependencias entre workspaces: crean un árbol de dependencias de módulos para configurar automáticamente los directorios que cada workspace debe vigilar
  • Automatización de upgrades de providers: usan Dependabot para actualizar providers mensualmente y reducir la carga operativa mediante automatización

Mejoras futuras

  • Rollout por etapas: migrar de lanzamientos basados en la rama main a un esquema de despliegue por múltiples etapas (desarrollo → staging → producción)
  • División de workspaces grandes: quieren desglosar los 625 workspaces actuales en más de 1500 para reducir el tiempo de plan y apply y acotar el alcance del impacto de los cambios
  • Mejora de las notificaciones: agregar reasignación en las alertas de Slack e incorporar la generación automática del comando tfc review
  • Autoescalado de agentes: planean introducir un sistema de autoescalado basado en EKS para manejar eficientemente cargas de trabajo variables
  • Open source de herramientas internas: planean publicar como open source varias herramientas desarrolladas internamente para que otros equipos también puedan usarlas

Aún no hay comentarios.

Aún no hay comentarios.