DevOps influences the lifecycle of applications throughout the planning, development, delivery, and usage phases. Each phase depends on the others and the phases are not specific to a role. In a true DevOps culture, all roles are involved in some way in all phases.
In the planning phase, DevOps teams conceive, define, and describe the features and functionality of the applications and systems they will create. They track progress both broadly and in detail, from single-product tasks to tasks that span multiple product portfolios. Creating backlogs, tracking bugs, managing agile software development with Scrum, using Kanban boards, and viewing progress are some of the ways DevOps teams plan with agility and visibility.
The development phase includes all aspects of programming (writing, testing, reviewing, and integrating the code by team members) and compiling that code into build artifacts that can be deployed across multiple environments. DevOps teams seek to innovate quickly without sacrificing quality, stability, or productivity. To do this, they use highly productive tools, automate day-to-day and manual steps, and iterate code in small increments using automated testing and continuous integration.
Delivery is the process of deploying applications in production environments in a consistent and reliable way. The handover phase also includes the deployment and configuration of the fully governed core infrastructure that makes up those environments.
In the release phase, teams define a release management process with clear manual approval phases. They also establish automatic doors that move applications from one phase to another until they are available to customers. Automating these processes makes them controlled, scalable and repeatable. In this way, DevOps teams can deliver with ease, confidence, and peace of mind.
The use phase involves maintaining and monitoring applications, and troubleshooting potential issues, in production environments. By adopting DevOps practices, teams work to ensure reliability, high availability, and the goal of no system downtime, while enforcing security and governance. DevOps teams seek to identify issues before they impact the customer experience and quickly mitigate them as they arise. Maintaining this surveillance requires comprehensive telemetry, actionable alerts, and full visibility into the applications and underlying system.