Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps at Amazon: A Look at Our Tools and Processes

17,940 views

Published on

As software teams transition to cloud-based architectures and adopt more agile processes, the tools they need to support their development cycles will change. In this session, we'll take you through the transition that Amazon made to a service-oriented architecture over a decade ago. We will share the lessons we learned, the processes we adopted, and the tools we built to increase both our agility and reliability. We will also introduce you to AWS CodeCommit, AWS CodePipeline, and AWS CodeDeploy, three new services born out of Amazon's internal DevOps experience.

Published in: Technology

DevOps at Amazon: A Look at Our Tools and Processes

  1. 1. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved DevOps at Amazon: A Look at Our Tools and Processes Rob Brigham Product Management, AWS Developer Tools
  2. 2. Prelude
  3. 3. Agenda • The Amazon DevOps story • New developer tools for everyone – AWS CodeDeploy – AWS CodePipeline – AWS CodeCommit
  4. 4. What is DevOps? DevOps = efficiencies that speed up this lifecycle developers customers releasetestbuild plan monitor delivery pipeline feedback loop Software development lifecycle
  5. 5. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved The Amazon DevOps story ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  6. 6. Monolith development lifecycle developers releasetestbuild delivery pipelineapp
  7. 7. • Service-Oriented Architecture (SOA) • Single-purpose • Connect only through APIs • “Microservices”
  8. 8. • Two-pizza teams • Full ownership • Full accountability • Aligned incentives • “DevOps”
  9. 9. Missing tools developers delivery pipelineservices ???
  10. 10. • Self-service • Technology-agnostic • Encourage best practices • Single-purpose services
  11. 11. • Deployment service • No downtime deployments • Health checking • Versioned artifacts and rollbacks
  12. 12. • Continuous delivery • From check-in to production • Automated actions and transitions • >90% of teams Pipelines
  13. 13. Microservice development lifecycle developers delivery pipelinesservices releasetestbuild releasetestbuild releasetestbuild releasetestbuild releasetestbuild releasetestbuild
  14. 14. = 50 million deployments a year Thousands of teams × Microservice architecture × Continuous delivery × Multiple environments
  15. 15. Setting up a delivery pipeline 1) Automate your software deployments 2) Automate your release process deploy deploy deploy deploy development test staging production release: source > build > test > staging > production
  16. 16. Setting up a delivery pipeline 1) Automate your software deployments AWS CodeDeploy 2) Automate your release process AWS CodePipeline
  17. 17. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved AWS CodeDeploy ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  18. 18. AWS CodeDeploy • Scale from one instance to thousands • Deploy to any server: AWS or on-premises • Centrally control and monitor Test CodeDeployv1, v2, v3 Production Dev Coordinate automated deployments, just like Amazon application revisions deployment groups
  19. 19. 1) Package app 2) Specify targets 3) Deploy! version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh - location: deploy_hooks/chef-solo.sh ApplicationStart: - location: deploy_hooks/start-tomcat.sh ValidateService: - location: deploy_hooks/verify_service.sh
  20. 20. 1) Package app 2) Specify targets 3) Deploy! version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh - location: deploy_hooks/chef-solo.sh ApplicationStart: - location: deploy_hooks/start-tomcat.sh ValidateService: - location: deploy_hooks/verify_service.sh
  21. 21. 1) Package app 2) Specify targets 3) Deploy! version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh - location: deploy_hooks/chef-solo.sh ApplicationStart: - location: deploy_hooks/start-tomcat.sh ValidateService: - location: deploy_hooks/verify_service.sh
  22. 22. 1) Package app 2) Specify targets 3) Deploy! Agent Agent Agent Test Agent Agent Agent Agent Agent Agent Production Deployment groupDeployment group Group instances by: • Auto Scaling group • Amazon EC2 tag • On-premises tag
  23. 23. 1) Package app 2) Specify targets 3) Deploy! aws deploy create-deployment --application-name MyApp --deployment-group-name TargetGroup --s3-location bucket=MyBucket,key=MyApp.zip AWS CLI & SDKs AWS Console CI / CD Partners GitHub
  24. 24. Rolling update – Deploy without downtime v1v1 v1 Load Balancer
  25. 25. Rolling update – Deploy without downtime v1v2 v1 Load Balancer
  26. 26. Rolling update – Deploy without downtime v2v2 v1 Load Balancer
  27. 27. Rolling update – Deploy without downtime v2v2v2 Load Balancer
  28. 28. Rolling update – Deploy without downtime v2v2 v2 Load Balancer
  29. 29. Health tracking – Catch deployment problems v2v2 v2 Load Balancer
  30. 30. Health tracking – Catch deployment problems v3 v2 v2Stop Load Balancer
  31. 31. Health tracking – Catch deployment problems v2v2 v2 Load Balancer Rollback
  32. 32. Health tracking – Catch deployment problems v2v2 v2 Load Balancer
  33. 33. Deployment config – Choose speed v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 one at a time half at a time all at once
  34. 34. Demo
  35. 35. Product integrations
  36. 36. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved AWS CodePipeline ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  37. 37. AWS CodePipeline • Model your release process • Integrate with your systems • Visually monitor your pipeline status Continuous delivery and release automation, just like Amazon Build 1) Build 2) Unit test 1) Deploy 2) UI test Source Beta Production 1) Deploy 2) Perf test Gamma 1) Deploy canary 2) Deploy region 1 3) Deploy region 2 1) Pull
  38. 38. Why automate your release process? Launch quickly Ensure quality
  39. 39. Demo
  40. 40. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved AWS CodeCommit ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  41. 41. Source control in the cloud Secure Fully managed High availability Store anything
  42. 42. AWS CodeCommit • Data redundancy across Availability Zones • Data-at-rest encryption • Integrated with AWS Identity and Access Management • No repo size limit git pull/push CodeCommit Git objects in Amazon S3 Git index in Amazon DynamoDB Encryption key in AWS KMS SSH or HTTPS Secure, scalable, and managed Git source control
  43. 43. Same Git experience $ git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-cli Cloning into 'aws-cli'... Receiving objects: 100% (16032/16032), 5.55 MiB | 1.25 MiB/s, done. Resolving deltas: 100% (9900/9900), done. Checking connectivity... done. $ nano README.rst $ git commit -am 'updated README' [master 4fa0318] updated README 1 file changed, 1 insertion(+) $ git push Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 297 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: To https://git-codecommit.us-east-1.amazonaws.com/v1/repos/aws-cli 4dacd6d..4fa0318 master -> master
  44. 44. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Summary ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  45. 45. AWS Code services CodeCommit coming soon CodePipeline coming soon CodeDeploy launched Nov 2014
  46. 46. CHICAGO
  47. 47. Your Feedback is Important to AWS Please complete the session evaluation. Tell us what you think!

×