SlideShare uma empresa Scribd logo
1 de 85
Baixar para ler offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Fernando Sapata
Enterprise Solutions Architect, Amazon Web Services
DEV301
DevOps na AWS: Construindo Sistemas
para Entregas Rápidas
https://secure.flickr.com/photos/mgifford/4525333972
Por que estamos
aqui hoje?
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
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Por que DevOps é importante?
5x
Menos chances de
falhas
440x
Mais rápido entre o
commit e o deploy
46x
Deploys mais
frequentes
44%
Mais tempo gasto
com novas
funcionalidades e
código
Fonte: Puppet 2017 State of DevOps Report
O que é DevOps?
O que é DevOps?
• Filosofias culturais
• Práticas
• Ferramentas
Cultura DevOps
• Dev & Ops caminham juntos
• Sem silos
• Responsabilidade compartilhada
• Visibilidade e comunicação
Práticas 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
Infraestrutura como código
• Defina seus recursos na AWS utilizando código
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
Confiabilidade
Benefícios do DevOps
VelocidadeEscala
Entrega rápidaColaboração otimizada
Segurança
Olhando para o
desenvolvimento
na Amazon
https://secure.flickr.com/photos/pixelthing/15806918992/
2001
Transformação no desenvolvimento da Amazon: 2001–2009
2009
Aplicações
monolíticas
Microserviços + “two-pizza
teams”
As coisas foram bem
melhores com este modelo,
e as equipes entregaram
mais rápido do que nunca,
mas sentimos que ainda
poderíamos melhorar.
Em 2009,
realizamos um
estudo para
descobrir onde
ainda podiam
existir ineficiências.
Nós estávamos apenas esperando
WaitWrite
code WaitBuild
code WaitDeploy
to test
Deploy
to prod
Nós estávamos apenas esperando
WaitWrite
code WaitBuild
code WaitDeploy
to test
Deploy
to prod
Mins Days Mins Days Mins Days Mins
Nós estávamos apenas esperando
WaitWrite
code WaitBuild
code WaitDeploy
to test
Deploy
to prod
Semanas
Mins Dias Mins Dias Mins Dias Mins
Nós estávamos apenas esperando
WaitWrite
code WaitBuild
code WaitDeploy
to test
Deploy
to prod
Weeks
Mins Days Mins Days Mins Days Mins
Criamos ferramentas
para automatizar nosso
processo de entrega de
software
https://secure.flickr.com/photos/lindseygee/5894617854/
Ações automatizadas e
transições; do check-in
à produção
Benefícios:
• Mais rápido
• Mais seguro
• Simplificação e
Padronização
• Visualização do
processo
Pipelines
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
Todos os anos na Amazon, realizamos uma pesquisa com todos os
nossos desenvolvedores de software. Os resultados de 2014
mostraram que apenas uma ferramenta / serviço de desenvolvimento
poderia ser correlacionada estatisticamente com um desenvolvedor
mais feliz:
Nosso serviço de pipeline!
Entrega contínua = Desenvolvedores mais felizes!
E funcionou muito bem …
Por onde começar ?
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
• Testes
integrados com
outros sistemas
• Teste de carga
• Testes de
usabilidade
• Testes de
vulnerabilidade
Cinco principais fases da entrega e monitoração
Source Build Test Deploy Monitor
• Faça Check in
do código
fonte
• Revisão do
novo código
• Compile
• Testes
unitários
• Verificações de
estilo
• Métricas de
código
• Criar as
imagens do
contêiner
• Deploy no
ambiente de
produção
• Monitore a
aplicação em
produção para
identificar
problemas
rapidamente
Fases do processo de release
Source Build Test Production
Integração contínua
Entrega contínua
Deploy contínuo
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AWS Code services
AWS CodeBuild
+ third party
Etapas do processo de release de software
AWS CodeCommit AWS CodeBuild AWS CodeDeploy
AWS CodePipeline
AWS
CodeStar
Source Build Test Deploy Monitor
AWS X-Ray
Amazon
CloudWatch
Amazon CloudWatch
AWS CloudTrail
Monitoração e Log
AWS DevOps portfolio
AWS CodeCommit
AWS CodeDeploy
AWS CodePipeline
Desenvolvimento de Software
AWS CloudFormation
AWS OpsWorks
AWS Config
Infraestrutura como código
AWS CodeBuild
AWS CodeStar
AWS OpsWorks for
Chef Automate
AWS X-Ray
Desenvolva e teste sua
aplicação
https://secure.flickr.com/photos/spenceyc/7481166880
Serviço de build totalmente gerenciado que compila o
código-fonte, executa testes e produz pacotes de
software
Escala continuamente e processa vários builds
simultaneamente
Você pode criar ambientes de build personalizados
utilizando imagens do Docker
Pague apenas pelos minutos dos recursos de
computação que você utilizar
Lançado com integração do AWS CodePipeline e
Jenkins
AWS CodeBuild
Como funciona?
1. Realiza o download do código fonte
2. Executa os commandos definidos no arquivo build
spec em contêiners temporários (são criadas novas
instâncias para cada build)
3. Envia os logs do build para a console e para o Amazon
CloudWatch logs
4. Envia os artefatos gerados para um bucket no Amazon
S3
Como automatizar o processo de build com AWS CodeBuild?
• Integrado com o AWS CodePipeline para CI/CD
• Facilmente plugável (API/CLI)
• Construa seu ambiente de build
• Crie imagens Docker com as ferramentas que precisar
• Plugin open-source para o Jenkins
• Utilize o AWS CodeBuild como worker de um Jenkins Master
Exemplo do arquivo buildspec.yml
version: 0.1
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
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
• Variáveis a serem utilizadas na
fase de build
• Exemplo do que pode ser feito
na fase de build:
• Você pode instalar pacotes ou
executar commandos de
preparação do ambiente.
• Executar verificações de sintaxe
na etapa de pre_build.
• Executar o commando de build
• Testar sua aplicação ou criar
uma imagem na etapa de
post_build
• Criar e armazenar um artefato
no Amazon S3
Realizando o build do seu código
Tipicamente o processo de build se refere a
linguagens que precisam ser compiladas:
• .NET: C#, F#, VB.net, etc.
• Java e JVM: Java, Scala, JRuby
• Go
• iOS: Swift, Objective-C
Também nos referimos ao processo de criação
de imagens do Docker como build EC2
E se não precisar realizar o build …
Diversas linguagens não precisam de build. Elas
são consideradas linguagens interpretadas:
• PHP
• Ruby
• Python
• Node.js
Você simplesmente realiza o deploy do seu código
EC2
Testando seu código
O teste é uma ciência e uma forma de arte!
Objetivos para testar seu código:
• Garantir a funcionalidade desejada
• Capturar erros de sintaxe
• Padronizar o código
• Reduzir erros devido a falhas de lógica
• Tornar as aplicações mais seguras
Onde focar os testes
UI
Service
Unit 70%
20%
10%
Qual serviço e etapa do processo de release corresponde a quais testes?
UI
Service
Unit
Third-party
tooling
AWS CodeBuild
BuildTest
Preço
• Pague pelos minutos
• Três tipos de instâncias diferentes (CPU e memória)
• 100 minutos grátis da instância build.general1.small
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
*As of May 25, 2018
Realizando o Deploy
de sua aplicação
https://secure.flickr.com/photos/simononly/15386966677
Automatiza implantações de código em
qualquer instância
Lida com a complexidade de atualizar as
aplicações
Previne indisponibilidade durante o deploy
Realiza a volta automática em caso de falha
Deploy no Amazon EC2 ou servidores on-
premises, em qualquer linguagem e qualquer
sistema operacional
Integra-se com ferramentas de terceiros e AWS
AWS CodeDeploy
Exemplo do arquivo appspec.yml
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
Exemplo do arquivo appspec.yml
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
• Remove / adiciona instâncias
ao Elastic Load Balancing
• Instala pacotes de
dependências
• Inicia o Apache
• Confirma o sucesso do deploy
• Envia arquivos da aplicação
para um diretório e os de
configuração para outro
• Define permissões específicas
em diretórios e arquivos
v2 v2 v2 v2 v2 v2
Um por vez
Metade por vez
Todos de uma vez
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agent Agent
Dev deployment group
OR
Prod deployment group
Agent
AgentAgent
Agent Agent
Agent
Escolha a velocidade e o grupo de implantação
Orquestrando o Build e o
Deploy com um Pipeline
https://www.flickr.com/photos/seattlemunicipalarchives/12504672623/
Serviço de entrega contínua para atualizações
rápidas e confiáveis de aplicações
Modele e visualize seu processo de release de
software
Realiza o build, testes, e deploy do código
sempre que ocorrer uma alteração
Integra-se com ferramentas de terceiros e
AWS
AWS CodePipeline
Source
Source
GitHub
Build
AWS CodeBuild
AWS CodeBuild
Deploy
JavaApp
AWS Elastic
Beanstalk
Pipeline
Stage
Action
Transition
AWS CodePipeline
MyApplication
Build
AWS CodeBuild
AWS CodeBuild
Notify Developers
AWS Lambda
Parallel actions
Source
Source
GitHub
AWS CodePipeline
MyApplication
Deploy
JavaApp
Elastic Beanstalk
Build
AWS CodeBuild
AWS CodeBuild
NotifyDevelopers
Lambda
Test API
Runscope
Sequential actions
Deploy
JavaApp
Elastic Beanstalk
Source
Source
GitHub
AWS CodePipeline
MyApplication
Build
AWS CodeBuild
AWS CodeBuild
Staging-Deploy
JavaApp
Elastic Beanstalk
Prod-Deploy
JavaApp
Elastic Beanstalk
QATeamReview
Manual Approval
Manual approvals
Review
AWS CodePipeline
MyApplication
Repositório de código Git seguro, gerenciado e
escalável
Use ferramentas no padrão do Git
Escalabilidade, disponibilidade, e durabilidade do
Amazon S3
Criptografia em repouso com chaves do cliente
Repositório sem limite de tamanho
Gatilhos de pós commit para chamar o Amazon SNS
ou Lambda
AWS CodeCommit
Controle de códigos fonte na nuvem
Seguro Gerenciado Altamente
Disponível
Armazene
qualquer objeto
AWS CodeCommit
Git pull/push AWS CodeCommit
Objetos Git no
Amazon S3
Índice Git no
Amazon DynamoDB
Chaves de criptografia
no AWS KMS
SSH or HTTPS
$ git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-cli
Cloning into 'aws-cli'...
Receiving objects: 100% (16032/16032), 5.55 MiB | 1.25 MiB/s, done.
Resolving deltas: 100% (9900/9900), done.
Checking connectivity... done.
$ nano README.rst
$ git commit -am 'updated README'
[master 4fa0318] updated README
1 file changed, 1 insertion(+)
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 297 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote:
To https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-cli
4dacd6d..4fa0318 master -> master
A mesma experiência do Git
Preço
AWS CodeCommit
$1 por usuário ativo por mês (primeiros 5 usuários grátis)
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
Compute Instance
Type
Memory(GB) vCPU Price per build minute
($)
Small 3 2 0.005
Medium 7 4 0.010
Large 15 8 0.020
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
AWS CodeStar
• Desenvolva, crie e implante
aplicativos rapidamente na AWS
• Comece a desenvolver na AWS em
minutos
• Trabalhe em toda a sua equipe, com
segurança
• Gerencie facilmente a entrega de
software
• Escolha entre uma variedade de
modelos de projetos
AWS CodeStar
Templates de projeto para Amazon EC2, Lambda, e Elastic Beanstalk
Selecione a ferramente de versionamento de código
AWS CodeStar
Ferramentas de entrega continua pré-configuradas
AWS CodeStar
Conecte facilmente sua IDE preferida
AWS CodeStar
Configure o acesso de toda a equipe em apenas alguns cliques
AWS CodeStar
Painel unificado – Gerenciamento de fluxos de entrega e problemas
AWS CodeStar
Painel unificado – Monitoração da aplicação e histórico de commits
AWS X-Ray
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Debug tradicional
Developer Local test
Developer
Add
breakpoints
Add log
statements
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Arquiteturas monolíticas x orientadas a serviços
Orientada a serviçosMonolíticas
© 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.
É cansativo, repetitivo e demorado,
exigindo mais tempo dos times de DevOps na depuração.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Identifica gargalos
de performance
Como o X-Ray pode ajudar?
Aponta falhas
específicas
Identifica erros Identifica o impacto
para os usuários
© 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.
App & X-Ray
SDK
EC2 Instance/Containers/Lambda
X-Ray
daemon
Loca lhost
UDP
X-Ray API
HTTPS
HTTPS
X-Ray console
App & X-Ray
SDK
On-premises server
X-Ray
daemon
Local host
UDP
EC2 role
AWS
credentials
DevOps team
HTTPS
Fluxo do X-Ray
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
X-Ray SDK
Permite que você inicie rapidamente sem precisar instrumentar
manualmente o código da aplicação.
Código Fonte no GitHub https://github.com/aws?q=xray-sdk
Disponível para Java, .NET, .NET Core, Python, Ruby, Go, & Node.js
Adiciona filtros automaticamente para capturar chamadas:
 Serviços AWS através do AWS SDK
 Serviços non-AWS sobre HTTP e HTTPS
 Bancos de Dados (MySQL, PostgreSQL, e Amazon DynamoDB)
 Filas (Amazon SQS)
