DevOps is the practice of integrating software development with the management of the infrastructure on which that software runs to speed the delivery of new applications and services. It aims to replace conflicts between developers focused on fast software delivery and operations staff tasked with maintaining a stable application infrastructure with an integrated, automated workflow aimed at meeting user needs.
Among the prime principles of DevOps are continuous integration and continuous deployment (CI/CD) of new code, continuous testing as part of the development process, and increased collaboration among not only developers and operations staff but users.
DevOps principles are the foundation for other emerging disciplines designed to automate and speed IT functions. These include managing data (DataOps,) the cloud (CloudOps), security (DevSecOps) and the use of AI to improve IT infrastructure management (AIOps).
How Does DevOps Work?
DevOps seeks to change work habits and roles to focus more on the user experience, greater collaboration and agile development “sprints” rather than traditional “waterfall” development in which each phase — such as defining requirements, coding, testing and deployment — must be completed before the next one begins. With DevOps, multiple tasks — such as coding and testing — can be done at the same time, with enhancements or new features continuously developed, tested and delivered in response to user feedback.
To assure all the participants share the same goals, “DevOps sets common, agreed-upon and measurable objectives for everyone involved in the design, building, delivery and maintenance of services to end customers,” says Roy Illsley, chief analyst at market researcher Omdia.
DevOps requires the use of new tools such as repositories in which multiple developers store, share and enhance each other’s code; platforms to implement automated workflows (also known as pipelines) for functions such as code development, deployment and testing; as well as tools for workflow and collaboration.
As enterprises scale and improve their DevOps efforts, a recent Forrester Research report predicts they will increasingly use feature management and feature experimentation tools.
Feature management involves the use of feature flags, also known as toggles, to turn new features on and off to avoid those features interfering with code releases. A Forrester survey of application development and delivery leaders showed 31% feel feature management is “mission critical,” with several saying feature management changed the work atmosphere “from one of high-stakes release processes rife with stress and error to one where feature release is part of everyday operations.”
Feature experimentation allows developers to test features and compare the user experiences they produce “to find winning designs, and drive application improvements with insight,” says Forrester.
Gartner predicts DevOps practitioners will increasingly use value stream management platforms, which provide features such as planning, version control, continuous integration, test automation, release orchestration, continuous deployment (and rollback) and security testing to find bottlenecks and track the progress of code. Some of these, Gartner says in a recent report, use predictive analytics to help development managers “make data-driven decisions and optimize output.” In the report, the market researcher predicts 70% of organizations will use such platforms to improve flow in the DevOps pipeline by 2023. It warns, however, that such platforms “are an investment that clients should make once they have some experience and success in delivering products via DevOps.”
What Are the Benefits of DevOps?
Implemented properly, DevOps helps businesses quickly meet new challenges by reducing the time, effort and risk of delivering new or improved digital applications and services to employees, customers and business partners. By giving users input throughout the development cycle, it also helps ensure that these new applications and services accurately meet the needs of the business.
DevOps seeks to avoid conflicts between development and operations teams “by creating one multidisciplined team with common goals oriented toward customer value,” says Forrester in a June 2021 report. “With DevOps, product teams own greater end-to-end product responsibility. They can prioritize work that customers find most valuable and maintain ownership of the product out to production, being on call when there are outages and having collaborative tools in place to work with constituent roles such as business, security, and IT,” the report says.
“DevOps provides a focus on the customer and works to ensure that the quality, speed, cost and relevance of any service match what are needed and are not driven by IT’s agenda,” says Illsley. “[Companies] that use DevOps find that the delivery of services/change is a more accountable process with the business and IT working together.”
What Are the Drawbacks of DevOps?
Educating developers and operations staff to understand and respect each other’s priorities and needs can require extensive communication and change management. So can the move from older waterfall development to agile methods and the tools it requires. “Ensure all actors are involved in the discussions and debate,” recommends Illsley. “This may take time, but getting all the teams on-board is critical to its success, as it is these people that need to work together to redesign processes and introduce automation.”
DevOps teams that fail to adopt core DevOps principles, “or say they're adopting agile when they're really doing waterfall, often miss the mark with customer satisfaction, endure grueling release processes that have high failure rates, or get so worried about stability that releases are rare and unique events,” says Forrester.
Forrester also says that “while many companies have had positive results with DevOps and agile proofs of concept and pilots, entrenched governance and policy frameworks are too often stalling implementation. While governance shouldn’t (indeed, can’t) go away, it should shift, on one hand, toward greater automation (policy as code) and, on the other hand, toward a basis on principles — not checking that teams and individuals have followed procedures but rather that they’ve kept their commitments.”
Examples of DevOps Tools
Among the tools mentioned frequently by customers and analysts as enabling DevOps are:
- Docker: A software platform that provides widely used standard tools for building and sharing apps built as containers (a method of virtualizing an operating system designed to ensure applications can run on multiple computing environments such as multiple clouds) often used by DevOps teams.
- Jenkins: Open-source software that automates workflows, or pipelines, for continuous integration/continuous delivery and deployment (CI/CD) of software.
- GitHub: A cloud-based code repository that allows multiple developers to store and share their code and track changes made to it by them and others in DevOps teams and provides project and team management.
- Slack: A messaging platform that helps members of DevOps teams communicate directly and quickly. Some third parties provide Slack apps that, for example, allow developers to be notified of new software builds and release code to deployment from within Slack.
- Buddy: An automation platform that supports continuous integration and delivery by allowing DevOps staffs to build, test and deploy websites and applications with code from GitHub and other repositories and DevOps platforms such as Bitbucket and GitLab.
- Kubernetes: A widely used system for automating the deployment, scaling and management of containerized applications. Among other capabilities, it provides automated rollouts and rollbacks of code, service discovery, and load balancing and self-healing of containers, the company says.
As enterprises move to digital-first delivery of products and services, they will increasingly rely on DevOps to meet an ever-increasing scale and variety of business needs. Over time, DevOps will increasingly overlap with other automated IT capabilities such as security and service management.
Beyond aiding faster delivery of more effective software, the key DevOps themes of speed, agility, automation, collaboration and a focus on user satisfaction will form the template for a wider range of business and technical services.
Through the use of DevOps and value stream delivery platforms, Gartner predicts IT organizations will increasingly be “organized as product teams and platform teams — not as disjointed application development and ITOps silos.” These product teams, it predicts, will be aligned directly with business needs and platform teams building “consistent, self-service development platforms to enhance developer experience and drive innovation across multiple software engineering teams.”