O problema de "configurar na mão"
Criar servidores, redes e bancos de dados clicando botões em um console web é rápido na primeira vez... e um desastre na décima: ninguém lembra o que foi mexido, não há forma de reproduzir e recriar o ambiente após uma falha é uma odisseia.
Infraestrutura como código (IaC)
A IaC descreve a infraestrutura em arquivos de texto que são versionados no Git, igual ao código. Ferramentas como Terraform ou Pulumi leem essa descrição e criam (ou atualizam) os recursos reais.
# Terraform: você declara O QUE quer, não COMO criá-lo
resource "google_cloud_run_service" "api" {
name = "minha-api"
location = "europe-west1"
}
Vantagens:
- Reproduzível: o mesmo arquivo recria o ambiente idêntico quando você quiser.
- Versionada: você vê no histórico quem mudou o quê e por quê; pode reverter.
- Declarativa: você descreve o estado desejado; a ferramenta calcula os passos para chegar a ele.
DNS, domínios e HTTPS
Para que as pessoas digitem meuapp.com e cheguem ao seu servidor é preciso:
- DNS: a "agenda da internet" que traduz o domínio para o IP do seu
servidor (um registro
AouCNAME). - HTTPS/TLS: criptografa o tráfego entre o navegador e o servidor. Hoje se obtém grátis e automático (Let's Encrypt, e a maioria dos PaaS/CDN gerencia e renova por você).
# Verificar para qual IP um domínio resolve
dig +short meuapp.com
Tudo isso —domínios, DNS, certificados— também pode ser declarado com IaC, de modo que sua infraestrutura completa caiba, reproduzível, em um repositório.