SlideShare uma empresa Scribd logo
1 de 64
© 2020, Amazon Web Services, Inc. or its Affiliates.
Prácticas recomendadas de CI/CD
para crear aplicaciones modernas
Javier Cristancho
Sr. Solutions Architect
Camilo Cortes
Solutions Architect
AmazonWeb Services
2020
© 2020, Amazon Web Services, Inc. or its Affiliates.
Agenda
CI/CD para aplicaciones modernas
Integración continua
Despliegue continuo
Infraestructura como código
© 2020, Amazon Web Services, Inc. or its Affiliates.
CI/CD para aplicaciones modernas
© 2020, Amazon Web Services, Inc. or its Affiliates.
Enfoques para el desarrollo de aplicaciones
modernas
• Acelerar la entrega de nuevos servicios con alta calidad
• Simplificación del manejo de entornos
• Reducción del impacto en el cambio de código
• Automatización de operaciones
• Obtener conocimientos
• Proteger al cliente y a la empresa
© 2020, Amazon Web Services, Inc. or its Affiliates.
Enfoques para el desarrollo de aplicaciones
modernas
• Aceleración de la entrega de nuevos servicios con CI/CD de alta calidad
• Simplificación del manejo de entornos con tecnologías Serverless
• Reducción del impacto en cambios de código con Arquitectura de microservicios
• Automatización de operaciones con Infraestructura como código
• Obteniendo información de los recursos y aplicaciones - Observabilidad
• Proteger al cliente y a la empresa con controles de seguridad y cumplimiento
© 2020, Amazon Web Services, Inc. or its Affiliates.
Fuente: Informe del estado de operaciones de desarrollo 2018 DORA
Implementación más frecuente Semana — Mes Hora — Día
Mejora el tiempo de entrega 1—6 meses 1—7 días
Reduce la tasa de error 46— 60% 0— 15%
Efectos del CI/CD
© 2020, Amazon Web Services, Inc. or its Affiliates.
CI/CD para despliegue de Aplicaciones Modernas
MonitorearDesplegarProbarConstruir
Repositorio Cod./
Artefactos
Código
AWS Cloud9
AW IDEToolkits
AWS
X-Ray
AWS
CodeBuild
AWS
CodeCommit
AWS
CodeDeploy
AWS CodeBuild
+Third Party
Amazon
CloudWatch
AWS CodePipeline
Modelar AWS CloudFormation AWS SAMAWS Cloud Development Kit
AWS
CodeArtifact
AmazonCodeGuru
© 2020, Amazon Web Services, Inc. or its Affiliates.
Pilares para ofrecer una aplicación moderna
Infraestructura
como código
Implementación
continua
Integración
continua
© 2020, Amazon Web Services, Inc. or its Affiliates.
Integración continua
© 2020, Amazon Web Services, Inc. or its Affiliates.
Objetivos de Integración Continua
Integración continua
Código Construir Pruebas Producción
© 2020, Amazon Web Services, Inc. or its Affiliates.
Integración continua
1. Inicia automáticamente una nueva compilación cuando se agrega código
2. Crear y probar código en un entorno consistente y replicable
3. Genera continuamente un artefacto listo para implementar
4. Ciclo de retroalimentación continua cuando falla una compilación
Objetivos de Integración Continua
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodePipeline
• Prestación continua de servicios para una
actualización rápida y fiable de las aplicaciones
• Modele y visualice los procesos de lanzamiento de su
aplicación
• Cree, pruebe e implemente su código cada vez que
se produzca un cambio
• Se integra con herramientas de terceros y AWS
© 2020, Amazon Web Services, Inc. or its Affiliates.
Características de un Pipeline
• Ejecución y control de etapas del pipeline
• Cada etapa tiene una o más acciones
• Después de que todas las acciones en una etapa
han concluido, la etapa transita a la siguiente
• Cada "run" de un pipeline es una ejecución
• Existen muchos tipos de acciones soportadas
• Aprobación — requiere aprobación humana
• Lambda – ejecuta una función Lambda
• Step function – Inicia un Step Function
• etc.
Source
Source
CodeCommit
Build
MyCodeBuild
CodeBuild
Deploy
MyDotNetApp
CodeDeploy
MyPipeline
© 2020, Amazon Web Services, Inc. or its Affiliates.
Build
AWS CodeBuild
AWS CodeBuild
NotifyDevelopers
Lambda
Acciones Paralelas
Source
Source
GitHub
MyApplication
Deploy
JavaApp
Elastic Beanstalk
© 2020, Amazon Web Services, Inc. or its Affiliates.
Build
AWS CodeBuild
AWS CodeBuild
NotifyDevelopers
Lambda
TestAPI
Runscope
Acciones secuenciales
Deploy
JavaApp
Elastic Beanstalk
Source
Source
GitHub
MyApplication
© 2020, Amazon Web Services, Inc. or its Affiliates.
Build
AWS CodeBuild
AWS CodeBuild
Staging-Deploy
JavaApp
Elastic Beanstalk
Prod-Deploy
JavaApp
Elastic Beanstalk
QATeamReview
Manual Approval
Aprobación Manual
Review
MyApplication
© 2020, Amazon Web Services, Inc. or its Affiliates.
Un Pipeline en la práctica
8. Retrieve build artifact
EC2 instance
Source artifact
S3
Build artifact
S3
5. Get source artifact
6. Store build artifact
3. Poll for job
4. Acknowledge job
7. Put success
9. Deploy build artifact
Elastic Beanstalk
web container
Java app
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
MyApplication
1. Get changes
© 2020, Amazon Web Services, Inc. or its Affiliates.
Integración con varios Partners
AWS CodePipeline
Source Build Test Deploy
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amazon EC2
AWS CodeDeploy
AWS Elastic Beanstalk
Stacks de AWS OpsWorks
Contenedores
AWS CodeDeploy
Amazon ECS
Amazon ECS (Blue/Green)
AWS Fargate
Amazon EKS usando
Lambda/CodeBuild
Serverless
AWS CodeDeploy
AWS CloudFormation
(AWS SAM)
AWS Lambda
AWS CodePipeline: Servicios admitidos para
despliegue
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeCommit
• Servicio de Git completamente gestionado por AWS
• Ofrece repositories privados de Git
• Soportado por Amazon S3
• Escala en demanda
• Cifrado en reposo con llaves definidas por el cliente
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeCommit
Git objects
in Amazon S3
Encryption keys
in AWS KMS
SSH or HTTPS
git push
AWS CodeCommit
Git index
in Amazon DynamoDB
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeBuild
• Servicio de compilación administrado (Serverless)
• Compila código fuente
• Ejecuta pruebas
• Crea artefactos de software
• Escala y procesa múltiples compilaciones
simultáneamente
• Puede moniterar sus procesos en Amazon CloudWatch
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeBuild
• Cada compilación se ejecuta en un nuevo contenedor
Docker para un entorno consistente e inmutable
• Docker y AWS CLI están instalados en todas las
imágenes oficiales de CodeBuild
• Proporcione entornos de construcción personalizados
adaptados a sus necesidades mediante el uso de
imágenes personalizadas
© 2020, Amazon Web Services, Inc. or its Affiliates.
Build Images
Pre-built Images for Popular Frameworks
• Java
• Python
• Node.js
• Ruby
• Go
• Android
• .NET (Windows-only)/.NET Core
• Docker
Build your own docker image with custom tooling
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeBuild - buildspec.yml Ejemplo
version: 0.2
env:
variables:
JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64"
phases:
install:
runtime-versions:
java: corretto8
build:
commands:
- echo Build started on `date`
- mvn install
post_build:
commands:
- echo Test started on `date`
- mvn surefire-report:report
reports:
SurefireReports:
files:
- '**/*'
base-directory: 'target/surefire-reports’
artifacts:
type: zip
files:
- target/messageUtil-1.0.jar
discard-paths: yes
Crear y almacenar los artefactos de S3
Variables a ser usadas en la etapa de build
Ejecutar procesos de pruebas - testing
Ejecutar comandos de “build”
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeBuild
See breakdown of
individual unit tests,
status of the tests,
duration, and messages
from the tests
© 2020, Amazon Web Services, Inc. or its Affiliates.
Despliegue Continuo
© 2020, Amazon Web Services, Inc. or its Affiliates.
Despliegue Continuo
Objetivos de implementación continua
Código Construir Pruebas producción
© 2020, Amazon Web Services, Inc. or its Affiliates.
Objetivos del Despliegue Continuo
Despliegue continuo
1. Implementación automática de nuevas versiones en entornos de prueba
2. Implementar en producción de forma segura y sin impacto para los clientes
3. Realizar entregas más frecuentes
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeDeploy
• Despliegue automático en instancias de EC2 o Funciones
Lambda
• Maneja la complejidad de actualizar sus aplicaciones
• Evite el downtime durante el despliegue de aplicaciones
• Blue/Green Deployment
• Canary Testing
• Reversión automática en caso de fallas
• Implementación en instancias de EC2, AWS Lambda,
ECS/Fargate o servidores on-premises
© 2020, Amazon Web Services, Inc. or its Affiliates.
Implementación de código: implementaciones de EC2
versión: 0.0
os: linux
archivos:
- Fuente:/
destino: /var/www/html
permisos:
- objeto: /var/www/html
patrón: «*.html»
propietario: root
grupo: raíz
modo: 755
ganchos:
ApplicationStop:
- ubicación: scripts/deregister_from_elb.sh
Antes de instalar:
- ubicación: scripts/install_dependencies.sh
ApplicationStart:
- ubicación: scripts/start_httpd.sh
ValidateService:
- ubicación: scripts/test_site.sh
- ubicación: scripts/register_with_elb.sh
© 2020, Amazon Web Services, Inc. or its Affiliates.
v2 v2 v2 v2 v2 v2
Uno a la vez
La mitad a la vez
Todo a la vez
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agente
Grupo de Despliegue en Dev.
O
Grupo de Despliegue en Producción
Elija la velocidad de implementación y el grupo
Agente
Agente Agente Agente
Agente Agente Agente
© 2020, Amazon Web Services, Inc. or its Affiliates.
ELB + Auto Scaling
Auto Scaling group
Load
Balancer
Auto Scaling group
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
100%
production
traffic
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
Blue target
group
Blue tasks: v1
code
100%
production
traffic
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
Green target
group
Blue target
group
Blue tasks: v1
code
100%
production
traffic
100%
test
traffic
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
Blue target
group
Green tasks: v2
code
Provision green tasks
100%
test
traffic
Blue tasks: v1
code
100%
production
traffic
Green target
group
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
Green target
group
Green tasks: v2
code
Shift test traffic to green; run validation tests against test endpoint
Blue target
group
Blue tasks: v1
code
100%
production
traffic
100%
test
traffic
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
Green target
group
Green tasks: v2
code
Shift production traffic to green; roll back in case of alarm
Blue target
group
Blue tasks: v1
code
100%
production
traffic
100%
test
traffic
© 2020, Amazon Web Services, Inc. or its Affiliates.
CodeDeploy: Amazon ECS blue/green deployment
Green target
group
Green tasks: v2
code
Drain blue tasks
Blue target
group
100%
production
traffic
100%
test
traffic
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeDeploy: AWS Lambda deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeDeploy: AWS Lambda deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeDeploy: AWS Lambda deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CodeDeploy: AWS Lambda deployments
© 2020, Amazon Web Services, Inc. or its Affiliates.
Arquitectura completa de un proceso de CI/CD
AWS CodeBuild
AWS CodeCommit AWS CodePipeline
AWS Cloud9
AWS Command
Line Interface
AWSTools
and SDKs
Amazon
CloudWatch
AWS
X-Ray
CodePipeineTemplate
Amazon S3)
Third-party
tool(s)
AWS CodeDeploy Integration
AWS Cloud
User
EC2 instance contents
One Box Fleet One Box Fleet
Performance
Pen-testing
One Box Fleet
One Box FleetRules enforcement
AWS Config
© 2020, Amazon Web Services, Inc. or its Affiliates.
CI/CD de Contenedores en Amazon EKS -
Arquitectura
end users
Git Push
AWS Cloud
Region
1 2 4 5
6
3
© 2020, Amazon Web Services, Inc. or its Affiliates.
CI/CD de Contenedores en Amazon EKS -
Arquitectura
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infraestructura como código
© 2020, Amazon Web Services, Inc. or its Affiliates.
Enfoques para el desarrollo de aplicaciones
modernas
• Aceleración de la entrega de nuevos servicios con CI/CD de alta calidad
• Simplificación del manejo de entornos con tecnologías Serverless
• Reducción del impacto en cambios de código con Arquitectura de microservicios
• Automatización de operaciones con Infraestructura como código
• Obteniendo información de los recursos y aplicaciones - Observabilidad
• Proteger al cliente y a la empresa con controles de seguridad y cumplimiento
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infraestructura como objetivos de código
Infraestructura como código
Código Construir
cuestionari
o
producción
© 2020, Amazon Web Services, Inc. or its Affiliates.
Infraestructura como objetivos de código
Infraestructura como código
1. Realizar cambios en la infraestructura replicables y predecibles
2. Liberar los cambios de infraestructura utilizando las mismas herramientas que
usamos para los cambios de código
3. Replique el entorno de producción en otros entornos que permitan realizar
pruebas continuas
© 2020, Amazon Web Services, Inc. or its Affiliates.
Entregar infraestructura como código
«Maestro»
rama
Código fuente Construir cuestionario producción
Crear plantilla Crear y ejecutar
cambios
Crear y ejecutar
cambios
© 2020, Amazon Web Services, Inc. or its Affiliates.
Modelo de aplicación Serverless AWS (AWS SAM)
https://aws.amazon.com/serverless/sam/
• Marco de código abierto para crear aplicaciones sin
servidor en AWS
• Sintaxis abreviada para declarar funciones, API, bases de
datos y asignaciones de origen de eventos
• Transforma AWS SAM Syntax en AWS CloudFormation
Syntax on Deploy
• Admite todos los tipos de recursosAWS CloudFormation
© 2020, Amazon Web Services, Inc. or its Affiliates.
Plantilla AWS SAM
Sintaxis abreviada
para declarar
funciones, tablas y
eventos
awstemplateFormatVersion: '2010-09-09'
Transformar: AWS። sin servidor-2016-10-31
Recursos:
GetFunction:
Tipo: AWS። Serverless። Función
Propiedades:
Controlador: index.get
Tiempo de ejecución: nodejs6.10
CódigoURI: src/
Políticas: AmazonDynamodBreadOnlyAccess
Eventos:
GetResource:
Tipo: Api
Propiedades:
Ruta de acceso: /resource/ {resourceId}
Método: get
Tabla:
Tipo: AWS። Sin servidor። SimpleTable
© 2020, Amazon Web Services, Inc. or its Affiliates.
Plantilla AWS SAM
awstemplateFormatVersion: '2010-09-09'
Transformar: AWS። sin servidor-2016-10-31
Recursos:
GetFunction:
Tipo: AWS። Serverless። Función
Propiedades:
Controlador: index.get
Tiempo de ejecución: nodejs6.10
CódigoURI: src/
Políticas: AmazonDynamodBreadOnlyAccess
Eventos:
GetResource:
Tipo: Api
Propiedades:
Ruta de acceso: /resource/ {resourceId}
Método: get
Tabla:
Tipo: AWS። Sin servidor። SimpleTable
Solo 18 filas crean muchas
características:
• Función AWS Lambda
• Gateway de API deAmazon
• Tabla deAmazon DynamoDB
• Funciones de IAM
© 2020, Amazon Web Services, Inc. or its Affiliates.
Utilizar SAM CLI para empaquetar e implementar
pip install —user aws-sam-cli
sam init
sam construir
paquete sam
sam desplegar
© 2020, Amazon Web Services, Inc. or its Affiliates.
Kit de desarrollo de la nube de AWS (CDK de AWS)
• Framework de código abierto para definir infraestructura
conTypeScript, Python, Java, and .NET
• Provee librería de recursos (constructores) basado en
mejores prácticas de AWS.
• Provee recursos mediante AWS CloudFormation
• Soporta todos los tipos de recursosAWS CloudFormation
AWS
CDK
https://github.com/aws/aws-cdk
© 2020, Amazon Web Services, Inc. or its Affiliates.
Diseña la
infraestructura
como
componentes
reutilizables
AWS CDK
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CDK
Framework que soporta multiples lenguajes
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CDK – Componentes principales
A
ut
o
S
c
al
in
g
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CDK – Constructores
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS CDK – Constructores
© 2020, Amazon Web Services, Inc. or its Affiliates.
Pilares para ofrecer una aplicación moderna
Infraestructura
como código
Implementación
continua
Integración
continua
© 2020, Amazon Web Services, Inc. or its Affiliates.
Gracias !
Javier Cristancho
Solutions Architect
Camilo Cortes
Solutions Architect
AmazonWeb Services
2020

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
 
