+ All Categories
Home > Technology > Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Date post: 13-Jan-2015
Category:
Upload: amazon-web-services
View: 2,325 times
Download: 0 times
Share this document with a friend
Description:
With AWS companies now have the ability to develop and run their applications with speed and flexibility like never before. Working with an infrastructure that can be 100% API driven enables businesses to use lean methodologies and realize these benefits. This in turn leads to greater success for those who make use of these practices. In this presentation we'll talk about some key concepts and design patterns for Continuous Deployment and Continuous Integration, two elements of lean development of applications and infrastructures. Carlos Conde, Manager, Solution Architecture, AWS Neil Jennings, Lead Architect, Orange Digital
Popular Tags:
93
Continuous Deployment Practices on AWS Carlos Conde Sr. Mgr. Solutions Architecture
Transcript
Page 1: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Continuous Deployment Practices on AWS

Carlos Conde

Sr. Mgr. Solutions Architecture

Page 2: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CONTINUOUS

INTEGRATION

Page 3: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

DEVELOPER

Page 4: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

Page 5: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

Page 6: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

Page 7: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

PICK

TASKS

Page 8: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

SUBMIT

CODE

Page 9: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

SCHEDULE

BUILD

Page 10: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

RECURRENT

BUILDS

Page 11: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

CODE

FETCH

Page 12: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

CODE QUALITY

TESTS

TEST

RESULTS

Page 13: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

BUILD OUTPUT

Page 14: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

PROJECT MANAGEMENT

SERVER

CONTINUOUS

INTEGRATION SERVER

DOCS

BINARIES

& PACKAGES

Page 15: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 16: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOURCE CODE

REPOSITORY

DNS

CONTINUOUS

INTEGRATION SERVER

PROJECT

MANAGEMENT SERVER

BUILDS

Page 17: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

PAIN POINTS • UNIT TESTS INCOMPLETE

• MOCK TESTS MAINTENANCE

• EXPENSIVE TEST ENVIRONMENT

• TEST ENVIRONMENT ≠ PRODUCTION

• DEPLOYMENT CYCLES

Page 18: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

ON-DEMAND

PAY AS YOU GO

ELASTIC

Page 19: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

=

PROGRAMMABLE

PLATFORM

Page 20: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 21: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 22: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 23: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

IF YOU CAN PROGRAM IT

YOU CAN AUTOMATE IT

Page 24: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CUSTOMER STORY Neil Jennings – Orange Digital Lead Architect

Page 25: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Credit: nicholsoncartoons.com.au

Page 26: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 27: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Control via Configuration

AWS CloudFormation

Page 28: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Control via Configuration

Page 29: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Automate deployment

S3 Bucket

Page 30: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Automate deployment

S3 Bucket

Page 31: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Automated

1 hour

Page 32: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

What’ s Next?

New Tools Better Testing

Feature Flags

Continuous Deployment

Page 33: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

Thanks Neil Jennings

@furbing

Page 34: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 35: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 36: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 37: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 38: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

HTTP://SORCERY.SMUGMUG.COM/

Page 39: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

AWS

CLOUDFORMATION STACK-BASED DEPLOYMENT

SERVICE

Page 40: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CLOUDFORMATION

TEMPLATE

Page 41: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 42: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

{ "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 43: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

"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 44: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

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

Page 45: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

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 46: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 47: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

APPLICATION

VERSIONS

+ INFRASTRUCTURE

VERSIONS

Page 48: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CLOUDFORMATION

TEMPLATE

Page 49: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

TEST ENVIRONMENTS

Page 50: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 51: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

30,000 REQUESTS / SECOND

1 TB TRAFFIC / DAY

Page 52: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

“…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 53: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

LOAD TESTING

Page 54: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 55: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 56: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 57: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 58: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 59: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

USING AMAZON EC2 TO SIMULATE

2.4 MILLION PLAYERS

Page 60: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CONTINUOUS

DEPLOYMENT SMALL, FREQUENT CHANGES

CONSTANTLY INTEGRATING INTO

PRODUCTION.

Page 61: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 62: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

KEY = ITERATION

Page 63: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

ITERATION

= MODIFY THE SYSTEM TO BETTER

MEET THE EXPECTATIONS OF

YOUR USERS

Page 64: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

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 65: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SOFTWARE DEPLOY

≠ PRODUCT LAUNCH

Page 66: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 67: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

1.5 BILLION PAGE VIEWS

OCTOBER 2012

$83 MILLION IN TRANSACTIONS

4.2 MILLION ITEMS SOLD

Page 68: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

30 DEPLOYS PER DAY 1 DEPLOY EVERY 20 MINUTES

Page 69: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

"Production is truly the only place you

can validate your code."

Page 70: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 71: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 72: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 73: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 74: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

AWS OPSWORKS INTEGRATED APPLICATION

MANAGEMENT

Page 75: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 76: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

14 BILLION REQUESTS/MONTH

50 000 DATABASE UPDATES / SEC

NO CACHE

Page 77: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

A / B TESTING

Page 78: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 79: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 80: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 81: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 82: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

DATA-DRIVEN

ARCHITECTURES

Page 83: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

METRICS @ETSY

Page 84: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

COST-ORIENTED

ARCHITECTURES

Page 85: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

PHP+APACHE+VARNISH

NGINX+NODEJS

Page 86: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Page 87: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CONTINUOUS

INTEGRATION

CONTINUOUS

DEPLOYMENT

Page 88: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CONTINUOUS

DEPLOYMENT

=

CONTINUOUS

EXPERIMENTATION

Page 89: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

CONTINUOUS

DEPLOYMENT

=

CONTINUOUS

IMPROVEMENT

Page 90: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

INNOVATE

Page 91: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

« Want to increase innovation?

Lower the cost of failure »

Joi Ito

Page 92: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

SPEED AND AGILITY

Experiment

Often

Fail quickly at

a low cost

More

Innovation

Experiment

Infrequently

Failure is

expensive

Less

Innovation

“ON-PREMISE”

Page 93: Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

THANK YOU Continuous Deployment Practices on AWS


Recommended