Pular para o conteúdo principal
O Midaz foi construído para escala, segurança e clareza operacional. Este guia ajuda você a configurá-lo corretamente desde o início, para que possa minimizar o tempo de inatividade, proteger seus dados e lidar com confiança com cargas de trabalho de alto volume em produção.

Configuração ideal


Para aproveitar ao máximo o Midaz em produção, comece com:
  • Implantação em múltiplas zonas de disponibilidade.
  • Uso de pelo menos 3 nós de trabalho com autoscaling.
  • Separação de cargas de trabalho (aplicação vs. banco de dados).
  • Uso de serviços gerenciados como RDS, ElastiCache e MongoDB Atlas.
  • Aplicação de boas práticas do Kubernetes para resiliência, segurança e observabilidade.
  • Automação de backups e alertas desde o primeiro dia.

Planejamento de infraestrutura


Arquitetura do cluster

Para garantir resiliência e desempenho:
  • Implante em múltiplas zonas de disponibilidade.
  • Use pelo menos 3 nós de trabalho para alta disponibilidade.
  • Habilite o autoscaling de nós para absorver picos de carga.
  • Separe cargas de trabalho de aplicação e banco de dados quando possível.

Dimensionamento de recursos

  • Dimensione os nós de acordo com as cargas de trabalho esperadas.
  • Priorize serviços críticos com recursos suficientes.
  • Aplique cotas de recursos para evitar contenção.
  • Monitore e ajuste continuamente com base no uso.

Armazenamento

  • Use armazenamento com SSD para todos os componentes de banco de dados.
  • Defina classes de armazenamento adequadas por provedor de nuvem.
  • Provisione volumes com margem para crescimento.
  • Para dados críticos, use opções de armazenamento replicado ou altamente durável.

Arquitetura de banco de dados e alta disponibilidade


O Midaz utiliza CQRS (Command Query Responsibility Segregation) para separar leituras de escritas de forma clara. Isso ajuda você a escalar de forma eficiente e construir serviços tolerantes a falhas.

PostgreSQL

  • Use um primário dedicado para escritas e réplicas para leituras.
  • Habilite a replicação síncrona para dados críticos.
  • Configure o failover automático (ex.: Patroni, AWS RDS).
  • Monitore o atraso de replicação e a consistência.
  • Prefira serviços gerenciados como AWS RDS ou GCP Cloud SQL para resiliência e automação.

Redis / Valkey

  • Implante em modo cluster em múltiplas zonas.
  • Habilite o failover automático (ex.: Redis Sentinel ou clustering nativo).
  • Use serviços gerenciados como AWS ElastiCache ou GCP Memorystore para simplicidade e disponibilidade.

MongoDB

  • Use replica sets com membros distribuídos entre zonas.
  • Monitore transições de papel e atraso.
  • Agende backups regulares.
  • Evite escrever em secundários a menos que seja intencional.
  • Use serviços gerenciados como MongoDB Atlas ou AWS DocumentDB para observabilidade, escalabilidade e resiliência.

Infraestrutura de mensageria


O RabbitMQ é essencial para desacoplar serviços e possibilitar consistência eventual na arquitetura CQRS do Midaz:
  • Serviços de comando publicam eventos após processar escritas.
  • O RabbitMQ roteia eventos para consumidores interessados através de exchanges e filas.
  • Consumidores atualizam modelos de leitura, disparam workflows ou integram com sistemas externos com base nos eventos recebidos.
Recomendamos usar um serviço gerenciado de RabbitMQ (como AWS MQ ou CloudAMQP) em produção para simplificar as operações e melhorar a confiabilidade.

Estratégias de alta disponibilidade


Redundância de serviços

  • Implante múltiplas réplicas para cada serviço.
  • Use regras de anti-afinidade para distribuir serviços entre zonas.
  • Aplique Pod Disruption Budgets para reduzir o tempo de inatividade durante atualizações.

Balanceamento de carga

  • Use ingress controllers com health checks.
  • Evite session affinity a menos que seja necessário.
  • Habilite connection draining para rollouts suaves.

Considerações de segurança


Segurança de rede

  • Aplique network policies do Kubernetes para controlar o tráfego.
  • Atribua permissões mínimas a cada service account.
  • Proteja o acesso externo com TLS.
  • Restrinja interfaces administrativas com listas de IPs permitidos.

Gerenciamento de secrets

  • Use Kubernetes Secrets para credenciais e tokens.
  • Rotacione secrets regularmente.
  • Nunca codifique secrets diretamente em containers ou arquivos de configuração.
  • Use gerenciadores de secrets externos para uma postura de segurança mais forte.

Monitoramento e observabilidade


Métricas

  • Monitore KPIs principais de aplicação e infraestrutura.
  • Defina limites de alerta acionáveis.
  • Use dashboards para visibilidade em tempo real.

Logging

  • Centralize logs entre serviços.
  • Use formatos estruturados para melhor filtragem.
  • Aplique políticas de retenção e rotação de logs.
  • Defina alertas baseados em logs para eventos críticos.

Tracing

  • Habilite tracing distribuído entre serviços.
  • Amostre traces para equilibrar desempenho.
  • Correlacione traces com logs e métricas para visibilidade completa.

Alertas

  • Crie alertas claros e confiáveis.
  • Ajuste limites para reduzir ruído.
  • Direcione alertas pelos canais adequados.
  • Mantenha runbooks para problemas recorrentes.

Estratégia de backup


  • Automatize backups regulares para sistemas críticos.
  • Armazene backups em múltiplas localidades ou regiões.
  • Teste procedimentos de restauração regularmente.
  • Mantenha a documentação de backup atualizada e acessível.

Considerações finais


O Midaz é pronto para produção por design. Quando você alinha sua infraestrutura à arquitetura dele, você ganha:
  • Separação limpa de leitura/escrita com CQRS.
  • Compatibilidade plug-and-play com serviços gerenciados de nuvem.
  • Suporte nativo para observabilidade, failover e operações seguras.
Revise sua configuração regularmente, aplique essas boas práticas proativamente e você terá uma base robusta pronta para crescer junto com o seu negócio.

Próximos passos


Precisa de ajuda para escalar, migrar ou fortalecer seu ambiente de produção?