Running Microservices on Amazon ECS - AWS April 2016 Webinar Series
Running Microservices on Amazon ECS - AWS April 2016 Webinar SeriesRunning Microservices on Amazon ECS - AWS April 2016 Webinar Series
Running Microservices on Amazon ECS - AWS April 2016 Webinar Series
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
Source Code Management systems
Source Code Management systemsSource Code Management systems
Source Code Management systems
 
CloudFormation Best Practices
CloudFormation Best PracticesCloudFormation Best Practices
CloudFormation Best Practices
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
 
AWS VPC Fundamentals- Webinar
AWS VPC Fundamentals- WebinarAWS VPC Fundamentals- Webinar
AWS VPC Fundamentals- Webinar
 
Deep Dive - CI/CD on AWS
Deep Dive - CI/CD on AWSDeep Dive - CI/CD on AWS
Deep Dive - CI/CD on AWS
 
AWS CDK in Practice
AWS CDK in PracticeAWS CDK in Practice
AWS CDK in Practice
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
[AWS Builders] AWS상의 보안 위협 탐지 및 대응
[AWS Builders] AWS상의 보안 위협 탐지 및 대응[AWS Builders] AWS상의 보안 위협 탐지 및 대응
[AWS Builders] AWS상의 보안 위협 탐지 및 대응
 
