Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

2,813 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 presentation 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.

Carlos Conde, Manager, Solution Architecture, AWS
Neil Jennings, Lead Architect, Orange Digital

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

No Downloads
Views
Total views
2,813
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
58
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Advanced Topics - Session 1 - Continuous Deployment Practices on AWS

  1. 1. Continuous Deployment Practices on AWS Carlos Conde Sr. Mgr. Solutions Architecture
  2. 2. CONTINUOUSINTEGRATION
  3. 3. DEVELOPER
  4. 4. SOURCE CODE REPOSITORY
  5. 5. SOURCE CODE REPOSITORYPROJECT MANAGEMENT SERVER
  6. 6. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVERPROJECT MANAGEMENT SERVER
  7. 7. SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVERPICKTASKS
  8. 8. SOURCE CODE REPOSITORYSUBMITCODE CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER
  9. 9. SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVERSCHEDULEBUILD PROJECT MANAGEMENT SERVER
  10. 10. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER RECURRENT BUILDSPROJECT MANAGEMENT SERVER
  11. 11. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER CODE FETCHPROJECT MANAGEMENT SERVER
  12. 12. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER CODE QUALITY TESTSPROJECT MANAGEMENT SERVER TEST RESULTS
  13. 13. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER BUILD OUTPUTPROJECT MANAGEMENT SERVER
  14. 14. SOURCE CODE REPOSITORY DOCS CONTINUOUSINTEGRATION SERVER BINARIES & PACKAGESPROJECT MANAGEMENT SERVER
  15. 15. SOURCE CODE REPOSITORY BUILDS CONTINUOUS INTEGRATION SERVERDNS PROJECT MANAGEMENT SERVER
  16. 16. PAIN POINTS• UNIT TESTS INCOMPLETE• MOCK TESTS MAINTENANCE• EXPENSIVE TEST ENVIRONMENT• TEST ENVIRONMENT ≠ PRODUCTION• DEPLOYMENT CYCLES
  17. 17. ON-DEMAND ELASTIC PAY AS YOU GO
  18. 18. =PROGRAMMABLE PLATFORM
  19. 19. IF YOU CAN PROGRAM IT YOU CAN AUTOMATE IT
  20. 20. CUSTOMER STORYNeil Jennings – Orange Digital Lead Architect
  21. 21. Credit: nicholsoncartoons.com.au
  22. 22. Control via Configuration AWS CloudFormation
  23. 23. Control via Configuration
  24. 24. Automate deployment S3 Bucket
  25. 25. Automate deployment S3 Bucket
  26. 26. Automated 1 hour
  27. 27. What’ s Next? New Tools Better Testing Continuous Deployment Feature Flags
  28. 28. ThanksNeil Jennings @furbing
  29. 29. HTTP://SORCERY.SMUGMUG.COM/
  30. 30. AWSCLOUDFORMATION STACK-BASED DEPLOYMENT SERVICE
  31. 31. CLOUDFORMATION TEMPLATE
  32. 32. { "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" } } }}
  33. 33. "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" } }
  34. 34. { "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance", "Type" : "String" } },}
  35. 35. PROCEDURAL KNOWN DEFINITION CONFIGURATIONCreate it programmatically Store stack configuration in source control CLOUDFORMATION TEMPLATE PARAMETER COLLABORATION DRIVEN Share templates with easeDynamic and user-driven as just files templates
  36. 36. APPLICATION VERSIONS +INFRASTRUCTURE VERSIONS
  37. 37. CLOUDFORMATION TEMPLATE
  38. 38. TEST ENVIRONMENTS
  39. 39. 30,000 REQUESTS / SECOND 1 TB TRAFFIC / DAY
  40. 40. “…AWS seemed to be the best solution available to allow asmall, independent company to rapidly develop and test acompletely new infrastructure, and host it.We also loved the flexibility that AWS allowed us, whenspinning up smaller test environments, for beta trials, QA,localization, and during development. The low initial costwas also crucial.”Alex Evans, CTO
  41. 41. LOAD TESTING
  42. 42. USING AMAZON EC2 TO SIMULATE2.4 MILLION PLAYERS
  43. 43. CONTINUOUS DEPLOYMENT SMALL, FREQUENT CHANGESCONSTANTLY INTEGRATING INTO PRODUCTION.
  44. 44. KEY = ITERATION
  45. 45. ITERATION =MODIFY THE SYSTEM TO BETTER MEET THE EXPECTATIONS OF YOUR USERS
  46. 46. DEPLOYMENTS AT AMAZON.COM 11.6s 1,079 10,000 30,000 Mean time Max number of Mean number of Max number of between deployments in a hosts hostsdeployments single hour simultaneously simultaneously (weekday) receiving a receiving a deployment deployment
  47. 47. SOFTWARE DEPLOY ≠PRODUCT LAUNCH
  48. 48. 1.5 BILLION PAGE VIEWS$83 MILLION IN TRANSACTIONS4.2 MILLION ITEMS SOLDOCTOBER 2012
  49. 49. 30 DEPLOYS PER DAY1 DEPLOY EVERY 20 MINUTES
  50. 50. "Production is truly the only place you can validate your code."
  51. 51. AWS OPSWORKSINTEGRATED APPLICATION MANAGEMENT
  52. 52. 14 BILLION REQUESTS/MONTH50 000 DATABASE UPDATES / SEC NO CACHE
  53. 53. A / B TESTING
  54. 54. DATA-DRIVENARCHITECTURES
  55. 55. METRICS @ETSY
  56. 56. COST-ORIENTEDARCHITECTURES
  57. 57. PHP+APACHE+VARNISH NGINX+NODEJS
  58. 58. CONTINUOUS DEPLOYMENTCONTINUOUSINTEGRATION
  59. 59. CONTINUOUS DEPLOYMENT = CONTINUOUSEXPERIMENTATION
  60. 60. CONTINUOUS DEPLOYMENT = CONTINUOUSIMPROVEMENT
  61. 61. INNOVATE
  62. 62. « Want to increase innovation? Lower the cost of failure » Joi Ito
  63. 63. SPEED AND AGILITY “ON-PREMISE” Experiment Experiment Infrequently Often Failure is Fail quickly at expensive a low cost Less More Innovation Innovation
  64. 64. THANK YOUContinuous Deployment Practices on AWS

×