Please enable JavaScript.
Coggle requires JavaScript to display documents.
AWS CICD - Coggle Diagram
AWS CICD
CodeCommit
infraestrutura de repositório Git totalmente gerenciada pela AWS
código está disponível somente na conta AWS
os repositórios são privados e não há limite para o tamanho do repositório
Segurança
dados são criptografados em vôo pois usa-se HTTPS ou SSH
repositórios são criptografados automáticamente em repouso com o KSM
as permissões dos usuários/roles são gerenciadas pelo IAM policies
Autenticação
3 more items...
Acesso entre contas
1 more item...
integrado com outras ferramentas de mercado
Jenkins
CodeBuild
CI tools
Notificações
o CodeCommit suporta a integração de vários serviços para realizar notificações de ações que ocorreram no repositório
SNS ou Lambda
ações na branch ou tag
push
create
delete
triggers de push na master
notificações para sistemas externos
acionar o serviço AWS Lambda para análise de codebase
CloudWatch Event Rules
trigger para atualizações de pull requests
comentários em commit
CloudWatch Event Rules são enviadas para um tópico SNS
CodePipeline
ferramenta utilizada para realizar o continuous delivery
orquestra diversas ferramentas, cada uma com sua responsabilidade dentro do pipeline, para que seja possível disponibilizar os pacotes nos ambientes
o code pipeline é composto por
stages
e a cada stage são gerados
artifacts
Stages
podem possuir um ou mais
Action Groups
não há restrição de nomes a serem utilizados
podem possuir aprovação manual
Artifacts
são gerados na saída do stage e utilizados como entrada no próximo stage
são armazenados em um bucket no S3
Troubleshooting
as mudanças de state são registrados no
AWS CloudWatch Event
que podem consequentemente criar
SNS Notifications
caso o pipeline tenha chamada a APIs é possível utilizar o
AWS CloudTrail
para validação
caso o pipeline não consiga realizar uma operação, é preciso validar o
IAM Service Role
para ter certeza que ele possui as IAM policies corretas
modificações de código podem ser detectadas de duas formas
AWS CloudWatch Event
(recomendável)
AWS CodePipeline pooling
CodeBuild
serviço de build e testing completamente gerenciado pela AWS
por ser gerenciado não há necessidade de se preocupar com a infra pois escala automáticamente
utiliza Doker e ainda pode ser extendido para incrementar as funcionalidades da imagem
a precificação é de acordo com a duração do build
Segurança
utiliza uma VPC isolada
IAM para permissionamento das builds
integrado com KMS para criptografia dos artefatos e variáveis de ambiente
CloudTrail para logs das chamadas de APIs
SSM Parameter Store
AWS Secremet Manager
Build
as instruções de build
precisam
ser definidas no código fonte pelo arquivo
buildspec.yml na raíz do projeto
buildspec.yml
env variables
necessárias para o build
plaintext
SSM Parameter Store para chaves
phases
(fases e os comandos necessários para execução)
install
1 more item...
pre build
build
post build
artifacts
artefatos serão disponibilizados no S3 criptografados com o KMS
cache
artefatos que serão salvos no S3 para fututos builds
builds podem configurados no
CodePipeline
ou no
CodeBuild
Logging e Notificações
S3
CloudWatch
Logs
para resultado dos builds
Alarms
para detectar falhas durante o processo de build e disparar notificações
SNS
Lambda
pode ser executado localmente para debugs e precisa do
CodeBuild Agent
CodeDeploy
ferramenta
gerenciada
para realizar deploys automatizados para instâncias EC2 ou on-premisse
as instâncias utilizadas não são gerenciadas pelo EB
para se comunicar com o CodeDeploy as instâncias precisam do
CodeDeploy Agent
o agent realiza polling no CodeDeploy para saber se uma nova versão está disponível para instalação. Caso exista uma nova versão, o CodeDeploy retorna o arquivo
appspec.yml
A aplicação é obtida do S3 ou GitHub
a instância irá executar as intruções de deploy
CodeDeploy Agent informará ao serviço o sucesso ou fallha
appspec.yml
arquivo de configuração do deploy que é divido em
sections
File
como acessar e recuperar o código fonte para o filesystem
Hooks
ApplicationStop
DownloadBundle
BeforeInstall
AfterInstall
ApplicationStart
ValidateService
Deployment Config
Configs
4 more items...
Failures
1 more item...
Deployment targets
4 more items...
instâncias são agrupada em
deployment groups
Componentes
Application
nome único da aplicação
Compute platform
EC2
On-premisse
Lambda
Deployment configuration
define as regras de sucesso ou falha do deploy
Deployment settings
One a time
half at a time
All at once
Failures
redeploy manual
redeploy automático quando a execução falha
novos deploys são feitos primeiro em instâncias com falha
Deployment Targets
instâncias EC2 com tags
vms on-premisse
ASG
mix entre ASG e tags
customização em scripts com a variável de ambiente
DEPLOYMENT_GROUP_NAME
Deployment type
in-place
blue/green
Deployment group
são as máquinas que sofrerão o deploy
Deployment type
in-plane
blue/green
Aplication revision
é indicado pelo código fonte mais a o appspec file
Service role
role utilizado pelo CodeDeploy para realizar as atividades
Target revision
indica qual a versão que será instalada
CodeStar
solução que integra os diferentes serviços de CI/CD em uma visão única
serviços integrados
GitHub
CodeCommit
CodeBuild
CodeDeploy
CloudFormation
CodePipeline
CloudWatch
suporta integração com issues do Jira e GitHub
serviço gratuito, a cobrança é realizada sobre os produtos utilizados