AWS CodeBuild Demo
AWS CodeBuild DemoAWS CodeBuild Demo
AWS CodeBuild Demo
 
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
 
Amazon Virtual Private Cloud (VPC) - Networking Fundamentals and Connectivity...
Amazon Virtual Private Cloud (VPC) - Networking Fundamentals and Connectivity...Amazon Virtual Private Cloud (VPC) - Networking Fundamentals and Connectivity...
Amazon Virtual Private Cloud (VPC) - Networking Fundamentals and Connectivity...
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
 
AWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro TipsAWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro Tips
 
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
[AWS初心者向けWebinar] AWSへのアプリケーション移行の考え方と実践
 
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
 

Semelhante a Mejores prácticas de CI / CD para construir aplicaciones modernas

Semelhante a Mejores prácticas de CI / CD para construir aplicaciones modernas (20)

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
 
Uso de Containers y Serverless para acelerar el desarrollo de aplicaciones mo...
Uso de Containers y Serverless para acelerar el desarrollo de aplicaciones mo...Uso de Containers y Serverless para acelerar el desarrollo de aplicaciones mo...
Uso de Containers y Serverless para acelerar el desarrollo de aplicaciones mo...
 
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsDevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
 
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsDevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
 
Migration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWSMigration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWS
 
AWS Webinar Series Latinoamérica: Modernice sus aplicaciones Windows en AWS
AWS Webinar Series Latinoamérica: Modernice sus aplicaciones Windows en AWSAWS Webinar Series Latinoamérica: Modernice sus aplicaciones Windows en AWS
AWS Webinar Series Latinoamérica: Modernice sus aplicaciones Windows en AWS
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
 
