Typically, when people think of initiating DevOps practices, they think about automating infrastructure delivery. However, organizations that have successfully adopted DevOps typically go through a number of other specific steps before reaching that point, according to new research from Puppet.
"In a DevOps evolution, there are many paths to success but many more to failure," Alanna Brown, Puppet's director of product marketing, said to ZDNet. Organizations of all kinds, she said, "share the same set of challenges as they're starting to adopt DevOps practices. If they lack the necessary support, if there are organizational roadblocks... all these things can kill early momentum and lead to cynicism."
So with Puppet's seventh annual State of DevOps report, shared before its release with ZDNet, Puppet decided to use its findings to develop a prescriptive path forward for organizations that may be having trouble scaling DevOps across the business.
The report, which will be published on Sept. 12, surveyed about 3,000 tech professionals worldwide about the specific practices they implemented on their DevOps journeys. The findings suggest there are five stages to adopting and scaling DevOps. Puppet ran a factor analysis to determine what two specific business practices represented the defining characteristics of those five stages, revealing 10 key practices along with several other contributing practices.
These stages and their corresponding practices help offer a linear path to scaling DevOps. Stages Two and Three could happen alternatively or simultaneously, but those steps are needed to get to Stage Four-- which is where automating infrastructure delivery comes in.
"The key is that there is a path to success," Brown said.
Here's a look at the five stages and the defining practices of each stage:
1. Normalizing the tech stack
"This is critical because enterprises are just inherently complex," Brown said. In just the past five years, an explosion in technological development and new tools has created a "one of everything" problem, she added. Specifically, at this stage, teams are using version control and deploying on a standard set of operating systems.
2. Standardize and reduce variation
Building on Stage 1, teams at this stage typically work on deploying on a single operating system and building on a standard set of technologies, including databases, key value stores and message queues.
3: Expanding DevOps practices
"We start to see DevOps practices spread beyond dev and ops teams to other functional boundaries," Brown said. "Individuals can do work without approval from outside their team, deployment patterns are being reused."
Working without outside approval is more efficient but "can only happen after a certain level of trust is built," Brown added. "Trust is built with success -- showing you can deploy an application 10 times without having an incident."
4. Automating infrastructure delivery
At this crucial stage -- what many organizations typically consider the beginning of a DevOps initiative -- teams begin automating resources for broader use, not just use within their own divisions. Provisioning and automating resources across teams "highlights the need to get executive buy in," at this stage, said Andi Mann, chief technology advocate at Splunk, a sponsor of this year's survey.
Also: How to become a DevOps engineer: A cheat sheet TechRepublic
Specifically, the defining practices are automating system configurations and automating provisioning.
5. Providing self-service capabilities
Self service takes root once an organization has laid the groundwork with the other four stages and has established a high degree of trust internally. The defining practices of this stage are automating incident response and making resources available via self service.
To get to automated incident response, Brown said, "you need to address several manual chokepoints. The team that often is remediating the incident, they often don't have access to the data they need, they need to get their access signed off...Getting to this automated point requires deep collaboration across multiple teams."
That collaboration is a "really big cultural indicator," she said, proving that the organization has cultivated the trust needed for DevOps.
In addition to detailing these stages and defining practices, Puppet used the data to identify five "foundational practices" -- practices that have a high impact across all five stages of a DevOps journey.
These include reusing deployment patterns when building applications or services (also highlighted in Stage 3), as well as reusing testing patterns. They also include using a configuration management tool and having teams contribute improvements to tooling provided by other teams. Lastly, successful organizations typically have monitoring and alerting configurable by the team operating the service.
Also: 10 bad habits DevOps admins must break TechRepublic
The study refers to these as "foundational" practices because a plurality of survey respondents who successfully scaled DevOps were employing these practices early on in their journey.
Meanwhile, the foundational practices all reflect some of the core values of DevOps, Mann said. For example, he said, "We see things like monitoring and alerting being configurable by the team operating the service- it's an empowerment model. Allowing them to understand their role in the system and giving them empowerment to create positive outcomes for their organization means this is a core part of what DevOps is."