Your SlideShare is downloading. ×
  • Like
  • Save
AWS Sydney Summit 2013 - Continuous Deployment Practices, with Production, Test and Development Environments Running on AWS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 3,075 views
Published

Session 2, Presentation 3 from the AWS Sydney Summit

Session 2, Presentation 3 from the AWS Sydney Summit

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,075
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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

  • 1. Simon Elisha | Principal Solutions ArchitectCONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICES
  • 2. CONTINUOUSINTEGRATION
  • 3. DEVELOPER
  • 4. SOURCE CODEREPOSITORY
  • 5. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVER
  • 6. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVER
  • 7. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERPICKTASKS
  • 8. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERSUBMITCODE
  • 9. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERSCHEDULEBUILD
  • 10. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERRECURENTBUILDS
  • 11. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERCODEFETCH
  • 12. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERCODE QUALITYTESTSTESTRESULTS
  • 13. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERBUILD OUTPUT
  • 14. SOURCE CODEREPOSITORYPROJECT MANAGEMENTSERVERCONTINUOUSINTEGRATION SERVERDOCSBINARIES /PACKAGES
  • 15. SOURCE CODEREPOSITORYDNSCONTINUOUSINTEGRATION SERVERPROJECTMANAGEMENT SERVERBUILDS
  • 16. KEY = ITERATION
  • 17. ITERATIVELY MODIFY THESYSTEM TO BETTER MEETTHE EXPECTATIONS OFYOUR USERS
  • 18. ON-DEMANDPAY AS YOU GOELASTIC
  • 19. =PROGRAMMABLEPLATFORM
  • 20. AWSCLOUDFORMATIONSTACK-BASED DEPLOYMENTSERVICE
  • 21. CLOUDFORMATIONTEMPLATE
  • 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. "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. {"Parameters" : {"KeyName" : {"Description" : "Name of an existing EC2KeyPair to enable SSHaccess to the instance","Type" : "String"}},}
  • 25. CLOUDFORMATIONTEMPLATEPROCEDURALDEFINITIONCreate it programmaticallyKNOWNCONFIGURATIONStore stack configuration insource controlPARAMETERDRIVENDynamic and user-driventemplatesCOLLABORATIONShare templates with easeas just files
  • 26. Template ELBs to frontsecondary cache~100 Nginxsecondary cacheservers2-3 Nginx mid-tier cacheserversStackCLOUDFORMATIONTEMPLATEVIDEO CACHINGINFRASTRUCTURE
  • 27. APPLICATIONVERSIONS&INFRASTRUCTUREVERSIONS
  • 28. CLOUDFORMATIONTEMPLATE
  • 29. TEST ENVIRONMENTS
  • 30. 30,000 REQUESTS / SECOND1 TB TRAFFIC / DAY
  • 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. CONTINUOUSDEPLOYMENTSMALL, FREQUENT CHANGESCONSTANTLY INTEGRATING INTOPRODUCTION.
  • 33. SOFTWARE DEPLOY≠PRODUCT LAUNCH
  • 34. 1.5 BILLION PAGE VIEWS$83 MILLION IN TRANSACTIONS4.2 MILLION ITEMS SOLDOCTOBER 2012
  • 35. 30 DEPLOYS PER DAY= 1 DEPLOY EVERY 20 MINUTES
  • 36. "Production is truly the only place youcan validate your code."
  • 37. HTTP://CODEASCRAFT.ETSY.COM/HTTPS://GITHUB.COM/ETSY/DEPLOYINATOR
  • 38. HTTP://SORCERY>SMUGMUG.COM/
  • 39. AWS OPSWORKSINTEGRATED APPLICATIONMANAGEMENT
  • 40. MODEL, CONTROL AND AUTOMATEAT ANY SCALE AND COMPLEXITY
  • 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. 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. 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. 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. FREE OF CHARGE
  • 46. 14 BILLION REQUESTS/MONTH50 000 DATABASE UPDATES/SECNO CACHE
  • 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. A/B TESTING
  • 49. 24%
  • 50. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2
  • 51. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROL
  • 52. AWS ElasticBeanstalkAWSOpsWorksAWSCloudFormationAmazon EC2CONVENIENCE CONTROLHIGH-LEVEL DO IT YOURSELF
  • 53. LOAD TESTING
  • 54. USING AMAZON EC2 TO SIMULATE2.4 MILLION PLAYERS
  • 55. 11.6sMean time betweendeployments(weekday)1,079Max number ofdeployments in asingle hour10,000Mean number ofhostssimultaneouslyreceiving adeployment30,000Max number ofhostssimultaneouslyreceiving adeploymentDEPLOYMENTS ATAMAZON.COM
  • 56. CONTINUOUSINTEGRATIONCONTINUOUSDEPLOYMENT
  • 57. CONTINUOUSDEPLOYMENT=CONTINUOUSEXPERIMENTATION
  • 58. CONTINUOUSDEPLOYMENT=CONTINUOUSIMPROVEMENT
  • 59. INNOVATE
  • 60. « Want to increase innovation?Lower the cost of failure »Joi Ito
  • 61. SPEED AND AGILITYExperimentOftenFail quickly ata low costMore InnovationExperimentInfrequentlyFailure isexpensiveLess Innovation“ON-PREMISE”
  • 62. 1x QA1x DEVShared across all teams (100+ people)Previous Environment
  • 63. Allow anyone to deploye2eenv for dev & testSupport ContinuousDeliveryObjectives
  • 64. 400-500 instances per day20-30 environments usedfor dev, QA & CIMultiple teams doing CDCurrent State
  • 65. A Tale of Scarcity
  • 66. Limitsare nothelpfulDoes not encourage the rightbehaviour
  • 67. Efficient Usageprovidetoolsassignthe costno hardlimits
  • 68. metrics
  • 69. toolsenable users to bemore efficient
  • 70. One more thing…
  • 71. ARCHITECTURE CENTERhttp://aws.amazon.com/architectureTECHNICAL ARTICLEShttp://aws.amazon.com/articlesPODCASThttp://aws.amazon.com/podcastBLOGhttp://aws.typepad.com
  • 72. CONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICES