aws qconsf 2011 jvaria - software development conference · pdf filetesting antunit , cucumber...

102
Cloud-Powered Continuous Integration and Deployment Jinesh Varia [email protected] @jinman

Upload: dangxuyen

Post on 06-Feb-2018

221 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Cloud-PoweredContinuous Integration and

Deployment

Jinesh Varia

[email protected]

@jinman

Page 2: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

About Me

Jinesh Varia@jinman

[email protected]/in/jinman

http://jinesh.varia.in

Page 3: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

“Cloud Architectures”

“Cloud Best Practices aws”

“Cloud Migration aws”

Page 4: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Customer is the center of our universe

Page 5: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Requirements gathering

Development and Check In

Test and QA Release

Page 6: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Learning from customers

Some Learning

Lots of Learning

Requirements gathering

Development and Check In

Test and QA Release

Page 7: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Learning from customers

Little or no Learning

Requirements gathering

Development and Check In

Test and QA Release

Page 8: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Learning from customers

Requirements gathering

Development and Check In

Test and QA Release

Cycle Time

Page 9: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Learning from customers

Requirements gathering

Release

Page 10: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Reduce the cycle time

Requirements gathering

Release

Page 11: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Learn faster

Requirements gathering

Automation+

CloudRelease

… while keeping your costs low

Page 12: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous

Integration

Continuous

Deployment

Continuous

Optimization

Cloud-powered Continuous Delivery

Page 13: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous

Integration

Cloud-powered Continuous Integration

Goal: to have a working state of the code at any given time

Benefit: Fix bugs earlier when they are cheaper to fix

Metric: New guy can check out and compile at first day at job

Page 14: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Poka yo-ke (ポカヨケ)

Page 15: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Martin FowlerPaul DuvallJez HumbleDavid FarleyMatt GrahamMichael Nygard…..…..

Page 16: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

1. Keep absolutely everything in version control2. Commit early and commit often3. Always check in to trunk and avoid branching4. Take responsibility if your check in breaks the build5. Automate the build, test, deploy process6. Be prepared to stop the mainline when/if build breaks7. Create a comprehensive automated test suite8. Only one way deploy and everybody uses that same way9. Be prepared to revert to the previous revision10.Continuously improve collaboration and increase speed of feedback

Page 17: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Testing and Deployment

Automate Everything

Page 18: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated
Page 19: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Application Containers - JBoss, Tomcat, IIS, Mongrel. NOTE: there are so many app containers, I'm not going

to try to list all of them.

Build Tools - Ant, AntContrib, NAnt, MSBuild, Buildr, Gant, Gradle, make, Maven, RakeCode Review - CrucibleCode Insight - FisheyeContinuous Integration - Bamboo, Jenkins, AntHill Pro, Go, TeamCity, TFS 2010Database - Hibernate, MySQL, Liquibase, Oracle, PostgreSQL, SQL Server, SimpleDB, SQL Azure, Ant, MongoDBDatabase Change Management - dbdeploy, LiquibaseData Center Configuration Automation - Capistrano, Cobbler, BMC Bladelogic, CFEngine, IBM Tivoli Provisioning Manager, Puppet, Chef, Bcfg2, AWS Cloud Formation, Windows Azure AppFabric NOTE: There

are many names and overlap for this tool "category".

Dependency Management - Ivy, Archiva, Nexus, Artifactory, BundlerDeployment Automation - Java Secure Channel, ControlTier, Altiris, Capistrano, Fabric, FuncInformation Sharing - Confluence, Google AppsInstaller - InstallShield, IzPackIntegrated Development Environment (IDE) - Eclipse, IDEA, Visual StudioIssue Tracking - Greenhopper, JIRAMulti-Type - rPathPasswords - PassPack, PasswordSafeProtected Configuration - ESCAPE, ConfigGenProject Management - JIRA, Pivotal Tracker, SmartSheetProvisioning - JEOS, BoxGrinder, CLIP, Eucalyptus, AppLogicReporting/Documentation - Doxygen, Grand, GraphViz, JavaDoc, NDoc, SchemaSpy, UmlGraphStatic Analysis - CheckStyle, Clover, Cobertura, FindBugs, FxCop, JavaNCSS, JDepend, PMD, Sonar, SimianSystems Monitoring - CloudKick, Nagios, Zabbix, ZenossTesting AntUnit, Cucumber, DbUnit, webrat, easyb, Fitnesse, JMeter, JUnit, NBehave, SoapUI, Selenium, RSpec,SauceLabsVersion-Control System - SVN/Subversion, git, Perforce

