Your SlideShare is downloading. ×
Simon Elisha | Principal Solutions ArchitectCONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICES
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
14 BILLION REQUESTS/MONTH50 000 DATABASE UPDATES/SECNO CACHE
“AWS OpsWorks gives us the tools weneed to automate operations.We can scale Monster World, one of thelargest Facebook game...
A/B TESTING
24%
AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2
AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROL
AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROLHIGH-LEVEL DO IT YOURSELF
LOAD TESTING
USING AMAZON EC2 TO SIMULATE2.4 MILLION PLAYERS
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...
1x QA1x DEVShared across all teams (100+ people)Previous Environment
Allow anyone to deploye2eenv for dev & testSupport ContinuousDeliveryObjectives
400-500 instances per day20-30 environments usedfor dev, QA & CIMultiple teams doing CDCurrent State
A Tale of Scarcity
Limitsare nothelpfulDoes not encourage the rightbehaviour
Efficient Usageprovidetoolsassignthe costno hardlimits
metrics
toolsenable users to bemore efficient
One more thing…
ARCHITECTURE CENTERhttp://aws.amazon.com/architectureTECHNICAL ARTICLEShttp://aws.amazon.com/articlesPODCASThttp://aws.ama...
CONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICES
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
Upcoming SlideShare
Loading in...5
×

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

3,167

Published on

Session 2, Presentation 3 from the AWS Sydney Summit

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

No Downloads
Views
Total Views
3,167
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • what is continuous deployment, how does it help developers to do their job.Continuous Integration is a helpful practice, but without a deployment operation, tests are difficult to achieve.
  • Jira / Redmine / BugTrack
  • Hudson / Jenkins
  • Even if you’re a rock star programmer, and have a nice moustache t-shirt, you have to test your code
  • Extension: SQS for queued builds
  • From GitHub presentation -> work togetherNot only together between developers, or app builders, but together, WITH YOUR END USERS, or your early testers.
  • The world’s handmade and vintage marketplace.
  • AUGUST 20121.4 Billion page viewsUSD $76 Million in transactions3.8 Million items sold
  • Deploying code is the very first thing engineers learn to do at Etsy.
  • and now we have OpsWorks- which is a integrated app management solution- it enables you to model, control and automate your infrastructure- at any scale and complexity- without any additional charge- Now you might ask yourself don't we actually have something in that space
  • Games draw an unpredictable number of players, making it difficult to calculate the number of instances needed at any given time. A high degree of automation to enable the rapid deployment of apps, as quick reaction speeds are a decisive factor for social games in the market.Solid reliability. If a game is offline, players will move on to the next.A solution that would work for small, agile teams, as Wooga runs a lean engineering organization.
  • GUIs / algos
  • +24% on magic wand sales !
  • AWS Elastic Beanstalk:An easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby and .NETAWS OpsWorks:is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.AWS CloudFormation:A building block service that enables customers to provision and manage almost any AWS resource via a domain specific languageNext to these solutions you can of course manage your compute resources directly, for example using CloudWatch, AutoScaling and Elastic Load Balancing.
  • AWS Elastic Beanstalk:An easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby and .NETAWS OpsWorks:is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.AWS CloudFormation:A building block service that enables customers to provision and manage almost any AWS resource via a domain specific languageNext to these solutions you can of course manage your compute resources directly, for example using CloudWatch, AutoScaling and Elastic Load Balancing.
  • AWS Elastic Beanstalk:An easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby and .NETAWS OpsWorks:is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.AWS CloudFormation:A building block service that enables customers to provision and manage almost any AWS resource via a domain specific languageNext to these solutions you can of course manage your compute resources directly, for example using CloudWatch, AutoScaling and Elastic Load Balancing.
  • Quecesoit iteration ou pivot, pas le choix, ilfautinnover
  • Pour illustrer le launch early
  • Luke Chadwick – Senior Developer at REA Group.
  • Constantly broken, running on old hardware – hand-rolled.Did NOT encourage CD.
  • Our team provides metrics back to Managers, Tech Leads
  • We also provide tools, some of them quite simple, to help be efficient.NewRelic
  • Transcript of "AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS"

    1. 1. Simon Elisha | Principal Solutions ArchitectCONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICES
    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. 14 BILLION REQUESTS/MONTH50 000 DATABASE UPDATES/SECNO CACHE
    47. 47. “AWS OpsWorks gives us the tools weneed to automate operations.We can scale Monster World, one of thelargest Facebook games, to millions ofusers without ever needing more than twobackend developers”Jesper Richter-ReichhelmHead of engineering – Wooga
    48. 48. A/B TESTING
    49. 49. 24%
    50. 50. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2
    51. 51. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROL
    52. 52. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROLHIGH-LEVEL DO IT YOURSELF
    53. 53. LOAD TESTING
    54. 54. USING AMAZON EC2 TO SIMULATE2.4 MILLION PLAYERS
    55. 55. 11.6sMean time betweendeployments(weekday)1,079Max number ofdeployments in asingle hour10,000Mean number ofhostssimultaneouslyreceiving adeployment30,000Max number ofhostssimultaneouslyreceiving adeploymentDEPLOYMENTS ATAMAZON.COM
    56. 56. CONTINUOUSINTEGRATIONCONTINUOUSDEPLOYMENT
    57. 57. CONTINUOUSDEPLOYMENT=CONTINUOUSEXPERIMENTATION
    58. 58. CONTINUOUSDEPLOYMENT=CONTINUOUSIMPROVEMENT
    59. 59. INNOVATE
    60. 60. « Want to increase innovation?Lower the cost of failure »Joi Ito
    61. 61. SPEED AND AGILITYExperimentOftenFail quickly ata low costMore InnovationExperimentInfrequentlyFailure isexpensiveLess Innovation“ON-PREMISE”
    62. 62. 1x QA1x DEVShared across all teams (100+ people)Previous Environment
    63. 63. Allow anyone to deploye2eenv for dev & testSupport ContinuousDeliveryObjectives
    64. 64. 400-500 instances per day20-30 environments usedfor dev, QA & CIMultiple teams doing CDCurrent State
    65. 65. A Tale of Scarcity
    66. 66. Limitsare nothelpfulDoes not encourage the rightbehaviour
    67. 67. Efficient Usageprovidetoolsassignthe costno hardlimits
    68. 68. metrics
    69. 69. toolsenable users to bemore efficient
    70. 70. One more thing…
    71. 71. ARCHITECTURE CENTERhttp://aws.amazon.com/architectureTECHNICAL ARTICLEShttp://aws.amazon.com/articlesPODCASThttp://aws.amazon.com/podcastBLOGhttp://aws.typepad.com
    72. 72. CONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICES

    ×