SlideShare uma empresa Scribd logo
1 de 60
© 2020, Amazon Web Services, Inc. or its Affiliates.
Fernando Sapata
LatAm Business Development Manager,
Serverless
Melhores práticas de CI/CD para
construir aplicações modernas
Bruno Emer
Sr. Container Specialist SA
© 2020, Amazon Web Services, Inc. or its Affiliates.
CI/CD para aplicações modernas
IntegraçãoContínua (Continuous Integration)
Deploy contínuo (Continuous Deployment)
Infraestrutura como código
Agenda
© 2020, Amazon Web Services, Inc. or its Affiliates.
CI/CD para aplicações modernas
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Aceleração da entrega de novos serviços com alta qualidade
• Simplificação no manuseio de ambientes
• Redução do impacto na alteração de código
• Automação de operações
• Ganho de insights
• Proteja o cliente e o negócio
Abordagens para o desenvolvimento de aplicações
modernas
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Aceleração da entrega de novos serviços com alta qualidade CI/CD
• Simplificação no manuseio de ambientesTecnologias serverless
• Redução do impacto na alteração de código Arquitetura de microserviços
• Automação de operações Infraestrutura como código
• Ganho de insights Observação
• Proteja o cliente e o negócio Segurança fim-a-fim e conformidade
Abordagens para o desenvolvimento de aplicações
modernas
© 2020, Amazon Web Services, Inc. or its Affiliates.
Source: 2018 DORA State of DevOps report
Deploy mais frequente Semana – Mês Hora – Dia
Melhora o tempo de entrega 1–6 meses 1–7 dias
Diminui a taxa de erro 46–60% 0–15%
Efeitos do CI/CD
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infraestrutura
como código
Deploy
contínuo
Integração
contínua
Pilares para entregar um aplicação moderna
© 2020, Amazon Web Services, Inc. or its Affiliates.
Integração Contínua
© 2020, Amazon Web Services, Inc. or its Affiliates.
Integração contínua
Código Build Teste Produção
Objetivos da integração contínua
© 2020, Amazon Web Services, Inc. or its Affiliates.
Integração contínua
1. Automaticamente inicia um novo build quando o código é inserido
2. Realiza o build e testa o código em um ambiente consistente e replicável
3. Continuamente gera um artefato pronto para deploy
4. Continuamente finaliza o ciclo de feedback quando um build falha
Objetivos da integração contínua
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Entrega continuamente serviços para uma rápida e confiável
atualização das aplicações
• Modele e visualize os processos de release da sua aplicação
• Faça build, testes e deploy do seu código toda vez que ocorrer
uma mudança
• Se integra com ferramentas terceiras e com a AWS
AWS CodePipeline
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amazon EC2
AWS CodeDeploy
AWS Elastic Beanstalk
AWS OpsWorks stacks
Containers
AWS CodeDeploy
Amazon ECS
Amazon ECS (blue/green)
AWS Fargate
Serverless
AWS CodeDeploy
AWS CloudFormation
(AWS SAM)
AWS Lambda
AWS CodePipeline: serviços suportados
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Serviço de build totalmente gerenciado que compila o
código-fonte, executa testes e cria pacotes de software
• Escala continuamente e processa vários builds
simultaneamente
• Nenhum servidor de build para você gerenciar
• Pague por minuto, apenas pelos recursos de computação que
você utiliza
• É possível monitorar os builds através de eventos do Amazon
CloudWatch
AWS CodeBuild
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Cada compilação é executada em um novo container Docker
para um ambiente consistente e imutável
• O Docker e o AWS CLI são instalados em todas as imagens
oficiais do CodeBuild
• Forneça ambientes de construção personalizados adequados
às suas necessidades por meio do uso de imagens
customizadas
AWS CodeBuild
© 2020, Amazon Web Services, Inc. or its Affiliates.
version: 0.2
phases:
build:
commands:
- npm ci
- npm test
- aws cloudformation package
--template-file template.yml
--output-template template-output.yml
--s3_bucket $BUCKET
artifacts:
type: zip
files:
- template-output.yml
AWS CodeBuild: especificação de build do Lambda
© 2020, Amazon Web Services, Inc. or its Affiliates.
version: 0.2
phases:
build:
commands:
- $(aws ecr get-login --no-include-email)
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $ECR_REPO:$IMAGE_TAG
- docker push $ECR_REPO:$IMAGE_TAG
AWS CodeBuild: especificação do Docker build
© 2020, Amazon Web Services, Inc. or its Affiliates.
Deploy contínuo
© 2020, Amazon Web Services, Inc. or its Affiliates.
Deploy contínuo
Código Build Teste Produção
Objetivos do deploy contínuo
© 2020, Amazon Web Services, Inc. or its Affiliates.
Deploy contínuo
1. Implante automaticamente novas versões em ambientes de teste
2. Implante em produção com segurança e sem impacto aos clientes
3. Realize entregas mais frequentes
Objetivos do deploy contínuo
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Lida com a complexidade de atualizar suas aplicações
• Evite o tempo de inatividade durante o deploy das
aplicações
• Faça rollback automaticamente em caso de falhas
• Faça o deploy em instâncias EC2, AWS Lambda ou
servidores locais
AWS CodeDeploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
permissions:
- object: /var/www/html
pattern: “*.html”
owner: root
group: root
mode: 755
hooks:
ApplicationStop:
- location: scripts/deregister_from_elb.sh
BeforeInstall:
- location: scripts/install_dependencies.sh
ApplicationStart:
- location: scripts/start_httpd.sh
ValidateService:
- location: scripts/test_site.sh
- location: scripts/register_with_elb.sh
CodeDeploy-EC2 deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
v2 v2 v2 v2 v2 v2
Um por vez
Metade por vez
Todos de uma vez só
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agent
Grupo de implantação de desenvolvimento
Ou
Grupo de implantação de produção
Agent
Agent Agent Agent
Agent Agent Agent
Escolha a velocidade de implantação e o grupo
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Altere o tráfego usando alias ponderados
• Canary (“envie 10% do tráfego por 10 minutos, depois envie o restante”) ou linear
(“envie 10% a mais de tráfego a cada 10 minutos”)
• Os “hooks” de validação permitem testes em cada estágio da implantação
• Rollback em segundos, caso haja falha nos “hooks” de validação ou alarmes do
CloudWatch
• Monitore o status e o histórico da implantação pela console, API, notificações do
Amazon SNS e eventos do CloudWatch
CodeDeploy-Lambda deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
Selecione a estratégia de deploy no template da aplicação
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
DeploymentPreference:
Type: Canary10Percent10Minutes
Alarms:
- !Ref ErrorsAlarm
Hooks:
PreTraffic: !Ref PreTrafficHook
CodeDeploy-Lambda deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy agora automatiza implantações
blue / green para o AWS Fargate e o Amazon ECS
AWS CodeDeploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Provisiona tarefas “green”, em seguida, redireciona o tráfego no balanceador de carga
• Os “hooks” de validação permitem testes em cada estágio da implantação
• Rollback rápido para tarefas "blue" em segundos
• Monitore o status e o histórico da implantação pela console, API, notificações do
Amazon SNS e eventos do CloudWatch
• Você pode utilizar a ação "CodeDeploy-ECS" no CodePipeline ou o comando "aws ecs
deploy" no Jenkins
Implantações CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
version: 1.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
- TaskDefinition: "my_task_definition:8"
LoadBalancerInfos:
- ContainerName: "SampleApp"
ContainerPort: 80
Hooks:
- BeforeInstall: "LambdaFunctionToExecuteAnythingBeforeNewRevisionInstalltion"
- AfterInstall: "LambdaFunctionToExecuteAnythingAfterNewRevisionInstallation"
- AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficShift"
- BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift"
- AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift"
CodeDeploy-ECS AppSpec
© 2020, Amazon Web Services, Inc. or its Affiliates.
Balanceador
de Carga
Tráfego em
produção
(porta 80)
Target Group
1
Tarefa blue:
código v1
100% do
tráfego
em
produção
Serviço
Fargate
CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
Balanceador
de Carga
Tráfego em
teste (porta
9000)
Tráfego em
produção
(porta 80)
Target Group
2
Target Group
1
Tarefa blue:
código v1
Serviço
Fargate
100% do
tráfego
em
produção
CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
Balanceador
de Carga
Tráfego em
teste (porta
9000)
Tráfego em
produção
(porta 80)
Target Group
2
Target Group
1
Tarefa blue:
código v1
Tarefa green:
código v2
Provisonamento da terefa green
Serviço
Fargate
100% do
tráfego
em
produção
CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
Balanceador
de Carga
Tráfego em
teste (porta
9000)
Tráfego em
produção
(porta 80)
Target Group
2
Target Group
1
Tarefa blue:
código v1
Tarefa green:
código v2
100%
Tráfego
de teste
Executa os testes antes da tarefa green receber tráfego de produção
Serviço
Fargate
100% do
tráfego
em
produção
CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
Balanceador
de Carga
Tráfego em
teste (porta
9000)
Tráfego em
produção
(porta 80)
Target Group
2
Target Group
1
Tarefa blue:
código v1
Tarefa green:
código v2
100%
Tráfego
em
produção
Altera o tráfego para tarefas green, rollback em caso de alarme
Serviço
Fargate
0% do
tráfego
em
produção
CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
Balanceador
de Carga
Tráfego em
teste (porta
9000)
Tráfego em
produção
(porta 80)
Target Group
2
Target Group
1
Tarefa green:
código v2
Finalizar a tarefa blue
Serviço
Fargate
100%
Tráfego
em
produção
CodeDeploy-ECS blue/green deployment
© 2020, Amazon Web Services, Inc. or its Affiliates.
• As tags do Docker são resolvidas quando cada container é iniciado, não apenas durante
os deploys
• Realizar o deploy da tag “latest” ou “prod” pode resultar em código não testado na
produção após um evento de scale-out
• Use tags "imutáveis" exclusivas para deploys
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: tag “latest”
Serviço
Fargate
Repositório
ECR
Imagem: sha256@11111... (“latest”)
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: tag “latest”
Build utiliza a imagem “latest”
Imagem: sha256@11111...
Imagem: sha256@22222... (“latest”)
Serviço
Fargate
Repositório
ECR
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: tag “latest”
Aplicação escala, lançando novas tarefas
Imagem: sha256@11111...
Imagem: sha256@22222... (“latest”)
Serviço
Fargate
Repositório
ECR
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Implantar usando tags imutáveis
{
"name": ”sample-app",
"image": "amazon/amazon-ecs-
sample@sha256:3e39d933b1d948c92309bb583b5a1f3d28f0119e1551ca1fe538ba414a41af48d"
}
{
"name": ”sample-app",
"image": "amazon/amazon-ecs-sample:build-b2085490-359f-4eaf-8970-6d1e26c354f0"
}
SHA256 Digest
Build ID
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Utilize tags imutáveis durante o build
SHA256 Digest
export IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' my_image:$IMAGE_TAG
Exemplo:
amazon/amazon-ecs-sample@sha256:3e39d933b...
Build ID
export IMAGE_TAG=build-`echo $CODEBUILD_BUILD_ID | awk –F":" ‘{print $2}’`
Exemplo:
build-b2085490-359f-4eaf-8970-6d1e26c354f0
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: “build-11111” tag
Imagem: sha256@11111... (“build-11111”)
Serviço
Fargate
Repositório
ECR
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: tag “build-11111”
O processo de build gera nova imagem e um novo ID de compilação
Imagem: sha256@11111... (“build-11111”)
Imagem: sha256@22222... (“build-22222”)
Serviço
Fargate
Repositório
ECR
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: tag “build-11111”
Aplicação escala, lançando novas tarefas
Imagem: sha256@11111... (“build-11111”)
Imagem: sha256@22222... (“build-22222”)
Serviço
Fargate
Repositório
ECR
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Imagem: tag “build-22222”
O deploy atualiza a definição da tarefa, substituindo as tarefas
Imagem: sha256@11111... (“build-11111”)
Imagem: sha256@22222... (“build-22222”)
Serviço
Fargate
Repositório
ECR
Tag nas imagens de container para deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infraestrutura como código
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Aceleração da entrega de novos serviços com alta qualidade CI/CD
• Simplificação no manuseio de ambientesTecnologias serverless
• Redução do impacto na alteração de código Arquitetura de microserviços
• Automação de operações Infraestrutura como código
• Ganho de insights Observação
• Proteja o cliente e o negócio Segurança fim-a-fim e conformidade
Abordagens para o desenvolvimento de aplicações
modernas
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infrastrutura como código
Código Build Teste Produção
Objetivos de infraestrutura como código
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infrastrutura como código
1. Tornar as alterações de infraestrutura replicáveis e previsíveis
2. Liberar alterações de infraestrutura usando as mesmas ferramentas que utilizamos nas
alterações de código
3. Replicar o ambiente de produção em outros ambientes permitindo testes contínuos
Objetivos de infraestrutura como código
© 2020, Amazon Web Services, Inc. or its Affiliates.
“Master”
branch
Código Fonte Build Teste Produção
Criar template Criar e executar as
alterações
Criar e executar as
alterações
Entregando infraestrutura como código
© 2020, Amazon Web Services, Inc. or its Affiliates.
https://aws.amazon.com/serverless/sam/
• Framework open source para build de aplicações serverless
na AWS
• Sintaxe abreviada para declarar funções, APIs, bancos de
dados e mapeamentos de origem de eventos
• Transforma a sintaxe do AWS SAM na sintaxe do AWS
CloudFormation no deploy
• Suporta todos os tipos de recursos do AWS CloudFormation
AWS Serverless Application Model (AWS SAM)
© 2020, Amazon Web Services, Inc. or its Affiliates.
Sintaxe abreviada
para declarar
funções, tabelas e
eventos
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: src/
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Table:
Type: AWS::Serverless::SimpleTable
AWS SAM template
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: src/
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Table:
Type: AWS::Serverless::SimpleTable
Apenas 18 linhas criam muitos recursos:
• Função AWS Lambda
• Amazon API Gateway
• Tabela do Amazon DynamoDB
• Roles do IAM
AWS SAM template
© 2020, Amazon Web Services, Inc. or its Affiliates.
pip install --user aws-sam-cli
sam init
sam build
sam package
sam deploy
Use a CLI do SAM para empacotar e realizar deploys
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Framework open source para definir infraestrutura com
TypeScript
• Fornece bibliotecas de tipos de recursos (construtores) com
práticas recomendadas pela AWS, incorporadas por padrão,
distribuídas como módulos npm
• Provisiona recursos utilizando o AWS CloudFormation
• Suporta todos os tipos de recursos do AWS CloudFormation
AWS
CDK
https://awslabs.github.io/aws-cdk
AWS Cloud Development Kit (AWS CDK)
© 2020, Amazon Web Services, Inc. or its Affiliates.
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class BonjourFargate extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new BonjourFargate(app, 'Bonjour');
app.run();
A classeVPC inclui
VPC, sub-redes,
grupos de segurança,
gateway de internet,
gateways NAT e
tabelas de
roteamento
Template AWS CDK
© 2020, Amazon Web Services, Inc. or its Affiliates.
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class BonjourFargate extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new BonjourFargate(app, 'Bonjour');
app.run();
A classe Fargate inclui o
serviço ECS, definição de
tarefa do ECS, balanceador
de carga, grupos de destino
e, opcionalmente, registro
de alias no Amazon Route
53
Template AWS CDK
© 2020, Amazon Web Services, Inc. or its Affiliates.
22 linhas de código
TypeScript geram
mais de 400 linhas do
CloudFormation
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class BonjourFargate extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new BonjourFargate(app, 'Bonjour');
app.run();
Template AWS CDK
© 2020, Amazon Web Services, Inc. or its Affiliates.
• Minimize “copia e cola” usando linguagem orientada a objeto
• Defina o pipeline de microserviços em uma classe e em seguida reutilize em
vários pipelines
• O AWS CDK inclui muitos construtores para modelar um pipeline utilizando
o CodePipeline, incluindo a configuração automática de políticas do IAM
Pipelines com AWS CDK
© 2020, Amazon Web Services, Inc. or its Affiliates.
export class MyMicroservicePipeline extends cdk.Construct {
constructor(parent: cdk.Construct, name: string, props: MyMicroservicePipelineProps) {
super(parent, name);
const pipeline = new codepipeline.Pipeline(this, 'Pipeline', {
pipelineName: props.serviceName,
});
const githubAccessToken = new cdk.SecretParameter(this, 'GitHubToken',
{ ssmParameter: 'GitHubToken' });
new codepipeline.GitHubSourceAction(this, 'GitHubSource', {
stage: pipeline.addStage('Source'),
owner: 'myorg',
repo: props.serviceName,
oauthToken: githubAccessToken.value
});
…
AWS CDK pipelines: Definição
© 2020, Amazon Web Services, Inc. or its Affiliates.
import cdk = require('@aws-cdk/cdk');
import { MyMicroservicePipeline } from './pipeline';
class MyMicroservicePipelinesStack extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
new MyMicroservicePipeline(this, 'Pipeline1', { 'serviceName': 'Microservice1' });
new MyMicroservicePipeline(this, 'Pipeline2', { 'serviceName': 'Microservice2' });
new MyMicroservicePipeline(this, 'Pipeline3', { 'serviceName': 'Microservice3' });
new MyMicroservicePipeline(this, 'Pipeline4', { 'serviceName': 'Microservice4' });
}
}
const app = new cdk.App();
new MyMicroservicePipelinesStack(app, 'MyMicroservicePipelines');
app.run();
AWS CDK pipelines: Utilização
© 2020, Amazon Web Services, Inc. or its Affiliates.
Obrigado!
Fernando Sapata
LatAm Business Development Manager,
Serverless
Bruno Emer
Sr. Container Specialist SA

