AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber...
Transcript of AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber...
![Page 3: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/3.jpg)
“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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/18.jpg)
![Page 19: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/20.jpg)
![Page 21: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/21.jpg)
Discipline
![Page 22: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/24.jpg)
![Page 25: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/25.jpg)
![Page 26: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/26.jpg)
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
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/27.jpg)
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
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/30.jpg)
• 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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/32.jpg)
“TestOps”
![Page 33: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/33.jpg)
• 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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/37.jpg)
![Page 38: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/39.jpg)
![Page 40: AWS QconSF 2011 jvaria - Software Development Conference · PDF fileTesting AntUnit , Cucumber , DbUnit , webrat , easyb , Fitnesse , JMeter , JUnit , NBehave , SoapUI , ... Automated](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/42.jpg)
« 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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/43.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/44.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/45.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/46.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/47.jpg)
"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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/48.jpg)
"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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/49.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/50.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/51.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/52.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/53.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/54.jpg)
“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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/55.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/56.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/57.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/58.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/59.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/60.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/61.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/62.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/63.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/64.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/65.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/66.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/67.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/68.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/69.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/70.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/71.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/72.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/73.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/74.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/75.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/76.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/77.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/78.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/79.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/80.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/81.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/82.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/83.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/84.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/85.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/86.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/87.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/88.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/89.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/90.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/91.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/92.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/93.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/94.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/95.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/96.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/97.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/98.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/99.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/100.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/101.jpg)
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
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](https://reader033.fdocuments.us/reader033/viewer/2022051507/5a78df817f8b9a70238db5dc/html5/thumbnails/102.jpg)
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