SlideShare una empresa de Scribd logo
DevOps en AWS: Acelerando el
desarrollo de software con AWS
Developer Tools
Henry Alvarado
Arquitecto de Soluciones
Mayo 25 de 2017
© 2017, Amazon Web Services
¿Por qué estamos
aquí hoy?
© 2017, Amazon Web Services
Actualmente, el software se mueve
rápidamente
La creación y distribución de software es más fácil y más rápido que
nunca:
Ahora las “Startups” tienen la capacidad de desarrollar, con poco o casi nada
de presupuesto
Poner a disposición de millones de usuarios el software está al alcance de
una descarga
Habilidad para moverse rápido es igual a la velocidad de disrupción
© 2017, Amazon Web Services
El modelo de entrega de software ha
cambiado drásticamente
• Modelo antiguo de entrega • Nuevo modelo de entrega
© 2017, Amazon Web Services
Qué herramientas son necesarias para
moverse rápido?
Tener la capacidad de liberar software en esta época, requiere de
múltiples herramientas:
Herramientas para gestionar el flujo de liberación de software
Herramientas para probar y validar el código, para la identificación de
defectos o problemas potenciales
Herramientas para desplegar las aplicaciones
Primero, necesitamos
entender un poco del proceso
de lanzamiento de software.
https://www.flickr.com/photos/jurvetson/5201796697/
© 2017, Amazon Web Services
El proceso de liberación de software tiene 4
fases principales:
Códificación Construcción Pruebas Despliegue
© 2017, Amazon Web Services
El proceso de liberación de software tiene 4
fases principales:
Códificación Construcción Pruebas Despliegue
Código fuente
como .java
Revisión de
código
© 2017, Amazon Web Services
El proceso de liberación de software tiene 4
fases principales:
Códificación Construcción Pruebas Despliegue
Código fuente
como .java
Revisión de
código
Compilación de
código
Pruebas unitarias
Validación de
estilos
Métricas de
código
© 2017, Amazon Web Services
El proceso de liberación de software tiene 4
fases principales:
Códificación Construcción Pruebas Despliegue
Código fuente
como .java
Revisión de
código
Compilación de
código
Pruebas unitarias
Validación de
estilos
Métricas de
código
Pruebas de
integración
Pruebas de carga
Pruebas de
interfase de
usuarios
Pruebas de
penetración
© 2017, Amazon Web Services
El proceso de liberación de software tiene 4
fases principales:
Códificación Construcción Pruebas Despliegue
Código fuente
como .java
Revisión de
código
Compilación de
código
Pruebas unitarias
Validación de
estilos
Métricas de
código
Pruebas de
integración
Pruebas de carga
Pruebas de
interfase de
usuarios
Pruebas de
penetración
Despliegue a
ambientes de
producción
© 2017, Amazon Web Services
Niveles del proceso de liberación de software
Codificación Construcción Pruebas Despliegue
© 2017, Amazon Web Services
Niveles del proceso de liberación de software
Codificación Construcción Pruebas Despliegue
Integración Continua
© 2017, Amazon Web Services
Niveles del proceso de liberación de software
Codificación Construcción Pruebas Despliegue
Integración Continua
Entrega Continua
© 2017, Amazon Web Services
Niveles del proceso de liberación de software
Codificación Construcción Pruebas Despliegue
Integración Continua
Entrega Continua
Despliegue Continuo
Una mirada atrás
del desarrollo en
Amazon..
https://secure.flickr.com/photos/pixelthing/15806918992/
© 2017, Amazon Web Services
Ciclo de vida de despliegue monolítico
desarrolladores
releasetestbuild
pipeline de entregaapp
© 2017, Amazon Web Services
Transformación del desarrollo en Amazon:
2001-2009
2001 2009
Monolítico
Aplicación + Equipos
Microservicios + 2 pizza teams
Las cosas fueron mucho
mejor bajo este modelo y
los equipos estaban
desarrollando
características más rápido
que nunca, pero sentimos
que aún podíamos
mejorar.
En 2009,
hicimos un
estudio para ver
donde existían
aún
ineficiencias
© 2017, Amazon Web Services
Estábamos simplemente esperando
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to Prod
© 2017, Amazon Web Services
Estábamos simplemente esperando
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to Prod
Mins Días Mins Días Mins Días Mins
© 2017, Amazon Web Services
Estábamos simplemente esperando
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to Prod
Semanas
Mins Mins Mins MinsDías Días Días
© 2017, Amazon Web Services
Semanas
Estábamos simplemente esperando
WaitWrite
Code WaitBuild
Code WaitDeploy
to Test
Deploy
to Prod
Mins Days Mins Days Mins Days Mins
© 2017, Amazon Web Services
Construimos herramientas
para automatizar el proceso
de lanzamiento de software
https://secure.flickr.com/photos/lindseygee/5894617854/
© 2017, Amazon Web Services
Acciones automáticas y
transiciones; desde el
check-in a producción
Beneficios para
desarrolladores:
• Más rápido
• Más seguro
• Consistente &
Estandarizado
• Visualización del proceso
Pipelines
© 2017, Amazon Web Services
Despliegue de servicios
Despliegues sin
downtime
Rastreo de salud
Artefactos versionados y
rollbacks
© 2017, Amazon Web Services
Ciclo de vida del desarrollo de Micro Servicios
desarrolladores pipelines de entregaservicios
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
© 2017, Amazon Web Services
AWS Code Services
Codificación Construcción Pruebas Despliegue
© 2017, Amazon Web Services
AWS Code Services
Codificación Construcción Pruebas Despliegue
AWS CodeCommit
© 2017, Amazon Web Services
AWS CodeCommit
Usa las herramientas de Git
Cifrado en reposo con llaves personalizadas
Escalabilidad, disponibilidad y durabilidad con Amazon S3
git pull/push CodeCommit
Objetos Git
en S3
Indexación en
Amazon
DynamoDB
Llaves de
encripción con
AWS KMS
SSH / HTTPS
© 2017, Amazon Web Services
AWS Code Services
Codificación Construcción Pruebas Despliegue
AWS CodeBuild
© 2017, Amazon Web Services
AWS CodeBuild
Código Fuente Trigger CodeBuild Artefactos
Ningún servidor que administrar o mantener
Bajo costo, pago por uso
Use ambientes de construcción pre configurados o use los suyos
© 2017, Amazon Web Services
AWS Code Services
Codificación Construcción Pruebas Despliegue
AWS CodeDeploy
© 2017, Amazon Web Services
AWS CodeDeploy
Test
CodeDeployv1, v2, v3
Producción
Dev
Revisiones de
la aplicación
Grupos de Despliegue
Facilidad de despliegue
Facilidad de escalamiento
Despliegue a cualquier tipo de servidor (en la nube o en algún centro de
datos local
© 2017, Amazon Web Services
v2 v2 v2 v2 v2 v2
Uno por vez
Mitad por vez
Todos a la vez
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agent Agent
Dev Deployment group
O
Prod Deployment group
Agent
AgentAgent
Agent Agent
Agent
Escoja el grupo y velocidad de despliegue
© 2017, Amazon Web Services
AWS Code Services
Codificación Construcción Pruebas Despliegue
AWS CodePipeline
© 2017, Amazon Web Services
AWS CodePipeline
Construcción
1) Construcción
2) Pruebas
Unitarias
1) Despliegue
2) Pruebas de
Interface
Fuente Beta Producción
1) Despliegue
2) Pruebas de
Carga
Gamma
1) Despliegue Inicial
2) Despliegue Región 1
3) Despliegue Región 2
1) Pull
Fácil integración con herramientas de terceros
Acelere su proceso de despliegue
Valide, de manera consistente, sus despliegues
© 2017, Amazon Web Services
AWS Code Services
Codificación Construcción Pruebas Despliegue
AWS CodeCommit AWS CodeBuild Herramientas de
Terceros
AWS CodeDeploy
AWS CodePipeline
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
Pipeline
Stage
Action
Transition
CodePipeline
MyApplication
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
NotifyDevelopers
Lambda
CodePipeline
MyApplication
Acciones paralelas
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
NotifyDevelopers
Lambda
TestAPI
Runscope
CodePipeline
MyApplication
Acciones
secuenciales
8. Retrieve build artifact
EC2 instance
CodePipeline
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
Source Artifact
S3
Build Artifact
S3
5. Get source artifact
1. Get Changes
6. Store build artifact
3. Poll for Job
4. Acknowledge Job
7. Put Success
9. Deploy build artifact
Elastic Beanstalk
Web container
Java App
MyApplication
Tenemos una fuerte lista de partners aún en crecimiento
Source Build Test Deploy
Integración con servicios AWS
Source Build Invoke Logic Deploy
Amazon S3
AWS CodeCommit
AWS ElasticBeanstalk
AWS CodeDeploy
AWS CloudFormation
AWS OpsWorks
AWS LambdaAWS CodeBuild
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 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 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 Tools
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
© 2017, Amazon Web Services
Lanzando a producción
• Tras haber realizado el build y las pruebas de su código, seguramente
serán realizados algunos despliegues pre-productivos y finalmente es
tiempo de producción!
• Usted querrá pensar en cosas como:
• El impacto en los clientes
• El impacto en la infraestructura
• El impacto en el negocio
• ¿Cómo podemos rastrear esto y comunicar los despliegues?
© 2017, Amazon Web Services
Extienda AWS CodePipeline usando acciones
customizadas
Actualizar tickets Aprovisionar recursos
Actualizar dashboards
Pruebas móviles
Enviar notificaciones • Escaneos de seguridad
© 2017, Amazon Web Services
¿Qué método de extensión debería usar?
Lambda Custom Action
Tareas de corta duración son fáciles de
construir
Puede ejecutar cualquier tipo de trabajo
Tareas de larga duración requieren más
trabajo
Control sobre los links desplegados en la
consola de AWS CodePipeline
Soporte para Node.js, Python, C# y Java Soporte para cualquier lenguaje
Rueda sobre AWS Podría rodar on-premises
No hay que aprovisionar o administrar
servidores
Requiere recursos de cómputo
© 2017, Amazon Web Services
FIN, ACK
• Hemos dado una rápida pasada sobre los beneficios de la Entrega
Continua en el proceso de lanzamiento de software:
• La Integración Continua (build/test) ayuda a reducir de gran manera el
ciclo de retroalimentación
• Podemos presentar software a nuestros usuarios con mucha más
rapidez
• Al movernos rápidamente, podemos de hecho asegurar mayor calidad
• AWS CodePipeline permite la integración con casi cualquier
herramienta o servicio que usted pueda imaginar!
• Además de visualización de lo que está ocurriendo!
¡No olvide llenar su
evaluación!
DevOps en AWS, acelarando el desarrollo de software con Developer Tools