Mais conteúdo relacionado

Mais procurados

DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...
AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...
AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...Amazon Web Services LATAM
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSAmazon Web Services LATAM
 
AWS Intitiate Week 2020 - AWS Programas de educação
AWS Intitiate Week 2020 - AWS Programas de educaçãoAWS Intitiate Week 2020 - AWS Programas de educação
AWS Intitiate Week 2020 - AWS Programas de educaçãoAmazon Web Services LATAM
 
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...Amazon Web Services LATAM
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...Amazon Web Services
 
AWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptx
AWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptxAWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptx
AWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptxAmazon Web Services LATAM
 
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdfAWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdfAmazon Web Services LATAM
 
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAmazon Web Services LATAM
 
Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...
Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...
Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...Amazon Web Services LATAM
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAmazon Web Services LATAM
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo SummitAmazon Web Services
 
Migração de máquinas virtuais e recuperação de desastres na AWS
Migração de máquinas virtuais e recuperação de desastres na AWSMigração de máquinas virtuais e recuperação de desastres na AWS
Migração de máquinas virtuais e recuperação de desastres na AWSAmazon Web Services LATAM
 
AWS Initiate week 2020 - Adoção de Nuvem com AWS ProServe
AWS Initiate week 2020 - Adoção de Nuvem com AWS ProServeAWS Initiate week 2020 - Adoção de Nuvem com AWS ProServe
AWS Initiate week 2020 - Adoção de Nuvem com AWS ProServeAmazon Web Services LATAM
 
