DevOps is the integration of software development with the management of the infrastructure on which that software runs to accelerate the delivery of new applications and services. It aims to replace conflicts between developers focused on rapid software delivery and operations staff responsible for maintaining a stable application infrastructure with an integrated and automated workflow aimed at meeting user needs.
Some of the main principles of DevOps include continuous integration and continuous deployment (CI / CD) of new code, continuous testing as part of the development process, and increased collaboration not only between developers and operations staff, but also between users.
DevOps principles are the foundation of other emerging disciplines designed to automate and accelerate IT functions. These include data management (DataOps), 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 user experience, greater collaboration and agile development “sprints” rather than the traditional “waterfall” development in which each phase – as the definition 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 improvements or new features continually being developed, tested, and delivered in response to user feedback.
To ensure that all participants share the same goals, “DevOps sets common, agreed and measurable goals for everyone involved in the design, construction, delivery and maintenance of services to end customers,” says Roy Illsley , chief analyst at Omdia. .
DevOps requires the use of new tools such as repositories in which several developers store, share and improve each other’s code; platforms for implementing automated workflows (also called pipelines) for functions such as code development, deployment and testing; as well as workflow and collaboration tools.
As businesses expand and improve their DevOps efforts, a recent Forrester Research Report predicts that they will increasingly use feature management and feature experimentation tools.
Feature management involves using feature flags, also known as toggles, to enable and disable new features to prevent those features from interfering with code versions. A Forrester survey of application development and delivery managers found that 31% of them believe feature management is “mission-critical,” with several saying feature management has changed business. working atmosphere “from a high-stakes release process riddled with stress and errors to one where feature release is part of day-to-day operations.
Feature experimentation allows developers to test features and compare the user experiences they produce “to find winning designs and improve applications with useful information,” Forrester explains.
Gartner predicts that DevOps practitioners will increasingly use value flow management platforms, which provide functionality such as scheduling, version control, continuous integration, test automation, version orchestration , continuous deployment (and rollback), and security testing to detect bottlenecks and track code progress. Some of them, says Gartner in a recent report, use predictive analytics to help development managers “make data-driven decisions and get the best results.” In the report, the market research predicts that 70% of organizations will use such platforms to improve flow in the DevOps pipeline by 2023. However, it warns that these platforms “represent an investment that customers should make once they are finished. ‘they have gained experience and success in this area. deliver products through DevOps.
What are the benefits of DevOps?
Implemented correctly, DevOps helps businesses meet new challenges quickly by reducing the time, effort, and risk involved in delivering new or improved digital applications and services to employees, customers, and business partners. By giving users feedback throughout the development cycle, it also helps ensure that these new applications and services accurately meet business needs.
DevOps seeks to avoid conflict between development and operations teams “by creating a multidisciplinary team with common goals geared towards customer value,” Forrester explains in a June 2021 report. “With DevOps, product teams have a greater end-to-end product responsibility. They can prioritize the work that customers find most valuable and retain ownership of the product until production, be on call in the event of a failure, and have collaborative tools to work with constituent roles such as business, security and IT, ”the report says. .
“DevOps is customer-centric and ensures that the quality, speed, cost and relevance of any service match needs and are not determined by the computer program,” says Illsley. “[Companies] who use DevOps find that service delivery / change is a more responsible process with business and IT working together.
What are the disadvantages of DevOps?
Training developers and operations staff to understand and meet individual priorities and needs can require extensive communication and change management. The same goes for moving from older waterfall development to agile methods and the tools that it requires. “Make sure all stakeholders are involved in discussions and debates,” Illsley recommends. “It may take a while, but buy-in from all the teams is critical to its success, as these are the people who need to work together to redesign processes and introduce automation. ”
DevOps teams that don’t embrace basic DevOps principles, “or say they’re embracing Agile when they’re really cascading, often miss the mark with customer satisfaction, endure grueling release processes that have high failure rates, or worry about stability so much that releases are rare and unique events, ”says Forrester.
Forrester also states that “While many companies have achieved positive results with DevOps and agile proof of concept and pilots, well-established governance and policy frameworks too often block implementation. Although governance must not (in fact, cannot) disappear, it must evolve, on the one hand, towards greater automation (policy as code) and, on the other hand, towards a basis on principles – not checking that teams and individuals have followed procedures but rather that they have kept their commitments.
Examples of DevOps tools
Some of the tools frequently mentioned by clients and analysts as enabling DevOps include:
- Docker: A software platform that provides standard tools that are widely used for building and sharing applications built as containers (a method of virtualizing an operating system designed to ensure that 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, to 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.
- Soft: A messaging platform that helps DevOps team members communicate directly and quickly. Some third parties provide Slack apps that, for example, let developers know about new software versions and release code to deploy from Slack.
- boyfriend: An automation platform that supports continuous integration and delivery by enabling DevOps teams to build, test and deploy websites and applications with code from GitHub and other DevOps repositories and platforms such as Bitbucket and GitLab.
- Kubernetes: A system widely used to automate the deployment, scaling, and management of containerized applications. Among other capabilities, it provides automated code deployments and rollbacks, service discovery, load balancing and self-healing containers, according to the company.
As businesses shift to delivering digital-first 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 helping faster delivery of more efficient software, the key DevOps themes of speed, agility, automation, collaboration, and a focus on user satisfaction will shape the model. a wider range of commercial and technical services.
Through the use of DevOps and value stream delivery platforms, Gartner predicts that IT organizations will increasingly be “organized into product teams and platform teams, not development. inconsistent ITOps applications and silos ”. These product teams, he predicts, will be directly aligned with the needs of the business and platform teams by creating “cohesive, self-service development platforms to enhance the developer experience and boost the developer experience. innovation within several software engineering teams “.