Tech Hub

@ Solution Architecture Works

DevOps Foundations: The Fundamental Principles and Practices

Explore the Application Lifecycle in DevOps

Estimated reading: 3 minutes 63 views

Although DevOps practices cover a wide range, their primary goal is to optimize application lifecycle management. In the example of a fictional company, migrating an existing application to a new one with updated features requires revisiting each phase of the application lifecycle.

Discover how DevOps principles can significantly transform the implementation of each phase—from planning to development, through delivery and operations. This unit provides a high-level overview of these implementations.

The phases of an application lifecycle include:

  • Planning
  • Development
  • Delivery
  • Operations

Planning


The planning phase involves reviewing customer needs to define the features and capabilities of the software to be developed. This software can range from simple microservices to portfolios comprising multiple products. The outcome of this phase defines the software requirements, scope, and milestones for application development and deployment.
In a DevOps approach, the main considerations at this stage include agility, customer focus, team alignment, and visibility.

Development


The development phase covers all aspects related to writing the application code, including programming, testing, and code reviews.
According to DevOps practices, code should be stored in a version control system (or source control), which facilitates collaboration and version management. A functional version of the code is used to create artifacts for delivery. These artifacts can include executables, software libraries, container images, installation packages, configuration files, deployment scripts, or even documentation.

Changes should be applied in small increments using automated builds and tests—a process called Continuous Integration (CI). This accelerates development and improves agility.

Delivery


Delivery involves deploying the artifacts created during development into production environments in a consistent and reliable manner.
The ultimate goal is full automation through Continuous Delivery (CD). However, some organizations—especially early in their DevOps adoption—may choose to include manual validations or approvals. Over time, as confidence in DevOps practices grows, these validations can be automated. For example, a successful, unattended verification in a pre-production environment can trigger automatic deployment to production.

Automation makes delivery processes more scalable, repeatable, and resilient (by reducing human error).
A key element of this phase is the use of Infrastructure as Code (IaC) to provision and configure the target infrastructure, ensuring consistency, reproducibility, and agility.

Operations


The operations phase involves maintaining, monitoring, and troubleshooting applications in production.
The main DevOps objectives are stability, reliability, rapid incident response, security, compliance, and customer satisfaction.
These objectives partly depend on implementing observable metrics. DevOps processes also rely on feedback loops that provide data on the current state of the application (performance, responsiveness, user experience, etc.).

It is essential to foster maximum collaboration between development, operations, and security teams. This phase is also a critical source of continuous learning.

What is the last step in the application lifecycle?


As its name suggests, the application lifecycle is designed as a circular process. It has a beginning and an end defined by the creation and decommissioning of the application.
However, from the initial deployment (and often even before), user feedback and monitoring data feed future updates and application evolution.

Note


Even though security has only been mentioned a few times, according to DevSecOps principles, it must be integrated into every phase of the lifecycle, starting from initial planning.

Share this Doc

Explore the Application Lifecycle in DevOps

Or copy link

CONTENTS