Infraestructura como código (IaC) es ahora un enfoque ampliamente aceptado para definir y provisionar entornos de alojamiento. Incluso con la continua evolución de herramientas y técnicas en esta área, Terraform sigue siendo la herramienta dominante para hacer IaC en recursos nativos de la nube. Sin embargo, la mayoría de los entornos de alojamiento actuales son combinaciones complejas de servicios nativos del proveedor de la nube, servicios de terceros y código personalizado. En estos entornos, hemos descubierto que los ingenieros a menudo recurren a una mezcla de Terraform para los recursos en la nube y scripts personalizados para el resto. Esto puede conducir a una falta de coherencia y repetibilidad en el proceso de aprovisionamiento. De hecho, muchos de los servicios de terceros que se utilizan comúnmente en entornos de alojamiento — incluyendo Splunk, Datadog, PagerDuty y New Relic — tienen proveedores Terraform que se pueden utilizar para aprovisionar y configurar estos servicios. Por eso recomendamos que, además de los recursos en la nube, los equipos también suministren monitores y alertas con Terraform. Esto conduce a IaC con una mejor modularidad que es más fácil de entender y mantener. Como ocurre con todos los IaC, existe el riesgo de introducir inconsistencias cuando la configuración se modifica a través de otras interfaces. Para asegurar que el código de Terraform sigue siendo la fuente de la verdad, recomendamos que se deshabiliten los cambios de configuración a través de interfaces de usuario y APIs.