Escopo do projeto

Descoberta funcional e técnica da aplicação atual (módulos, integrações, picos, dados). Desenho da arquitetura alvo e do modelo de dados para acesso por chave. Estratégia de transição por módulo: o módulo novo entra ao lado do legado, com roteamento gradual na borda, até o legado ser desligado.

Implementação do primeiro módulo com infraestrutura como código, pipeline de entrega e ambientes separados (desenvolvimento, homologação, produção). Login e perfis de acesso em diretório gerenciado. Observabilidade (métricas, logs, alarmes) e orçamento com alerta desde o primeiro dia.

Operação assistida e transferência de conhecimento para o time de desenvolvimento, que passa a evoluir o produto.

Desafio e problemas de hoje

  • Aplicação em dois ou três servidores sempre ligados, pagos no pico mesmo de madrugada.
  • Atualizar em produção dá medo: janela, pessoa de plantão e rollback manual.
  • Patch de sistema operacional e de runtime atrasados porque falta tempo.
  • Picos de acesso (campanha, matrícula, fechamento) derrubam o sistema.
  • Login e permissões implementados à mão, difíceis de auditar.
  • Time pequeno de desenvolvimento, com operação compartilhada entre todos.

O ambiente de partida (perfil típico deste exemplo)

Perfil típico do ambiente de partida deste exemplo
ItemO que costuma existir
AplicaçãoPortal web ou sistema interno em monólito (.NET, Java, PHP ou Node.js), de 2 a 4 servidores (web e aplicação)
BancoRelacional em servidor próprio ou Amazon RDS; tabelas de sessão e log misturadas às de negócio
UsuáriosDe centenas a dezenas de milhares, com picos sazonais
IntegraçõesAPI de terceiros (pagamento, notas, mensageria), importação por arquivo, e-mail transacional
DependênciasSessão em memória do servidor, arquivos locais, tarefas agendadas no próprio servidor
RestriçõesJanela de parada inexistente em horário comercial; dados pessoais sob LGPD; time pequeno de desenvolvimento

Perfil típico, com faixas, construído a partir de projetos desse tipo. O inventário real é o primeiro entregável do diagnóstico.

Requisitos

  1. R1Sistema operacional, runtime e patch ficam com o serviço gerenciado.
  2. R2Escalar no pico e custar pouco fora dele.
  3. R3Atualizações frequentes e seguras, com reversão rápida.
  4. R4Login, perfis e MFA com diretório gerenciado, no lugar de código próprio de autenticação.
  5. R5Tarefas assíncronas (e-mail, integração, relatório) fora do caminho da requisição.
  6. R6Observabilidade e orçamento com alerta desde o primeiro dia.
  7. R7Transição por módulo, convivendo com o legado.

O que desenhamos para cada requisito

Decisão de arquitetura e serviço AWS para cada requisito
RequisitoDecisão de arquiteturaServiço AWS
R1Site estático em armazenamento de objetos, API em funções sob demanda, dados em banco gerenciado serverlessAmazon S3, AWS Lambda, Amazon DynamoDB
R2Entrega global com cache de borda; funções e tabela escalam por demanda e cobram pelo usoAmazon CloudFront, AWS Lambda, Amazon DynamoDB
R3Infraestrutura como código, pipeline por ambiente, versões e aliases de função com troca gradual de tráfegoAWS SAM ou AWS CDK, AWS Lambda
R4Diretório de usuários gerenciado com MFA, perfis em grupos e tokens validados na APIAmazon Cognito, Amazon API Gateway
R5Eventos de negócio publicados num barramento e consumidos por funções separadas, com fila e repetiçãoAmazon EventBridge, Amazon SQS, AWS Lambda
R6Métricas, logs estruturados e alarmes por função e por API; orçamento mensal com alertaAmazon CloudWatch, AWS Budgets
R7Roteamento por caminho na borda: módulos novos para a API serverless, demais para o legado, até concluirAmazon CloudFront, Amazon API Gateway

Arquitetura

Diagrama de arquitetura serverless: usuários acessam o Amazon CloudFront, que entrega o site hospedado no Amazon S3 e encaminha a API para o Amazon API Gateway, com login no Amazon Cognito, código no AWS Lambda, dados no Amazon DynamoDB, eventos no Amazon EventBridge disparando funções de tarefas e observabilidade no Amazon CloudWatch.
Usuários chegam pelo Amazon CloudFront, que entrega o site a partir do Amazon S3 e a API pelo Amazon API Gateway; o Amazon Cognito faz o login; o AWS Lambda executa o código e grava no Amazon DynamoDB; o Amazon EventBridge dispara funções de tarefas assíncronas; o Amazon CloudWatch recebe logs e métricas de tudo. Abrir o diagrama em tela cheia
Componentes e fluxos deste diagrama
  • Usuários: acessam pelo Amazon CloudFront.
  • Amazon CloudFront: entrega o site a partir do Amazon S3 e encaminha a API para o Amazon API Gateway.
  • Amazon Cognito: login validado pelo Amazon API Gateway.
  • Amazon API Gateway: chama o AWS Lambda.
  • AWS Lambda: executa o código e grava os dados no Amazon DynamoDB.
  • Amazon EventBridge: recebe os eventos do AWS Lambda e dispara o AWS Lambda (tarefas).
  • Amazon CloudWatch: logs e métricas de todos os componentes.

Ganhos: o que medimos no projeto

