DevOps

4 min read Updated Mon Jun 08 2026 01:02:45 GMT+0000 (Coordinated Universal Time)

Amalgamation of Development and Operations. Unified model where one team builds, deploys, and supports software.

Traditionally separate teams handle development, release, and support teams. Has communication bottlenecks and delays.

Reasons

  • Agile development outpaced traditional release pipelines.
  • Amazon’s same-team service model demonstrated reliability gains.
  • Cloud delivery eliminated physical distribution.

Core principles

  • Everyone responsible for everything
  • Automate everything
  • Measure first, change later
    Decision are based on collected data; not intuition.

Benefits

  • Faster deployment
    As it is automated where possible.
  • Reduced risk
    Due to small increments and automations.
  • Faster repair
    No team-boundary delays.
  • Increased productivity
    Short feedback loops. No communication bottlenecks or delays.

DevOps Automation

Reduces time and cost for integration, deployment, and delivery. Encoded in scripts and models which are version-able and stored in the repository.

AspectDescription
Continuous integration (CI)Integrated build and tests run on every push to master.
Continuous deliveryChanged system tested in production-equivalent environment; ready for release.
Continuous deployment (CD)New release deployed to users automatically on every master change.
Infrastructure as code (IaC)Machine-readable infrastructure models; CM tools provision servers from them.

Continuous Integration

Integrated system version built and tested on every push to shared repository. Bugs are found as soon as the changes are pushed. Faster and earlier diagnostics prevent issues in the production.

Breaking the build — pushing code that causes system tests to fail.

Best practice — “integrate twice”:

  1. Integrate and test locally.
  2. Push to project repository to trigger integration server.

Local integration steps: make changes → commit to local repo → pull master changes → merge → compile and build → test → push if passing.

System Building

Automated build minimizes integration time via incremental building — only changed components and their dependents are recompiled.

Dependency model — specifies what must be rebuilt when a file changes. Build tool compares modification timestamps of source vs. compiled files:

  • Compiled newer than source → no recompilation needed.
  • Source newer than compiled → recompile source.
  • Dependency (e.g., header/classdef) newer than compiled → recompile dependent.

Continuous Delivery and Deployment

Continuous delivery is the process of ensuring the system is ready for customer delivery after each change. Requires testing in a production-equivalent environment (aka. staging environment). Acceptance (functionality, load and performance) tests are performed.

When all tests are passing, install on production servers and switch operation to new version.

Deployment steps:

  1. Momentarily stop new service requests.
  2. Let older version drain outstanding transactions.
  3. Switch to new version; resume processing.

Infrastructure as Code

Aka. IaC. Machine-readable (and human-readable) model of servers, networks, and installed software.

Certain tools only model the servers and networks such as Terraform. They are called provisioning tools or orchestration tools.

Certain tools only model the installed software such as Ansible. They are called configuration management tools.

Provisioning tools and configuration management tools are used together or independently based on the preference of the team.

In some cases, both of these tools are called configuration management tools.

Containers

Stand-alone execution environment on top of an OS. Enable OS-independent deployments.

DevOps Measurement

DevOps process must be continuously measured and improved with time. Automation should be applied to measurement as much as possible.

Process Measurement

Collecting data about the development, testing and deployment processes. Can only be automated to some extent because everyone work and record their work differently.

Service Measurement

Collecting data about performance, reliability, and customer acceptability of the software.

Usage Measurement

Collecting data on how customers use the product. A monitoring system may be used to measure usage.

Business Success Measurement

Collecting data on how the product contributes to overall success of the business.

Metrics Scorecard

Payal Chakravarty from IBM suggests 9 metrics for cloud-delivered software.

MetricTypeDesired Direction
Deployment frequencyProcessIncrease
Change volumeProcessIncrease
Lead time from development to deploymentProcessDecrease
Percentage of failed deploymentsProcessDecrease
Mean Time To Recovery (MTTR)ProcessDecrease
AvailabilityServiceStable/Increase
PerformanceServiceStable/Increase
Number of customer complaintsServiceDecrease
Percentage increase in customer numbersServiceIncrease
Was this helpful?