AWS Summit Barcelona - Continuous Deployment

87
Continuous Deployment Tiago Henriques Solutions Architect, Amazon Web Services

description

 

Transcript of AWS Summit Barcelona - Continuous Deployment

Page 1: AWS Summit Barcelona - Continuous Deployment

Continuous Deployment

Tiago Henriques

Solutions Architect, Amazon Web Services

Page 2: AWS Summit Barcelona - Continuous Deployment

CONTINUOUS

INTEGRATION

Page 3: AWS Summit Barcelona - Continuous Deployment

DEVELOPER

Page 4: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

Page 5: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

Page 6: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

Page 7: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

PICK

TASKS

Page 8: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

SUBMIT

CODE

Page 9: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

SCHEDULE

BUILD

Page 10: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

RECURRENT

BUILDS

Page 11: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

CODE

FETCH

Page 12: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

CODE QUALITY

TESTS

TEST

RESULTS

Page 13: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

BUILD OUTPUT

Page 14: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

DOCS

BINARIES

& PACKAGES

Page 15: AWS Summit Barcelona - Continuous Deployment
Page 16: AWS Summit Barcelona - Continuous Deployment

SOURCE CODE

REPOSITORY

DNS

CONTINUOUS

INTEGRATION SERVER

PROJECT

MANAGEMENT SERVER

BUILDS

Page 17: AWS Summit Barcelona - Continuous Deployment

PAIN POINTS • UNIT TESTS INCOMPLETE

• MOCK TESTS MAINTENANCE

• EXPENSIVE TEST ENVIRONMENT

• TEST ENVIRONMENT ≠ PRODUCTION

• DEPLOYMENT CYCLES

Page 18: AWS Summit Barcelona - Continuous Deployment

ON-DEMAND

PAY AS YOU GO

ELASTIC

Page 19: AWS Summit Barcelona - Continuous Deployment

=

PROGRAMMABLE

PLATFORM

Page 20: AWS Summit Barcelona - Continuous Deployment
Page 21: AWS Summit Barcelona - Continuous Deployment
Page 22: AWS Summit Barcelona - Continuous Deployment
Page 23: AWS Summit Barcelona - Continuous Deployment

IF YOU CAN PROGRAM IT

YOU CAN AUTOMATE IT

Page 24: AWS Summit Barcelona - Continuous Deployment

AWS

CLOUDFORMATION STACK-BASED DEPLOYMENT

SERVICE

Page 25: AWS Summit Barcelona - Continuous Deployment

CLOUDFORMATION

TEMPLATE

Page 26: AWS Summit Barcelona - Continuous Deployment
Page 27: AWS Summit Barcelona - Continuous Deployment

{ "Description" : "Create RDS with username and password", "Resources" : { "MyDB" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "AllocatedStorage" : "500", "DBInstanceClass" : "db.m1.small", "Engine" : "MySQL", "EngineVersion" : "5.5", "MasterUsername" : "MyName", "MasterUserPassword" : "MyPassword" } } } }

Page 28: AWS Summit Barcelona - Continuous Deployment

"AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "mysql" : [], "mysql-server" : [], "httpd" : [], "php" : [], "php-mysql" : [] } }, "sources" : { "/var/www/html" : "https://s3.amazonaws.com/my-builds/build-v4.zip" } }

Page 29: AWS Summit Barcelona - Continuous Deployment

{ "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance", "Type" : "String" } }, }

Page 30: AWS Summit Barcelona - Continuous Deployment

CLOUDFORMATION

TEMPLATE

PROCEDURAL

DEFINITION Create it programmatically

KNOWN

CONFIGURATION Store stack configuration in

source control

PARAMETER

DRIVEN Dynamic and user-driven

templates

COLLABORATION Share templates with ease

as just files

Page 31: AWS Summit Barcelona - Continuous Deployment
Page 32: AWS Summit Barcelona - Continuous Deployment

APPLICATION

VERSIONS

+ INFRASTRUCTURE

