Infraestrutura como código (IaC) é uma abordagem amplamente aceita para definir e provisionar ambientes de hospedagem. Mesmo com a contínua evolução de ferramentas e técnicas nessa área, o Terraform continua sendo a ferramenta dominante para fazer IaC em recursos nativos da nuvem. Entretanto, a maioria dos ambientes de hospedagem hoje são combinações complexas de serviços nativos de fornecedores de nuvem, serviços de terceiros e código personalizado. Nestes ambientes, percebemos que as pessoas engenheiras muitas vezes recorrem a uma combinação de Terraform para recursos de nuvem e scripts personalizados para o restante. Isso pode levar a uma falta de consistência e repetibilidade no processo de provisionamento. Na verdade, muitos dos serviços de terceiros que são comumente usados em ambientes de hospedagem — incluindo Splunk, Datadog, PagerDuty e New Relic — possuem provedores do Terraform que você pode usar para provisionar e configurar esses serviços. É por isso que recomendamos que, além de recursos de nuvem, as equipes também provisionem monitores e alertas com Terraform. Isso leva a um IaC com melhor modularidade que é mais fácil de entender e manter. Como em toda IaC, há um risco de introduzir inconsistências quando a configuração é alterada por meio de outras interfaces. Para garantir que o código do Terraform permaneça como fonte da verdade, recomendamos que você desabilite as alterações de configuração por meio de interfaces da pessoa usuária e APIs.