Introducción a Amazon EKS
Introducción a Amazon EKSIntroducción a Amazon EKS
Introducción a Amazon EKS
 
Arquitecturas y estrategias para generar aplicaciones modernas en AWS - MXO20...
Arquitecturas y estrategias para generar aplicaciones modernas en AWS - MXO20...Arquitecturas y estrategias para generar aplicaciones modernas en AWS - MXO20...
Arquitecturas y estrategias para generar aplicaciones modernas en AWS - MXO20...
 
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
 
DevOps en AWS
DevOps en AWS DevOps en AWS
DevOps en AWS
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Autobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure RelayAutobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure Relay
 
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
SVQXDG - Introducción a Embeddinator-4000
SVQXDG - Introducción a Embeddinator-4000SVQXDG - Introducción a Embeddinator-4000
SVQXDG - Introducción a Embeddinator-4000
 
DevOps en AWS, acelarando el desarrollo de software
DevOps en AWS, acelarando el desarrollo de softwareDevOps en AWS, acelarando el desarrollo de software
DevOps en AWS, acelarando el desarrollo de software
 
Azure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARMAzure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARM
 
Comenzando con la nube híbrida
Comenzando con la nube híbridaComenzando con la nube híbrida
Comenzando con la nube híbrida
 
Técnicas para implementación de Continuous Delivery en AWS
Técnicas para implementación de Continuous Delivery en AWSTécnicas para implementación de Continuous Delivery en AWS
Técnicas para implementación de Continuous Delivery en AWS
 

Mais de Amazon Web Services LATAM

Mais de Amazon Web Services LATAM (20)

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 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 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 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.
 
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
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
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
 
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
 
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
 
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
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (15)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 