Paul Duvall’s Blog http://blog.stelligent.com/integrate-button/2011/03/list-of-software-tools-for-continuous-delivery-in-the-cloud.html

Page 20: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated
Page 21: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Discipline

Page 22: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Version Control

Developer

<code>

CI Server Build Slave

Build SlaveBuild Slave

Distributed Builds

Page 23: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

EBS Root Volume

EC2 Instance AMI

EBS Snapshot

EBS Volume

EC2 Instance

createImage() RunInstances() StopInstances()

StartInstances()TerminateInstances()

Stop v/s Terminate

Page 24: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated
Page 25: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated
Page 26: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Amazon S3Bucket

AZ-1

Region

Elastic LoadBalancer

Amazon CloudWatch

Alarms

Amazon SNSNotifications

www.yourApp.com

Amazon SimpleDBDomains

Amazon Route 53Hosted Zone

Auto Scaling Group

AZ-1

App Tier

ElastiCache TierAmazon SES

Email

Amazon CloudFront

media.yourApp.com(Static data)

Amazon RDS

Amazon EC2Instances

Page 27: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Amazon S3Bucket

AZ-1

Region

Elastic LoadBalancer

Amazon CloudWatch

Alarms

Amazon SNSNotifications

www.yourApp.com

Amazon SimpleDBDomains

Amazon Route 53Hosted Zone

Auto Scaling Group

AZ-1

App Tier

ElastiCache TierAmazon SES

Email

Amazon CloudFront

media.yourApp.com(Static data)

Amazon RDS

Amazon EC2Instances

AWS CloudFormation JSON Template

Page 28: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

AWS CloudFormation JSON Template

Version Control

Update Stack

Page 29: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Version ControlVersion Control

CI Server

CI Server

Package Builder

Package Builder

Deploy ServerDeploy ServerCommit to

Git/masterDev

PullCode

AMIs

Send Build Report to DevStop everything if build failed

Distributed BuildsRun Tests in parallel

Staging Env

Test Env

CodeConfigTests

Prod Env

Push

Config InstallCreate

Repo

CloudFormation Templates for Env

Generate

Cloud Continuous Integration

Page 30: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

• Know exactly which version (and configuration) is currently in

Test, Staging and Prod.

• Fast deployments with pre-configured AMIs and CF templates

• Easy to reproduce bugs by cloning the deployment into Test

Environment

• Easy to spin up environments for ad-hoc requests from sales

and marketing

• Poka-yoke design: Only one way to deploy

Cloud Continuous Integration

Page 31: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Build Job does the following:build the artifact, publish it to Artifactory, build the package, publish the package to the repo.

Then there is a follow on job that mounts a base OS image, installs the packages and then creates the final AMI.

Source: http://techblog.netflix.com/2011/08/building-with-legos.html

Page 32: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

“TestOps”

Page 33: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

• Load Tests

• Web Performance Tests

• Usability Tests

• Unit Tests

• Regression Tests

• Acceptance Tests

• Functional Tests

• Integration Tests

• Capacity Tests

• System Tests

Automated Testing in Parallel

Page 34: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

PROD

Very Large Server

Storage

Bob Test

Very Small Server

Storage

Ted Test

Very Small Server

Storage

Mary Test

Very Small Server

Storage

7 AM6 PM

RDS Snapshots – Test something quickly

Page 35: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous

Integration

Continuous

Deployment

Cloud-powered Continuous Deployment

Page 36: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Cloud-powered Continuous Deployment

Goal: 1-click deploy and 1-click rollback

Benefit: Release early, release often and iterate quickly

Metric: fast feedback of your feature

Continuous

Deployment

Page 37: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated
Page 38: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Software Inventory is lost revenue

Page 39: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated
Page 40: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Mean Time between deployments (weekday)

Max # of deployments in a single hour

Mean # of hosts simultaneously receiving a deployment

Max # of hosts simultaneously receiving a deployment

Amazon May Continuous Deployment Stats(production hosts and environments only)

11.6Seconds

1079

10000

30000

Page 41: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

The need for speed

Page 42: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

« Want to increase innovation? Lower the cost of failure »

Joli Ito

Page 43: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Break your problem into small batches

Small deployments

Incremental changes

Easy rollbacks