Más contenido relacionado

PPTX
Diseño de arquitectura VPC para modelos operativos empresariales
PDF
Construyendo aplicaciones para IoT con AWS
PDF
DevOps en AWS, acelarando el desarrollo de software
PPTX
Servicios de migración de datos a profundidad
PPTX
Extendiendo su centro de datos a la nube de AWS
PPTX
Servicios de migración de datos a profundidad
PPTX
Servicios de migración de datos a profundidad
PPTX
Servicios de Bases de Datos de AWS
Diseño de arquitectura VPC para modelos operativos empresariales
Construyendo aplicaciones para IoT con AWS
DevOps en AWS, acelarando el desarrollo de software
Servicios de migración de datos a profundidad
Extendiendo su centro de datos a la nube de AWS
Servicios de migración de datos a profundidad
Servicios de migración de datos a profundidad
Servicios de Bases de Datos de AWS

La actualidad más candente (19)

PPTX
Comenzando con Docker en AWS
PPTX
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
PPTX
Cómputo y Almacenamiento en la nube
PPTX
Construyendo aplicaciones de Big Data en AWS
PPTX
Cómputo y Almacenamiento en la nube
PPTX
Cómputo y Almacenamiento en la nube
PPTX
Comenzando con Arquitecturas sin servidores
PPTX
Comenzando con Docker en AWS
PPTX
Extendiendo su centro de datos a la nube de AWS
PPTX
Construyendo aplicaciones de Big Data en AWS
PPTX
Servicios de Bases de Datos de AWS
PPTX
Comenzando con Docker en AWS
PDF
Servicios de almacenamiento de AWS
PPTX
Sistema de Bases de Datos AWS
PDF
Extendiendo su centro de datos a la nube de AWS
PDF
Servicios de migración de datos a profundidad
PDF
Ahorre hasta un 90% en ambientes productivos con instancias spot
PPTX
Ahorre hasta un 90% en ambientes productivos con instancias Spot
PDF
Comenzando con Docker en AWS
Comenzando con Docker en AWS
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
Cómputo y Almacenamiento en la nube
Construyendo aplicaciones de Big Data en AWS
Cómputo y Almacenamiento en la nube
Cómputo y Almacenamiento en la nube
Comenzando con Arquitecturas sin servidores
Comenzando con Docker en AWS
Extendiendo su centro de datos a la nube de AWS
Construyendo aplicaciones de Big Data en AWS
Servicios de Bases de Datos de AWS
Comenzando con Docker en AWS
Servicios de almacenamiento de AWS
Sistema de Bases de Datos AWS
Extendiendo su centro de datos a la nube de AWS
Servicios de migración de datos a profundidad
Ahorre hasta un 90% en ambientes productivos con instancias spot
Ahorre hasta un 90% en ambientes productivos con instancias Spot
Comenzando con Docker en AWS
Publicidad

