Situação
Uma empresa brasileira que opera sistemas críticos de assistência médica, hospitalar e odontológica e de educação para funcionários, dependentes e aposentados, operava suas aplicações — sistemas de gestão, portais de serviços e ferramentas de suporte operacional — na infraestrutura da Microsoft Azure. O ambiente, embora funcional, apresentava custo crescente e limitações estruturais que comprometiam sua sustentabilidade a longo prazo. O ambiente utilizava:
- Azure Functions para lógicas de negócio e processamento de eventos
- SQL Server para armazenamento de dados estruturados
- Serviços de mensageria para comunicação assíncrona entre componentes
- Blob Storage para armazenamento de arquivos e objetos
Além das limitações técnicas, a empresa cliente enfrentava pressões de negócio que tornaram a migração de cloud incontornável:
- Custo elevado e não competitivo: o ambiente Azure representava um custo de infraestrutura crescente. Uma análise comparativa entre a infraestrutura Azure vigente e a arquitetura AWS proposta projetou uma otimização da ordem de R$3 milhões por ano, estabelecendo como meta uma redução de pelo menos 30% nos custos de infraestrutura.
- Necessidade de modernização tecnológica: o ambiente apresentava overcommit crítico de recursos, ausência de observabilidade e lacunas de segurança, configurando um cenário incompatível com a criticidade dos serviços prestados pela empresa cliente.
- Escalabilidade e segurança: a demanda crescente por capacidade e por controles de segurança mais maduros exigia uma plataforma com serviços gerenciados e automação de provisionamento.
- Continuidade de serviços sensíveis: como a empresa cliente opera sistemas críticos de educação e de assistência médica, hospitalar e odontológica para funcionários, dependentes e aposentados, a migração precisava garantir continuidade e segurança dos dados, preservando o motor SQL Server (migrado para o Amazon RDS).
- Footprint AWS pré-existente (decisão estratégica): parte da plataforma já operava na AWS antes da migração completa. A base de usuários já estava estruturada no Amazon Cognito (User Pools) e a integração com parceiros já estava implementada na AWS. Manter as cargas restantes na Azure resultava em um ambiente híbrido fragmentado, com custos e complexidade operacional duplicados; migrar o restante consolidava toda a operação em uma única cloud, reforçando o caráter estratégico da migração.
- Consolidação em cloud única (performance e custo de rede): com a migração, os sistemas passariam a operar exclusivamente na AWS, eliminando a conectividade cruzada com a Azure. Ao centralizar todo o tráfego dentro de uma única cloud, o fluxo de dados entre as aplicações deixaria de depender de comunicação entre nuvens, melhorando a performance de rede e o fluxo de dados e reduzindo os custos de data transfer decorrentes do tráfego entre Azure e AWS.
Esse conjunto de fatores — custo, modernização, escalabilidade, segurança e a consolidação sobre um footprint AWS já existente — definiu o cenário que exigiu uma migração completa de cloud para garantir a sustentabilidade financeira e a evolução dos serviços da fundação.
A topologia da arquitetura AWS evidencia esses pontos, já contemplando o Amazon Cognito (User Pools) para a base de usuários, a integração com parceiros e os demais serviços gerenciados (RDS SQL Server, Lambda, DocumentDB, ElastiCache, SQS/SNS, S3) sobre os quais a plataforma foi consolidada:

