What is DevOps
Academics and practitioners have not developed a unique definition for the term “DevOps”. From an academic perspective, Len Bass, Ingo Weber, and Liming Zhu—computer science researchers from the Software Engineering Institute—suggested defining DevOps as “a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality”. The term DevOps, however, has been used in multiple contexts.
As DevOps is intended to be a cross-functional mode of working, those that practice the methodology use different sets of tools—referred to as “toolchains”—rather than a single one. These toolchains are expected to fit into one or more of the following categories, reflective of key aspects of the development and delivery process: Coding; Building; Testing; Packaging; Releasing; Configuring; Monitoring; There are different interpretations of these toolchains. Some categories are more essential in a DevOps toolchain than others; especially continuous integration and infrastructure as code.
The goals of DevOps span the entire delivery pipeline. They include improved deployment frequency, faster time to market, lower failure rate of new releases, shortened lead time between fixes, 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. DevOps aims to maximize the predictability, efficiency, security, and maintainability of operational processes. Very often, automation supports this objective.
Companies that practice DevOps have reported significant benefits, including: significantly shorter time to market, improved customer satisfaction, better product quality, more reliable releases, improved productivity and efficiency, and the increased ability to build the right product by fast experimentation. However, a study released in January 2017 by F5 of almost 2,200 IT executives and industry professionals found that only one in five surveyed think DevOps had a strategic impact on their organization despite rise in usage. The same study found that only 17% identified DevOps as key, well below software as a service (42%), big data (41%) and public cloud infrastructure as a service (39%).
DevOps as a Job Title
While DevOps describes an approach to work rather than a distinct role (like system administrator), job advertisements are increasingly using terms like “DevOps Engineer”. While DevOps reflects complex topics, the DevOps community uses analogies to communicate important concepts, much like “The Cathedral and the Bazaar” from the open source community. Cattle not Pets: the paradigm of disposable server infrastructure. 10 deployments per day: the story of Flickr adopting DevOps.
With all this tools available, the DevOps Engineer are free to decide the best solution for your companie infrastructure.