© 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
Disponível para Amazon Linux AMI, RHEL, Ubuntu, macOS, e
Windows.
Pré-instalado no Lambda.
Pode ser executado em qualquer lugar, desde que as credenciais da
AWS sejam fornecidas (por exemplo, Amazon EC2, Amazon ECS,
máquina de desenvolvedor e outras).
Código fonte no https://github.com/aws/aws-xray-daemon
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Links Úteis
Acesse https://aws.amazon.com/xray para saber mais
Documentação: http://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html
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
Ampla seleção de Run Times
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Depuração completa
Ferramentas integradas para desenvolvimento Serverless
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Entrega Contínua: Aplicações Serverless
AWS
CodeCommit
AWS
CodeBuild
Source repository Build Deploy
Or
AWS Cloud9
AWS CodeStar
AWS Lambda
Author
AWS
CodePipeline
Monitor
AWS X-Ray
And
/ Or Amazon
CloudWatch
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Entrega Contínua: Containers
AWS
CodeCommit
AWS
CodeBuild
Amazon ECR
Amazon ECS
Source
repository Build Deploy
Or Or
AWS
CodePipeline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Please complete the session survey in the
summit mobile app.
Submit Session Feedback
1. Tap the Schedule icon. 2. Select the session
you attended.
3. Tap Session Evaluation
to submit your feedback.
Obrigado!