VERSIONS

Page 33: AWS Summit Barcelona - Continuous Deployment

CLOUDFORMATION

TEMPLATE

Page 34: AWS Summit Barcelona - Continuous Deployment
Page 35: AWS Summit Barcelona - Continuous Deployment
Page 36: AWS Summit Barcelona - Continuous Deployment
Page 37: AWS Summit Barcelona - Continuous Deployment
Page 38: AWS Summit Barcelona - Continuous Deployment

HTTP://SORCERY.SMUGMUG.COM/

Page 39: AWS Summit Barcelona - Continuous Deployment

TEST ENVIRONMENTS

Page 40: AWS Summit Barcelona - Continuous Deployment

30,000 REQUESTS / SECOND

1 TB TRAFFIC / DAY

Page 41: AWS Summit Barcelona - Continuous Deployment

“…AWS seemed to be the best solution available to allow a small, independent company to rapidly develop and test a completely new infrastructure, and host it. We also loved the flexibility that AWS allowed us, when spinning up smaller test environments, for beta trials, QA, localization, and during development. The low initial cost was also crucial.” Alex Evans, CTO

Page 42: AWS Summit Barcelona - Continuous Deployment

LOAD TESTING

Page 43: AWS Summit Barcelona - Continuous Deployment
Page 44: AWS Summit Barcelona - Continuous Deployment
Page 45: AWS Summit Barcelona - Continuous Deployment
Page 46: AWS Summit Barcelona - Continuous Deployment
Page 47: AWS Summit Barcelona - Continuous Deployment
Page 48: AWS Summit Barcelona - Continuous Deployment

USING AMAZON EC2 TO SIMULATE

2.4 MILLION PLAYERS

Page 49: AWS Summit Barcelona - Continuous Deployment

CONTINUOUS

DEPLOYMENT SMALL, FREQUENT CHANGES

CONSTANTLY INTEGRATING INTO

PRODUCTION

Page 50: AWS Summit Barcelona - Continuous Deployment
Page 51: AWS Summit Barcelona - Continuous Deployment

KEY = ITERATION

Page 52: AWS Summit Barcelona - Continuous Deployment

ITERATION

= MODIFY THE SYSTEM TO BETTER

MEET THE EXPECTATIONS OF

YOUR USERS

Page 53: AWS Summit Barcelona - Continuous Deployment

11.6s

Mean time

between

deployments

(weekday)

1,079

Max number of

deployments in a

single hour

10,000

Mean number of

hosts

simultaneously

receiving a

deployment

30,000

Max number of

hosts

simultaneously

receiving a

deployment

DEPLOYMENTS AT

AMAZON.COM

Page 54: AWS Summit Barcelona - Continuous Deployment

SOFTWARE DEPLOY

≠ PRODUCT LAUNCH

Page 55: AWS Summit Barcelona - Continuous Deployment
Page 56: AWS Summit Barcelona - Continuous Deployment

1.5 BILLION PAGE VIEWS

OCTOBER 2012

$83 MILLION IN TRANSACTIONS

4.2 MILLION ITEMS SOLD

Page 57: AWS Summit Barcelona - Continuous Deployment

30 DEPLOYS PER DAY 1 DEPLOY EVERY 20 MINUTES

Page 58: AWS Summit Barcelona - Continuous Deployment

"Production is truly the only place you

can validate your code."

Page 59: AWS Summit Barcelona - Continuous Deployment
Page 60: AWS Summit Barcelona - Continuous Deployment
Page 61: AWS Summit Barcelona - Continuous Deployment
Page 62: AWS Summit Barcelona - Continuous Deployment

AWS OPSWORKS INTEGRATED APPLICATION

MANAGEMENT

Page 63: AWS Summit Barcelona - Continuous Deployment
Page 64: AWS Summit Barcelona - Continuous Deployment

14 BILLION REQUESTS/MONTH

50 000 DATABASE UPDATES / SEC

NO CACHE