Indicadores medidos no projeto, como são medidos e o que muda
IndicadorComo medimosO que muda
Servidores a administrarContagem de servidores com sistema operacional e runtime sob responsabilidade do timeDe 2 a 4 servidores no perfil típico para zero servidores sob responsabilidade do time no módulo migrado
Frequência de atualizaçãoImplantações em produção por semana e tempo de reversãoDe janela planejada com plantão para implantações pequenas e frequentes, com reversão rápida para a versão anterior
Custo fixo e variávelParcela da fatura que varia com o uso, em meses de pico e de baixaDe custo fixo pelo pico para custo que acompanha o uso
Comportamento no picoErros e tempo de resposta (p95) em campanhas ou fechamentosDe queda no pico para escala automática, medida por alarme
Horas de operaçãoHoras por mês em patch, reinício e monitoramento manualDe operação de servidor para evolução do produto

Indicadores de um projeto típico, medidos no próprio projeto: resultado típico, não garantia.

Escopo e entregáveis por fase

Fases do projeto, o que acontece, entregáveis e duração típica
FaseO que aconteceEntregáveisDuração
1. DescobertaMapa de módulos, integrações, picos e dados; escolha do primeiro móduloDocumento de descoberta, arquitetura alvo, modelo de dados, plano de transiçãode 1 a 2 semanas
2. FundaçãoContas e ambientes, infraestrutura como código, pipeline, login, observabilidade, orçamentoPipeline funcionando nos três ambientes, diretório de usuários, painéis e alarmesde 2 a 3 semanas
3. Primeiro móduloImplementação, testes, migração dos dados do módulo, roteamento gradualMódulo em produção ao lado do legado, relatório de testesde 4 a 8 semanas
4. Operação assistida e transferênciaAjustes, documentação, sessões com o time de desenvolvimento, plano para os próximos módulosDocumentação, runbook, backlog dos próximos módulosde 1 a 3 semanas

Durações típicas, em faixa. O plano do projeto fixa as datas reais.

Algo a mais: quando a rota é contêiner, e quando é serverless

Se a aplicação precisa continuar como está por enquanto, mas pode ser empacotada, o caminho é contêiner no Amazon ECS com AWS Fargate (ou Amazon EKS quando o time já opera Kubernetes), com a mesma lógica de pipeline, observabilidade e orçamento: é o caso Aplicação em contêineres.

Sinais para contêiner

  • Dependência de framework ou biblioteca com estado em memória.
  • Processos longos que ultrapassam o tempo de execução de uma função.
  • Equipe que já usa Docker.

Sinais para serverless

  • Tráfego com picos.
  • Integrações por evento.
  • Time pequeno com operação compartilhada.

Ver o exemplo de aplicação em contêineres

Perguntas frequentes deste exemplo

A transição é por módulo: o novo entra ao lado do legado, com roteamento gradual, e o legado só desliga quando o último módulo migrar.

O AWS Lambda tem suporte a várias linguagens e a contêineres. O que decide é a forma da aplicação (estado, tempo de execução, dependências), avaliada na descoberta.

Serviços sob demanda cobram pelo uso; fora do pico, o custo acompanha. O orçamento com alerta é configurado no primeiro dia para que qualquer desvio apareça cedo.

Pode continuar, no Amazon RDS ou Amazon Aurora, acessado pelas funções. O Amazon DynamoDB entra onde o padrão de acesso por chave faz sentido; a decisão é por módulo.

Serviços AWS deste exemplo

  • Amazon CloudFront
  • Amazon S3
  • Amazon API Gateway
  • Amazon Cognito
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon EventBridge
  • Amazon SQS
  • Amazon CloudWatch
  • AWS Budgets
  • AWS SAM ou AWS CDK
  • Amazon ECS (variante)
  • AWS Fargate (variante)
  • Amazon EKS (variante)
  • Amazon RDS (variante)
  • Amazon Aurora (variante)

Incentivos AWS

A RFX busca para o projeto os programas de incentivo e créditos da AWS aplicáveis, sempre sujeitos a aprovação da AWS.

Agende uma conversa com um especialista

Conte em uma linha o que você tem hoje. Um engenheiro da RFX responde em até 4 horas úteis com o próximo passo para o seu caso. O primeiro contato é uma conversa técnica; a proposta vem depois, se fizer sentido para você.

Ver cases reais da RFX (anonimizados por confidencialidade)

A RFX busca para o projeto os programas de incentivo e créditos da AWS aplicáveis, sempre sujeitos a aprovação da AWS.

Onde roda hoje? (opcional)
Prazo? (opcional)

Quem responde é um engenheiro da RFX, AWS Partner Advanced Tier, em até 4 horas úteis. Usamos seus dados para responder a este contato, conforme a Política de Privacidade.

Casos relacionados

Modernização

Aplicação em contêineres no Amazon ECS ou EKS

A aplicação que precisa continuar como está é empacotada em contêiner, roda em duas zonas, escala e recebe atualizações frequentes com a plataforma administrada pela AWS.

Caminho: Ajustar (Replatform), com Redesenhar pontual · Duração típica: de 6 a 12 semanas

Ver o exemplo
Migração

Banco de dados com AWS DMS

O banco migra enquanto continua em uso: carga inicial, replicação de mudanças e virada curta para um banco gerenciado em duas zonas.

Caminho: Ajustar (Replatform) · Duração típica: de 4 a 8 semanas por banco

Ver o exemplo
Fundação

Ambiente base (landing zone)

Governança central, duas zonas de disponibilidade e backup desde a primeira conta: o ponto de partida antes de migrar o primeiro sistema.

Caminho: Fundação · Duração típica: de 2 a 4 semanas

Ver o exemplo
Falar com um engenheiro