Similar a DevOps en AWS, acelarando el desarrollo de software con Developer Tools (20)

PPTX
Automatice el proceso de entrega con CI/CD en AWS
PDF
Comenzando a usar el Continuous Delivery
PDF
PPTX
Mejores prácticas de CI / CD para construir aplicaciones modernas
PDF
Técnicas para la Implementación de Desarrollo Continuo en AWS
PDF
Técnicas para implementación de Continuous Delivery en AWS
PPTX
Construir y publicar software de manera más sencilla, confiable y rápida con...
PPTX
AWS Webinar Series Latinoamérica: Modernice sus aplicaciones Windows en AWS
PPTX
Migration Day - Migración de Microsoft a AWS
PPTX
Comenzando con Arquitecturas sin servidores
PDF
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
PPTX
Comenzando con Arquitecturas sin servidores
PPTX
DevOpsDays Madrid 2020 - Audita y evalua la seguridad de tu infraestructura
PDF
PPTX
Xamarin Fest DevOps
PPT
SOA en la Práctica: WCF & WSSF
PPTX
Visual Studio 2017 Launch Event Sevilla
PDF
WorkShop Android + Amazon Web Services
PPTX
Introducción a Azure App Service - MUG Buenos Aires
PPTX
Integración continua en AWS con Docker, ECS y PHP7
Automatice el proceso de entrega con CI/CD en AWS
Comenzando a usar el Continuous Delivery
Mejores prácticas de CI / CD para construir aplicaciones modernas
Técnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para implementación de Continuous Delivery en AWS
Construir y publicar software de manera más sencilla, confiable y rápida con...
AWS Webinar Series Latinoamérica: Modernice sus aplicaciones Windows en AWS
Migration Day - Migración de Microsoft a AWS
Comenzando con Arquitecturas sin servidores
Transformation Track AWS Cloud Experience Argentina - Despegando y Desarrolla...
Comenzando con Arquitecturas sin servidores
DevOpsDays Madrid 2020 - Audita y evalua la seguridad de tu infraestructura
Xamarin Fest DevOps
SOA en la Práctica: WCF & WSSF
Visual Studio 2017 Launch Event Sevilla
WorkShop Android + Amazon Web Services
Introducción a Azure App Service - MUG Buenos Aires
Integración continua en AWS con Docker, ECS y PHP7
Publicidad

