DevOps is the cumulative blending of the terms development and operations, which actually means to adopt a collaborative or shared approach to the tasks performed by a company’s application development and IT operations teams. The term DevOps is used in several ways. In its most broad meaning, DevOps is an operational philosophy that promotes better accountabilty & communication between these two teams of development & operations along with others. In its most narrow interpretation, DevOps stands for the adoption of automated and programmable software development and infrastructure deployment and maintenance. The term may also label a culture that strategically looks at the entire software delivery mechanism, overseeing shared services and promoting the use of new development tools and adopting the practices ensuring best returns. While DevOps is not a technology, there are certain critical tools commonly used in DevOps environments. These include continuous integration and continuous delivery or continuous deployment tools, with an outright emphasis on task automation. Other products to support DevOps include real-time monitoring as well as viable collaboration platforms.
A DevOps approach can successfully coexist with Agile software development; IT service management frameworks, such as IT Infrastructure Library, project management directives, such as lean and six sigma; and other strategies to execute IT projects to meet high level business needs. While it is typically associated with Agile development.
Patrick Debois, a software development consultant,coined the term DevOps in 2009 by naming a conference DevOps Days. The concept of DevOps was then popularized & brought to notice with the book The Phoenix Project in 2013. The Phoenix Project is a well written novel about DevOps, using a fictional depiction as an example to allow IT managers understand the concepts and benefits of collaboration and shared technologies. It illustrates the prevalent problems in IT that DevOps solves, such as division and mistrust between developers and IT admins, lack of automation leading to long lead times and unforced errors, and misalignment of business requirements and projects to serve them in their best interests.