If you’ve poked your head in the IT space the past few years, you may have noticed the rapid rise of the term DevOps. Perhaps in perfect tandem, there’s been a rise in articles centered around the question, “What is DevOps?”
It’s a term that is difficult to wrap your head around if you aren’t familiar with the software development process. The word itself is a portmanteau that meshes “development” and “operations.” In essence, it’s about efficiency – increasing communication and collaboration between development teams that write the code and operations teams that implement the code, to streamline deployment and reduce error.
To determine how users of cloud service providers think about and use DevOps, we surveyed 247 organizations. All respondents held a manager level position or higher in their company’s IT department. Organizations ranged in size from sole proprietorships to enterprises with 10,000+ employees.
The survey questions were included in a of opinions regarding Amazon Web Services (AWS), Google Cloud Platform, and Microsoft Azure. Therefore, all respondents use at least one of these platforms, with usage spread almost evenly among the three providers.
- The largest percentage of respondents agree with Wikipedia’s definition of DevOps. No single definition of the philosophy held a majority, though.
- 80% of respondents are very or somewhat familiar with DevOps.
- Microsoft Azure is more effective than Amazon Web Services and Google Cloud Platform at facilitating DevOps, according to our respondents.
- Docker is the most popular tool used to facilitate DevOps.
- Defining DevOps: An Imprecise Science
- A Growing Trend: Familiarity and Adoption
- Automation, Efficiency, and Communication: The Benefits of DevOps
- How IT Specialists Use DevOps: Tools and Approaches
- Cloud Services Providers' Effectiveness at Facilitating DevOps
- Takeaways and Recommendations
Defining DevOps: An Imprecise Science
In essence, DevOps emphasizes collaboration and efficiency. However, given its organic growth, a widely agreed upon description of DevOps remains elusive. Is there any way to pin down a singular definition?
We asked respondents to pick the definition that best characterizes DevOps from four choices. Each definition contains distinct elements and was written by four separate and reputable organizations. We did not include the names of the organizations responsible for the definitions in the survey to discourage bias.
The definitions are listed below with their respective percentages from the survey:
- 35%: “DevOps… is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other [IT] professionals while automating the process of software delivery and infrastructure changes.” – Wikipedia (Wikipedia’s definition since changed after the completion of our survey, but our wording is cited here.)
- 24%: “[DevOps] is an approach to operations ... uniting development and operations teams to automate and standardize processes for infrastructure deployment...” - Rackspace
- 21%: “DevOps is best defined as a philosophy or ideology [with] many of the underlying principles and language … grounded in a combination of agile software development plus Kaizen, Lean Manufacturing, and Six Sigma methodologies.” – Hewlett Packard Enterprise
- 20% “DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity.” – Amazon Web Services
Wikipedia’s definition was selected by the highest percentage of respondents, but the other three definitions garnered noteworthy support as well. Experts also had different, and sometimes contradictory, points to make about this data, which emphasizes the lack of a widely agreed upon definition of DevOps.
“I think that the word culture is misused,” said David Hickman, Vice President of Global Delivery at Menlo Technologies. “It's more of a methodology trend than a culture, which pertains more to social elements of organizations and how people relate to each other from a professional and business perspective.”
Conversely, Brian Dearman, Solutions Architect at Mindsight, said, “It being a cultural movement is true. Fifteen to twenty years ago, DevOps consisted of two separate things, with operations and development consistently complaining about each other. The culture is being changed, removing the animosity between each side.”
Nick Martin, Principal Applications Development Consultant at Cardinal Solutions and Organizer for the CloudDevelop Conference, critiqued Wikipedia’s emphasis on automation: “The definition may be a little over-prescriptive in talking about automating processes. DevOps can be done without such a strong focus on automation. It's ultimately about collaboration and getting groups working together in order to solve the same problems.”
Lawrence Hecht, Research Director at The New Stack, stands firmly behind Wikipedia’s definition, with a few caveats: “I would add to the Wikipedia definition that there’s a motivation for increased speed and quality. … Secondly, I have a personal belief that DevOps is more than a culture, or movement, or practice. … I think DevOps has become a specific job title.”
From the fact that no definition secured a majority and the differing commentary provided by experts, we can hypothesize that a widely accepted definition of DevOps has not yet been formulated. In many ways, depending on your end goal, DevOps is what you make it.
A Growing Trend: Familiarity and Adoption
Almost 80% of our respondents were 'very' or 'somewhat familiar' with the DevOps philosophy, signaling a broad awareness of the term among leaders in IT departments.
Martin says that the growing awareness of DevOps is a given: “I see it as the next evolution in agility.”
The Agile software development movement coalesced in the early 2000s, with the publication of the Manifesto for Agile Software Development by a group of software developers. The movement emphasizes fast and continuous delivery, heightened response to change, and collaborative and cross-functional teams. Agile methodologies often found success by uniting developers and testers on the same teams.
“DevOps brings in the other groups, including infrastructure, [operations], and support,” said Martin. “It's a natural evolution that has occurred for the same reasons that made Agile so popular during the last couple of decades.”
In regards to implementation, 59% of organizations surveyed said they already use a DevOps process. Another 36% do not, but plan to. That’s 95% of organizations either using DevOps now or planning to sometime in the future.
Hickman attributes some of the growing popularity of DevOps to the cloud, since it lends itself to a more flexible IT environment. The increased popularity of the Agile movement has also spurred DevOps growth. While the Agile movement often eased bottlenecks that accumulated during the quality assurance process, the DevOps movement seeks to break the silos down further and increase efficiency on the operations side.
“In the past, solutions tended to be more monolithic, with everything being written in the same language,” said Hickman. “Right now, we're using a wider combination of tools, either open-source or internal, so the notion of rapid deployment and Agile releases on a monthly or quarterly basis requires DevOps.”
However, DevOps may not be quite as widespread among the general population as our data indicates. Our survey focused on IT professionals whose organizations already use either AWS, Google Cloud Platform, or Azure. Given that constraint, the data pool is likely more technologicallyinclined than the general population and thus may have greater investment in DevOps.
The Benefits of DevOps: Automation, Efficiency, and Communication
Respondents indicated the beneficial impact of DevOps on their organizations. On a 1-10 ranking scale, respondents gave an averaged ranking of 8.7 to the question, “How has DevOps improved your development process?"
A ranking of five indicated no change, while a 1 represented significant harm and a 10 represented great improvement. Eighty-seven percent (87%) of respondents marked 8-10, while 12% ranked 5-7. Only one respondent ranked DevOps a four or below on our scale.
So how exactly does DevOps help organizations? After speaking with several DevOps experts, we identified three ways that the philosophy benefits organizations:
- Automating Processes
- Increasing Efficiency
- Removing Conflict
These elements are closely intertwined, but each has distinct advantages.
First, automation allows you to reduce manual and repetitive tasks, as well as create more reliable systems, since a computer will catch errors in code better than a human. This term is often closely connected with the concept of DevOps, with many seeing it as integral to the philosophy.
Second, automation naturally increases efficiency. “DevOps lets us quickly put code out and fix issues. Instead of having updates every few months, we can now do it every other week,” said Dearman. “When fixes are put out quicker, customers are happier.”
Third, better communication and greater awareness of responsibilities between formerly separated teams reduces conflict. “Many times, operations will understand factors that the developers aren't considering, like how to do security penetration testing, setting up proper firewall rules, and even how the solution integrates into the overall enterprise architecture,” said Martin. “We can create quality gates early in developing, instead of catching issues two days before the solution is set to release into production.”
How IT Specialists Use DevOps: Tools and Approaches
The first part of our report shows that DevOps still lacks a widely agreed upon definition, so it’s natural that the methods of employing it also are varied. Experts differed in their answers to the question, “Do you absolutely need specific tools to implement DevOps?”
Martin of Cardinal Solutions doesn’t believe tools are a requirement. “It goes back to the definition that you provided, stating that DevOps is more about culture, bringing people together,” he said. Hickman and Dearman believe differently, though. “Companies can't program these things on their own,” said Hickman.
“DevOps is a collaboration between two teams, which traditionally were against each other,” said Dearman. “In order to facilitate that faster movement, we need something that can put code out quicker. We need tools like Chef and Puppet for application management or Jenkins for making that deployment.”
When discussing tools, we found Docker to be the most popular – 41% of our respondents use it.
“The biggest thing [Docker] brings to the table is predictability of environments,” said Martin. “When we define a Docker image and deploy our product as part of that image, we can run it in Azure, Google Cloud or AWS, in an on-premises data center, or even within a local workstation. Because everything is contained within than Docker image, there is absolute consistency across all the environments.”
Cloud Service Providers' Effectiveness at Facilitating DevOps
Almost 70% of respondents said Azure is ‘very effective’ at facilitating DevOps, beating out AWS and Google Cloud Platform.
Some experts were surprised by Azure’s high finish, given AWS’ prevalence in the market. “This surprised me,” said Hickman. “I would’ve thought AWS [would] be stronger.”
Martin wasn't so surprised. “Microsoft has re-architected its whole solution for creating build-and-release pipelines, making everything more task-based and extensible,” he said. “There is support for all kinds of open-source build-and-release tasks that organizations may have. Azure integrates closely with Team Foundation Server as well, with a product backlog. It's one smooth, cohesive product for managing a DevOps pipeline.”
Our Takeaways and Recommendations for Action
Beware the buzzword. A concept like DevOps, which is already indistinct in so many ways, should be looked at with a critical eye as more and more individuals contribute their opinions on the topic.
However, based on the data, we can draw out the following recommendations:
- Since DevOps still lacks a broadly accepted definition, it’s best to take time defining the process for the goals of your own team before implementation.
- DevOps is broadly accepted by IT professionals. If your organization can benefit from DevOps processes, adopt them before being left behind.
- According to our respondents, Docker is the most useful tool for employing DevOps, while Microsoft Azure is the most effective of the “Big Three” cloud providers at facilitating DevOps. It may benefit you to look into these.
You can’t deny that for many organizations, DevOps has greatly improved communication and efficiency. DevOps has achieved buzzword status, but it may just be because it works.
Questions? Contact Riley Panko at [email protected].