aws webinar - como otimizar sues custos na nuvem.pdf
aws webinar - como otimizar sues custos na nuvem.pdfaws webinar - como otimizar sues custos na nuvem.pdf
aws webinar - como otimizar sues custos na nuvem.pdfAmazon Web Services LATAM
 
IA/ML para análise de fraude e gerenciamento de riscos
IA/ML para análise de fraude e gerenciamento de riscosIA/ML para análise de fraude e gerenciamento de riscos
IA/ML para análise de fraude e gerenciamento de riscosAmazon Web Services LATAM
 

Mais procurados (20)

DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...
AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...
AWS Initiate Brasil 2021 - Desenvolvimento de Talentos na nuvem AWS - Rubem S...
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
AWS Intitiate Week 2020 - AWS Programas de educação
AWS Intitiate Week 2020 - AWS Programas de educaçãoAWS Intitiate Week 2020 - AWS Programas de educação
AWS Intitiate Week 2020 - AWS Programas de educação
 
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
 
AWS Segurança e Conformidade
AWS Segurança e ConformidadeAWS Segurança e Conformidade
AWS Segurança e Conformidade
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
 
AIML Reforçando a segurança virtual
AIML Reforçando a segurança virtualAIML Reforçando a segurança virtual
AIML Reforçando a segurança virtual
 
AWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptx
AWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptxAWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptx
AWS Initiate week 2020 - Capacitando seu time para a cloud_Luiz M Couto.pptx
 
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdfAWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
AWS Initiate week 2020 - Security Framework: jornada de segurança na nuvem.pdf
 
AWS Migration Day - SAP
AWS Migration Day - SAPAWS Migration Day - SAP
AWS Migration Day - SAP
 
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
 
Microsoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web ServicesMicrosoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web Services
 
Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...
Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...
Webinar Introdução à Arquitetura de Aplicações VMware, Microsoft, e SAP na Nu...
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
 
Migração de máquinas virtuais e recuperação de desastres na AWS
Migração de máquinas virtuais e recuperação de desastres na AWSMigração de máquinas virtuais e recuperação de desastres na AWS
Migração de máquinas virtuais e recuperação de desastres na AWS
 
AWS Initiate week 2020 - Adoção de Nuvem com AWS ProServe
AWS Initiate week 2020 - Adoção de Nuvem com AWS ProServeAWS Initiate week 2020 - Adoção de Nuvem com AWS ProServe
AWS Initiate week 2020 - Adoção de Nuvem com AWS ProServe
 
aws webinar - como otimizar sues custos na nuvem.pdf
aws webinar - como otimizar sues custos na nuvem.pdfaws webinar - como otimizar sues custos na nuvem.pdf
aws webinar - como otimizar sues custos na nuvem.pdf
 
