- Rede (VPC, subnets)
- DNS
- Banco de dados
- Redis/Valkey
- Cluster Kubernetes (EKS, GKE ou AKS)
Os templates do Midaz Terraform Foundation não incluem MongoDB nem RabbitMQ. Esses serviços não são oferecidos de forma consistente como serviços gerenciados em todos os principais provedores de nuvem (AWS, GCP, Azure).
Por que usar
Provisionar infraestrutura não deveria ser lento, inconsistente ou propenso a erros. O
midaz-terraform-foundation ajuda você a avançar rápido mantendo-se alinhado com as melhores práticas da Lerian para segurança, observabilidade e escalabilidade. Veja como ele se compara a configurações manuais ou ad-hoc:
Velocidade e padronização
| Critério | Com Midaz Terraform | Configuração manual / Scripts ad-hoc |
|---|---|---|
| Velocidade de setup | Rápido – provisiona tudo em minutos com um único apply. | Lento – leva dias para configurar e testar. |
| Padrão de arquitetura | Padronizado – segue as melhores práticas da Lerian. | Imprevisível – pode ser inconsistente. |
| Reusabilidade | Alta – suporta múltiplos ambientes com alterações mínimas. | Baixa – difícil de reutilizar entre projetos. |
Segurança e observabilidade
| Critério | Com Midaz Terraform | Configuração manual / Scripts ad-hoc |
|---|---|---|
| Segurança por padrão | Sim – seguro por design (VPCs isoladas, IAM, secrets, etc.). | Não – depende da equipe, aumentando o risco de exposição. |
| Observabilidade integrada | Integrada – integra com Prometheus, Grafana e mais. | Manual – requer configuração separada, frequentemente ignorada. |
| Pronto para produção? | Sim – alta disponibilidade e autoscaling prontos para uso. | Incerto – precisa de esforço extra para fortalecer. |
Manutenção e suporte
| Critério | Com Midaz Terraform | Configuração manual / Scripts ad-hoc |
|---|---|---|
| Manutenibilidade | Fácil – modular e versionado para atualizações sem dor. | Difícil – scripts quebram facilmente. |
| Suporte Lerian | Incluído – verificado e suportado pela Lerian. | Nenhum – não garantido. |
| Tempo estimado de implantação | 1 dia – incluindo validação. | 1–2 semanas – com maior risco operacional. |
O que você vai precisar
Antes de começar, certifique-se de ter:
- Terraform v1.0.0 ou superior
- Uma conta em um provedor de nuvem (AWS, GCP ou Azure).
- Um bucket de armazenamento para os arquivos de estado do Terraform.
- A ferramenta CLI do seu provedor de nuvem:
awspara AWSgcloudpara GCPazpara Azure
Integração CI/CD
Este repositório fornece exemplos de Terraform para implantar infraestrutura base. Ele não inclui um pipeline de CI/CD. Você precisará criar um com base nas necessidades do seu projeto. Já está rodando um pipeline de CI/CD com Terraform? Veja o que fazer:Copie as configurações de exemplo relevantes para o seu repositório privado de Infrastructure as Code.
Estrutura do projeto
O repositório é projetado com uma estrutura única para cada provedor de nuvem. Isso significa que cada componente da infraestrutura é organizado para suportar uma abordagem modular e controlada. Você tem a flexibilidade de implantar apenas o que precisa, ou ir com tudo e usar a fundação completa.
A ordem de implantação importa
Para evitar erros e garantir que tudo se conecte corretamente, recomendamos implantar os componentes nesta sequência:- VPC / Network
- DNS
- Banco de dados
- Redis/Valkey
- Cluster Kubernetes
Criando o armazenamento de estado
O Terraform requer um backend remoto para gerenciar seu estado. Para começar com esses templates, é essencial configurar primeiro um bucket de armazenamento para os arquivos de estado do Terraform.
AWS
Não esqueça de substituir REGION e UNIQUE_BUCKET_NAME pelas suas informações.
Google Cloud Platform
Azure
Requisitos de configuração
- Antes de implantar a infraestrutura, certifique-se de ter criado e configurado o arquivo de variáveis para cada componente de nuvem:
Credenciais de produção e implantação
Quando se trata de implantar infraestrutura em ambientes de produção, gerenciar credenciais com cuidado é crucial para manter a segurança. Aqui está um guia sobre como lidar com credenciais de forma segura:
Autenticação no provedor de nuvem
Ao usar o script de deploy localmente, recomendamos fortemente utilizar as ferramentas de autenticação CLI do provedor de nuvem em vez de credenciais brutas. Este método é significativamente mais seguro, pois gerencia automaticamente a rotação de credenciais, MFA e refresh de tokens para você! Por que adotar essa abordagem?- Tokens são atualizados automaticamente.
- Integração com MFA e SSO pronta para uso.
- Credenciais são rotacionadas e armazenadas de forma segura.
- Trilha de auditoria completa para eventos de autenticação.
AWS
Use a AWS CLI para assumir uma role.GCP
Use a autenticação do gcloud.Azure
Use a Azure CLI.Boas práticas de gerenciamento de credenciais
Mantenha-se seguro e em conformidade seguindo as orientações oficiais do seu provedor de nuvem:- AWS: Gerenciando chaves de acesso AWS.
- GCP: Gerenciando chaves de service account.
- Azure: Boas práticas de gerenciamento de identidade.
Práticas recomendadas
- Rotacione credenciais em um cronograma regular.
- Use controle de acesso baseado em roles (RBAC) sempre que possível.
- Exija MFA para contas de usuário.
- Prefira credenciais temporárias e de curta duração.
- Monitore e audite como as credenciais são utilizadas.
- Nunca faça commit de credenciais no controle de versão.
Usando o script de deploy
O script
deploy.sh cuida da sequência de setup, destaca problemas ao longo do caminho e garante que cada componente seja implantado na ordem correta.
O que ele faz
- Permite que você escolha seu provedor de nuvem (AWS, Azure ou GCP).
- Oferece opções para implantar ou destruir a stack.
- Verifica se todos os placeholders de configuração do backend estão preenchidos corretamente.
- Executa comandos do Terraform na ordem correta para cada componente.
- Exibe logs claros e coloridos para que você saiba o que está acontecendo em cada etapa.
Como usar
Certifique-se de que todos os pré-requisitos estejam completos e que seu bucket de estado remoto tenha sido criado.
Tratamento de erros
Construímos o script para falhar rapidamente e fornecer uma explicação. Se algo der errado, ele irá:- Parar imediatamente se encontrar placeholders que você esqueceu de preencher.
- Sair se qualquer comando do Terraform falhar.
- Mostrar exatamente qual componente falhou e em qual etapa.
Instalando o Midaz
Após implantar a infraestrutura base, você pode instalar o Midaz usando Helm. Para mais informações, consulte a página Implantando com Helm.
Pré-requisitos
- Cluster Kubernetes funcionando (EKS, GKE ou AKS).
kubectlconfigurado para acessar o cluster.- Helm v3.x instalado.
- Acesso ao repositório Helm do Midaz.
Passos de instalação
Para opções detalhadas de configuração e setup avançado, consulte o Repositório Helm do Midaz.
Dicas de segurança
Usar a nuvem traz oportunidades fantásticas, mas também vem com responsabilidades importantes. Para ajudar a manter sua infraestrutura Midaz segura, recomendamos:
- Sempre use clusters Kubernetes privados para limitar a exposição pública.
- Acesse a API do Kubernetes via VPN em vez de permitir acesso público.
- Configure e aplique RBAC (Controle de Acesso Baseado em Roles) para gerenciar permissões de usuários de forma eficaz.
- Armazene todos os secrets no serviço de gerenciamento de secrets do provedor de nuvem.
- Dê às service accounts apenas as permissões que realmente precisam.
Contribuindo
Antes de fazer qualquer alteração, você precisará configurar os Git hooks. Isso ajuda a garantir que cada commit siga nossos padrões e passe nas verificações necessárias.
Confira nosso Guia de Contribuição para saber mais sobre como trabalhamos juntos e o que esperamos dos contribuidores.
Licença
O Midaz é um projeto open-source licenciado sob a Elastic License 2.0.
Precisa de ajuda?
- Confira o README dentro de cada pasta de componente.
- Procure nas issues existentes.
- Abra uma nova issue se necessário.