Mais conteúdo relacionado

Mais procurados

Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBAlcyon Ferreira de Souza Junior, MSc
 
Immutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformImmutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformMichael Peacock
 
Using MongoDB With Groovy
Using MongoDB With GroovyUsing MongoDB With Groovy
Using MongoDB With GroovyJames Williams
 
What is load balancer in aws and types of load balancers
What is load balancer in aws and  types of load balancersWhat is load balancer in aws and  types of load balancers
What is load balancer in aws and types of load balancersVishnuAnji
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorKonveyor Community
 
AWS- Elastic load balancing
AWS- Elastic load balancingAWS- Elastic load balancing
AWS- Elastic load balancingAishwarya Sharma
 
How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...
How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...
How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...Amazon Web Services
 
Running distributed tests with k6.pdf
Running distributed tests with k6.pdfRunning distributed tests with k6.pdf
Running distributed tests with k6.pdfLibbySchulze
 
(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoT(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoTAmazon Web Services
 
Develop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One DayDevelop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One DayAmazon Web Services
 
SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?Globant
 
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...Amazon Web Services
 
Architecting Advanced Network Security Across VPCs with AWS Transit Gateway
Architecting Advanced Network Security Across VPCs with AWS Transit GatewayArchitecting Advanced Network Security Across VPCs with AWS Transit Gateway
Architecting Advanced Network Security Across VPCs with AWS Transit GatewayCynthia Hsieh
 
서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로신우 방
 

Mais procurados (20)

Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
 
Immutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformImmutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and Terraform
 
Using MongoDB With Groovy
Using MongoDB With GroovyUsing MongoDB With Groovy
Using MongoDB With Groovy
 
What is load balancer in aws and types of load balancers
What is load balancer in aws and  types of load balancersWhat is load balancer in aws and  types of load balancers
What is load balancer in aws and types of load balancers
 
AWS CodeBuild Demo
AWS CodeBuild DemoAWS CodeBuild Demo
AWS CodeBuild Demo
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case Generator
 
Deep Dive on Amazon S3
Deep Dive on Amazon S3Deep Dive on Amazon S3
Deep Dive on Amazon S3
 
AWS- Elastic load balancing
AWS- Elastic load balancingAWS- Elastic load balancing
AWS- Elastic load balancing
 
How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...
How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...
How to Manage Inventory, Patching, and System Images for Your Hybrid Cloud wi...
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Introducing AWS Cloud9
Introducing AWS Cloud9Introducing AWS Cloud9
Introducing AWS Cloud9
 
Running distributed tests with k6.pdf
Running distributed tests with k6.pdfRunning distributed tests with k6.pdf
Running distributed tests with k6.pdf
 
(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoT(MBL205) New! Everything You Want to Know About AWS IoT
(MBL205) New! Everything You Want to Know About AWS IoT
 
Develop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One DayDevelop a Messaging App on AWS in One Day
Develop a Messaging App on AWS in One Day
 
SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?
 
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
 
Architecting Advanced Network Security Across VPCs with AWS Transit Gateway
Architecting Advanced Network Security Across VPCs with AWS Transit GatewayArchitecting Advanced Network Security Across VPCs with AWS Transit Gateway
Architecting Advanced Network Security Across VPCs with AWS Transit Gateway
 
서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Amazon EC2 Masterclass
Amazon EC2 MasterclassAmazon EC2 Masterclass
Amazon EC2 Masterclass
 

Semelhante a DevOps na AWS

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
 
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
 
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
 
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
 
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
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
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
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsJaqueline Ramos
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsQaladies
 
Arquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemArquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemGlenio Borges
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwarePaulo Lacerda
 
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Jaqueline Ramos
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
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
 

Semelhante a DevOps na AWS (20)

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
 
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
 
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
 
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
 
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
 
Desenvolvimento de CI/CD na AWS
Desenvolvimento de CI/CD na AWSDesenvolvimento de CI/CD na AWS
Desenvolvimento de CI/CD na AWS
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
ESX Tech Lives - DevOps
ESX Tech Lives - DevOpsESX Tech Lives - DevOps
ESX Tech Lives - DevOps
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
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...
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps Projects
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps Projects
 
Arquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemArquitetura Nativa na Nuvem
Arquitetura Nativa na Nuvem
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
 
SonarQube
SonarQubeSonarQube
SonarQube
 
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
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

DevOps na AWS

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Fernando Sapata Enterprise Solutions Architect, Amazon Web Services DEV301 DevOps na AWS: Construindo Sistemas para Entregas Rápidas
  • 3. Agenda O que é DevOps? A história de DevOps da Amazon AWS Code Services Serviços de DevOps da AWS
  • 5. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Por que DevOps é importante? 5x Menos chances de falhas 440x Mais rápido entre o commit e o deploy 46x Deploys mais frequentes 44% Mais tempo gasto com novas funcionalidades e código Fonte: Puppet 2017 State of DevOps Report
  • 6. O que é DevOps?
  • 7. O que é DevOps? • Filosofias culturais • Práticas • Ferramentas
  • 8. Cultura DevOps • Dev & Ops caminham juntos • Sem silos • Responsabilidade compartilhada • Visibilidade e comunicação
  • 9. Práticas DevOps Microserviços • Migrando de aplicações monolíticas para arquiteturas baseadas em microserviços
  • 10. Práticas DevOps • Integração contínua • Deploy contínuo
  • 11. Práticas DevOps Infraestrutura como código • Defina seus recursos na AWS utilizando código
  • 12. 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
  • 13. Confiabilidade Benefícios do DevOps VelocidadeEscala Entrega rápidaColaboração otimizada Segurança
  • 14. Olhando para o desenvolvimento na Amazon https://secure.flickr.com/photos/pixelthing/15806918992/
  • 15. 2001 Transformação no desenvolvimento da Amazon: 2001–2009 2009 Aplicações monolíticas Microserviços + “two-pizza teams”
  • 16. As coisas foram bem melhores com este modelo, e as equipes entregaram mais rápido do que nunca, mas sentimos que ainda poderíamos melhorar.
  • 17. Em 2009, realizamos um estudo para descobrir onde ainda podiam existir ineficiências.
  • 18. Nós estávamos apenas esperando WaitWrite code WaitBuild code WaitDeploy to test Deploy to prod
  • 19. Nós estávamos apenas esperando WaitWrite code WaitBuild code WaitDeploy to test Deploy to prod Mins Days Mins Days Mins Days Mins
  • 20. Nós estávamos apenas esperando WaitWrite code WaitBuild code WaitDeploy to test Deploy to prod Semanas Mins Dias Mins Dias Mins Dias Mins
  • 21. Nós estávamos apenas esperando WaitWrite code WaitBuild code WaitDeploy to test Deploy to prod Weeks Mins Days Mins Days Mins Days Mins
  • 22. Criamos ferramentas para automatizar nosso processo de entrega de software https://secure.flickr.com/photos/lindseygee/5894617854/
  • 23. Ações automatizadas e transições; do check-in à produção Benefícios: • Mais rápido • Mais seguro • Simplificação e Padronização • Visualização do processo Pipelines
  • 24. 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
  • 25. Todos os anos na Amazon, realizamos uma pesquisa com todos os nossos desenvolvedores de software. Os resultados de 2014 mostraram que apenas uma ferramenta / serviço de desenvolvimento poderia ser correlacionada estatisticamente com um desenvolvedor mais feliz: Nosso serviço de pipeline! Entrega contínua = Desenvolvedores mais felizes! E funcionou muito bem …
  • 27. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. • Testes integrados com outros sistemas • Teste de carga • Testes de usabilidade • Testes de vulnerabilidade Cinco principais fases da entrega e monitoração Source Build Test Deploy Monitor • Faça Check in do código fonte • Revisão do novo código • Compile • Testes unitários • Verificações de estilo • Métricas de código • Criar as imagens do contêiner • Deploy no ambiente de produção • Monitore a aplicação em produção para identificar problemas rapidamente
  • 28. Fases do processo de release Source Build Test Production Integração contínua Entrega contínua Deploy contínuo
  • 29. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. AWS Code services AWS CodeBuild + third party Etapas do processo de release de software AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS CodePipeline AWS CodeStar Source Build Test Deploy Monitor AWS X-Ray Amazon CloudWatch
  • 30. Amazon CloudWatch AWS CloudTrail Monitoração e Log AWS DevOps portfolio AWS CodeCommit AWS CodeDeploy AWS CodePipeline Desenvolvimento de Software AWS CloudFormation AWS OpsWorks AWS Config Infraestrutura como código AWS CodeBuild AWS CodeStar AWS OpsWorks for Chef Automate AWS X-Ray
  • 31. Desenvolva e teste sua aplicação https://secure.flickr.com/photos/spenceyc/7481166880
  • 32. Serviço de build totalmente gerenciado que compila o código-fonte, executa testes e produz pacotes de software Escala continuamente e processa vários builds simultaneamente Você pode criar ambientes de build personalizados utilizando imagens do Docker Pague apenas pelos minutos dos recursos de computação que você utilizar Lançado com integração do AWS CodePipeline e Jenkins AWS CodeBuild
  • 33. Como funciona? 1. Realiza o download do código fonte 2. Executa os commandos definidos no arquivo build spec em contêiners temporários (são criadas novas instâncias para cada build) 3. Envia os logs do build para a console e para o Amazon CloudWatch logs 4. Envia os artefatos gerados para um bucket no Amazon S3
  • 34. Como automatizar o processo de build com AWS CodeBuild? • Integrado com o AWS CodePipeline para CI/CD • Facilmente plugável (API/CLI) • Construa seu ambiente de build • Crie imagens Docker com as ferramentas que precisar • Plugin open-source para o Jenkins • Utilize o AWS CodeBuild como worker de um Jenkins Master
  • 35. Exemplo do arquivo buildspec.yml version: 0.1 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
  • 36. Exemplo do arquivo buildspec.yml version: 0.1 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 • Variáveis a serem utilizadas na fase de build • Exemplo do que pode ser feito na fase de build: • Você pode instalar pacotes ou executar commandos de preparação do ambiente. • Executar verificações de sintaxe na etapa de pre_build. • Executar o commando de build • Testar sua aplicação ou criar uma imagem na etapa de post_build • Criar e armazenar um artefato no Amazon S3
  • 37. Realizando o build do seu código Tipicamente o processo de build se refere a linguagens que precisam ser compiladas: • .NET: C#, F#, VB.net, etc. • Java e JVM: Java, Scala, JRuby • Go • iOS: Swift, Objective-C Também nos referimos ao processo de criação de imagens do Docker como build EC2
  • 38. E se não precisar realizar o build … Diversas linguagens não precisam de build. Elas são consideradas linguagens interpretadas: • PHP • Ruby • Python • Node.js Você simplesmente realiza o deploy do seu código EC2
  • 39. Testando seu código O teste é uma ciência e uma forma de arte! Objetivos para testar seu código: • Garantir a funcionalidade desejada • Capturar erros de sintaxe • Padronizar o código • Reduzir erros devido a falhas de lógica • Tornar as aplicações mais seguras
  • 40. Onde focar os testes UI Service Unit 70% 20% 10%
  • 41. Qual serviço e etapa do processo de release corresponde a quais testes? UI Service Unit Third-party tooling AWS CodeBuild BuildTest
  • 42. Preço • Pague pelos minutos • Três tipos de instâncias diferentes (CPU e memória) • 100 minutos grátis da instância build.general1.small 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 *As of May 25, 2018
  • 43. Realizando o Deploy de sua aplicação https://secure.flickr.com/photos/simononly/15386966677
  • 44. Automatiza implantações de código em qualquer instância Lida com a complexidade de atualizar as aplicações Previne indisponibilidade durante o deploy Realiza a volta automática em caso de falha Deploy no Amazon EC2 ou servidores on- premises, em qualquer linguagem e qualquer sistema operacional Integra-se com ferramentas de terceiros e AWS AWS CodeDeploy
  • 45. Exemplo do arquivo appspec.yml 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
  • 46. Exemplo do arquivo appspec.yml 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 • Remove / adiciona instâncias ao Elastic Load Balancing • Instala pacotes de dependências • Inicia o Apache • Confirma o sucesso do deploy • Envia arquivos da aplicação para um diretório e os de configuração para outro • Define permissões específicas em diretórios e arquivos
  • 47. v2 v2 v2 v2 v2 v2 Um por vez Metade por vez Todos de uma vez v2 v2 v2 v1 v1 v1 v2 v1 v1 v1 v1 v1 Agent Agent Dev deployment group OR Prod deployment group Agent AgentAgent Agent Agent Agent Escolha a velocidade e o grupo de implantação
  • 48. Orquestrando o Build e o Deploy com um Pipeline https://www.flickr.com/photos/seattlemunicipalarchives/12504672623/
  • 49. Serviço de entrega contínua para atualizações rápidas e confiáveis de aplicações Modele e visualize seu processo de release de software Realiza o build, testes, e deploy do código sempre que ocorrer uma alteração Integra-se com ferramentas de terceiros e AWS AWS CodePipeline
  • 50. Source Source GitHub Build AWS CodeBuild AWS CodeBuild Deploy JavaApp AWS Elastic Beanstalk Pipeline Stage Action Transition AWS CodePipeline MyApplication
  • 51. Build AWS CodeBuild AWS CodeBuild Notify Developers AWS Lambda Parallel actions Source Source GitHub AWS CodePipeline MyApplication Deploy JavaApp Elastic Beanstalk
  • 52. Build AWS CodeBuild AWS CodeBuild NotifyDevelopers Lambda Test API Runscope Sequential actions Deploy JavaApp Elastic Beanstalk Source Source GitHub AWS CodePipeline MyApplication
  • 53. Build AWS CodeBuild AWS CodeBuild Staging-Deploy JavaApp Elastic Beanstalk Prod-Deploy JavaApp Elastic Beanstalk QATeamReview Manual Approval Manual approvals Review AWS CodePipeline MyApplication
  • 54. Repositório de código Git seguro, gerenciado e escalável Use ferramentas no padrão do Git Escalabilidade, disponibilidade, e durabilidade do Amazon S3 Criptografia em repouso com chaves do cliente Repositório sem limite de tamanho Gatilhos de pós commit para chamar o Amazon SNS ou Lambda AWS CodeCommit
  • 55. Controle de códigos fonte na nuvem Seguro Gerenciado Altamente Disponível Armazene qualquer objeto
  • 56. AWS CodeCommit Git pull/push AWS CodeCommit Objetos Git no Amazon S3 Índice Git no Amazon DynamoDB Chaves de criptografia no AWS KMS SSH or HTTPS
  • 57. $ git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-cli Cloning into 'aws-cli'... Receiving objects: 100% (16032/16032), 5.55 MiB | 1.25 MiB/s, done. Resolving deltas: 100% (9900/9900), done. Checking connectivity... done. $ nano README.rst $ git commit -am 'updated README' [master 4fa0318] updated README 1 file changed, 1 insertion(+) $ git push Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 297 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: To https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-cli 4dacd6d..4fa0318 master -> master A mesma experiência do Git
  • 58. Preço AWS CodeCommit $1 por usuário ativo por mês (primeiros 5 usuários grátis) 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 Compute Instance Type Memory(GB) vCPU Price per build minute ($) Small 3 2 0.005 Medium 7 4 0.010 Large 15 8 0.020
  • 59. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. AWS CodeStar • Desenvolva, crie e implante aplicativos rapidamente na AWS • Comece a desenvolver na AWS em minutos • Trabalhe em toda a sua equipe, com segurança • Gerencie facilmente a entrega de software • Escolha entre uma variedade de modelos de projetos
  • 60. AWS CodeStar Templates de projeto para Amazon EC2, Lambda, e Elastic Beanstalk
  • 61. Selecione a ferramente de versionamento de código
  • 62. AWS CodeStar Ferramentas de entrega continua pré-configuradas
  • 63. AWS CodeStar Conecte facilmente sua IDE preferida
  • 64. AWS CodeStar Configure o acesso de toda a equipe em apenas alguns cliques
  • 65. AWS CodeStar Painel unificado – Gerenciamento de fluxos de entrega e problemas
  • 66. AWS CodeStar Painel unificado – Monitoração da aplicação e histórico de commits
  • 68. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Debug tradicional Developer Local test Developer Add breakpoints Add log statements
  • 69. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Arquiteturas monolíticas x orientadas a serviços Orientada a serviçosMonolíticas
  • 70. © 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. É cansativo, repetitivo e demorado, exigindo mais tempo dos times de DevOps na depuração.
  • 71. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Identifica gargalos de performance Como o X-Ray pode ajudar? Aponta falhas específicas Identifica erros Identifica o impacto para os usuários
  • 72. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serviço X-Ray
  • 73. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. App & X-Ray SDK EC2 Instance/Containers/Lambda X-Ray daemon Loca lhost UDP X-Ray API HTTPS HTTPS X-Ray console App & X-Ray SDK On-premises server X-Ray daemon Local host UDP EC2 role AWS credentials DevOps team HTTPS Fluxo do X-Ray
  • 74. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. X-Ray SDK Permite que você inicie rapidamente sem precisar instrumentar manualmente o código da aplicação. Código Fonte no GitHub https://github.com/aws?q=xray-sdk Disponível para Java, .NET, .NET Core, Python, Ruby, Go, & Node.js Adiciona filtros automaticamente para capturar chamadas:  Serviços AWS através do AWS SDK  Serviços non-AWS sobre HTTP e HTTPS  Bancos de Dados (MySQL, PostgreSQL, e Amazon DynamoDB)  Filas (Amazon SQS)
  • 75. © 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 Disponível para Amazon Linux AMI, RHEL, Ubuntu, macOS, e Windows. Pré-instalado no Lambda. Pode ser executado em qualquer lugar, desde que as credenciais da AWS sejam fornecidas (por exemplo, Amazon EC2, Amazon ECS, máquina de desenvolvedor e outras). Código fonte no https://github.com/aws/aws-xray-daemon
  • 76. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Links Úteis Acesse https://aws.amazon.com/xray para saber mais Documentação: http://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html 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
  • 77. © 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
  • 78. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Editor completo
  • 79. Ampla seleção de Run Times
  • 80. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Depuração completa
  • 81. Ferramentas integradas para desenvolvimento Serverless
  • 82. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Entrega Contínua: Aplicações Serverless AWS CodeCommit AWS CodeBuild Source repository Build Deploy Or AWS Cloud9 AWS CodeStar AWS Lambda Author AWS CodePipeline Monitor AWS X-Ray And / Or Amazon CloudWatch
  • 83. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Entrega Contínua: Containers AWS CodeCommit AWS CodeBuild Amazon ECR Amazon ECS Source repository Build Deploy Or Or AWS CodePipeline
  • 84. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Please complete the session survey in the summit mobile app.
  • 85. Submit Session Feedback 1. Tap the Schedule icon. 2. Select the session you attended. 3. Tap Session Evaluation to submit your feedback. Obrigado!