Mejores prácticas de CI / CD para construir aplicaciones modernas

  • 1. © 2020, Amazon Web Services, Inc. or its Affiliates. Prácticas recomendadas de CI/CD para crear aplicaciones modernas Javier Cristancho Sr. Solutions Architect Camilo Cortes Solutions Architect AmazonWeb Services 2020
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. Agenda CI/CD para aplicaciones modernas Integración continua Despliegue continuo Infraestructura como código
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates. CI/CD para aplicaciones modernas
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. Enfoques para el desarrollo de aplicaciones modernas • Acelerar la entrega de nuevos servicios con alta calidad • Simplificación del manejo de entornos • Reducción del impacto en el cambio de código • Automatización de operaciones • Obtener conocimientos • Proteger al cliente y a la empresa
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. Enfoques para el desarrollo de aplicaciones modernas • Aceleración de la entrega de nuevos servicios con CI/CD de alta calidad • Simplificación del manejo de entornos con tecnologías Serverless • Reducción del impacto en cambios de código con Arquitectura de microservicios • Automatización de operaciones con Infraestructura como código • Obteniendo información de los recursos y aplicaciones - Observabilidad • Proteger al cliente y a la empresa con controles de seguridad y cumplimiento
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. Fuente: Informe del estado de operaciones de desarrollo 2018 DORA Implementación más frecuente Semana — Mes Hora — Día Mejora el tiempo de entrega 1—6 meses 1—7 días Reduce la tasa de error 46— 60% 0— 15% Efectos del CI/CD
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. CI/CD para despliegue de Aplicaciones Modernas MonitorearDesplegarProbarConstruir Repositorio Cod./ Artefactos Código AWS Cloud9 AW IDEToolkits AWS X-Ray AWS CodeBuild AWS CodeCommit AWS CodeDeploy AWS CodeBuild +Third Party Amazon CloudWatch AWS CodePipeline Modelar AWS CloudFormation AWS SAMAWS Cloud Development Kit AWS CodeArtifact AmazonCodeGuru
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. Pilares para ofrecer una aplicación moderna Infraestructura como código Implementación continua Integración continua
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. Integración continua
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. Objetivos de Integración Continua Integración continua Código Construir Pruebas Producción
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. Integración continua 1. Inicia automáticamente una nueva compilación cuando se agrega código 2. Crear y probar código en un entorno consistente y replicable 3. Genera continuamente un artefacto listo para implementar 4. Ciclo de retroalimentación continua cuando falla una compilación Objetivos de Integración Continua
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodePipeline • Prestación continua de servicios para una actualización rápida y fiable de las aplicaciones • Modele y visualice los procesos de lanzamiento de su aplicación • Cree, pruebe e implemente su código cada vez que se produzca un cambio • Se integra con herramientas de terceros y AWS
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. Características de un Pipeline • Ejecución y control de etapas del pipeline • Cada etapa tiene una o más acciones • Después de que todas las acciones en una etapa han concluido, la etapa transita a la siguiente • Cada "run" de un pipeline es una ejecución • Existen muchos tipos de acciones soportadas • Aprobación — requiere aprobación humana • Lambda – ejecuta una función Lambda • Step function – Inicia un Step Function • etc. Source Source CodeCommit Build MyCodeBuild CodeBuild Deploy MyDotNetApp CodeDeploy MyPipeline
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. Build AWS CodeBuild AWS CodeBuild NotifyDevelopers Lambda Acciones Paralelas Source Source GitHub MyApplication Deploy JavaApp Elastic Beanstalk
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. Build AWS CodeBuild AWS CodeBuild NotifyDevelopers Lambda TestAPI Runscope Acciones secuenciales Deploy JavaApp Elastic Beanstalk Source Source GitHub MyApplication
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. Build AWS CodeBuild AWS CodeBuild Staging-Deploy JavaApp Elastic Beanstalk Prod-Deploy JavaApp Elastic Beanstalk QATeamReview Manual Approval Aprobación Manual Review MyApplication
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. Un Pipeline en la práctica 8. Retrieve build artifact EC2 instance Source artifact S3 Build artifact S3 5. Get source artifact 6. Store build artifact 3. Poll for job 4. Acknowledge job 7. Put success 9. Deploy build artifact Elastic Beanstalk web container Java app Source Source GitHub Build JenkinsOnEC2 Jenkins Deploy JavaApp Elastic Beanstalk MyApplication 1. Get changes
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. Integración con varios Partners AWS CodePipeline Source Build Test Deploy
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon EC2 AWS CodeDeploy AWS Elastic Beanstalk Stacks de AWS OpsWorks Contenedores AWS CodeDeploy Amazon ECS Amazon ECS (Blue/Green) AWS Fargate Amazon EKS usando Lambda/CodeBuild Serverless AWS CodeDeploy AWS CloudFormation (AWS SAM) AWS Lambda AWS CodePipeline: Servicios admitidos para despliegue
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeCommit • Servicio de Git completamente gestionado por AWS • Ofrece repositories privados de Git • Soportado por Amazon S3 • Escala en demanda • Cifrado en reposo con llaves definidas por el cliente
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeCommit Git objects in Amazon S3 Encryption keys in AWS KMS SSH or HTTPS git push AWS CodeCommit Git index in Amazon DynamoDB
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeBuild • Servicio de compilación administrado (Serverless) • Compila código fuente • Ejecuta pruebas • Crea artefactos de software • Escala y procesa múltiples compilaciones simultáneamente • Puede moniterar sus procesos en Amazon CloudWatch
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeBuild • Cada compilación se ejecuta en un nuevo contenedor Docker para un entorno consistente e inmutable • Docker y AWS CLI están instalados en todas las imágenes oficiales de CodeBuild • Proporcione entornos de construcción personalizados adaptados a sus necesidades mediante el uso de imágenes personalizadas
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. Build Images Pre-built Images for Popular Frameworks • Java • Python • Node.js • Ruby • Go • Android • .NET (Windows-only)/.NET Core • Docker Build your own docker image with custom tooling
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeBuild - buildspec.yml Ejemplo version: 0.2 env: variables: JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64" phases: install: runtime-versions: java: corretto8 build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Test started on `date` - mvn surefire-report:report reports: SurefireReports: files: - '**/*' base-directory: 'target/surefire-reports’ artifacts: type: zip files: - target/messageUtil-1.0.jar discard-paths: yes Crear y almacenar los artefactos de S3 Variables a ser usadas en la etapa de build Ejecutar procesos de pruebas - testing Ejecutar comandos de “build”
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeBuild See breakdown of individual unit tests, status of the tests, duration, and messages from the tests
  • 27. © 2020, Amazon Web Services, Inc. or its Affiliates. Despliegue Continuo
  • 28. © 2020, Amazon Web Services, Inc. or its Affiliates. Despliegue Continuo Objetivos de implementación continua Código Construir Pruebas producción
  • 29. © 2020, Amazon Web Services, Inc. or its Affiliates. Objetivos del Despliegue Continuo Despliegue continuo 1. Implementación automática de nuevas versiones en entornos de prueba 2. Implementar en producción de forma segura y sin impacto para los clientes 3. Realizar entregas más frecuentes
  • 30. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeDeploy • Despliegue automático en instancias de EC2 o Funciones Lambda • Maneja la complejidad de actualizar sus aplicaciones • Evite el downtime durante el despliegue de aplicaciones • Blue/Green Deployment • Canary Testing • Reversión automática en caso de fallas • Implementación en instancias de EC2, AWS Lambda, ECS/Fargate o servidores on-premises
  • 31. © 2020, Amazon Web Services, Inc. or its Affiliates. Implementación de código: implementaciones de EC2 versión: 0.0 os: linux archivos: - Fuente:/ destino: /var/www/html permisos: - objeto: /var/www/html patrón: «*.html» propietario: root grupo: raíz modo: 755 ganchos: ApplicationStop: - ubicación: scripts/deregister_from_elb.sh Antes de instalar: - ubicación: scripts/install_dependencies.sh ApplicationStart: - ubicación: scripts/start_httpd.sh ValidateService: - ubicación: scripts/test_site.sh - ubicación: scripts/register_with_elb.sh
  • 32. © 2020, Amazon Web Services, Inc. or its Affiliates. v2 v2 v2 v2 v2 v2 Uno a la vez La mitad a la vez Todo a la vez v2 v2 v2 v1 v1 v1 v2 v1 v1 v1 v1 v1 Agente Grupo de Despliegue en Dev. O Grupo de Despliegue en Producción Elija la velocidad de implementación y el grupo Agente Agente Agente Agente Agente Agente Agente
  • 33. © 2020, Amazon Web Services, Inc. or its Affiliates. ELB + Auto Scaling Auto Scaling group Load Balancer Auto Scaling group
  • 34. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment 100% production traffic
  • 35. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment Blue target group Blue tasks: v1 code 100% production traffic
  • 36. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment Green target group Blue target group Blue tasks: v1 code 100% production traffic 100% test traffic
  • 37. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment Blue target group Green tasks: v2 code Provision green tasks 100% test traffic Blue tasks: v1 code 100% production traffic Green target group
  • 38. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment Green target group Green tasks: v2 code Shift test traffic to green; run validation tests against test endpoint Blue target group Blue tasks: v1 code 100% production traffic 100% test traffic
  • 39. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment Green target group Green tasks: v2 code Shift production traffic to green; roll back in case of alarm Blue target group Blue tasks: v1 code 100% production traffic 100% test traffic
  • 40. © 2020, Amazon Web Services, Inc. or its Affiliates. CodeDeploy: Amazon ECS blue/green deployment Green target group Green tasks: v2 code Drain blue tasks Blue target group 100% production traffic 100% test traffic
  • 41. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeDeploy: AWS Lambda deployments
  • 42. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeDeploy: AWS Lambda deployments
  • 43. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeDeploy: AWS Lambda deployments
  • 44. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CodeDeploy: AWS Lambda deployments
  • 45. © 2020, Amazon Web Services, Inc. or its Affiliates. Arquitectura completa de un proceso de CI/CD AWS CodeBuild AWS CodeCommit AWS CodePipeline AWS Cloud9 AWS Command Line Interface AWSTools and SDKs Amazon CloudWatch AWS X-Ray CodePipeineTemplate Amazon S3) Third-party tool(s) AWS CodeDeploy Integration AWS Cloud User EC2 instance contents One Box Fleet One Box Fleet Performance Pen-testing One Box Fleet One Box FleetRules enforcement AWS Config
  • 46. © 2020, Amazon Web Services, Inc. or its Affiliates. CI/CD de Contenedores en Amazon EKS - Arquitectura end users Git Push AWS Cloud Region 1 2 4 5 6 3
  • 47. © 2020, Amazon Web Services, Inc. or its Affiliates. CI/CD de Contenedores en Amazon EKS - Arquitectura
  • 48. © 2020, Amazon Web Services, Inc. or its Affiliates. Infraestructura como código
  • 49. © 2020, Amazon Web Services, Inc. or its Affiliates. Enfoques para el desarrollo de aplicaciones modernas • Aceleración de la entrega de nuevos servicios con CI/CD de alta calidad • Simplificación del manejo de entornos con tecnologías Serverless • Reducción del impacto en cambios de código con Arquitectura de microservicios • Automatización de operaciones con Infraestructura como código • Obteniendo información de los recursos y aplicaciones - Observabilidad • Proteger al cliente y a la empresa con controles de seguridad y cumplimiento
  • 50. © 2020, Amazon Web Services, Inc. or its Affiliates. Infraestructura como objetivos de código Infraestructura como código Código Construir cuestionari o producción
  • 51. © 2020, Amazon Web Services, Inc. or its Affiliates. Infraestructura como objetivos de código Infraestructura como código 1. Realizar cambios en la infraestructura replicables y predecibles 2. Liberar los cambios de infraestructura utilizando las mismas herramientas que usamos para los cambios de código 3. Replique el entorno de producción en otros entornos que permitan realizar pruebas continuas
  • 52. © 2020, Amazon Web Services, Inc. or its Affiliates. Entregar infraestructura como código «Maestro» rama Código fuente Construir cuestionario producción Crear plantilla Crear y ejecutar cambios Crear y ejecutar cambios
  • 53. © 2020, Amazon Web Services, Inc. or its Affiliates. Modelo de aplicación Serverless AWS (AWS SAM) https://aws.amazon.com/serverless/sam/ • Marco de código abierto para crear aplicaciones sin servidor en AWS • Sintaxis abreviada para declarar funciones, API, bases de datos y asignaciones de origen de eventos • Transforma AWS SAM Syntax en AWS CloudFormation Syntax on Deploy • Admite todos los tipos de recursosAWS CloudFormation
  • 54. © 2020, Amazon Web Services, Inc. or its Affiliates. Plantilla AWS SAM Sintaxis abreviada para declarar funciones, tablas y eventos awstemplateFormatVersion: '2010-09-09' Transformar: AWS። sin servidor-2016-10-31 Recursos: GetFunction: Tipo: AWS። Serverless። Función Propiedades: Controlador: index.get Tiempo de ejecución: nodejs6.10 CódigoURI: src/ Políticas: AmazonDynamodBreadOnlyAccess Eventos: GetResource: Tipo: Api Propiedades: Ruta de acceso: /resource/ {resourceId} Método: get Tabla: Tipo: AWS። Sin servidor። SimpleTable
  • 55. © 2020, Amazon Web Services, Inc. or its Affiliates. Plantilla AWS SAM awstemplateFormatVersion: '2010-09-09' Transformar: AWS። sin servidor-2016-10-31 Recursos: GetFunction: Tipo: AWS። Serverless። Función Propiedades: Controlador: index.get Tiempo de ejecución: nodejs6.10 CódigoURI: src/ Políticas: AmazonDynamodBreadOnlyAccess Eventos: GetResource: Tipo: Api Propiedades: Ruta de acceso: /resource/ {resourceId} Método: get Tabla: Tipo: AWS። Sin servidor። SimpleTable Solo 18 filas crean muchas características: • Función AWS Lambda • Gateway de API deAmazon • Tabla deAmazon DynamoDB • Funciones de IAM
  • 56. © 2020, Amazon Web Services, Inc. or its Affiliates. Utilizar SAM CLI para empaquetar e implementar pip install —user aws-sam-cli sam init sam construir paquete sam sam desplegar
  • 57. © 2020, Amazon Web Services, Inc. or its Affiliates. Kit de desarrollo de la nube de AWS (CDK de AWS) • Framework de código abierto para definir infraestructura conTypeScript, Python, Java, and .NET • Provee librería de recursos (constructores) basado en mejores prácticas de AWS. • Provee recursos mediante AWS CloudFormation • Soporta todos los tipos de recursosAWS CloudFormation AWS CDK https://github.com/aws/aws-cdk
  • 58. © 2020, Amazon Web Services, Inc. or its Affiliates. Diseña la infraestructura como componentes reutilizables AWS CDK
  • 59. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CDK Framework que soporta multiples lenguajes
  • 60. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CDK – Componentes principales A ut o S c al in g
  • 61. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CDK – Constructores
  • 62. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS CDK – Constructores
  • 63. © 2020, Amazon Web Services, Inc. or its Affiliates. Pilares para ofrecer una aplicación moderna Infraestructura como código Implementación continua Integración continua
  • 64. © 2020, Amazon Web Services, Inc. or its Affiliates. Gracias ! Javier Cristancho Solutions Architect Camilo Cortes Solutions Architect AmazonWeb Services 2020

