This comprehensive guide covers DevOps, an increasingly popular organizational structure for delivering rapid software deployments in the enterprise.
In the age of constant security vulnerabilities and subsequent security patches, and the rapid and frequent addition of features to software, DevOps—a workflow that emphasizes communication between software developers and IT pros managing production environments—is at the forefront when considering how to shape an IT department to fit an organization’s internal needs and best serve its customers.
This cheat sheet is an introduction to DevOps, as well as a “living” guide that will be updated periodically as trends and methods in this field change.
What is DevOps?
DevOps (a combination of “Development” and “Operations”) is an ethos that emphasizes the importance of communication and collaboration between software developers and production IT professionals while automating the deployment of software and infrastructure changes.
The goal of DevOps is to create a working environment in which building, testing, and deploying software can occur rapidly, frequently, and reliably. In turn, this allows for an organization to achieve its goals quicker, allowing for a faster turnaround time in the deployment of new features, security patches, and bug fixes.
DevOps is a common attribute of startups, as the limited headcount inherent in startups necessitates that programmers must be responsible for deployment of production implementation of software. While DevOps as a resource management strategy is also present in some larger organizations, it has also been criticized for being an inefficient use of human capital.
DevOps encompasses the already popular programming concepts of agile development, continuous integration, and continuous delivery, and extends that ethos into the social aspect of IT by placing a premium on the importance of tearing down walls that divide development, operations, support, and management teams. In the same vein, DevOps is a descriptive—not a prescriptive—concept. There is no single product or silver bullet that can fix existing problems in an organization; the purpose of DevOps is to increase collaboration.
Why does DevOps matter?
To put it simply, DevOps makes the entire software lifecycle faster, from code commit to production deployment.
A survey of 4,600 IT professionals by Puppet in June 2016 found that IT departments with a robust DevOps workflow deploy software 200 times more frequently than low-performing IT departments. In addition, they have 24 times faster recovery times, and three times lower rates of change failure, while spending 50% less time overall addressing security issues, and 22% less time on unplanned work.
While the concept of continuous delivery—and by extension, DevOps—may be counterintuitive to some, the end goal of frequent software deployments is to make the process so routine as to be a non-event, as opposed to a disruptive major rollout.
Who does DevOps affect?
Any organization with an in-house IT department can benefit from adopting a DevOps communication culture. For the consumer side of the equation, DevOps allows for a significantly reduced time to market, allowing organizations to deliver new features and security patches to customers more quickly and efficiently.
DevOps can also increase job satisfaction among IT professionals. The initiative allows for a much-needed conversation change from “How can we reduce cost?” to “How can we increase speed?” which is more likely to be a successful long-term strategy.
The aforementioned Puppet survey also notes that employees in high-performing DevOps teams were 2.2 times more likely to “recommend their organization as a great place to work.”
When did companies start using DevOps?
DevOps as an idea is an outgrowth of Agile Infrastructure, effectively extrapolated to the entire enterprise rather than just the IT department. The concept gained a lot of traction with the first devopsdays conference in Belgium in 2009.
While traditional technology companies like Amazon, Adobe, and Netflix have been early adopters of the strategy, DevOps also enjoys popularity in the retail space with Target, Walmart, and Nordstrom utilizing the communication model.
How do I implement DevOps?
Because DevOps is, at its core, a cultural and procedural adjustment from the way things have been done in the past, it is not possible to implement DevOps overnight. The steps needed to implement DevOps is really dependent on the existing IT infrastructure and corporate structure of a given organization—groups already using cloud infrastructure and agile development practices are several steps ahead of groups not using those systems.
Gene Kim, the founder of TripWire, and author of various books on development, advocates for an incremental approach for adopting DevOps (PDF link). While this is a long-term change that will likely take 1-2 years for established organizations, results from the pilot candidate can be seen in a matter of weeks.