Adrian WhiteContinuous Deployment with Amazon Web ServicesSolutions Architect, AWSDaniel ZollingerSenior Web Developer, Cr...
CONTINUOUSINTEGRATION
DEVELOPER
SOURCE CODEREPOSITORY
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVER
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVER
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERPICKTASKS
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERSUBMITCODE
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERSCHEDULEBUILD
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERRECURENTBUILDS
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERCODEFETCH
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERCODE QUALITYTESTSTESTRESULTS
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERBUILD OUTPUT
SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERDOCSBINARIES /PACKAGES
SOURCE CODEREPOSITORYDNSCONTINUOUSINTEGRATION SERVERPROJECTMANAGEMENT SERVERBUILDS
KEY = ITERATION
ITERATIVELY MODIFY THESYSTEM TO BETTER MEETTHE EXPECTATIONS OFYOUR USERS
ON-DEMANDPAY AS YOU GOELASTIC
=PROGRAMMABLEPLATFORM
AWSCLOUDFORMATIONSTACK-BASED DEPLOYMENTSERVICE
CLOUDFORMATIONTEMPLATE
{"Description" : "Create RDS with username and password","Resources" : {"MyDB" : {"Type" : "AWS::RDS::DBInstance","Propert...
"AWS::CloudFormation::Init" : {"config" : {"packages" : {"yum" : {"mysql" : [],"mysql-server" : [],"httpd" : [],"php" : []...
{"Parameters" : {"KeyName" : {"Description" : "Name of an existing EC2KeyPair to enable SSHaccess to the instance","Type" ...
CLOUDFORMATIONTEMPLATEPROCEDURALDEFINITIONCreate it programmaticallyKNOWNCONFIGURATIONStore stack configuration insource c...
Template ELBs to frontsecondary cache~100 Nginxsecondary cacheservers2-3 Nginx mid-tier cacheserversStackCLOUDFORMATIONTEM...
APPLICATIONVERSIONS&INFRASTRUCTUREVERSIONS
CLOUDFORMATIONTEMPLATE
TEST ENVIRONMENTS
30,000 REQUESTS / SECOND1 TB TRAFFIC / DAY
“…AWS seemed to be the best solutionavailable to allow a small, independentcompany to rapidly develop and test acompletely...
CONTINUOUSDEPLOYMENTSMALL, FREQUENT CHANGESCONSTANTLY INTEGRATING INTOPRODUCTION.
SOFTWARE DEPLOY≠PRODUCT LAUNCH
1.5 BILLION PAGE VIEWS$83 MILLION IN TRANSACTIONS4.2 MILLION ITEMS SOLDOCTOBER 2012
30 DEPLOYS PER DAY= 1 DEPLOY EVERY 20 MINUTES
"Production is truly the only place youcan validate your code."
HTTP://CODEASCRAFT.ETSY.COM/HTTPS://GITHUB.COM/ETSY/DEPLOYINATOR
HTTP://SORCERY.SMUGMUG.COM/
AWS OPSWORKSINTEGRATED APPLICATIONMANAGEMENT
MODEL, CONTROL AND AUTOMATEAT ANY SCALE AND COMPLEXITY
A stack representsyour application. Onestack might be usedfor staging andanother for production.Tell OpsWorks whereit can ...
A stack representsyour application. Onestack might be usedfor staging andanother for production.Tell OpsWorks whereit can ...
A stack representsyour application. Onestack might be usedfor staging andanother for production.Tell OpsWorks whereit can ...
A stack representsyour application. Onestack might be usedfor staging andanother for production.A layer defines how tosetu...
FREE OF CHARGE
AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2
AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROL
AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROLHIGH-LEVEL DO IT YOURSELF
LOAD TESTING
11.6sMean time betweendeployments(weekday)1,079Max number ofdeployments in asingle hour10,000Mean number ofhostssimultaneo...
CONTINUOUSINTEGRATIONCONTINUOUSDEPLOYMENT
CONTINUOUSDEPLOYMENT=CONTINUOUSEXPERIMENTATION
CONTINUOUSDEPLOYMENT=CONTINUOUSIMPROVEMENT
INNOVATE
« Want to increase innovation?Lower the cost of failure »Joi Ito
SPEED AND AGILITYExperimentOftenFail quickly ata low costMore InnovationExperimentInfrequentlyFailure isexpensiveLess Inno...
Daniel Zollinger, Dave Robertson & Leo Gui
Introduction to OpsWorks• OpsWorks is a deployment platform, like Elastic Beanstalk & CloudFormation• A Stack contains EC2...
OpsWorks & Chef• Open Source recipes and enthusiastic fledgling community• Full Stack optimized for standard web apps• But...
Business Benefits• Zero downtime (mostly)• Small team, no SysAdmins, prefer DevOps-orientated solutions
Business Benefits• Zero downtime (mostly)• Small team, no SysAdmins, prefer DevOps-orientated solutions• OpsWorks gives yo...
Business Benefits• Zero downtime (mostly)• Small team, no SysAdmins, prefer DevOps-orientated solutions• OpsWorks gives yo...
Integrating with AWS• Basic IAM integration & EC2 security groups• While RDS and ElastiCache may be coming soon. They are ...
The Future• Its early days, but things look very promising• OpsWorks isn’t perfect, but it is powerful enough to easily co...
The Future• It’s early days, but things look very promising• OpsWorks isn’t perfect, but it is powerful enough to easily c...
Thank you!
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running o...
Upcoming SlideShare
Loading in …5
×

AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS

1,904 views

Published on

With AWS companies now have the ability to develop and run their applications with speed and flexibility like never before. Working with an infrastructure that can be 100% API driven enables businesses to use lean methodologies and realize these benefits. This in turn leads to greater success for those who make use of these practices. In this session we'll talk about some key concepts and design patterns for Continuous Deployment and Continuous Integration, two elements of lean development of applications and infrastructures.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,904
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS

  1. 1. Adrian WhiteContinuous Deployment with Amazon Web ServicesSolutions Architect, AWSDaniel ZollingerSenior Web Developer, CricHQGuest presenter:
  2. 2. CONTINUOUSINTEGRATION
  3. 3. DEVELOPER
  4. 4. SOURCE CODEREPOSITORY
  5. 5. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVER
  6. 6. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVER
  7. 7. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERPICKTASKS
  8. 8. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERSUBMITCODE
  9. 9. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERSCHEDULEBUILD
  10. 10. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERRECURENTBUILDS
  11. 11. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERCODEFETCH
  12. 12. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERCODE QUALITYTESTSTESTRESULTS
  13. 13. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERBUILD OUTPUT
  14. 14. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERDOCSBINARIES /PACKAGES
  15. 15. SOURCE CODEREPOSITORYDNSCONTINUOUSINTEGRATION SERVERPROJECTMANAGEMENT SERVERBUILDS
  16. 16. KEY = ITERATION
  17. 17. ITERATIVELY MODIFY THESYSTEM TO BETTER MEETTHE EXPECTATIONS OFYOUR USERS
  18. 18. ON-DEMANDPAY AS YOU GOELASTIC
  19. 19. =PROGRAMMABLEPLATFORM
  20. 20. AWSCLOUDFORMATIONSTACK-BASED DEPLOYMENTSERVICE
  21. 21. CLOUDFORMATIONTEMPLATE
  22. 22. {"Description" : "Create RDS with username and password","Resources" : {"MyDB" : {"Type" : "AWS::RDS::DBInstance","Properties" : {"AllocatedStorage" : "500","DBInstanceClass" : "db.m1.small","Engine" : "MySQL","EngineVersion" : "5.5","MasterUsername" : "MyName","MasterUserPassword" : "MyPassword"}}}}
  23. 23. "AWS::CloudFormation::Init" : {"config" : {"packages" : {"yum" : {"mysql" : [],"mysql-server" : [],"httpd" : [],"php" : [],"php-mysql" : []}},"sources" : {"/var/www/html" :"https://s3.amazonaws.com/my-builds/build-v4.zip"}}}
  24. 24. {"Parameters" : {"KeyName" : {"Description" : "Name of an existing EC2KeyPair to enable SSHaccess to the instance","Type" : "String"}},}
  25. 25. CLOUDFORMATIONTEMPLATEPROCEDURALDEFINITIONCreate it programmaticallyKNOWNCONFIGURATIONStore stack configuration insource controlPARAMETERDRIVENDynamic and user-driventemplatesCOLLABORATIONShare templates with easeas just files
  26. 26. Template ELBs to frontsecondary cache~100 Nginxsecondary cacheservers2-3 Nginx mid-tier cacheserversStackCLOUDFORMATIONTEMPLATEVIDEO CACHINGINFRASTRUCTURE
  27. 27. APPLICATIONVERSIONS&INFRASTRUCTUREVERSIONS
  28. 28. CLOUDFORMATIONTEMPLATE
  29. 29. TEST ENVIRONMENTS
  30. 30. 30,000 REQUESTS / SECOND1 TB TRAFFIC / DAY
  31. 31. “…AWS seemed to be the best solutionavailable to allow a small, independentcompany to rapidly develop and test acompletely new infrastructure, and host it.We also loved the flexibility that AWSallowed us, when spinning up smaller testenvironments, for beta trials, QA,localization, and during development. Thelow initial cost was also crucial.”Alex Evans, CTO
  32. 32. CONTINUOUSDEPLOYMENTSMALL, FREQUENT CHANGESCONSTANTLY INTEGRATING INTOPRODUCTION.
  33. 33. SOFTWARE DEPLOY≠PRODUCT LAUNCH
  34. 34. 1.5 BILLION PAGE VIEWS$83 MILLION IN TRANSACTIONS4.2 MILLION ITEMS SOLDOCTOBER 2012
  35. 35. 30 DEPLOYS PER DAY= 1 DEPLOY EVERY 20 MINUTES
  36. 36. "Production is truly the only place youcan validate your code."
  37. 37. HTTP://CODEASCRAFT.ETSY.COM/HTTPS://GITHUB.COM/ETSY/DEPLOYINATOR
  38. 38. HTTP://SORCERY.SMUGMUG.COM/
  39. 39. AWS OPSWORKSINTEGRATED APPLICATIONMANAGEMENT
  40. 40. MODEL, CONTROL AND AUTOMATEAT ANY SCALE AND COMPLEXITY
  41. 41. A stack representsyour application. Onestack might be usedfor staging andanother for production.Tell OpsWorks whereit can find your codeand define anyadditional deploymenttasks. OpsWorks willtake care of deployingyour app.Scale your stackbased on time orload. Clone yourproduction stack to adifferent region.Automate workflowsfor common tasks.A layer defines how tosetup and configure aset of instances andrelated resources suchas volumesand software.
  42. 42. A stack representsyour application. Onestack might be usedfor staging andanother for production.Tell OpsWorks whereit can find your codeand define anyadditional deploymenttasks. OpsWorks willtake care of deployingyour app.Scale your stackbased on time orload. Clone yourproduction stack to adifferent region.Automate workflowsfor common tasks.A layer defines how tosetup and configure aset of instances andrelated resources suchas volumesand software.
  43. 43. A stack representsyour application. Onestack might be usedfor staging andanother for production.Tell OpsWorks whereit can find your codeand define anyadditional deploymenttasks. OpsWorks willtake care of deployingyour app.Scale your stackbased on time orload. Clone yourproduction stack to adifferent region.Automate workflowsfor common tasks.A layer defines how tosetup and configure aset of instances andrelated resources suchas volumesand software.
  44. 44. A stack representsyour application. Onestack might be usedfor staging andanother for production.A layer defines how tosetup and configure aset of instances andrelated resources suchas volumesand software.Tell OpsWorks whereit can find your codeand define anyadditional deploymenttasks. OpsWorks willtake care of deployingyour app.Scale your stackbased on time orload. Clone yourproduction stack to adifferent region.Automate workflowsfor common tasks.
  45. 45. FREE OF CHARGE
  46. 46. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2
  47. 47. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROL
  48. 48. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROLHIGH-LEVEL DO IT YOURSELF
  49. 49. LOAD TESTING
  50. 50. 11.6sMean time betweendeployments(weekday)1,079Max number ofdeployments in asingle hour10,000Mean number ofhostssimultaneouslyreceiving adeployment30,000Max number ofhostssimultaneouslyreceiving adeploymentDEPLOYMENTS ATAMAZON.COM
  51. 51. CONTINUOUSINTEGRATIONCONTINUOUSDEPLOYMENT
  52. 52. CONTINUOUSDEPLOYMENT=CONTINUOUSEXPERIMENTATION
  53. 53. CONTINUOUSDEPLOYMENT=CONTINUOUSIMPROVEMENT
  54. 54. INNOVATE
  55. 55. « Want to increase innovation?Lower the cost of failure »Joi Ito
  56. 56. SPEED AND AGILITYExperimentOftenFail quickly ata low costMore InnovationExperimentInfrequentlyFailure isexpensiveLess Innovation“ON-PREMISE”
  57. 57. Daniel Zollinger, Dave Robertson & Leo Gui
  58. 58. Introduction to OpsWorks• OpsWorks is a deployment platform, like Elastic Beanstalk & CloudFormation• A Stack contains EC2 instances that represent a deployment environment• A Layer consists of instances that play a certain role in the stack• Built on Chef, a configuration management tool• Instances are configured via Chef Recipes• You deploy Applications to Layer instances
  59. 59. OpsWorks & Chef• Open Source recipes and enthusiastic fledgling community• Full Stack optimized for standard web apps• But easily configurable and extendable via Chef recipes• Visibility of Chef recipes to allow for rapid extensibility and configuration• Life cycle, adding nodes to a stack is easy to configure through chef recipes,callbacks and hooks• Chef Recipes are triggered on lifecycle events• Scale by schedule and capacity
  60. 60. Business Benefits• Zero downtime (mostly)• Small team, no SysAdmins, prefer DevOps-orientated solutions
  61. 61. Business Benefits• Zero downtime (mostly)• Small team, no SysAdmins, prefer DevOps-orientated solutions• OpsWorks gives you the same cost/benefit as EC2• Schedule & capacity scaling
  62. 62. Business Benefits• Zero downtime (mostly)• Small team, no SysAdmins, prefer DevOps-orientated solutions• OpsWorks gives you the same cost/benefit as EC2• Schedule & capacity scaling• Development  production parity, quickly and cheaply deploy new testenvironments• Responsive development process
  63. 63. Integrating with AWS• Basic IAM integration & EC2 security groups• While RDS and ElastiCache may be coming soon. They are still configurableout of the box with OpsWorks and are available as services.• CricHQ has successfully integrated both services without much hassle• Recently added ELB support shows active improvements• No integration with CloudFormation• Access to Raw EC2 instances, and ability to extend default functionality
  64. 64. The Future• Its early days, but things look very promising• OpsWorks isn’t perfect, but it is powerful enough to easily configure for yourown business requirements• Wish list: More services, layers, flexibility & better scaling
  65. 65. The Future• It’s early days, but things look very promising• OpsWorks isn’t perfect, but it is powerful enough to easily configure for yourown business requirements• Wish list: More services, layers, flexibility & better scaling• Our Arduino continuous deployment, build failure, staff targeting nerf missilelauncher• Come chat to us…
  66. 66. Thank you!

×