Más de Amazon Web Services LATAM (20)

PPTX
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
PPTX
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
PPTX
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
PPTX
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
PPTX
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
PPTX
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
PPTX
Automatize seu processo de entrega de software com CI/CD na AWS
PPTX
Cómo empezar con Amazon EKS
PPTX
Como começar com Amazon EKS
PPTX
Ransomware: como recuperar os seus dados na nuvem AWS
PPTX
Ransomware: cómo recuperar sus datos en la nube de AWS
PPTX
Ransomware: Estratégias de Mitigação
PPTX
Ransomware: Estratégias de Mitigación
PPTX
Aprenda a migrar y transferir datos al usar la nube de AWS
PPTX
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
PPTX
Cómo mover a un almacenamiento de archivos administrados
PPTX
Simplifique su BI con AWS
PPTX
Simplifique o seu BI com a AWS
PPTX
Os benefícios de migrar seus workloads de Big Data para a AWS
PPTX
Los beneficios de migrar sus cargas de trabajo de big data a AWS
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 3 - Protegendo seus dados.
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 3 - Protegendo seus dados.
Automatize seu processo de entrega de software com CI/CD na AWS
Cómo empezar con Amazon EKS
Como começar com Amazon EKS
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigación
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Cómo mover a un almacenamiento de archivos administrados
Simplifique su BI con AWS
Simplifique o seu BI com 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

