- Introdução
- Passo a passo
- Opções de implantação
- Configuração de implantação
- Implantação com ASG
- Referências
O CodeDeploy é um serviço de implantação que automotiza implatações de aplicações em instâncias EC2, funções lambdas ou serviços ECS.
É importante salientar que o CodeDeploy ≠ Elastic Beanstalk.
- Plataformas computacionais suportadas pelo CodeDeploy: EC2/Servidores Locais, Lambda ou ECS
-
Cada instância EC2/Servidores locais(on-premises) devem estar executando o CodeDeploy Agent para o CodeDeploy funcionar
-
O CodeDeploy Agent ficará perguntando para o AWS CodeDeploy se existe algum implementação(deploy) para ser feito
-
Caso haja um, será extraído do repositório o código-fonte da aplicação + arquivo
appspec.yml
do Bitbucket, Github ou S3. -
As instâncias EC2 irão executar as instruções de implantação(deploy) no arquivo
appspec.yml
-
Por fim será relatado pelo CodeDeploy Agent se o resultado da implantação(deploy) foi de sucesso ou falha para o serviço CodeDeploy
-
Exemplo do arquivo
appspec.yml
version: 0.0
os: linux
files:
- source: Config/config.txt
destination: /webapps/Config
- source: source
destination: /webapps/myApp
hooks:
BeforeInstall:
- location: Scripts/UnzipResourceBundle.zip
- location: Scripts/UnzipDataBundle.zip
AfterInstall:
- location: Scripts/RunResourceTests.sh
timeout: 180
ApplicationStart:
- location: Scripts/RunFunctionalTests.sh
timeout: 3600
ValidateService:
- location: Scripts/MonitorService.sh
timeout: 3600
runas: codedeployuser
- Implantação no local(In-place deployment)
- Implantação azul/verde(Blue/Green)
- Em instâncias EC2/Servidores locais(On-Premises)
- Em Lambda ou ECS
- Por meio do Cloudformation
Existem os seguintes tipos:
- Canary
- Linear
- All-at-once(Tudo de uma vez)
- Implantação In-place: Atualiza instâncias EC2 existentes
- Implantação Azul/Verde(Blue/Green) : Um novo Auto-Scaling Group é criado e deve usar um ELB
Para uma compreensão mais profunda sobre CodeDeploy recomendo a leitura da documentação oficial, os links estão abaixo.
Feito com ♥ by 👨🚀 Guilherme Bezerra 👋 Entrar em contato!