Depois de criar uma aplicacao, voce precisa coloca-la em um servidor. Esse processo e chamado de implantacao (deployment). Como voce empacota seu codigo, gerencia configuracoes e o implanta na AWS?
As perguntas do exame DVA-C02 nessa area focam em como empacotar e gerenciar codigo e configuracoes.
Pacotes de implantacao do Lambda
Ha duas maneiras de fazer upload de uma funcao Lambda para a AWS.
Primeiro metodo: arquivo .zip Compacte o codigo da funcao e as bibliotecas necessarias em um arquivo ZIP e faca upload. Upload direto: ate 50MB Upload via S3: ate 250MB Adequado para funcoes simples ou quando ha poucas dependencias.
Segundo metodo: imagem de conteiner Empacote como imagem Docker, armazene no ECR e, em seguida, vincule ao Lambda. Suporta ate 10GB. Vantajoso quando ha dependencias grandes, como modelos de machine learning. Equipes familiarizadas com tecnologia de conteiner podem reutilizar seus fluxos de trabalho Docker existentes.
Amazon ECR (Elastic Container Registry)
O ECR e um servico para armazenar e gerenciar imagens de conteineres Docker. Pense nele como o Docker Hub da AWS. Assim como voce armazena codigo no GitHub, voce armazena imagens Docker no ECR.
Recursos principais: Varredura de imagens: Verifica automaticamente as imagens armazenadas em busca de vulnerabilidades de seguranca conhecidas. Politicas de ciclo de vida: Limpa automaticamente imagens antigas para reduzir custos de armazenamento. Compartilhamento entre contas: Com politicas de recursos configuradas, as imagens podem ser compartilhadas com seguranca com outras contas AWS.
AWS AppConfig
E se voce pudesse alterar as configuracoes do seu app sem implantar novo codigo? Por exemplo, ativar ou desativar um novo recurso, ou lancar para um grupo especifico de usuarios primeiro. E exatamente isso que o AWS AppConfig faz.
Feature Flag: Permite ativar ou desativar recursos especificos sem uma implantacao de codigo. Por exemplo, util ao testar um novo sistema de pagamento com apenas um subconjunto de usuarios primeiro. Implantacao gradual: Em vez de aplicar alteracoes de configuracao a todos de uma vez, aplique-as primeiro a um grupo pequeno. Se algo der errado, voce pode reverter imediatamente. Validacao: Valida a configuracao usando um esquema JSON ou uma funcao Lambda antes de ser implantada. Evita que configuracoes incorretas sejam implantadas. Rollback automatico: Se um erro for detectado apos a implantacao, reverte automaticamente para a configuracao anterior.
Gerenciamento de configuracao por ambiente
Os aplicativos normalmente rodam em ambientes separados de desenvolvimento (Dev), teste/staging (Staging) e producao (Production). Cada ambiente precisa de configuracoes diferentes (enderecos de banco de dados, chaves de API, etc.).
Formas de gerenciar configuracao por ambiente na AWS: Hierarquia baseada em caminho do Parameter Store: Separar por caminho, como /app/dev/db-url e /app/prod/db-url Variaveis de ambiente do Lambda: Definir diferentes variaveis de ambiente por funcao para ter comportamento diferente por ambiente Parameters ou Mappings do template SAM: Injetar valores diferentes por ambiente ao implantar apps serverless
Pontos-chave do exame
"Dependencias grandes no Lambda (ate 10GB)" -- Imagem de conteiner (ECR)
"Pacote de implantacao Lambda supera 50MB" -- Fazer upload de ZIP para S3
"Alterar configuracao sem implantacao de codigo" -- AWS AppConfig
"Ativar/desativar recursos sem codigo" -- Feature Flag (AppConfig)
"Deteccao automatica de vulnerabilidades em imagens Docker" -- Varredura de imagens ECR
"Gerenciar configuracao por ambiente de forma hierarquica" -- Parameter Store (baseado em caminho)
"Injetar valores por ambiente no SAM" -- Parameters/Mappings
AppConfig e o servico chave para separar implantacao de codigo de implantacao de configuracao