Figura 1 — Topologia da Infraestrutura AWS
O sistema mantinha integrações ativas com as operadoras dos serviços operados, cada um com pipeline dedicado (API + workers).
Os gaps técnicos identificados no assessment, somados aos drivers de negócio já descritos, definiram o escopo e a urgência da migração completa de cloud detalhada a seguir.
Tarefa
O objetivo era realizar a migração completa da infraestrutura e das aplicações da empresa cliente da Microsoft Azure para a AWS, utilizando a ferramenta de gestão de nuvem proprietária da Zup, com as seguintes metas:
- Redução de custos: Diminuir em pelo menos 30% os custos de infraestrutura em comparação com a Azure
- Desempenho: Manter ou melhorar o desempenho das aplicações (tempo de resposta, taxa de erro, latência e throughput)
- Disponibilidade: Garantir a disponibilidade das aplicações conforme os SLAs existentes, minimizando interrupções
- Segurança: Preservar a confidencialidade, integridade e disponibilidade dos dados durante e após a migração
- Migração completa: Migrar 100% das aplicações e dados, garantindo todas as funcionalidades no novo ambiente
- Capacitação: Treinar a equipe da empresa cliente para operar e gerenciar o ambiente AWS via portal ferramenta de gestão de nuvem proprietária da Zup
- Consolidação em cloud única: Eliminar o ambiente híbrido Azure-AWS, centralizando toda a operação na AWS e encerrando a conectividade cruzada entre as nuvens
O projeto foi conduzido pela equipe de migração da Zup, em colaboração com os times da empresa cliente entre novembro/2022 e julho/2023.
Ação
A migração foi executada em 6 fases estruturadas:
Fase 1 — Avaliação e Planejamento (11/2022 – 01/2023)
- Análise minuciosa do código das aplicações, funções e infraestrutura Azure
- Reuniões com equipes técnicas, de negócio, infraestrutura e terceiros da empresa cliente para levantamento de dependências e requisitos
- Mapeamento de-para de todos os componentes Azure para serviços equivalentes AWS
- Elaboração do plano de migração com cronograma, arquitetura da solução AWS, plano de testes e plano de contingência
- Assessment técnico detalhado do cluster AKS: Levantamento completo dos 46 pods, 4 nodes, 25 services, 46 deployments, secrets e configmaps, identificando problemas críticos de overcommit de recursos, ausência de observabilidade, falhas de segurança (sem RBAC, sem NORoot) e gaps de operação (sem alertas, sem tracing, sem ingress)
Fase 2 — Configuração do Ambiente AWS (01/2023 – 03/2023)
- Desenvolvimento de plugins de infraestrutura utilizando a plataforma de desenvolvimento (IDP) proprietária da Zup.
- Criação automatizada dos ambientes DEV, HOM e PROD na AWS com Terraform e a plataforma de desenvolvimento (IDP) proprietária da Zup.
- Provisionamento dos seguintes serviços AWS: Route53, Shield, API Gateway, CloudFront, Cognito, Secrets Manager, EKS, Lambda, EventBridge, RDS (SQL Server), DynamoDB, DocumentDB, ElastiCache (Redis), SQS, SNS, SES e S3
- Configuração de VPCs, sub-redes, grupos de segurança e elementos de rede conforme arquitetura definida
- Ambientes distribuídos em 3 contas AWS na região sa-east-1 (São Paulo)
Fase 3 — Migração de Dados e Aplicações (01/2023 – 03/2023)
- Dois times atuando em paralelo: migração de dados e migração de aplicações
- O time técnico da empresa cliente exportou os dados da Azure e disponibilizou em bucket para importação no ambiente DEV
- Refatoração e adaptação do código: conversão de Azure Functions para AWS Lambda, integração com RDS, SQS, SNS, S3 e Secrets Manager
- Migração dos 46 microsserviços (20 aplicações core + 26 integrações com operadoras), incluindo a conversão do container registry de Azure ACR para registro compatível AWS
- Reescrita dos pipelines de integração: cada parceiro possui um fluxo completo: API → dispatcher → parser → persistence → logging → transparency
- Migração de secrets do Azure Key Vault para AWS Secrets Manager
- Configuração da esteira de CI/CD para entregas das aplicações
- Ambiente DEV entregue com dados e aplicações funcionando na AWS
Fase 4 — Testes, Correções e Promoção para Homologação (03/2023 – 05/2023)
- Testes intensivos no ambiente DEV com participação dos times de negócio e técnico da empresa cliente
- Identificação e correção de erros e inconsistências nas aplicações e configurações
- Validação de funcionalidade, desempenho e integração com serviços AWS
- Replicação das configurações e aplicações para o ambiente de homologação (HOM)
- Segunda rodada de testes em HOM, incluindo integração com parceiros externos (planos de saúde e outros sistemas de terceiros)
- Execução de testes de carga
Fase 5 — Promoção para Produção, Migração de Dados e Testes Finais (05/2023 – 06/2023)
- Promoção do ambiente HOM para PROD na AWS
- Exportação dos dados produtivos da Azure e importação para o ambiente de produção AWS
- Estratégia de cutover: parada total do ambiente Azure, alteração de DNS para apontar para AWS
- Configuração dos acessos dos parceiros da empresa cliente no novo ambiente
- Bateria de testes em produção com o time de negócios
- Time de plantão mantido durante a semana seguinte ao go-live para atuação rápida em caso de problemas
- Treinamento da equipe empresa cliente sobre utilização da ferramenta de gestão de nuvem proprietária da Zup e operação no ambiente AWS
Fase 6 — Melhorias, Suporte e Otimização (06/2023)
- Equipe dedicada para melhorias contínuas nas aplicações
- Suporte aos times técnico e de negócios da empresa cliente
- Otimizações no código e na infraestrutura visando desempenho, estabilidade e segurança
- Desligamento dos sistemas na cloud anterior (Azure)
- Monitoramento contínuo do novo ambiente
Resultados
A migração foi concluída com sucesso dentro do prazo estabelecido (novembro/2022 a julho/2023), alcançando os seguintes resultados:
- Redução de custos: A migração alcançou a redução de custos esperada em relação ao ambiente Azure de 30%.
- Migração completa: Todas as aplicações e dados foram migrados da Azure para a AWS, com todas as funcionalidades operando corretamente no novo ambiente, validadas por múltiplas rodadas de testes (DEV, HOM e PROD).
- Infraestrutura moderna e escalável: Arquitetura robusta na AWS com mais de 16 serviços gerenciados, distribuída em 3 ambientes (DEV, HOM, PROD) com automação completa de provisionamento.
- Integração preservada: Conectividade com parceiros externos da plataforma (planos de saúde e outros) reestabelecida e validada no novo ambiente.
- Continuidade operacional: Migração realizada com estratégia de cutover controlada, minimizando o impacto nos serviços da fundação, com time de plantão garantindo suporte imediato pós go-live.
- Capacitação da equipe: Time da empresa cliente treinado para operar e gerenciar o ambiente AWS através da ferramenta de gestão de nuvem proprietária da Zup, garantindo autonomia operacional.
- Base para evolução futura: Com a estabilização na AWS, a empresa cliente ficou posicionada para próximos passos de otimização, incluindo a substituição do SQL Server por soluções de banco de dados gerenciáveis mais econômicas da AWS.
- Correção de gaps identificados no assessment: Os problemas críticos encontrados no ambiente Azure foram endereçados na nova arquitetura AWS:
- Overcommit de CPU (563%) e memória (328%) resolvido com dimensionamento adequado no EKS
- Implementação de observabilidade (anteriormente inexistente — sem tracing, sem logs externos, sem alertas)
- Melhoria de segurança com práticas de RBAC e gestão de secrets via AWS Secrets Manager (substituindo Azure Key Vault)
- Arquitetura de rede aprimorada com API Gateway, CloudFront e Route53 (anteriormente sem Ingress)
- Escala do projeto: Migração bem-sucedida de 46 microsserviços (20 aplicações core + 26 integrações com operadoras de saúde), 4 nodes de cluster, 25 services Kubernetes e integrações ativas com parceiros internos.
- Consolidação em cloud única: Com o desligamento do ambiente Azure, toda a operação passou a ser executada exclusivamente na AWS, eliminando a conectividade cruzada entre nuvens. A centralização do tráfego em uma única cloud reduziu a complexidade operacional e os custos de data transfer entre Azure e AWS, além de simplificar o fluxo de dados e a gestão da plataforma.