Último (20)

PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Diapositiva proyecto de vida, materia catedra
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
clase auditoria informatica 2025.........
PPT
Que son las redes de computadores y sus partes
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Sesion 1 de microsoft power point - Clase 1
Diapositiva proyecto de vida, materia catedra
Influencia-del-uso-de-redes-sociales.pdf
clase auditoria informatica 2025.........
Que son las redes de computadores y sus partes
REDES INFORMATICAS REDES INFORMATICAS.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Power Point Nicolás Carrasco (disertación Roblox).pptx
Estrategia de apoyo tecnología miguel angel solis
Propuesta BKP servidores con Acronis1.pptx
historia_web de la creacion de un navegador_presentacion.pptx
Presentación PASANTIAS AuditorioOO..pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
introduccion a las_web en el 2025_mejoras.ppt
Plantilla para Diseño de Narrativas Transmedia.pdf
Estrategia de apoyo tecnología grado 9-3
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx

DevOps en AWS, acelarando el desarrollo de software con Developer Tools

  • 1. DevOps en AWS: Acelerando el desarrollo de software con AWS Developer Tools Henry Alvarado Arquitecto de Soluciones Mayo 25 de 2017
  • 2. © 2017, Amazon Web Services ¿Por qué estamos aquí hoy?
  • 3. © 2017, Amazon Web Services Actualmente, el software se mueve rápidamente La creación y distribución de software es más fácil y más rápido que nunca: Ahora las “Startups” tienen la capacidad de desarrollar, con poco o casi nada de presupuesto Poner a disposición de millones de usuarios el software está al alcance de una descarga Habilidad para moverse rápido es igual a la velocidad de disrupción
  • 4. © 2017, Amazon Web Services El modelo de entrega de software ha cambiado drásticamente • Modelo antiguo de entrega • Nuevo modelo de entrega
  • 5. © 2017, Amazon Web Services Qué herramientas son necesarias para moverse rápido? Tener la capacidad de liberar software en esta época, requiere de múltiples herramientas: Herramientas para gestionar el flujo de liberación de software Herramientas para probar y validar el código, para la identificación de defectos o problemas potenciales Herramientas para desplegar las aplicaciones
  • 6. Primero, necesitamos entender un poco del proceso de lanzamiento de software. https://www.flickr.com/photos/jurvetson/5201796697/
  • 7. © 2017, Amazon Web Services El proceso de liberación de software tiene 4 fases principales: Códificación Construcción Pruebas Despliegue
  • 8. © 2017, Amazon Web Services El proceso de liberación de software tiene 4 fases principales: Códificación Construcción Pruebas Despliegue Código fuente como .java Revisión de código
  • 9. © 2017, Amazon Web Services El proceso de liberación de software tiene 4 fases principales: Códificación Construcción Pruebas Despliegue Código fuente como .java Revisión de código Compilación de código Pruebas unitarias Validación de estilos Métricas de código
  • 10. © 2017, Amazon Web Services El proceso de liberación de software tiene 4 fases principales: Códificación Construcción Pruebas Despliegue Código fuente como .java Revisión de código Compilación de código Pruebas unitarias Validación de estilos Métricas de código Pruebas de integración Pruebas de carga Pruebas de interfase de usuarios Pruebas de penetración
  • 11. © 2017, Amazon Web Services El proceso de liberación de software tiene 4 fases principales: Códificación Construcción Pruebas Despliegue Código fuente como .java Revisión de código Compilación de código Pruebas unitarias Validación de estilos Métricas de código Pruebas de integración Pruebas de carga Pruebas de interfase de usuarios Pruebas de penetración Despliegue a ambientes de producción
  • 12. © 2017, Amazon Web Services Niveles del proceso de liberación de software Codificación Construcción Pruebas Despliegue
  • 13. © 2017, Amazon Web Services Niveles del proceso de liberación de software Codificación Construcción Pruebas Despliegue Integración Continua
  • 14. © 2017, Amazon Web Services Niveles del proceso de liberación de software Codificación Construcción Pruebas Despliegue Integración Continua Entrega Continua
  • 15. © 2017, Amazon Web Services Niveles del proceso de liberación de software Codificación Construcción Pruebas Despliegue Integración Continua Entrega Continua Despliegue Continuo
  • 16. Una mirada atrás del desarrollo en Amazon.. https://secure.flickr.com/photos/pixelthing/15806918992/
  • 17. © 2017, Amazon Web Services Ciclo de vida de despliegue monolítico desarrolladores releasetestbuild pipeline de entregaapp
  • 18. © 2017, Amazon Web Services Transformación del desarrollo en Amazon: 2001-2009 2001 2009 Monolítico Aplicación + Equipos Microservicios + 2 pizza teams
  • 19. Las cosas fueron mucho mejor bajo este modelo y los equipos estaban desarrollando características más rápido que nunca, pero sentimos que aún podíamos mejorar.
  • 20. En 2009, hicimos un estudio para ver donde existían aún ineficiencias
  • 21. © 2017, Amazon Web Services Estábamos simplemente esperando WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod
  • 22. © 2017, Amazon Web Services Estábamos simplemente esperando WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod Mins Días Mins Días Mins Días Mins
  • 23. © 2017, Amazon Web Services Estábamos simplemente esperando WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod Semanas Mins Mins Mins MinsDías Días Días
  • 24. © 2017, Amazon Web Services Semanas Estábamos simplemente esperando WaitWrite Code WaitBuild Code WaitDeploy to Test Deploy to Prod Mins Days Mins Days Mins Days Mins
  • 25. © 2017, Amazon Web Services Construimos herramientas para automatizar el proceso de lanzamiento de software https://secure.flickr.com/photos/lindseygee/5894617854/
  • 26. © 2017, Amazon Web Services Acciones automáticas y transiciones; desde el check-in a producción Beneficios para desarrolladores: • Más rápido • Más seguro • Consistente & Estandarizado • Visualización del proceso Pipelines
  • 27. © 2017, Amazon Web Services Despliegue de servicios Despliegues sin downtime Rastreo de salud Artefactos versionados y rollbacks
  • 28. © 2017, Amazon Web Services Ciclo de vida del desarrollo de Micro Servicios desarrolladores pipelines de entregaservicios releasetestbuild releasetestbuild releasetestbuild releasetestbuild releasetestbuild releasetestbuild
  • 29. © 2017, Amazon Web Services AWS Code Services Codificación Construcción Pruebas Despliegue
  • 30. © 2017, Amazon Web Services AWS Code Services Codificación Construcción Pruebas Despliegue AWS CodeCommit
  • 31. © 2017, Amazon Web Services AWS CodeCommit Usa las herramientas de Git Cifrado en reposo con llaves personalizadas Escalabilidad, disponibilidad y durabilidad con Amazon S3 git pull/push CodeCommit Objetos Git en S3 Indexación en Amazon DynamoDB Llaves de encripción con AWS KMS SSH / HTTPS
  • 32. © 2017, Amazon Web Services AWS Code Services Codificación Construcción Pruebas Despliegue AWS CodeBuild
  • 33. © 2017, Amazon Web Services AWS CodeBuild Código Fuente Trigger CodeBuild Artefactos Ningún servidor que administrar o mantener Bajo costo, pago por uso Use ambientes de construcción pre configurados o use los suyos
  • 34. © 2017, Amazon Web Services AWS Code Services Codificación Construcción Pruebas Despliegue AWS CodeDeploy
  • 35. © 2017, Amazon Web Services AWS CodeDeploy Test CodeDeployv1, v2, v3 Producción Dev Revisiones de la aplicación Grupos de Despliegue Facilidad de despliegue Facilidad de escalamiento Despliegue a cualquier tipo de servidor (en la nube o en algún centro de datos local
  • 36. © 2017, Amazon Web Services v2 v2 v2 v2 v2 v2 Uno por vez Mitad por vez Todos a la vez v2 v2 v2 v1 v1 v1 v2 v1 v1 v1 v1 v1 Agent Agent Dev Deployment group O Prod Deployment group Agent AgentAgent Agent Agent Agent Escoja el grupo y velocidad de despliegue
  • 37. © 2017, Amazon Web Services AWS Code Services Codificación Construcción Pruebas Despliegue AWS CodePipeline
  • 38. © 2017, Amazon Web Services AWS CodePipeline Construcción 1) Construcción 2) Pruebas Unitarias 1) Despliegue 2) Pruebas de Interface Fuente Beta Producción 1) Despliegue 2) Pruebas de Carga Gamma 1) Despliegue Inicial 2) Despliegue Región 1 3) Despliegue Región 2 1) Pull Fácil integración con herramientas de terceros Acelere su proceso de despliegue Valide, de manera consistente, sus despliegues
  • 39. © 2017, Amazon Web Services AWS Code Services Codificación Construcción Pruebas Despliegue AWS CodeCommit AWS CodeBuild Herramientas de Terceros AWS CodeDeploy AWS CodePipeline
  • 43. 8. Retrieve build artifact EC2 instance CodePipeline Source Source GitHub Build JenkinsOnEC2 Jenkins Deploy JavaApp Elastic Beanstalk Source Artifact S3 Build Artifact S3 5. Get source artifact 1. Get Changes 6. Store build artifact 3. Poll for Job 4. Acknowledge Job 7. Put Success 9. Deploy build artifact Elastic Beanstalk Web container Java App MyApplication
  • 44. Tenemos una fuerte lista de partners aún en crecimiento Source Build Test Deploy
  • 45. Integración con servicios AWS Source Build Invoke Logic Deploy Amazon S3 AWS CodeCommit AWS ElasticBeanstalk AWS CodeDeploy AWS CloudFormation AWS OpsWorks AWS LambdaAWS CodeBuild
  • 57. © 2017, Amazon Web Services Lanzando a producción • Tras haber realizado el build y las pruebas de su código, seguramente serán realizados algunos despliegues pre-productivos y finalmente es tiempo de producción! • Usted querrá pensar en cosas como: • El impacto en los clientes • El impacto en la infraestructura • El impacto en el negocio • ¿Cómo podemos rastrear esto y comunicar los despliegues?
  • 58. © 2017, Amazon Web Services Extienda AWS CodePipeline usando acciones customizadas Actualizar tickets Aprovisionar recursos Actualizar dashboards Pruebas móviles Enviar notificaciones • Escaneos de seguridad
  • 59. © 2017, Amazon Web Services ¿Qué método de extensión debería usar? Lambda Custom Action Tareas de corta duración son fáciles de construir Puede ejecutar cualquier tipo de trabajo Tareas de larga duración requieren más trabajo Control sobre los links desplegados en la consola de AWS CodePipeline Soporte para Node.js, Python, C# y Java Soporte para cualquier lenguaje Rueda sobre AWS Podría rodar on-premises No hay que aprovisionar o administrar servidores Requiere recursos de cómputo
  • 60. © 2017, Amazon Web Services FIN, ACK • Hemos dado una rápida pasada sobre los beneficios de la Entrega Continua en el proceso de lanzamiento de software: • La Integración Continua (build/test) ayuda a reducir de gran manera el ciclo de retroalimentación • Podemos presentar software a nuestros usuarios con mucha más rapidez • Al movernos rápidamente, podemos de hecho asegurar mayor calidad • AWS CodePipeline permite la integración con casi cualquier herramienta o servicio que usted pueda imaginar! • Además de visualización de lo que está ocurriendo!
  • 61. ¡No olvide llenar su evaluación!