Notas do Editor

  1. ES: Las técnicas de integración continua y entrega continua (CI/CD) permiten a los equipos aumentar la agilidad y entregar rápidamente un producto de alta calidad. En esta charla, le guiamos sobre las prácticas recomendadas para crear canalizaciones CI/CD que le permitan administrar aplicaciones sin servidor y en contenedores. Cubriremos el modelo Infrastructure as Code (AWS SAM), así como cómo configurar canalizaciones con AWS CodePipeline y AWS CodeBuild, y le mostraremos cómo automatizar las implementaciones con AWS CodeDeploy. EN: Las técnicas de integración continua y entrega continua (CI/CD) permiten a los equipos aumentar la agilidad y liberar rápidamente un producto de alta calidad. En esta charla, le guiamos a través de las prácticas recomendadas para crear flujos de trabajo de CI/CD que le permitan administrar sus aplicaciones sin servidor y en contenedores. Cubriremos los modelos de aplicación Infrastructure as Code, como AWS Serverless Application Model (AWS SAM), así como cómo configurar canalizaciones de lanzamiento de CI/CD con AWS CodePipeline y AWS CodeBuild, y le mostraremos cómo automatizar implementaciones seguras con AWS CodeDeploy.
  2. Vamos a contarles de la agenda de esta presentación Em la prime parte vamos a hablar de CI/CD/ para aplicaciones moderas Integración Continua Y en la segunda parte nos estará acompanhando Camilo Cortes para entrear em mayor detalle para el despliegue continuo e infraestructura como código
  3. Whenever we talk to people about how we transformed our development practices, they want to know how they can do it themselves. And the good news is – they absolutely can, using the same tools that we built from our experience learning these lessons. We’ve built services to help with each stage of the development lifecycle, and we’ve also got Code Pipeline to manage the entire release process
  4. https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html
  5. Our sample pipeline in practice… Let’s take a look at an example Pipeline. I’ve created a simple 3 stage Pipeline to talk though my example. Source actions are special actions. They continuously poll the source providers, such as GitHub and S3, in order to detect changes. Once a change is detected, the new pipeline run is created and the new pipeline begins its run. The source actions retrieve a copy of the source information and place it into a customer owned S3 bucket. Once the source action is completed, the Source stage is marked as successful and we transition to the Build stage. In the Build Stage we have one action, Jenkins. Jenkins was integrated into CodePipeline as a CustomAction and has the same lifecycle as all custom actions. Talk through interaction Once the build action is completed, the Build stage is marked as successful and we transition to the Deploy stage The Deploy stage contains one action, an AWS Elastic Beanstalk deployment action. The Beanstalk action retrieves the build artifact from the customer’s S3 bucket and deploys it to the Elastic Beanstalk web container. S3 storage is used as an intermediary through these steps. IAM controls can be placed on components in this workflow to ensure security of the process CodePipeline will show where a task has failed or succeeded
  6. We have partnered with popular source, build, test and deployment systems to provide out-of-the-box integrations. Jenkins, CloudBees and Solano offer CI services for build stages BlazeMeter, Apica, HP StormRunner and Runscope are load testing partners. GhostInspector is a User Interface Testing partner GitHub is a source code partner Xebia Labs is a deployment partner.
  7. For each report, you can see the breakdown of individual unit tests, status of the tests, duration, and messages from the tests. The summary section shows you the overall Passed/Failed test count and pass rate along with the duration taken
  8. Automates code deployments to any instance and Lambda Handles the complexity of updating your applications Avoid downtime during application deployment Roll back automatically if failure detected Deploy to Amazon EC2, Lambda, ECS/Fargate or on-premises servers Limit “blast radius” with traffic control
  9. Ok, so here’s our setup. Nothing fancy here, just an auto scaling group set to a capacity of 3 registered to a load balancer. While a deployment is in progress, we don’t want the load balancer to keep sending traffic to the instance. To do this, when an instance begins a deployment, we’ll move it to “Standby” in the autoscaling group.
  10. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  11. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  12. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  13. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  14. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  15. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  16. Provisions “green” tasks, then flips traffic at the load balancer Validation “hooks” enable testing at each stage of the deployment Fast rollback to “blue” tasks in seconds if case of hook failure or CloudWatch alarms Monitor deployment status and history via console, API, Amazon SNS notifications, and CloudWatch Events Use “CodeDeploy-ECS” deploy action in CodePipeline or “aws ecs deploy” command in Jenkins
  17. Code Completion - no round trips to the docs Encapsulate the resources as reusable constructs for sharing both privately and publicly
  18. Python JavaScript Typescript Java C-Sharp
  19. CDK CLI that developers use to build and deploy their CDK Applications Init - Templates Synth – Verify Deploy – Send changes Destroy – Clean up dev environments
  20. Here’s and example of a pattern construct
  21. Let’s take a look at an example Pipeline. I’ve created a simple 3 stage Pipeline to talk though my example. Source actions are special actions. They continuously poll the source providers, such as GitHub and S3, in order to detect changes. Once a change is detected, the new pipeline run is created and the new pipeline begins its run. The source actions retrieve a copy of the source information and place it into a customer owned S3 bucket. Once the source action is completed, the Source stage is marked as successful and we transition to the Build stage. In the Build Stage we have one action, Jenkins. Jenkins was integrated into CodePipeline as a CustomAction and has the same lifecycle as all custom actions. Talk through interaction Once the build action is completed, the Build stage is marked as successful and we transition to the Deploy stage The Deploy stage contains one action, an AWS Elastic Beanstalk deployment action. The Beanstalk action retrieves the build artifact from the customer’s S3 bucket and deploys it to the Elastic Beanstalk web container. You can add a manual approval at the point where you want the pipeline to stop running until someone approves or rejects the revision in progress. Pipeline will stop executing when it has reached the point at which you set the approval action Pipeline execution resumes only when the action has been approved Approval action managed with AWS Identity and Access Management (IAM) permissions Notify approvers in several ways including email, SMS, webhooks, and more Useful for manual QA actions or as part of “Canary” deploy models