DevOps

DevOps (a portmanteau of "development" and "operations") is a software development method that stresses communication, collaboration, integration, automation, and measurement of cooperation between software developers and other information-technology (IT) professionals.

Overview

DevOps is a software development method that emphasizes communication, collaboration (information sharing and web service usage), integration, automation, and measurement of cooperation between software developers and other IT professionals.[1][2] The method acknowledges the interdependence of software development, quality assurance, and IT operations, and aims to help an organization rapidly produce software products and services and to improve operations performance.[2][3][4][5][6][7][8]

Visual model

Illustration showing DevOps as the intersection of development (software engineering), technology operations and quality assurance (QA)

While development methodologies, such as agile software development, encourage cross-functional collaboration between the analysis, design, development, and QA functions; in traditional / functionally separated organizations, there is rarely cross-departmental integration of these functions with IT operations. As illustrated in this visual model, DevOps promotes a set of processes and methods for thinking about communication and collaboration between development, QA, and IT operations.[9]

History of the term "DevOps"

At the Agile 2008 conference, Andrew Clay Shafer and Patrick Debois discussed "Agile Infrastructure", afterwards creating the Agile System Administrators Group on Google.[10] The term "DevOps" was popularized through a series of "DevOps Days" starting in 2009 in Belgium.[11] Since then, there have been DevOps Days conferences held in many countries worldwide.[12]

Goals

The specific goals of a DevOps approach span the entire delivery pipeline. They include improved deployment frequency, which can lead to faster time to market, lower failure rate of new releases, shortened lead time between fixes, and faster mean time to recovery in the event of a new release crashing or otherwise disabling the current system. Simple processes become increasingly programmable and dynamic, using a DevOps approach,[13] which aims to maximize the predictability, efficiency, security, and maintainability of operational processes. Very often, automation supports this objective.

DevOps integration targets product delivery, quality testing, feature development, and maintenance releases in order to improve reliability and security and provide faster development and deployment cycles. Many of the ideas (and people) involved in DevOps came from the enterprise systems management and Agile software development movements.[14]

DevOps aids in software application release management for an organization by standardizing development environments. Events can be more easily tracked as well as resolving documented process control and granular reporting issues. Companies with release/deployment automation problems usually have existing automation but want to more flexibly manage and drive this automation — without needing to enter everything manually at the command-line. Ideally, this automation can be invoked by non-operations employees in specific non-production environments. The DevOps approach grants developers more control of the environment, giving infrastructure more application-centric understanding.

Deployment

Companies with very frequent releases may require a DevOps awareness or orientation program. For example, the company that operates the image hosting website Flickr developed a DevOps approach to support a business requirement of ten deployments per day;[15] this daily deployment cycle would be much higher at organizations producing multi-focus or multi-function applications. This is referred to as continuous deployment[16] or continuous delivery [17] and has been associated with the lean startup methodology.[18] Working groups, professional associations and blogs have formed on the topic since 2009.[6][19][20]

Adoption

The adoption of DevOps is being driven by factors such as:

  1. Use of agile and other development processes and methodologies
  2. Demand for an increased rate of production releases from application and business unit stakeholders
  3. Wide availability of virtualized[21] and cloud infrastructure from internal and external providers
  4. Increased usage of data center automation[22] and configuration management tools

References

  1. Loukides, Mike (2012-06-07). "What is DevOps?".
  2. 2.0 2.1 Floris, Erich; Chintan, Amrit; Maya, Daneva (2014-12-10). "A Mapping Study on Cooperation between Information System Development and Operations".
  3. Samovskiy, Dmitriy (2010-03-02). "The Rise of DevOps". Fubaredness Is Contagious.
  4. Edwards,, Damon. "What is DevOps?".
  5. Vambenepe, William. "Steve Ballmer gets Cloud".
  6. 6.0 6.1 Lyman, Jay. "DevOps mixing dev, ops, agile, cloud, open source and business". 451 CAOS Theory.
  7. Debois, Patrick. "Devops: A Software Revolution in the Making?". Cutter IT Journal.
  8. Kim, Gene. "DevOps Culture Part 1".
  9. Turnbull, James (Feb 2010). "What DevOps means to me...". Kartar.
  10. Debois, Patrick. "Agile 2008 Toronto". Just Enough Documented Information. Retrieved 12 March 2015.
  11. Debois, Patrick (2009). "DevOps Days Ghent". DevopsDays. Retrieved 31 March 2011.
  12. Debois, Patrick. "DevOps Days". DevOps Days. Retrieved 31 March 2011.
  13. "What is DevOps?". NewRelic.com. Retrieved 2014-10-21.
  14. Nasrat, Paul. "Agile Infrastructure". InfoQ. Retrieved 31 March 2011.
  15. "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr".
  16. "SAM SIG: Applied Lean Startup Ideas: Continuous Deployment at kaChing". SVForum.
  17. Humble, Jez. "Why Enterprises Must Adopt Devops to Enable Continuous Delivery". Cutter IT Journal.
  18. "Applied Lean Startup Ideas: Continuous Deployment at kaChing".
  19. "DevOps Days 2009 Conference".
  20. Edwards, Damon. "DevOps Meetup Recap".
  21. "Virtual Infrastructure products: features comparison". Welcome to IT 2.0: Next Generation IT infrastructures.
  22. Ellard, Jennifer. "Bringing Order to Chaos through Data Center Automation". Information Management. SourceMedia.

Further reading