Notas del editor

  • #18: - when you're working with a monolithic app, you have many developers all pushing changes through a shared release pipeline - this causes frictions at many points of the lifecycle - upfront during development, engineers need to coordinate their changes to make sure they're not making changes that will break someone else's code - if you want to upgrade a shared library to take advantage of a new feature, you need to convince everyone else to upgrade at the same time – good luck with that - and if you want to quickly push an important fix for your feature, you still need to merge it in with everyone else's in process changes - this leads to "merge Fridays", or worse yet "merge weeks", where all the developers have to compile their changes and resolve any conflicts for the next release - even after development, you also face overhead when you're pushing the changes through the delivery pipeline - you need to re-build the entire app, run all of the test suites to make sure there are no regressions, and re-deploy the entire app - to give you an idea of this overhead, Amazon had a central team whose sole job it was to deploy this monolithic app into production - even if you're just making a one-line change in a tiny piece of code you own, you still need to go through this heavyweight process and wait to catch the next train leaving the station - for a fast growth company trying to innovate and compete, this overhead and sluggishness was unacceptable - the monolith became too big to scale efficiently so we made a couple of big changes - one was architectural, and the other was organizational
  • #20: .
  • #28: - one of the first primitives to emerge was Apollo, a name that we clearly borrowed from Nasa - Apollo is the deployment engine for Amazon, everything from the retail site to AWS services - it's how we roll out software changes across our servers - we first launched Apollo over a dozen years ago - in that time we've been continually learning about how to manage deployments and baking that knowledge back into the service - one capability was zero downtime deployments - there's no way we would allow taking the retail site down just to push a software change - Apollo supports rolling out a software change without taking down an application - we also can't let a deployment bug take down the app, so Apollo tracks deployment health and stops bad deployments
  • #29: - with these new tools, we completed the puzzle - the teams were decoupled and they had the tools necessary to efficiently release on their own