DevOps combines development (Dev) and operations (Ops) to unite people, processes, and technology in application planning, development, delivery, and operations. DevOps enables coordination and collaboration between formerly siloed roles like development, IT operations, quality engineering, and security.
Teams adopt DevOps culture, practices, and tools to increase confidence in the applications they build, respond better to customer needs, and achieve business goals faster. DevOps helps teams continually provide value to customers by producing better, more reliable products.
DevOps and the application lifecycle
DevOps influences the application lifecycle throughout its planning, development, delivery, and operations phases. Each phase relies on the other phases, and the phases aren’t role-specific. A DevOps culture involves all roles in each phase to some extent.
The following diagram illustrates the phases of the DevOps application lifestyle:
In the planning phase, DevOps teams ideate, define and describe the features and capabilities of the applications and systems they plan to build. Teams track task progress at low and high levels of granularity, from single products to multiple product portfolios. Teams use the following DevOps practices to plan with agility and visibility:
- Create backlogs.
- Track bugs.
- Manage Agile software development with Scrum.
- Use Kanban boards.
- Visualize progress with dashboards.
The development phase includes all aspects of developing software code. In this phase, DevOps teams do the following tasks:
- Select a development environment.
- Write, test, review, and integrate the code.
- Build the code into artifacts to deploy into various environments.
- Use version control, usually Git, to collaborate on code and work in parallel.
To innovate rapidly without sacrificing quality, stability, and productivity, DevOps teams:
- Use highly productive tools.
- Automate mundane and manual steps.
- Iterate in small increments through automated testing and continuous integration (CI).
Delivery is the process of consistently and reliably deploying applications into production environments, ideally via continuous delivery (CD).
In the delivery phase, DevOps teams:
- Define a release management process with clear manual approval stages.
- Set automated gates to move applications between stages until the final release to customers.
- Automate delivery processes to make them scalable, repeatable, controlled, and well-tested.
Delivery also includes deploying and configuring the delivery environment’s foundational infrastructure. DevOps teams use technologies like infrastructure as code (IaC), containers, and microservices to deliver fully-governed infrastructure environments.
Safe deployment practices can identify issues before they affect the customer experience. These practices help DevOps teams deliver frequently with ease, confidence, and peace of mind.
The operations phase involves maintaining, monitoring, and troubleshooting applications in production environments, including hybrid or public clouds like Azure. DevOps teams aim for system reliability, high availability, strong security, and zero downtime.
Automated delivery and safe deployment practices help teams identify and mitigate issues quickly when they occur. Maintaining vigilance requires rich telemetry, actionable alerting, and full visibility into applications and underlying systems.