IA/ML para análise de fraude e gerenciamento de riscos
IA/ML para análise de fraude e gerenciamento de riscosIA/ML para análise de fraude e gerenciamento de riscos
IA/ML para análise de fraude e gerenciamento de riscos
 

Semelhante a Melhores práticas de CI/CD na construção de aplicações modernas

CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...Amazon Web Services
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSAnderson Contreira
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwarePaulo Lacerda
 
Trabalhando com ALM na nuvem
Trabalhando com ALM na nuvemTrabalhando com ALM na nuvem
Trabalhando com ALM na nuvemAdriano Bertucci
 
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Marcus Garcia
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessFSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitAmazon Web Services
 

Semelhante a Melhores práticas de CI/CD na construção de aplicações modernas (20)

CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWS
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Trabalhando com ALM na nuvem
Trabalhando com ALM na nuvemTrabalhando com ALM na nuvem
Trabalhando com ALM na nuvem
 
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
 
Integrando infraestruturas híbridas
Integrando infraestruturas híbridas Integrando infraestruturas híbridas
Integrando infraestruturas híbridas
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessFSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
Desenvolvimento de CI/CD na AWS
Desenvolvimento de CI/CD na AWSDesenvolvimento de CI/CD na AWS
Desenvolvimento de CI/CD na AWS
 
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 

Mais de Amazon Web Services LATAM

AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAmazon Web Services LATAM
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSAmazon Web Services LATAM
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAmazon Web Services LATAM
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosAmazon Web Services LATAM
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSAmazon Web Services LATAM
 
Los beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSLos beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSAmazon Web Services LATAM
 
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...Amazon Web Services LATAM
 

Mais de Amazon Web Services LATAM (20)

AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 
Los beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSLos beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWS
 
Bases de datos NoSQL en AWS
Bases de datos NoSQL en AWSBases de datos NoSQL en AWS
Bases de datos NoSQL en AWS
 
Bancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWSBancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWS
 
Construyendo un data lake en la nube aws
Construyendo un data lake en la nube awsConstruyendo un data lake en la nube aws
Construyendo un data lake en la nube aws
 
Construindo um data lake na nuvem aws
Construindo um data lake na nuvem awsConstruindo um data lake na nuvem aws
Construindo um data lake na nuvem aws
 
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
 

