Fernando Sapata
Enterprise Solutions Architect, Amazon Web Services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Por que estamos
aqui hoje?
https://secure.flickr.com/photos/mgifford/4525333972
Agenda
O que é DevOps?
A história de DevOps da Amazon
AWS Code Services
Serviços de DevOps da AWS
O software muda
rápidamente
Por que DevOps é importante?
• Filosofias culturais
• Práticas
• Ferramentas
Cultura DevOps
Microserviços
• Migrando de aplicações monolíticas para arquiteturas
baseadas em microserviços
Práticas DevOps
• Integração contínua
• Deploy contínuo
Práticas DevOps
• Monitoração e log
• Monitore e analise métricas e logs
• Compreenda o desempenho da infra-estrutura
e da aplicação em tempo real
Benefícios do DevOps
2001 2009
Write
code Wait Build
code Wait Deploy
to test Wait Deploy
to prod
Nós estávamos apenas esperando
Write
code Wait Build
code Wait Deploy
to test Wait Deploy
to prod
Write
code Wait Build
code Wait Deploy
to test Wait Deploy
to prod
Write
code Wait Build
code Wait Deploy
to test Wait Deploy
to prod
Benefícios:
• Mais rápido
• Mais seguro
• Simplificação e
Padronização
• Visualização do
processo
E funcionou muito bem …
Em 2014:
• Milhares de times de serviços na Amazon
• Construindo microserviços
• Utilizando entrega contínua
• Diversos ambientes (staging, beta, production)
50 milhões de deploys
E funcionou muito bem …
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Fases do processo de release
Integração contínua
Entrega contínua
Deploy contínuo
AWS Code services
Etapas do processo de release de software
AWS
CodeStar
AWS CodeCommit AWS CodeBuild AWS CodeBuild AWS CodeDeploy AWS X-Ray
+ third party
Amazon
AWS CodePipeline CloudWatch
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AWS DevOps portfolio
Desenvolvimento de Software Infraestrutura como código Monitoração e Log
AWS CloudFormation
AWS CodeStar AWS X-Ray
AWS CodeCommit
Amazon CloudWatch
AWS OpsWorks
AWS CodeBuild
AWS CloudTrail
AWS CodeDeploy
https://secure.flickr.com/photos/spenceyc/7481166880
AWS CodeBuild
Serviço de build totalmente gerenciado que compila o
código-fonte, executa testes e produz pacotes de
software
environment_variables:
plaintext:
JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64"
phases:
install:
commands:
- apt-get update -y
- apt-get install -y maven
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- mvn install
post_build:
commands:
- echo Build completed on `date`
artifacts:
type: zip
files:
- target/messageUtil-1.0.jar
discard-paths: yes
Exemplo do arquivo buildspec.yml
version: 0.1
UI 10%
Service 20%
Unit 70%
Qual serviço e etapa do processo de release corresponde a quais testes?
UI
Test
Service
Third-party
tooling
Build
Unit AWS CodeBuild
Preço
Compute instance type Memory (GB) vCPU Price per build minute ($)
build.general1.small 3 2 0.005
build.general1.medium 7 4 0.010
build.general1.large 15 8 0.020
https://secure.flickr.com/photos/simononly/15386966677
AWS CodeDeploy
Automatiza implantações de código em
qualquer instância
Um por vez
v2 v1 v1 v1 v1 v1 Agent Agent
OR
Metade por vez Prod deployment group
v2 v2 v2 v1 v1 v1
Agent Agent Agent
https://www.flickr.com/photos/seattlemunicipalarchives/12504672623/
AWS CodePipeline
Serviço de entrega contínua para atualizações
rápidas e confiáveis de aplicações
Source
GitHub
Build
Stage
AWS CodeBuild Pipeline
AWS CodeBuild Action
Transition
Deploy
JavaApp
AWS Elastic
Beanstalk
AWS CodePipeline
MyApplication
Source
Source
GitHub
Build
Parallel actions
Deploy
JavaApp
Elastic Beanstalk
AWS CodePipeline
MyApplication
Source
Source
GitHub
Build
Deploy
JavaApp
Elastic Beanstalk
AWS CodePipeline
MyApplication
Build
AWS CodeBuild
AWS CodeBuild
Staging-Deploy
JavaApp
Elastic Beanstalk
QATeamReview
Manual Approval
Manual approvals
Review
Prod-Deploy
JavaApp
Elastic Beanstalk
AWS CodeCommit
Repositório de código Git seguro, gerenciado e
escalável
Objetos Git no
Amazon S3
Índice Git no
Amazon DynamoDB
SSH or HTTPS
AWS CodePipeline
$1 por pipeline ativo por mês (primeiro grátis)
AWS CodeDeploy
Grátis para deploy no Amazon EC2
$0.02 por atualização em servidores on-premises
AWS CodeBuild
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Arquiteturas monolíticas x orientadas a serviços
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
O processo tradicional de depuração não é efetivo para
aplicações em produção ou aplicações que utilizam
arquiteturas orientadas a serviços, de microserviços ou
serverless.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Como o X-Ray pode ajudar?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serviço X-Ray
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Fluxo do X-Ray
X-Ray console
DevOps team HTTPS
Local host
UDP
HTTPS HTTPS
Loca lhost
UDP App & X-Ray
SDK
App & X-Ray X-Ray API
SDK
X-Ray
AWS
X-Ray daemon
credentials
EC2 role daemon
On-premises server
EC2 Instance/Containers/Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
X-Ray SDK
Disponível para Java, .NET, .NET Core, Python, Ruby, Go, & Node.js
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Processo do X-Ray
Recebe os dados do SDK utilizando UDP e salva em um buffer local.
Os dados são enviados para o backend a cada segundo ou quando o
buffer local estiver cheio
Pré-instalado no Lambda.
Exemplos:
.NET: https://github.com/awslabs/aws-xray-dotnet-webapp
Java: https://github.com/awslabs/eb-java-scorekeep/tree/xray
Node.js: https://github.com/awslabs/eb-node-express-sample/tree/xray
Python: https://github.com/awslabs/eb-py-flask-signup/tree/xray
Lambda: https://github.com/awslabs/aws-xray-rekognition-lambda-sample
Alarms & alerts: https://github.com/aws-samples/aws-xray-cloudwatch-event
Latency trends: https://github.com/aws-samples/aws-xray-scatter-sample
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Cloud9
Ambiente de desenvolvimento integrado
baseado em nuvem (IDE)
Permite você escrever, executar, e depurar
seu código somente com o browser
Compartilhe seu ambiente com a equipe para
colaboração em tempo real
Acesso direto ao terminal
Fornece ótima experiência no
desenvolvimento serverless: permite testes
locais e pré-configura o ambiente de
desenvolvimento com todos os SDKs,
bibliotecas e plugins
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Editor completo
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Ampla seleção de Run Times
Depuração completa
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Ferramentas integradas para desenvolvimento Serverless
Entrega Contínua: Aplicações Serverless
AWS CodeStar
AWS
CodePipeline
Or And
/ Or Amazon
CloudWatch
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Entrega Contínua: Containers
Amazon ECR
AWS
CodePipeline
Source
repository Build Deploy
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Please complete the session survey in the
summit mobile app.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Submit Session Feedback
1. Tap the Schedule icon. 2. Select the session 3. Tap Session Evaluation
you attended. to submit your feedback.
Obrigado!