Page 44: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Virtual Images = Real Productivity Gain

Centos

Ruby Runtime

Your Code

logger

RubyGems

memcached

Rails

Mongrel

Apache

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Windows

.NET

Your Code

Log4Net

Spring.NET

nHibernate

ASP.NET MVC

ASP.NET

IIS

Centos

Ruby Runtime

Your Code

logger

RubyGems

memcached

Rails

Mongrel

Apache

OS

Framework

Your Code

Libraries

Packages

DB Caching

MVC

App Server

Web Server

Java Stack .NET Stack RoR stack

Page 45: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Push to an AMI or Pull from an Instance

Inventory of AMIsInventory of AMIs

Golden AMI and Fetch binaries on boot

Golden AMI and Fetch binaries on boot

JeOS AMI and library of recipes (install scripts)JeOS AMI and library of recipes (install scripts)

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Linux

JEE

Your Code

Log4J

Spring

Hibernate

Struts

Tomcat

Apache

Amazon EC2

n

u

x

L

i

n

u

x

E

J

E

E

u

r

C

o

d

e

Y

o

u

r

C

o

d

eg

4

J

L

o

g

4

J

r

i

n

g

S

p

r

i

n

g

b

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

r

u

t

s

S

t

r

u

t

s

m

c

a

t

T

o

m

c

a

t

a

c

h

e

A

p

a

c

h

e

n

u

x

L

i

n

u

x

E

J

E

E

u

r

C

o

d

e

Y

o

u

r

C

o

d

eg

4

J

L

o

g

4

J

r

i

n

g

S

p

r

i

n

g

b

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

r

u

t

s

S

t

r

u

t

s

m

c

a

t

T

o

m

c

a

t

a

c

h

e

A

p

a

c

h

e

n

u

x

L

i

n

u

x

E

J

E

E

u

r

C

o

d

e

Y

o

u

r

C

o

d

eg

4

J

L

o

g

4

J

r

i

n

g

S

p

r

i

n

g

b

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

r

u

t

s

S

t

r

u

t

s

m

c

a

t

T

o

m

c

a

t

a

c

h

e

A

p

a

c

h

e

n

u

x

L

i

n

u

x

E

J

E

E

u

r

C

o

d

e

Y

o

u

r

C

o

d

eg

4

J

L

o

g

4

J

r

i

n

g

S

p

r

i

n

g

b

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

r

u

t

s

S

t

r

u

t

s

m

c

a

t

T

o

m

c

a

t

a

c

h

e

A

p

a

c

h

e

Amazon EC2 Amazon EC2

Your Code

Amazon S3

Log4J

Spring

Struts

Linux

JEE

Hibernate

Tomcat

Apache

Linux

JEE

Your Code

Amazon S3

Hibernate

Tomcat

Log4J

Spring

Struts

Apache

u

x

L

i

n

u

x

J

E

E

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

c

a

t

T

o

m

c

a

t

c

h

e

A

p

a

c

h

e

u

x

L

i

n

u

x

J

E

E

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

c

a

t

T

o

m

c

a

t

c

h

e

A

p

a

c

h

e

u

x

L

i

n

u

x

J

E

E

e

r

n

a

t

e

H

i

b

e

r

n

a

t

e

c

a

t

T

o

m

c

a

t

c

h

e

A

p

a

c

h

e

Linux

JEE

Linux

JEEPuppet

CHEF

Puppet

Chef/puppet

scripts

Java AMI

Java App Stack

Java AMIJeOS AMI

Fetch on boot

Fetch on bootFetch on boot

Frozen Pizza Model Take N Bake Pizza Model Made to order Pizza Model

Page 46: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Version ControlVersion Control

CI Server

CI Server

Deploy ServerDeploy ServerCommit to

Git/masterDev

PullCode

Send Build Report to DevStop everything if build failed

BuildRun Tests

CodeConfigTests

CloudFormationTemplates

Package Builder

Package Builder

Push

Config

Repo

Base AMIs

Instances

ScriptsCloud-init

Cloud Continuous Deployment (Simple)

Page 47: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