Melhores práticas de CI/CD na construção de aplicações modernas

  • 1. © 2020, Amazon Web Services, Inc. or its Affiliates. Fernando Sapata LatAm Business Development Manager, Serverless Melhores práticas de CI/CD para construir aplicações modernas Bruno Emer Sr. Container Specialist SA
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. CI/CD para aplicações modernas IntegraçãoContínua (Continuous Integration) Deploy contínuo (Continuous Deployment) Infraestrutura como código Agenda
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates. CI/CD para aplicações modernas
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. • Aceleração da entrega de novos serviços com alta qualidade • Simplificação no manuseio de ambientes • Redução do impacto na alteração de código • Automação de operações • Ganho de insights • Proteja o cliente e o negócio Abordagens para o desenvolvimento de aplicações modernas
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. • Aceleração da entrega de novos serviços com alta qualidade CI/CD • Simplificação no manuseio de ambientesTecnologias serverless • Redução do impacto na alteração de código Arquitetura de microserviços • Automação de operações Infraestrutura como código • Ganho de insights Observação • Proteja o cliente e o negócio Segurança fim-a-fim e conformidade Abordagens para o desenvolvimento de aplicações modernas
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. Source: 2018 DORA State of DevOps report Deploy mais frequente Semana – Mês Hora – Dia Melhora o tempo de entrega 1–6 meses 1–7 dias Diminui a taxa de erro 46–60% 0–15% Efeitos do CI/CD
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. Infraestrutura como código Deploy contínuo Integração contínua Pilares para entregar um aplicação moderna
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. Integração Contínua
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. Integração contínua Código Build Teste Produção Objetivos da integração contínua
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. Integração contínua 1. Automaticamente inicia um novo build quando o código é inserido 2. Realiza o build e testa o código em um ambiente consistente e replicável 3. Continuamente gera um artefato pronto para deploy 4. Continuamente finaliza o ciclo de feedback quando um build falha Objetivos da integração contínua
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. • Entrega continuamente serviços para uma rápida e confiável atualização das aplicações • Modele e visualize os processos de release da sua aplicação • Faça build, testes e deploy do seu código toda vez que ocorrer uma mudança • Se integra com ferramentas terceiras e com a AWS AWS CodePipeline
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon EC2 AWS CodeDeploy AWS Elastic Beanstalk AWS OpsWorks stacks Containers AWS CodeDeploy Amazon ECS Amazon ECS (blue/green) AWS Fargate Serverless AWS CodeDeploy AWS CloudFormation (AWS SAM) AWS Lambda AWS CodePipeline: serviços suportados
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. • Serviço de build totalmente gerenciado que compila o código-fonte, executa testes e cria pacotes de software • Escala continuamente e processa vários builds simultaneamente • Nenhum servidor de build para você gerenciar • Pague por minuto, apenas pelos recursos de computação que você utiliza • É possível monitorar os builds através de eventos do Amazon CloudWatch AWS CodeBuild
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. • Cada compilação é executada em um novo container Docker para um ambiente consistente e imutável • O Docker e o AWS CLI são instalados em todas as imagens oficiais do CodeBuild • Forneça ambientes de construção personalizados adequados às suas necessidades por meio do uso de imagens customizadas AWS CodeBuild
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. version: 0.2 phases: build: commands: - npm ci - npm test - aws cloudformation package --template-file template.yml --output-template template-output.yml --s3_bucket $BUCKET artifacts: type: zip files: - template-output.yml AWS CodeBuild: especificação de build do Lambda
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. version: 0.2 phases: build: commands: - $(aws ecr get-login --no-include-email) - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $ECR_REPO:$IMAGE_TAG - docker push $ECR_REPO:$IMAGE_TAG AWS CodeBuild: especificação do Docker build
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. Deploy contínuo
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. Deploy contínuo Código Build Teste Produção Objetivos do deploy contínuo
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. Deploy contínuo 1. Implante automaticamente novas versões em ambientes de teste 2. Implante em produção com segurança e sem impacto aos clientes 3. Realize entregas mais frequentes Objetivos do deploy contínuo
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. • Lida com a complexidade de atualizar suas aplicações • Evite o tempo de inatividade durante o deploy das aplicações • Faça rollback automaticamente em caso de falhas • Faça o deploy em instâncias EC2, AWS Lambda ou servidores locais AWS CodeDeploy
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. version: 0.0 os: linux files: - source: / destination: /var/www/html permissions: - object: /var/www/html pattern: “*.html” owner: root group: root mode: 755 hooks: ApplicationStop: - location: scripts/deregister_from_elb.sh BeforeInstall: - location: scripts/install_dependencies.sh ApplicationStart: - location: scripts/start_httpd.sh ValidateService: - location: scripts/test_site.sh - location: scripts/register_with_elb.sh CodeDeploy-EC2 deployments
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. v2 v2 v2 v2 v2 v2 Um por vez Metade por vez Todos de uma vez só v2 v2 v2 v1 v1 v1 v2 v1 v1 v1 v1 v1 Agent Grupo de implantação de desenvolvimento Ou Grupo de implantação de produção Agent Agent Agent Agent Agent Agent Agent Escolha a velocidade de implantação e o grupo
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. • Altere o tráfego usando alias ponderados • Canary (“envie 10% do tráfego por 10 minutos, depois envie o restante”) ou linear (“envie 10% a mais de tráfego a cada 10 minutos”) • Os “hooks” de validação permitem testes em cada estágio da implantação • Rollback em segundos, caso haja falha nos “hooks” de validação ou alarmes do CloudWatch • Monitore o status e o histórico da implantação pela console, API, notificações do Amazon SNS e eventos do CloudWatch CodeDeploy-Lambda deployments
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. Selecione a estratégia de deploy no template da aplicação Resources: GetFunction: Type: AWS::Serverless::Function Properties: DeploymentPreference: Type: Canary10Percent10Minutes Alarms: - !Ref ErrorsAlarm Hooks: PreTraffic: !Ref PreTrafficHook CodeDeploy-Lambda deployments
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy agora automatiza implantações blue / green para o AWS Fargate e o Amazon ECS AWS CodeDeploy
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. • Provisiona tarefas “green”, em seguida, redireciona o tráfego no balanceador de carga • Os “hooks” de validação permitem testes em cada estágio da implantação • Rollback rápido para tarefas "blue" em segundos • Monitore o status e o histórico da implantação pela console, API, notificações do Amazon SNS e eventos do CloudWatch • Você pode utilizar a ação "CodeDeploy-ECS" no CodePipeline ou o comando "aws ecs deploy" no Jenkins Implantações CodeDeploy-ECS blue/green deployment
  • 27. © 2020, Amazon Web Services, Inc. or its Affiliates. version: 1.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: - TaskDefinition: "my_task_definition:8" LoadBalancerInfos: - ContainerName: "SampleApp" ContainerPort: 80 Hooks: - BeforeInstall: "LambdaFunctionToExecuteAnythingBeforeNewRevisionInstalltion" - AfterInstall: "LambdaFunctionToExecuteAnythingAfterNewRevisionInstallation" - AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficShift" - BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift" - AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift" CodeDeploy-ECS AppSpec
  • 28. © 2020, Amazon Web Services, Inc. or its Affiliates. Balanceador de Carga Tráfego em produção (porta 80) Target Group 1 Tarefa blue: código v1 100% do tráfego em produção Serviço Fargate CodeDeploy-ECS blue/green deployment
  • 29. © 2020, Amazon Web Services, Inc. or its Affiliates. Balanceador de Carga Tráfego em teste (porta 9000) Tráfego em produção (porta 80) Target Group 2 Target Group 1 Tarefa blue: código v1 Serviço Fargate 100% do tráfego em produção CodeDeploy-ECS blue/green deployment
  • 30. © 2020, Amazon Web Services, Inc. or its Affiliates. Balanceador de Carga Tráfego em teste (porta 9000) Tráfego em produção (porta 80) Target Group 2 Target Group 1 Tarefa blue: código v1 Tarefa green: código v2 Provisonamento da terefa green Serviço Fargate 100% do tráfego em produção CodeDeploy-ECS blue/green deployment
  • 31. © 2020, Amazon Web Services, Inc. or its Affiliates. Balanceador de Carga Tráfego em teste (porta 9000) Tráfego em produção (porta 80) Target Group 2 Target Group 1 Tarefa blue: código v1 Tarefa green: código v2 100% Tráfego de teste Executa os testes antes da tarefa green receber tráfego de produção Serviço Fargate 100% do tráfego em produção CodeDeploy-ECS blue/green deployment
  • 32. © 2020, Amazon Web Services, Inc. or its Affiliates. Balanceador de Carga Tráfego em teste (porta 9000) Tráfego em produção (porta 80) Target Group 2 Target Group 1 Tarefa blue: código v1 Tarefa green: código v2 100% Tráfego em produção Altera o tráfego para tarefas green, rollback em caso de alarme Serviço Fargate 0% do tráfego em produção CodeDeploy-ECS blue/green deployment
  • 33. © 2020, Amazon Web Services, Inc. or its Affiliates. Balanceador de Carga Tráfego em teste (porta 9000) Tráfego em produção (porta 80) Target Group 2 Target Group 1 Tarefa green: código v2 Finalizar a tarefa blue Serviço Fargate 100% Tráfego em produção CodeDeploy-ECS blue/green deployment
  • 34. © 2020, Amazon Web Services, Inc. or its Affiliates. • As tags do Docker são resolvidas quando cada container é iniciado, não apenas durante os deploys • Realizar o deploy da tag “latest” ou “prod” pode resultar em código não testado na produção após um evento de scale-out • Use tags "imutáveis" exclusivas para deploys Tag nas imagens de container para deploy
  • 35. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: tag “latest” Serviço Fargate Repositório ECR Imagem: sha256@11111... (“latest”) Tag nas imagens de container para deploy
  • 36. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: tag “latest” Build utiliza a imagem “latest” Imagem: sha256@11111... Imagem: sha256@22222... (“latest”) Serviço Fargate Repositório ECR Tag nas imagens de container para deploy
  • 37. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: tag “latest” Aplicação escala, lançando novas tarefas Imagem: sha256@11111... Imagem: sha256@22222... (“latest”) Serviço Fargate Repositório ECR Tag nas imagens de container para deploy
  • 38. © 2020, Amazon Web Services, Inc. or its Affiliates. Implantar usando tags imutáveis { "name": ”sample-app", "image": "amazon/amazon-ecs- sample@sha256:3e39d933b1d948c92309bb583b5a1f3d28f0119e1551ca1fe538ba414a41af48d" } { "name": ”sample-app", "image": "amazon/amazon-ecs-sample:build-b2085490-359f-4eaf-8970-6d1e26c354f0" } SHA256 Digest Build ID Tag nas imagens de container para deploy
  • 39. © 2020, Amazon Web Services, Inc. or its Affiliates. Utilize tags imutáveis durante o build SHA256 Digest export IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' my_image:$IMAGE_TAG Exemplo: amazon/amazon-ecs-sample@sha256:3e39d933b... Build ID export IMAGE_TAG=build-`echo $CODEBUILD_BUILD_ID | awk –F":" ‘{print $2}’` Exemplo: build-b2085490-359f-4eaf-8970-6d1e26c354f0 Tag nas imagens de container para deploy
  • 40. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: “build-11111” tag Imagem: sha256@11111... (“build-11111”) Serviço Fargate Repositório ECR Tag nas imagens de container para deploy
  • 41. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: tag “build-11111” O processo de build gera nova imagem e um novo ID de compilação Imagem: sha256@11111... (“build-11111”) Imagem: sha256@22222... (“build-22222”) Serviço Fargate Repositório ECR Tag nas imagens de container para deploy
  • 42. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: tag “build-11111” Aplicação escala, lançando novas tarefas Imagem: sha256@11111... (“build-11111”) Imagem: sha256@22222... (“build-22222”) Serviço Fargate Repositório ECR Tag nas imagens de container para deploy
  • 43. © 2020, Amazon Web Services, Inc. or its Affiliates. Imagem: tag “build-22222” O deploy atualiza a definição da tarefa, substituindo as tarefas Imagem: sha256@11111... (“build-11111”) Imagem: sha256@22222... (“build-22222”) Serviço Fargate Repositório ECR Tag nas imagens de container para deploy
  • 44. © 2020, Amazon Web Services, Inc. or its Affiliates. Infraestrutura como código
  • 45. © 2020, Amazon Web Services, Inc. or its Affiliates. • Aceleração da entrega de novos serviços com alta qualidade CI/CD • Simplificação no manuseio de ambientesTecnologias serverless • Redução do impacto na alteração de código Arquitetura de microserviços • Automação de operações Infraestrutura como código • Ganho de insights Observação • Proteja o cliente e o negócio Segurança fim-a-fim e conformidade Abordagens para o desenvolvimento de aplicações modernas
  • 46. © 2020, Amazon Web Services, Inc. or its Affiliates. Infrastrutura como código Código Build Teste Produção Objetivos de infraestrutura como código
  • 47. © 2020, Amazon Web Services, Inc. or its Affiliates. Infrastrutura como código 1. Tornar as alterações de infraestrutura replicáveis e previsíveis 2. Liberar alterações de infraestrutura usando as mesmas ferramentas que utilizamos nas alterações de código 3. Replicar o ambiente de produção em outros ambientes permitindo testes contínuos Objetivos de infraestrutura como código
  • 48. © 2020, Amazon Web Services, Inc. or its Affiliates. “Master” branch Código Fonte Build Teste Produção Criar template Criar e executar as alterações Criar e executar as alterações Entregando infraestrutura como código
  • 49. © 2020, Amazon Web Services, Inc. or its Affiliates. https://aws.amazon.com/serverless/sam/ • Framework open source para build de aplicações serverless na AWS • Sintaxe abreviada para declarar funções, APIs, bancos de dados e mapeamentos de origem de eventos • Transforma a sintaxe do AWS SAM na sintaxe do AWS CloudFormation no deploy • Suporta todos os tipos de recursos do AWS CloudFormation AWS Serverless Application Model (AWS SAM)
  • 50. © 2020, Amazon Web Services, Inc. or its Affiliates. Sintaxe abreviada para declarar funções, tabelas e eventos AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs6.10 CodeUri: src/ Policies: AmazonDynamoDBReadOnlyAccess Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Table: Type: AWS::Serverless::SimpleTable AWS SAM template
  • 51. © 2020, Amazon Web Services, Inc. or its Affiliates. AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs6.10 CodeUri: src/ Policies: AmazonDynamoDBReadOnlyAccess Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Table: Type: AWS::Serverless::SimpleTable Apenas 18 linhas criam muitos recursos: • Função AWS Lambda • Amazon API Gateway • Tabela do Amazon DynamoDB • Roles do IAM AWS SAM template
  • 52. © 2020, Amazon Web Services, Inc. or its Affiliates. pip install --user aws-sam-cli sam init sam build sam package sam deploy Use a CLI do SAM para empacotar e realizar deploys
  • 53. © 2020, Amazon Web Services, Inc. or its Affiliates. • Framework open source para definir infraestrutura com TypeScript • Fornece bibliotecas de tipos de recursos (construtores) com práticas recomendadas pela AWS, incorporadas por padrão, distribuídas como módulos npm • Provisiona recursos utilizando o AWS CloudFormation • Suporta todos os tipos de recursos do AWS CloudFormation AWS CDK https://awslabs.github.io/aws-cdk AWS Cloud Development Kit (AWS CDK)
  • 54. © 2020, Amazon Web Services, Inc. or its Affiliates. import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class BonjourFargate extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new BonjourFargate(app, 'Bonjour'); app.run(); A classeVPC inclui VPC, sub-redes, grupos de segurança, gateway de internet, gateways NAT e tabelas de roteamento Template AWS CDK
  • 55. © 2020, Amazon Web Services, Inc. or its Affiliates. import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class BonjourFargate extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new BonjourFargate(app, 'Bonjour'); app.run(); A classe Fargate inclui o serviço ECS, definição de tarefa do ECS, balanceador de carga, grupos de destino e, opcionalmente, registro de alias no Amazon Route 53 Template AWS CDK
  • 56. © 2020, Amazon Web Services, Inc. or its Affiliates. 22 linhas de código TypeScript geram mais de 400 linhas do CloudFormation import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class BonjourFargate extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new BonjourFargate(app, 'Bonjour'); app.run(); Template AWS CDK
  • 57. © 2020, Amazon Web Services, Inc. or its Affiliates. • Minimize “copia e cola” usando linguagem orientada a objeto • Defina o pipeline de microserviços em uma classe e em seguida reutilize em vários pipelines • O AWS CDK inclui muitos construtores para modelar um pipeline utilizando o CodePipeline, incluindo a configuração automática de políticas do IAM Pipelines com AWS CDK
  • 58. © 2020, Amazon Web Services, Inc. or its Affiliates. export class MyMicroservicePipeline extends cdk.Construct { constructor(parent: cdk.Construct, name: string, props: MyMicroservicePipelineProps) { super(parent, name); const pipeline = new codepipeline.Pipeline(this, 'Pipeline', { pipelineName: props.serviceName, }); const githubAccessToken = new cdk.SecretParameter(this, 'GitHubToken', { ssmParameter: 'GitHubToken' }); new codepipeline.GitHubSourceAction(this, 'GitHubSource', { stage: pipeline.addStage('Source'), owner: 'myorg', repo: props.serviceName, oauthToken: githubAccessToken.value }); … AWS CDK pipelines: Definição
  • 59. © 2020, Amazon Web Services, Inc. or its Affiliates. import cdk = require('@aws-cdk/cdk'); import { MyMicroservicePipeline } from './pipeline'; class MyMicroservicePipelinesStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); new MyMicroservicePipeline(this, 'Pipeline1', { 'serviceName': 'Microservice1' }); new MyMicroservicePipeline(this, 'Pipeline2', { 'serviceName': 'Microservice2' }); new MyMicroservicePipeline(this, 'Pipeline3', { 'serviceName': 'Microservice3' }); new MyMicroservicePipeline(this, 'Pipeline4', { 'serviceName': 'Microservice4' }); } } const app = new cdk.App(); new MyMicroservicePipelinesStack(app, 'MyMicroservicePipelines'); app.run(); AWS CDK pipelines: Utilização
  • 60. © 2020, Amazon Web Services, Inc. or its Affiliates. Obrigado! Fernando Sapata LatAm Business Development Manager, Serverless Bruno Emer Sr. Container Specialist SA