Page 65: AWS Summit Barcelona - Continuous Deployment

A / B TESTING

Page 66: AWS Summit Barcelona - Continuous Deployment
Page 67: AWS Summit Barcelona - Continuous Deployment
Page 68: AWS Summit Barcelona - Continuous Deployment
Page 69: AWS Summit Barcelona - Continuous Deployment
Page 70: AWS Summit Barcelona - Continuous Deployment

DATA-DRIVEN

ARCHITECTURES

Page 71: AWS Summit Barcelona - Continuous Deployment

METRICS @ETSY

Page 72: AWS Summit Barcelona - Continuous Deployment

COST-ORIENTED

ARCHITECTURES

Page 73: AWS Summit Barcelona - Continuous Deployment

PHP+APACHE+VARNISH

NGINX+NODEJS

Page 74: AWS Summit Barcelona - Continuous Deployment
Page 75: AWS Summit Barcelona - Continuous Deployment

CONTINUOUS

INTEGRATION

CONTINUOUS

DEPLOYMENT

Page 76: AWS Summit Barcelona - Continuous Deployment

Continuous Deployment

Tiago Henriques

Solutions Architect, Amazon Web Services

Page 77: AWS Summit Barcelona - Continuous Deployment

CONTINUOUS

DEPLOYMENT

=

CONTINUOUS

EXPERIMENTATION

Page 78: AWS Summit Barcelona - Continuous Deployment

CONTINUOUS

DEPLOYMENT

=

CONTINUOUS

IMPROVEMENT

Page 79: AWS Summit Barcelona - Continuous Deployment

INNOVATE

Page 80: AWS Summit Barcelona - Continuous Deployment

« Want to increase innovation?

Lower the cost of failure »

Joi Ito

Page 81: AWS Summit Barcelona - Continuous Deployment

SPEED AND AGILITY

Experiment

Often

Fail quickly at

a low cost

More

Innovation

Experiment

Infrequently

Failure is

expensive

Less

Innovation

“ON-PREMISE”

Page 82: AWS Summit Barcelona - Continuous Deployment

TEST ENVIRONMENTS ON DEMAND

Page 83: AWS Summit Barcelona - Continuous Deployment

ODIGEO GROUP ODIGEO Group, creado en Julio 2011, está formado por eDreams, GO Voyages, Opodo y Travellink. ODIGEO Group actualmente opera y ofrece sus servicios en un total de 38 paises. En 2011, servimos conjuntamente 14 milliones de clientes y 3.9 Billion en Reservas. Somos más de 1400 empleados. Y más de 300 empleados en el equipo de IT. Más de 80 nuevos miebrss en el equipo de IT en el último año.

Page 84: AWS Summit Barcelona - Continuous Deployment

CI

• CI Server

• Plugin jenkins – Amazon EC2

• VCS: SVN y Bitbucket.

• 1 job por rama de desarrollo.

• Cada commit lanza una ejecución de los jobs.

• La CI está compuesta por:

• Métricas de calidad.

• Test unitarios.

• Test automáticos.

• Publicación de artefactos.

Page 85: AWS Summit Barcelona - Continuous Deployment

Entornos de test Problema

Requerimientos

• Incremento del equipo de IT

• No disponibilidad de entornos de test.

• Creación de los entornos bajo demanda.

• Gestión de los entornos por los usuarios.

• Los entornos sin actividad se deben autodestruir.

• Sin límite de entornos de test concurrentes.

• Start/Stop automáticos.

Page 86: AWS Summit Barcelona - Continuous Deployment

QAM Solución

• Amazon EC2

• Tenemos una ami con la configuración del entorno.

• Configuración por puppet del entorno.

• La versión de software se descarga de Nexus.

• Aplicación de gestión desarrollada en colaboración

con Celingest

• Gestión de usuarios.

• Auditaría del uso y consumo.

• Control de instancias, número y tiempo.

Page 87: AWS Summit Barcelona - Continuous Deployment