Devops is one of the defining technology industry trends of the past decade, primarily because it bridges so many of the changes that have shaped modern software development. From the popularization of cloud infrastructure to agile development and cloud-native computing, devops has enabled the entire industry to speed up its software development cycles.
Here, we explain the basics of devops and how it helps organizations of all kinds deliver better software more regularly, quickly, and securely.
What is devops?
A portmanteau of “development” and “operations,” devops emerged as a way of bringing together two previously separate groups responsible for the building and deploying of software. In the old world, developers typically wrote code before throwing it over to the system administrators (ops) to deploy and integrate that code.
Then agile methodologies and cloud computing emerged, changing how we build and deploy software, with many organizations reorienting around modern, cloud-native practices in the pursuit of faster, better releases. This required a new way to perform these key functions in a more streamlined, efficient, and cohesive way, one where the old frustrations of disconnected dev and ops functions would be eliminated.
Gene Kim, author of The Phoenix Project and the industry’s foremost devops advocate, originally defined devops as “the emerging professional movement that advocates a collaborative working relationship between development and IT operations, resulting in the fast flow of planned work while simultaneously increasing the reliability, stability, resilience, and security of the production environment.”
Devops is also no longer exclusively the purview of cloud-native companies like Facebook, Netflix, Spotify, and Amazon, having now also infiltrated the enterprise, especially for organizations that increasingly rely on software to run their business, such as banks, airlines, and retailers.
Devops practices
Devops requires a shift in mindset from both sides of the dev and ops divide. Development teams should focus on learning and adopting agile processes, standardizing platforms, and helping drive operational efficiencies. Operations teams must now focus on improving stability and velocity, while also reducing costs by working hand in hand with the developer team.
Broadly speaking, these teams need to all speak a common language and there needs to be a shared goal and understanding of each other’s key skills for devops to thrive.
More specifically, engineers Damon Edwards and John Willis created the CALMS model to bring together what are commonly understood to be the key principles of devops:
- Culture: One that embraces agile methodologies and is open to change, constant improvement, and accountability for the end-to-end quality of software.
- Automation: Automating away toil is a key goal for any devops team.
- Lean: Ensuring the smooth flow of software through key steps as quickly as possible.
- Measurement: You can’t improve what you don’t measure. Devops pushes for a culture of constant measurement and feedback that can be used to improve and pivot as required, on the fly.
- Sharing: Knowledge sharing across an organization is a key tenet of devops.
“Who could go back to the old way of trying to figure out how to get your laptop environment looking the same as the production environment? All these things make it so clear that there’s a better way to work. I think it’s very tough to turn back once you’ve done things like continuous integration, like continuous delivery. Once you’ve experienced it, it’s really tough to go back to the old way of doing things,” Kim told InfoWorld.
What is a devops engineer?
Naturally, the emergence of devops has spawned a whole new set of job titles, most prominent of which is the catch-all devops engineer.
Generally speaking, this role is the natural evolution of the system administrator — but in a world where developers and ops work in close tandem to deliver better software. This person should have a blend of programming and system administrator skills so that he or she can effectively bridge those two sides of the team.
That bridging of the two sides requires strong social skills more than technical. As Kim put it, “one of the most important skills, abilities, traits needed in these pioneering rebellions — using devops to overthrow the ancient powerful order, who are very happy to do things the way they have for 30 to 40 years — are the cross-functional skills to be able to reach across the table to their business counterparts and help solve problems.”
This person, or team of people, will also have to be a born optimizer, tasked with continually improving the speed and quality of software delivery from the team, be that through better practices, removing bottlenecks, or applying automation to smooth out software delivery.
The good news is that these skills are valuable to the enterprise. Salaries for this set of job titles have risen steadily over the years, with 95% of devops practitioners making more than $75,000 a year in salary in 2020 in the United States. In Europe and the UK, where salaries are lower across the board, 71% made more than $50,000 a year in 2020, up from 67% in 2019.
Key devops tools
While devops is at its heart a cultural shift, a set of tools has emerged to help organizations adopt devops practices.
This stack typically includes infrastructure as code, configuration management, collaboration, version control, continuous integration and delivery (CI/CD), deployment automation, testing, and monitoring tools. Digital.ai has a great periodic table of devops tools.
The Big Three cloud providers — AWS, Microsoft Azure, and Google Cloud — provide most if not all of these devops tools as part of their platforms, but there are also plenty of other options, as well as a wealth of open source tools.
Why do devops?
Whomever you ask will tell you that devops is a major culture shift for organizations, so why go through that pain at all?
Devops aims to combine the formerly conflicting aims of developers and system administrators. Under its principles, all software development aims to meet business demands, add functionality, and improve the usability of applications while also ensuring those applications are stable, secure, and reliable. Done right, this improves the velocity and quality of your output, while also improving the lives of those working on these outcomes.
How to start with devops
There are lots of resources for help getting started with devops, including Kim’s own Devops Handbook, or you can enlist the help of external consultants. But you have to be methodical and focus on your people more than on the tools and technology you will eventually use if you want to ensure lasting buy-in across the business.
A proven route to achieving this is a “land and expand” strategy, where a small group starts by mapping key value streams and identifying a single product team or workload for trialing devops practices. If this team is successful in proving the value of the shift, you will likely start to get interest from other teams and from senior leadership.
If you are at the start of your devops journey, however, make sure you are prepared for the disruption a change like this can have on your organization, and keep your eye on the prize of building better, faster, stronger software.