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.

Infrastructure as Code


Published on

Today, the development and operations landscape has shifted to a more collaborative model merging the two (DevOps). Developers need to know much more about the operational components of their software - especially around network programming, services development, and continuous deployment. Likewise, the developer's IT counterpart needs to know much more about development - especially around infrastructure automation (Chef/Puppet), automated testing, and continuous deployment.

Infrastructure as Code

  1. 1. Infrastructure as Code Merging Development and Operations for a more effective application development process FIN talk Ryan Roark Clement Yu Robert Greiner February 19, 2014
  2. 2. Table of Contents 1. The Problem 2. Infrastructure 3. Application 4. Code 5. Putting it all together 6. AWS Goodness 7. Wrapping Up
  3. 3. CHAPTER The Problem(s)
  4. 4. Developers • Take requirements • Write Code • Write Tests (Maybe) • Manual Testing • Refactor • Developers create
  5. 5. Operations • Server Admins • DBAs • Release • Networking • Security • Monitoring • Operators maintain People who deal with applications after they are created
  6. 6. Typical Software Development Flow Write Code (Dev) Create Tests Run all Tests Deploy to Dev/QA (Ops) Integration Tests QA Tests Deploy to UAT More Testing – Regression (QA) Performance Tests Configure Production Environment Buy Hardware Install OS / Software Provision Database Upgrade RAM Deploy to Production Manual Time Consuming
  7. 7. Poll: How long does it take to provision a new server at your client?
  8. 8. SpaceX launches 1 rocket every 4 weeks
  9. 9. DevOps  DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. (TheAgileAdmin)
  10. 10. The New Normal  It’s up to us as developers to help enable our operations counterparts. We can use our skills to teach others how to make their jobs easier, so our jobs become easier.  This requires developers to gain skills in operations: networking, OS, patching, deployments, etc…  Every systems administrator should know Ruby and every Developer should know how to configure an automated deployment on a Windows or Linux server they setup themselves
  11. 11. CHAPTER Infrastructure
  12. 12. Infrastructure Automation • Write your code and write the infrastructure it runs on • Servers, Networking, Users, etc… • Documented, Repeatable, and Fast • Fixing Deployment Pains • A/B Deployments (blue/green) • Rolling Deployments
  13. 13. Infrastructure Tooling • CloudFormation for AWS • Template driven design with JSON • Templates versioned like code • AWS::CloudFormation::Init • Bootstrap other processes • OPSWorks & Elastic BeanStalk for AWS • Demo CloudFormation
  14. 14. Non-AWS Infrastructure • Manual Labor • Server admin physical installation • Error Prone • Chef-Provisioning • VMWare VirtualCenter • Heat for OpenStack • Azure PaaS
  15. 15. CHAPTER Application
  16. 16. Configuration Management • Transform any server quickly • Build it as a web server, DB server, etc. • Automate build process • Install and configuration steps are saved as code • Re-configure quickly • Avoid dependency issues
  17. 17. Configuration Tools • Powerful • Robust • Written in Ruby • Developer- friendly • Steep learning curve for sys- admins • Mature • Built for sys- admins • Easy JSON data structure • Master pushes changes to agents • AWS version of Chef • Free to use with instances
  18. 18. CHAPTER Code
  19. 19. Continuous Integration Deploy your code quickly, consistently, and often • Practice Deploying Code • Detect problems faster • Automatically build code & run tests • Eliminate the “well it works on my machine” dilemma • Encourages public shaming
  20. 20. CI in the Sky Cloud • Code Deploy • Hook into source control and automate your deployments to an elastic set of resources • Code Pipeline • Continuous delivery and software release automation • Code Commit • Code is ‘closer’ to servers it runs on • Integrates with CodeDeploy and CodePipeline • Demo Code Deploy
  21. 21. Automation outside AWS • Jenkins • Self hosted CI Server • Travis-CI • Hosted CI Server • TFS / • Does a little of EVERYTHING • Easily integrate with Azure
  22. 22. Summary INFRASTRUCTURE • Automatically provision physical hardware • Unique deployment strategies • Documented and versioned environment configurations APPLICATION • Transform a server into web or database server • Reduce number of steps in configuration CODE • Automatically build, test, and deploy code • Identify issues quickly by performing often
  23. 23. CHAPTER Putting it all together
  24. 24. Putting it all together  Infrastructure Provisioning  Application Provisioning  Code Provisioning  Now it’s your turn  Developers  Operations  Dev + Ops
  25. 25. 2015 AWS DevOps Challenge  Design and implement a fully-automated AWS environment suitable for hosting and operating a complex open-source application.  The current plan is to have a panel of judges decide the winning team’s presentation and demo of solution Monitor • Dashboard Status Overview Alert • Active Push Notifications on Error Log • Application / OS log management Audit • Complete History of Interactions Provision • On-Demand Environment Manage • Live Changes to Environment Deploy • Automated Application Deployment Patch • Live Changes to Application
  26. 26. What’s in it for me? Gain real world, hands-on experience with automated provisioning (infrastructure, application, code) Showcase your skills to the Dallas office Gain experience on the AWS platform Team up to design a solution that outperforms the competition Win a trip to the AWS re:Invent 2015 conference in Las Vegas, NV on October 6-8, 2015
  27. 27. You heard right… Your score will (probably) be determined by Judges
  28. 28. CHAPTER AWS Goodness
  29. 29. New AWS Services At re:Invent, AWS released a number of new services to their line-up. Here are the highlights. Lambda Aurora EC2 Container Service
  30. 30. CHAPTER Wrapping Up
  31. 31. The Automation Dream • Automation is our client’s and your friend • Automation is hard work • Free to experiment • AWS Free Tier • Azure Free Trial
  32. 32. Fin’