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.

Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manager, Solutions Architecture, AWS

DevOps | AWS Loft Architecture Week | Tuesday, August 16

  • Login to see the comments

  • Be the first to like this

Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manager, Solutions Architecture, AWS

  1. 1. AWS CodeDeploy: Automating Your Software Deployments Matthew Trescot Manager, Solutions Architecture
  2. 2. (Where my dogs at?)
  3. 3. I’m quitting! (Joke)
  4. 4. We got the business plan together… 1. Dog addressable market - 525 million dogs 2. Dogs need suits 3. The existing dog suit market is ready to be disrupted… the quality of dog fashion lacks our unique perspective. We’re not selling dog suites, we’re selling a lifestyle. 4. ??? 5. Profit.
  5. 5. Building Block Service 1. Easy to integrate 2. Available everywhere 3. Scaled for our biggest customers
  6. 6. Application “Any collection of content that you want to distribute to your servers in a single deployment” Web Server Framework Content
  7. 7. Deployment Group “A collection of instances you want to deploy to as a group” Dev Test Prod v2.0 v1.2 v1.1 v2.0 v1.2 v1.1 v2.0 v1.2 v1.1
  8. 8. AppSpec fileos: linux files: - source: Config/config.txt destination: webapps/Config - source: Service destination: /webapps/DogSuit hooks: ApplicationStop: - location: Scripts/Deactivate_Service BeforeInstall: - location: Scripts/Flush_Logs.sh AfterInstall: - location: Scripts/Decrypt_Secrets.sh ApplicationStart: - location: Scripts/Start_Pooch_Style_Service.sh timeout: 3600 ValidateService: - location: Scripts/Check_Dogs_Barking.sh runas: codedeployuser
  9. 9. AppSpec fileos: linux files: - source: Config/config.txt destination: webapps/Config - source: Service destination: /webapps/DogSuit hooks: ApplicationStop: - location: Scripts/Deactivate_Service BeforeInstall: - location: Scripts/Flush_Logs.sh AfterInstall: - location: Scripts/Decrypt_Secrets.sh ApplicationStart: - location: Scripts/Start_Pooch_Style_Service.sh timeout: 3600 ValidateService: - location: Scripts/Check_Dogs_Barking.sh runas: codedeployuser
  10. 10. AppSpec fileos: linux files: - source: Config/config.txt destination: webapps/Config - source: Service destination: /webapps/DogSuit hooks: ApplicationStop: - location: Scripts/Deactivate_Service BeforeInstall: - location: Scripts/Flush_Logs.sh AfterInstall: - location: Scripts/Decrypt_Secrets.sh ApplicationStart: - location: Scripts/Start_Pooch_Service.sh timeout: 3600 ValidateService: - location: Scripts/Check_Dogs_Barking.sh runas: codedeployuser ApplicationStop BeforeInstall AfterInstall ApplicationStart ValidateService DownloadBundle Install Start End
  11. 11. Deployment Config v2 v2 v2 v2 v2 v2 v2 v2All-at-once Min. healthy hosts = 0 v2 v2 v2 v2 v1 v1 v1 v1Half-at-a-time Min. healthy hosts = 50% v2 v2 v1 v1 v1 v1 v1 v1[Custom] Min. healthy hosts = 75% v2 v1 v1 v1 v1 v1 v1 v1One-at-a-time Min. healthy hosts = 99%
  12. 12. • minimal host footprint • quick to get started • little to no automated validation Development (Early fit algorithm needs work.)
  13. 13. Development • Minimal host footprint • quick to get started • little to no automated validation • Host footprint enables load testing • Debug messaging present • Automated validation Test (Dated style, but good fit)
  14. 14. What’s changing in test? Auto Scaling supportRequest Routing with ELBValidation and testing
  15. 15. • Over scaled for production workloads • Debugging through logs • More validation Production (Looking Sharp.)
  16. 16. if [ "$DEPLOYMENT_GROUP_NAME" == “Production" ] then /user/bin/ConfigSalesBanner fi How do deployments change to Production? Large Fleets, with redundancyCustom Deployment Configs “1/3 at a time” Environment Variables
  17. 17. Test ProductionDevelopment (See you at the launch party!)
  18. 18. CloudFormation Support What else can we do with CodeDeploy? Reactive DeploymentsCI/CD and Config MGMT PartnersMultiple PlatformsSNS Notifications
  19. 19. CIRCLECI + AWS CODE DEPLOY Who we are and what we do CircleCI was founded in 2011 with the mission of building a state of the art Continuous Integration and Delivery platform for developers. We provide clean, modern tooling to take your build and test automation out of the dark ages. With CircleCI, it’s easy to scale your builds and tests without a team to manage a dedicated cluster. Designed for productivity, CircleCI provides tools like auto- parallelization, SSH-based debugging, and automatic project setup, allowing developers to ship faster and more reliably.
  20. 20. TURING CODE LEV LAZINSKIY
  21. 21. TURNING CODE INTO SOFTWARE Version Control System Production BUILD TESTDEPLOY C O D E SOFTWARE
  22. 22. DEFINITIONS ▸ Continuous feedback loop for development team ▸ Test every change made to the code base ▸ Unit ▸ Integration ▸ Functional ▸ Static Analysis CONTINUOUS INTEGRATION
  23. 23. DEFINITIONS CONTINUOUS DEPLOYMENT ▸ Continuously deploying changes made to your code base to your staging and production environments ▸ Confidence Increases with proper CI ▸ Automated, Decentralized and Repeatable
  24. 24. DEFINITIONS CONTINUOUS DELIVERY ▸ Making the delivery of your product seamless and transparent for your customers ▸ Shipped vs. Shippable
  25. 25. LIVE DEMO
  26. 26. QUESTIONS?
  27. 27. Thank you! …Questions?

×