Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Understanding DevOps

Understanding DevOps

​DevOps, or "Agile Infrastructure", is a philosophy that aims to bridge the gap between development and operations using Agile techniques. It stresses collaboration, communication, and multi-disciplinary approaches across traditional organizational boundaries to ensure software is providing maximum value to the business.​

Atomic Object

October 29, 2015
Tweet

More Decks by Atomic Object

Other Decks in Technology

Transcript

  1. DEVOPS “There’s a tacit assumption that projects will run late,

    and when they're delivered (if they’re ever delivered), they will underperform, and not deliver well against investment. It's a wonder any of us have a job at all!” S T E P H E N N E L S O N - S M I T H
  2. DEVOPS “Bridging the gap between projects and operations by using

    Agile techniques both in development, project management and system administration.” PAT R I C K D U B O I S
  3. DEVOPS Broadly defined, DevOps is a philosophy or cultural approach

    that promotes better communication between two teams. T H E B A S I C S
  4. DEVOPS Narrowly defined, DevOp is a job description for an

    employee who possesses the skills to work as a both a developer and a systems engineer. T H E B A S I C S
  5. DEVOPS “Lob it over the wall” mentality. “It works on

    my machine” Changes are dangerous and time-consuming. Deployment is fraught with peril. TRADITIONAL PROBLEMS
  6. DEVOPS 1 DEVELOPMENT The developers team writes a ruby application

    on Windows using preferred tools, and gems which rely on native libraries.
  7. DEVOPS 2 HANDOFF The ruby application is delivered to the

    operations team who plan to run the application in production on a Linux server which runs on metal.
  8. DEVOPS 3 PROVISIONING The operations team provisions a server, and

    tries to get the application running using available libraries.
  9. DEVOPS 4 PROBLEMS QA finds issues and bugs that were

    introduced because of missing libraries, different library versions, and environment configuration differences.
  10. DEVOPS 5 BATTLE Development and operations flip issues back and

    forth, blaming each other for the problems: “It works on my machine.”
  11. DEVOPS Combines elements of Dev, Ops, and QA. Started as

    “Agile Infrastructure”. Much in common with agile software development, and the “Agile Manifesto” DEVOPS THINKING
  12. DEVOPS 1 DEVELOPMENT The development team writes a ruby application

    on Windows, but using a Linux virtual machine, managed with Vagrant and Chef, as their platform for building the application and testing it.
  13. DEVOPS 2 HANDOFF The operations team takes the Chef configuration

    used by the Developers to provision a new virtual server on AWS, making the new system nearly identical.
  14. DEVOPS 3 DEPLOYMENT The application is continuously deployed via a

    post-receive git hook, and the QA team is able to quickly review new features, and provide feedback to the development team.
  15. DEVOPS 4 LAUNCH When the application is ready for launch,

    new production virtual machines are provisioned alongside the existing systems, using the Chef configuration to ensure everything is identical.
  16. DEVOPS 5 NEW FEATURES The application runs smoothly, and new

    features can be developed confidently using the established infrastructure and workflows.
  17. DEVOPS T O O L S A N D P

    R A C T I C E S PA R A D I G M S
  18. DEVOPS Effortless create/destroy environments as needed. Easy testing, portability, accessibility,

    etc. Examples: AWS, Rackspace, VMWare ESXi, etc. VIRTUALIZATION
  19. DEVOPS Confidence that the system will perform correctly. Reduce effects

    of ‘infrastructure by coincidence’ —it works, but we cannot prove why. Examples: Test kitchen, serverspec, etc. TESTING
  20. DEVOPS Describe intended state of systems programmatically. ‘Infrastructure as Code’:

    managing systems as you would manage programs. Examples: Chef, Puppet, Ansible, etc. CODING
  21. DEVOPS Code describes the state of a managed system. No

    forgotten documentation or unknown state. Examples: Chef, Puppet, Ansible, etc. DOCUMENTATION
  22. DEVOPS U S I N G C H E F

    T O P R O V I S I O N A V I R T U A L S E R V E R E X A M P L E
  23. DEVOPS Increased confidence. Less risk and fear. Faster development and

    deployment. Greater reliability and quality. More effective systems. WHY DEVOPS?
  24. DEVOPS The Phoenix Project
 Gene Kim, Kevin Behr and George

    Spafford DevOps Days
 http://www.devopsdays.org/ Dev2Ops
 http://dev2ops.org/ Patrick Dubois
 http://www.jedi.be/blog/ S O U R C E S