"UserData": {

"Fn::Base64": {

"Fn::Join": [

"",

[

"#!/bin/bash -ex\n",

"yum -y install git-core\n",

"yum -y install php-pear\n",

"pear install Crypt_HMAC2-1.0.0\n",

"pear install HTTP_Request-1.4.4\n",

"pear channel-discover

pear.amazonwebservices.com\n",

"pear install aws/sdk\n",

Page 48: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

"AppDatabase": {"Type":

"AWS::CloudFormation::Stack",

"Metadata": { … },

"Properties": {

"TemplateURL": {

"Fn::Join": [

"/",

[

{ … },

"RDS_MySQL_55.template"

]

]

},

Page 49: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Version ControlVersion Control

CI Server

CI Server

Deploy ServerDeploy ServerCommit to

Git/masterDev

PullCode

Send Build Report to DevStop everything if build failed

BuildRun Tests

CodeConfigTests

CloudFormationTemplates

Chef Server(config, package dependencies)

Puppet Master (Manifest, config and mappings)

Chef SPuppet M

Chef SPuppet M

Push

ConfigNew Code

Reports

Base AMIs

ManagedInstances

Scriptsrecipes

Cloud Continuous Deployment

Page 50: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

AWS Region

Availability Zone 2

Availability Zone 3

Availability Zone 1

Deploy ServerDeploy Server

Automate deployment to multiple Availability Zones (Fault Tolerant Zones)

Page 51: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Blue Green Deployments

Page 52: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.1

v1.1 v1.1

v1.2

v1.2

v1.2

v1.2

Monitoring(CloudWatch)

High Error Rate

Page 53: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Auto Scaling Group (Min, Max # of instances, Availability Zones .. )Health Check (Maintain Min # active…)Launch Configuration (AMIID, Instance type, UserData, Security Groups..)Scaling Trigger (Metric, Upper Threshold, Lower Threshold, Time interval …)Types of Scaling (Scale by Schedule, Scale by Policy)Alarm (Notification Email, SMS, SQS, HTTP)Availability Zones and Regions

Auto Scaling

Page 54: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

“Auto scaling”Web Server Fleet

(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.1

v1.1 v1.1

v1.2

v1.2

v1.2

v1.2

Auto scalingMax instancesMin instancesScaling TriggerCustom MetricsUpper ThresholdLower ThresholdIncrement by

Page 55: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Dark Launches with feature flags

Deploy != Product Launch

Page 56: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

v1.1 v1.1

v1.1 v1.1

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.1

v1.1 v1.1

v1.2

v1.2

HappyPath v1.1

New featureCode Path v1.2

Feature = ONrequest

Page 57: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Dialing up

A B

Control Treatment

Page 58: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2

99% 1%v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

Page 59: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

90% 10%v1.2

v1.2

Page 60: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

v1.2

v1.2

70% 30%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Page 61: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

v1.2

v1.2

70% 30%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Monitoring(CloudWatch)

High Error Rate

Rollback

Page 62: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

…..

A/B Testing Service

90% 10%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Rollback

Dev, Test

Page 63: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

v1.2

v1.2

70% 30%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Page 64: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1 v1.1

v1.1 v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

v1.2

v1.2

50% 50%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Page 65: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1 v1.1

v1.1 v1.1 v1.1

v1.1 v1.1

v1.1 v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

v1.2

v1.2

30% 70%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Page 66: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.2v1.1

v1.1 v1.1

v1.1 v1.1

v1.1

v1.2

…..

v1.2

v1.2

A/B Testing Service

v1.2

v1.2

5% 95%v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

v1.2

Page 67: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Split Users by multiple experiments

AA BB

Control Treatment 1

C DD

Treatment 2 Treatment 3

Page 68: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

v1.1 v1.1

v1.1 v1.1

Web Server Fleet(Amazon EC2)

Database Fleet(RDS or DB on EC2)

Load Balancing(ELB)

v1.1 v1.1

v1.1 v1.1

v1.2

v1.2

90% 5%

v1.2.1

v1.2.1

3%

v1.2.2

v1.2.2

2%

Page 69: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Blue Green Deployments : RDBMS?

Mastering the Tradeoffs:

1. Hot deployment techniques

2. Simple Backup and Restore (RDS User-initiated Snapshots)

3. Break huge jobs into series of multiple backward-compatible tasks and decouple Application deployment and DB migration

Page 70: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Timeline

V2.1

Example

ID NAME ADDRESS ORDERID (Char)

23234 Joe Doe xxx 333424

45322 Rob Smith xxxx 234

2342342 Jane Smith xxxx 23424

2342265 Anne Lee xxxx 2342425

Page 71: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Timeline

DBV1.1

V2.1

6 Steps

1. Add a new column

ID NAME ADDRESS ORDERID ORDERID_INT

23234 Joe Doe xxx 333424

45322 Rob Smith xxxx 234

2342342 Jane Smith xxxx 23424

2342265 Anne Lee xxxx 2342425

Example

Page 72: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Deployment Timeline

DBV1.1

V2.1

6 Steps

1. Add a new column

2. Change all software to write to both columns (old and new)

ID NAME ADDRESS ORDERID ORDERID_INT

23234 Joe Doe xxx 333424

45322 Rob Smith xxxx 234

2342342 Jane Smith xxxx 23424

2342265 Anne Lee xxxx 2342425

3632342 Mark Fox cxxxx 567890 567890

Example

Page 73: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Deployment Timeline

DBV1.1

V2.1

6 Steps

1. Add a new column

2. Change all software to write to both columns (old and new)

3. Migrate the old column data to new column (for older rows)

ID NAME ADDRESS ORDERID ORDERID_INT

23234 Joe Doe xxx 333424 333424

45322 Rob Smith xxxx 234 234

2342342 Jane Smith xxxx 23424 23424

2342265 Anne Lee xxxx 2342425 2342425

3632342 Mark Fox cxxxx 567890 567890

DBV1.2

Example

Page 74: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Deployment Timeline

DBV1.1

V2.1

6 Steps

1. Add a new column

2. Change all software to write to both columns (old and new)

3. Migrate the old column data to new column (for older rows)

4. Change all software to read from the new column

ID NAME ADDRESS ORDERID ORDERID_INT

23234 Joe Doe xxx 333424 333424

45322 Rob Smith xxxx 234 234

2342342 Jane Smith xxxx 23424 23424

2342265 Anne Lee xxxx 2342425 2342425

3632342 Mark Fox cxxxx 567890 567890

DBV1.2

V2.2

Example

Page 75: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Deployment Timeline

DBV1.1

V2.1

6 Steps

1. Add a new column

2. Change all software to write to both columns (old and new)

3. Migrate the old column data to new column (for older rows)

4. Change all software to read from the new column

5. Change all the software to only write to the new column

ID NAME ADDRESS ORDERID ORDERID_INT

23234 Joe Doe xxx 333424 333424

45322 Rob Smith xxxx 234 234

2342342 Jane Smith xxxx 23424 23424

2342265 Anne Lee xxxx 2342425 2342425

3632342 Mark Fox cxxxx 567890 567890

433453 Mark Lee cxxxxx 4352342422

DBV1.2

V2.2 V2.3

Example

Page 76: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Deployment Timeline

DBV1.1

V2.1

6 Steps

1. Add a new column

2. Change all software to write to both columns (old and new)

3. Migrate the old column data to new column (for older rows)

4. Change all software to read from the new column

5. Change all the software to only write to the new column

6. Drop the old column

ID NAME ADDRESS ORDERID_INT

23234 Joe Doe xxx 333424

45322 Rob Smith xxxx 234

2342342 Jane Smith xxxx 23424

2342265 Anne Lee xxxx 2342425

3632342 Mark Fox cxxxx 567890

433453 Mark Lee cxxxxx 4352342422

DBV1.2

V2.2 V2.3

DBV1.2

Example

Page 77: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Increasing the speed of Iteration

Page 78: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Break your problem into small batches

Stream of small deployments

Incremental changes

Easy rollbacks

Page 79: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Deploy new software quicklyRevert a bad change quickly

Cost of Mistakes

Page 80: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Dynamism of the cloud makes its easy

Page 81: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Small

Application Layer

Large CPU

Week 1

Large CPU

Week 1

Week 2

Small

Week 1

Week 2

Week 3

Small

Week 1

Week 2

Week 3

Week 4

Small

Week 1

Week 2

Week 3

Week 4

Week 5

Week 1

Week 2

Week 3

Week4

Week 5

Week 6

Give me Week1 data

Writes

Reads

Page 82: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous

Integration

Continuous

Deployment

Continuous

Optimization

Cloud-powered Continuous Delivery

Page 83: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous

Optimization

Cloud-powered Continuous Optimization

Goal: Optimize on multiple dimensions : Cost, Performance, HA, Security, Response Time

Benefit on optimize for cost - Immediate recurring cost savings

Metric: understanding utilization

Page 84: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

When you turn off your cloud resources,

you actually stop paying for them

Page 85: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

0

2

4

6

8

10

12

14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Lo

ad

Hour

Daily CPU Load

25% Savings

By the time of day

Page 86: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Availability Zone #2

Availability Zone #1

Auto Scaling group : App Tier

Auto Scaling group : Web Tier

Elastic Load Balancer

www.MyWebSite.com(dynamic data)

media.MyWebSite.com (static data)

Amazon Route 53(DNS)

Amazon EC2

Amazon RDS AmazonRDS

Amazon S3

AmazonCloudFront

Page 87: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

1 5 9 13 17 21 25 29 33 37 41 45 49

Web

Serv

ers

Week

during a year

50% Savings

Page 88: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

RD

S D

B S

erv

ers

Days of the Month

75% Savings

during a month

Page 89: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous optimization in your architecture and

cloud infrastructure results in recurring savings in your next month’s bill

Page 90: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Instance

Amazon CloudWatchAlarm

Free MemoryFree CPUFree HDDAt 1-min intervals

Custom Metrics

PUT 2 weeks

“You could save a bunch of money by switching

to a small instance, Click on CloudFormation Script to

Save”

Cost-aware instances

Page 91: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Choosing the right pricing model

On-demand InstancesReserved InstancesSpot Instances

Page 92: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Usage Fee One-time Fee Total Savings

Option 1On-Demand only

$1493 - $1493 -

Option 2On-Demand + Reserved

$1008 $227 $1234 ~20%

Option 3All reserved

$528 $455 $983 ~35%

Usage Fee One-time Fee Total Savings

Option 1On-Demand only

$4479 - $4479 -

Option 2On-Demand + Reserved

$3024 $350 $3374 ~30%

Option 3All reserved

$1584 $700 $2284 ~50%

Total Cost for 1 Year-term of 2 application servers

Total Cost for 3 Year-term of the same 2 application servers

Steady State Usage

Page 93: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

0

50,000

100,000

150,000

200,000

250,000

300,000

350,000

400,000

450,000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

On Demand 1-year RI 3-year RI

2

3

1

1-year RI versus On Demand:cost savings realized after first 6 months of usage

3-year RI versus On Demand: cost savings realized after first 9 months of usage.

3-year RI versus 1-year RI: Net savings of 3-year RI versus 1-year RI begin by month 13 and continue throughout the RI term (additional 23 months of savings)

1

2

3

Page 94: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Common Pattern: Reserved + On-Demand

Page 95: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Elasticity is one of the

fundamental properties of the cloud that drives many of its economic

benefits

Page 96: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Continuous

Integration

Continuous

Deployment

Continuous

Optimization

Cloud-powered Continuous Delivery

Page 97: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Summary

Invest in areas where you get to learn from your customers quicklyAutomate everything elseCloud Continuous Integration

Release early, Release often, Iterate QuicklyGet fast feedback Distributed Builds, Automated Tests in Parallel

Cloud Continuous DeploymentReduce the cost of mistakesIncrease the speed of iterationLeverage cloud for Blue Green Deployments

Cloud Continuous OptimizationKeep Optimizing and further reduce costs of infrastructure

Page 98: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Jinesh [email protected]

Twitter: @jinmanCredits to Jon Jenkins, Paul Duvall and several engineers at Amazon

Thank you!

Page 99: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

http://aws.amazon.com

Page 100: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

You just lostcustomers

Optimize by Implementing ElasticityInfrastructureCost $

time

LargeCapital

Expenditure

OpportunityCost

Wastage

OpportunityCost

Wastage

PredictedDemand

TraditionalHardware

ActualDemand

CloudAutomatedElasticity

Page 101: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Amazon S3Bucket

AZ-1

Region

Elastic LoadBalancer

Amazon CloudWatch

Alarms

Amazon SNSNotifications

www.yourApp.com

Amazon SimpleDBDomains

Amazon Route 53Hosted Zone

Auto Scaling Group

AZ-1

App Tier

ElastiCache TierAmazon SES

Email

Amazon CloudFront

media.yourApp.com(Static data)

Amazon RDS

Amazon EC2Instances

Page 102: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated

Amazon VPC

AWS Region

VPC Subnet

VPC Subnet

Corporate data center

Corporate Headquarters

Availability Zone 1

Availability Zone 2

Branch Offices

VPN GatewayCustomer Gateway

Internet Gateway

Router

DirectConnectLocation

Amazon S3 Amazon SimpleDB Amazon SES Amazon SQSThe New Cloud-Ready Enterprise IT

10G