Introduction to DevOps and Software Development Lifecycle (SDLC)

Chapter 1
Foundations of DevOps

Diploma in DevOps
Introduction to DevOps and Software Development Lifecycle (SDLC)   •   Diploma

Foundations of DevOps

Introduction

DevOps is an organisational and technical approach for improving the way software is designed, built, tested, released, operated, secured, and continuously improved. It seeks to reduce the separation between software development and IT operations while preserving appropriate governance, reliability, and accountability. DevOps is not simply a collection of tools, a cloud deployment method, or a job title. It is a way of organising work, technology, responsibilities, and feedback so that an organisation can deliver valuable and dependable services more frequently and safely.

The importance of DevOps arises from a fundamental change in software delivery. Modern organisations increasingly depend on digital services for sales, communication, public administration, finance, healthcare, education, and internal operations. Users expect these services to be available, secure, responsive, and regularly improved. Traditional delivery approaches often struggle because development teams are rewarded for introducing change, whereas operations teams are rewarded for stability. When these goals are managed as separate departmental objectives, releases may become slow, risky, and adversarial.

DevOps addresses this tension by treating delivery and operation as a shared system. It combines collaboration, automation, measurement, learning, and responsibility across the service life cycle.

Learning Objectives

After studying this chapter, you should be able to:

  1. Define DevOps and explain its purpose.
  2. Describe the historical conditions that contributed to the emergence of DevOps.
  3. Explain important DevOps terminology and distinguish DevOps from tools and job titles.
  4. Relate DevOps to software development, IT operations, quality assurance, security, and IT service management.
  5. Explain the business and technical drivers for adopting DevOps.
  6. Apply DevOps principles to an organisational scenario.
  7. Identify limitations, governance requirements, and common implementation mistakes.

The Meaning of DevOps

The term DevOps combines development and operations. Development traditionally includes activities such as requirements analysis, design, programming, and unit testing. Operations traditionally includes deployment, infrastructure management, monitoring, backup, incident response, and service support. DevOps extends beyond both groups: it includes everyone who contributes to the value, quality, security, and operation of a digital service.

A useful working definition is:

DevOps is a socio-technical approach that integrates people, practices, and technology across the software delivery and service-operation life cycle to enable reliable, secure, and rapid delivery of customer value.

The word socio-technical is important. DevOps depends on technology, but technology alone cannot remove unclear ownership, poor communication, conflicting incentives, or weak decision-making. A team can purchase a deployment platform and still have a slow, unsafe process. Conversely, a small team with modest technology can practise effective DevOps if it has shared responsibility, disciplined practices, and rapid feedback.

DevOps therefore has several dimensions:

DimensionMain concernTypical question
Culture and collaborationHow people work togetherWho owns the service outcome?
ProcessHow work flowsHow does an idea become a safe release?
TechnologyHow work is enabledWhich activities can be automated?
MeasurementHow performance is understoodIs delivery becoming faster and safer?
GovernanceHow risk is controlledAre security, compliance, and reliability protected?

DevOps does not mean that every developer must perform every operational task. It means that organisational boundaries should not prevent effective cooperation or create unowned risks.

Origins and Evolution

DevOps did not emerge from a single invention. It developed from several earlier movements and problems in software and systems management.

Limitations of functional separation

For many years, organisations divided software work into specialised departments. Developers produced application code, testers inspected it later, and operations staff deployed and supported it. This structure offered specialisation but often produced a “handoff” model. Each group completed its part and passed work to the next group.

Handoffs created several predictable difficulties:

  • requirements and operational constraints were discovered late;
  • environments differed between development, testing, and production;
  • deployment knowledge was concentrated in a few specialists;
  • defects were expensive to correct after release;
  • teams optimised their local targets rather than the whole service;
  • incidents encouraged blame instead of learning.

Agile development

Agile methods responded to the limitations of long, sequential development projects by emphasising short iterations, customer collaboration, working software, and adaptation to change. Agile improved the development feedback loop, but many organisations still released software through a separate, slow, and manually controlled operations process. DevOps can be understood partly as an extension of Agile thinking across the boundary between software creation and service operation.

Lean thinking

Lean thinking emphasises value, flow, removal of waste, small batches, and continuous improvement. In software delivery, waiting for approvals, repeating manual configuration, correcting avoidable defects, and maintaining unused work are forms of waste. DevOps applies flow-oriented thinking to the entire delivery system rather than only to programming.

Infrastructure automation and cloud computing

Configuration management, virtualisation, application packaging, infrastructure as code, and cloud platforms made it more practical to create consistent environments through repeatable definitions. These technologies did not create DevOps, but they enabled important practices such as automated provisioning, reproducible deployments, and rapid scaling.

Continuous delivery

Continuous integration and continuous delivery developed as responses to the risks of integrating large amounts of work infrequently. Continuous integration encourages frequent integration and automated verification. Continuous delivery keeps software in a releasable state through repeatable build, test, and deployment processes. Continuous deployment goes further by automatically releasing qualifying changes to production.

The first widely recognised DevOps-oriented events and communities appeared around 2009. Since then, DevOps has evolved to include security, compliance, reliability engineering, platform engineering, value-stream management, and the operation of data and machine-learning systems.

DevOps continuous delivery and feedback cycle PlanCodeBuild TestReleaseDeploy OperateMonitor Continuousfeedback Learning from users and production informs the next planning cycle
DevOps continuous delivery and feedback cycle
Figure: DevOps continuous delivery and feedback cycle

Figure: A simplified DevOps loop showing delivery activities and feedback from operation.

Core Principles and Frameworks

Although DevOps has no single universally mandatory framework, several principles are widely used.

Collaboration and shared ownership

Teams should share responsibility for the service outcome, including functionality, performance, availability, security, and supportability. Shared ownership does not eliminate specialist roles; rather, specialists contribute their expertise while participating in common goals.

Automation

Automation reduces repetitive effort, increases consistency, and makes processes more repeatable. Suitable candidates include compiling, testing, security scanning, environment provisioning, deployment, backup verification, and compliance evidence collection. Automation should not be used blindly: an automated unsafe process can produce failures faster.

Continuous integration and delivery

Continuous integration means that changes are integrated into a shared codebase frequently and verified by automated checks. Continuous delivery means that the system can be released through a reliable, repeatable process. These practices reduce the size of changes and make failures easier to locate.

Feedback and measurement

DevOps depends on feedback from source-code review, automated tests, deployment systems, monitoring, incident records, customer support, and user behaviour. Feedback should lead to decisions and improvement, not merely produce dashboards.

Small, reversible changes

A small change is easier to test, review, deploy, observe, and reverse than a large change. Feature flags, backward-compatible database changes, canary releases, and blue-green deployment are techniques that can reduce release risk. They require disciplined management; a feature flag that is never removed creates complexity.

The CALMS model

The CALMS model is a practical summary of DevOps capabilities:

  • Culture: collaboration, trust, learning, and shared responsibility.
  • Automation: repeatable technical and organisational work.
  • Lean: efficient flow, small batches, and waste reduction.
  • Measurement: evidence-based decisions and outcome-focused metrics.
  • Sharing: transparent knowledge, tools, feedback, and responsibility.

CALMS is a diagnostic model rather than a compliance checklist. An organisation may possess sophisticated automation while lacking a learning culture, or it may encourage collaboration without measuring whether delivery actually improves.

DevOps Terminology

TermMeaning
Continuous integration (CI)Frequent integration of code changes with automated build and verification activities.
Continuous delivery (CD)Maintaining software in a releasable condition through automated and repeatable processes.
Continuous deploymentAutomatically releasing qualifying changes into a production environment.
PipelineA sequence of automated or controlled steps that moves a change from source to release.
Infrastructure as codeDefining infrastructure in version-controlled, machine-readable form.
Configuration driftUnintended difference between the declared and actual configuration of an environment.
ObservabilityThe ability to understand internal system behaviour from outputs such as logs, metrics, and traces.
MonitoringCollecting and evaluating signals about system condition and performance.
Site reliability engineering (SRE)An engineering discipline applying software and automation practices to reliable service operation.
Platform engineeringProviding internal platforms and reusable capabilities that help delivery teams work safely and efficiently.
Shift leftMoving verification, security, and quality activities earlier in the life cycle.
Shift rightLearning from controlled operation, production telemetry, and real-user outcomes.
Immutable infrastructureReplacing an infrastructure instance rather than making uncontrolled in-place changes.
DeploymentInstalling or making a software version available in an environment.
ReleaseMaking functionality available to users; deployment and release may occur at different times.
Lead timeTime between beginning a change and making it available, according to a defined measurement boundary.
Mean time to restore (MTTR)Average time required to restore service after a failure, when consistently defined.
Blameless post-incident reviewA structured analysis focused on system conditions and learning rather than personal blame.

Terminology must be defined within its organisational context. For example, a team should specify whether lead time begins at code creation, work approval, or first implementation. Without a consistent definition, comparisons can be misleading.

DevOps Is Not a Toolset or Job Title

Tools are important, but they are enablers rather than the definition of DevOps. Source-control systems, build servers, container platforms, cloud services, testing frameworks, monitoring platforms, and collaboration tools can support DevOps. None guarantees it.

An organisation may have an impressive pipeline but still practise poor DevOps if:

  • changes are approved through unnecessary queues;
  • testing is superficial or ignored;
  • teams do not own production outcomes;
  • security is treated as a late inspection;
  • operational knowledge is hidden;
  • metrics reward local activity rather than service value.

Similarly, “DevOps engineer” is a useful employment title in some organisations, but DevOps itself is not a single profession. A DevOps engineer may build platforms and automation, yet developers, testers, security specialists, product owners, service managers, and operations professionals all participate in DevOps.

This distinction prevents a common organisational mistake: assigning all delivery and operational responsibility to a small specialist group while leaving the original silos unchanged.

Relationships with Related Disciplines

Software development

Development creates and changes software. DevOps extends development concerns to include build reproducibility, deployment, operational behaviour, security, and maintainability. Developers should understand how their design decisions affect production, while operations staff should contribute operational requirements before implementation is complete.

IT operations

Operations protects service availability, capacity, continuity, performance, and supportability. DevOps does not replace these responsibilities. It seeks to make them more visible and collaborative, using automation and engineering practices to reduce avoidable manual work.

Quality assurance

Quality assurance is broader than test execution. It includes defining quality criteria, preventing defects, evaluating risks, and improving processes. DevOps integrates quality into the delivery flow through automated unit, integration, acceptance, performance, accessibility, and security testing where appropriate. Automation does not remove the need for exploratory testing or professional judgement.

Security and DevSecOps

DevSecOps incorporates security throughout the life cycle. Activities may include threat modelling, secure coding, dependency analysis, secret management, vulnerability scanning, identity controls, infrastructure security, penetration testing, and incident response. Security cannot be reduced to one automated scan: tools produce findings that require prioritisation and expert interpretation.

IT service management

IT service management (ITSM) provides practices for delivering and supporting services, including incident management, change enablement, problem management, service-level management, configuration management, and continual improvement. DevOps and ITSM are complementary. DevOps encourages fast and automated flow; ITSM provides service governance and support structures. Mature organisations adapt controls to risk rather than treating every change as identical.

Agile and SRE

Agile focuses strongly on iterative product development and responding to change. DevOps connects iterative development with delivery and operation. SRE concentrates on reliable production services, often using service-level indicators, service-level objectives, error budgets, and automation. These approaches overlap but are not interchangeable.

Business Drivers and Measures

Organisations adopt DevOps for business reasons as well as technical reasons. Common drivers include:

  • shorter time to market;
  • faster response to customer needs;
  • improved service availability and reliability;
  • lower cost of repetitive delivery work;
  • reduced release and recovery risk;
  • improved regulatory evidence and traceability;
  • better employee experience and retention;
  • increased ability to experiment and learn.

The aim is not maximum deployment frequency at any cost. A business may release frequently but deliver little value, increase incidents, or create unsustainable operational workload. Measures should therefore combine speed, stability, quality, and outcomes.

Measurement areaExample measuresInterpretation
FlowDeployment frequency; lead time for changesHow quickly value moves through the system
StabilityChange failure rate; time to restore serviceWhether delivery remains dependable
QualityDefect escape rate; automated-test effectivenessWhether changes meet requirements
ServiceAvailability; latency; customer satisfactionWhether users experience a good service
SustainabilityOn-call load; toil; team capabilityWhether performance can continue safely

A metric is useful only when its definition, data source, time period, and decision purpose are clear. Metrics can also cause harmful behaviour. For example, rewarding deployment count may encourage trivial releases, while rewarding low incident numbers may discourage reporting. Balanced measures and qualitative context are necessary.

Applied Case: Northstar Retail (Illustrative)

Background

Northstar Retail, a fictional online retailer, had separate development, testing, infrastructure, and service-desk departments. The company released its shopping application every three months. Releases required a weekend deployment, a long checklist, and approval from several managers.

Problem

The release process frequently failed because test and production environments differed. Developers considered the software complete when it passed a development test, while operations received incomplete deployment instructions. A failed release caused customer disruption and emergency work. Security review occurred near the end of the process, delaying releases further.

Analysis

A process review mapped the path from approved change to production. The main constraints were large batches, manual configuration, limited automated regression testing, unclear ownership, and weak production feedback. The review also found that the organisation measured project completion but not lead time, change failure rate, or restoration time.

Approach

Northstar formed a cross-functional product team containing developers, a tester, an operations specialist, a security representative, and a product owner. The team then:

  1. placed application and infrastructure definitions under version control;
  2. created a shared automated build and test pipeline;
  3. added dependency and secret checks early in the pipeline;
  4. standardised development, test, and production configuration;
  5. introduced small, backward-compatible database changes;
  6. deployed first to a limited internal audience;
  7. added dashboards for errors, latency, and business transactions;
  8. conducted blameless reviews after incidents;
  9. defined release, service, and security ownership explicitly.

The team did not automate every approval immediately. High-risk database and payment changes retained additional review, while low-risk changes used automated evidence and standard controls.

Outcome

After several delivery cycles, Northstar reduced batch size and gained earlier defect detection. Releases became more predictable, and operational staff could see changes before deployment. The most important improvement was not a particular tool: it was shared ownership and a feedback loop connecting customer impact to engineering decisions.

Learning points

The case demonstrates that DevOps transformation is a systems problem. Automation helped, but it was effective because the organisation also changed team structure, definitions of ownership, testing practices, measurement, and governance. It also illustrates that faster delivery must be balanced with security, reliability, and sustainable workload.

Challenges, Limitations, and Governance

DevOps can fail when it is treated as a fashionable label or a technology purchasing exercise. Common challenges include:

  • resistance caused by fear of role loss or increased accountability;
  • insufficient skills in testing, automation, security, or operations;
  • legacy systems that are difficult to change safely;
  • excessive tool complexity and duplicated platforms;
  • unclear ownership of shared infrastructure;
  • poor-quality test suites that create false confidence;
  • alert overload and unsustainable on-call work;
  • pressure to deploy rapidly without adequate controls;
  • metrics that reward activity instead of customer outcomes.

Governance remains necessary. Important controls include access management, separation of duties where risk requires it, audit trails, data protection, change traceability, vulnerability management, backup and recovery testing, and documented service ownership. Good DevOps governance makes safe behaviour easy and produces evidence automatically where possible. It does not impose identical controls on changes with radically different risk.

Ethical issues also matter. Automated delivery can spread harmful software quickly. Teams should consider privacy, accessibility, algorithmic bias, security of personal data, explainability where automated decisions affect people, and the consequences of service failure. A technically successful deployment may still be unacceptable if it violates user rights or organisational obligations.

Contemporary Developments

DevOps practices are expanding in several directions. Platform engineering creates self-service internal platforms with approved deployment, security, observability, and infrastructure capabilities. GitOps uses version-controlled desired state and automated reconciliation for infrastructure and applications. DevSecOps embeds security controls into delivery workflows. DataOps applies related principles to data pipelines, while MLOps addresses the development, deployment, monitoring, and governance of machine-learning systems.

Artificial intelligence can assist with code suggestions, test generation, log analysis, incident summarisation, and anomaly detection. However, AI-generated output requires review, testing, licensing consideration, privacy protection, and security assessment. AI should strengthen professional judgement rather than replace accountability. The same DevOps principles apply: small changes, automated verification, observable outcomes, and rapid learning.

Best-Practice Guidance for Beginners

A practical starting sequence is:

  1. understand the service and its users before selecting tools;
  2. make work, ownership, dependencies, and risks visible;
  3. place code and configuration in version control;
  4. establish a reliable build and basic automated tests;
  5. create consistent environments;
  6. automate repeatable, low-risk steps;
  7. monitor user-relevant service outcomes;
  8. release small changes and practise recovery;
  9. review incidents without blame;
  10. improve continuously using evidence.

The correct sequence varies by organisation. A team with severe reliability problems may begin with observability and recovery, whereas a team with stable operations but slow releases may begin with integration and deployment automation.

Chapter Summary

DevOps is a socio-technical approach to delivering and operating software through collaboration, shared responsibility, automation, measurement, learning, and governance. It emerged from the limitations of departmental handoffs and was influenced by Agile development, Lean thinking, infrastructure automation, cloud computing, and continuous delivery.

DevOps is not a product, toolset, or single job title. Tools support DevOps, but culture, process, feedback, and accountability determine whether those tools produce value. DevOps connects software development with operations, quality assurance, security, and IT service management. Related disciplines retain their specialist purposes while contributing to a common service outcome.

Business value should be evaluated through balanced evidence covering delivery flow, reliability, quality, user experience, security, and sustainable workload. Continuous integration, continuous delivery, infrastructure as code, observability, small changes, and blameless learning are important practices, but they must be adapted to risk and context. Effective DevOps improves the whole delivery system rather than optimising one department.

Key Terms

DevOps: A socio-technical approach integrating development, delivery, operation, security, and improvement of digital services.

Agile: An iterative approach to software development emphasising feedback, collaboration, and adaptation.

Continuous integration: Frequent integration of changes with automated build and verification.

Continuous delivery: Keeping software in a releasable condition through repeatable processes.

Continuous deployment: Automatically releasing qualifying changes to production.

Pipeline: A sequence of activities that moves a change toward release.

Infrastructure as code: Version-controlled, machine-readable infrastructure definition.

Configuration drift: Unintended divergence between declared and actual configuration.

Observability: Understanding system behaviour through outputs such as logs, metrics, and traces.

Monitoring: Collecting and evaluating information about system condition.

DevSecOps: Integrating security practices throughout the delivery life cycle.

IT service management: Practices for designing, delivering, supporting, and improving IT services.

Site reliability engineering: An engineering discipline focused on reliable service operation.

Platform engineering: Development of internal platforms that provide reusable delivery capabilities.

Shift left: Moving quality or security activities earlier in the life cycle.

Shift right: Learning from controlled production operation and user outcomes.

Lead time: Time taken for a change to move between defined points in the delivery process.

Change failure rate: Proportion of changes that cause incidents, rollback, or remediation.

Mean time to restore: Average time required to restore service after failure.

Blameless post-incident review: Learning-focused analysis of an incident without personal blame.

Review Questions

Short Answer Questions

  1. Define DevOps in your own words.
  2. Why is DevOps described as socio-technical?
  3. Distinguish continuous delivery from continuous deployment.
  4. Name two ways in which DevOps relates to IT service management.
  5. Why should deployment frequency not be used as the only DevOps measure?

Long Answer Questions

  1. Explain the historical conditions that contributed to the emergence of DevOps.
  2. Discuss why DevOps cannot be reduced to a collection of tools or a job title.
  3. Explain how development, operations, quality assurance, security, and ITSM contribute to a DevOps operating model.
  4. Describe the CALMS model and evaluate its usefulness for assessing organisational readiness.
  5. Discuss the governance and ethical issues that must be considered when accelerating software delivery.

Analytical / Application Questions

  1. A company has automated builds but releases only twice a year through a separate operations department. Analyse the barriers preventing effective DevOps and recommend a staged improvement plan.
  2. A team increases deployment frequency but also experiences more severe incidents and staff burnout. Which measures and practices should management examine, and why?
  3. Design a DevOps approach for a healthcare application in which privacy, auditability, and availability are critical. Explain how speed, security, service management, and governance can be balanced.

Multiple Choice Questions with Answers

Question 1

Which statement best defines DevOps?

A. A programming language used to automate servers

B. A socio-technical approach integrating delivery, operation, feedback, and shared responsibility

C. A job title held only by infrastructure specialists

D. A replacement for all IT service-management practices

Correct Answer: B. A socio-technical approach integrating delivery, operation, feedback, and shared responsibility

Question 2

What problem is commonly created by a traditional handoff model?

A. Too much production feedback during design

B. Perfectly consistent environments

C. Late discovery of operational constraints and defects

D. Excessive automation of testing

Correct Answer: C. Late discovery of operational constraints and defects

Question 3

What is the main distinction between continuous delivery and continuous deployment?

A. Continuous delivery keeps software releasable; continuous deployment automatically releases qualifying changes

B. Continuous delivery applies only to infrastructure; continuous deployment applies only to code

C. Continuous delivery is manual testing; continuous deployment is source control

D. There is no distinction

Correct Answer: A. Continuous delivery keeps software releasable; continuous deployment automatically releases qualifying changes

Question 4

Which activity is an example of infrastructure as code?

A. Writing a user-support email

B. Describing network and server configuration in version-controlled files

C. Manually changing a production server without records

D. Conducting an interview with a customer

Correct Answer: B. Describing network and server configuration in version-controlled files

Question 5

Why is DevOps not equivalent to a toolset?

A. Tools cannot perform any automated task

B. Tools are useful only for developers

C. Tools cannot be used in production

D. Tools support DevOps, but collaboration, process, ownership, and learning are also required

Correct Answer: D. Tools support DevOps, but collaboration, process, ownership, and learning are also required

Question 6

Which practice most directly supports learning from production behaviour?

A. Observability and monitoring

B. Deleting incident records

C. Increasing batch size

D. Removing service ownership

Correct Answer: A. Observability and monitoring

Question 7

Which discipline focuses especially on reliable operation of production services using engineering and automation?

A. Graphic design

B. Site reliability engineering

C. Requirements elicitation בלבד

D. Office administration

Correct Answer: B. Site reliability engineering

Question 8

Which is an appropriate DevSecOps practice?

A. Waiting until after release to consider vulnerabilities

B. Removing access controls to increase speed

C. Integrating threat modelling and security checks throughout the life cycle

D. Assigning all security decisions to end users

Correct Answer: C. Integrating threat modelling and security checks throughout the life cycle

Question 9

Why should DevOps metrics be balanced?

A. A single metric can encourage harmful local optimisation

B. Metrics are never useful in software delivery

C. Balanced metrics eliminate the need for judgement

D. Speed is always more important than reliability

Correct Answer: A. A single metric can encourage harmful local optimisation

Question 10

In the Northstar Retail case, which change addressed environmental inconsistency?

A. Increasing the size of release batches

B. Standardising configuration and placing infrastructure definitions under version control

C. Removing automated tests

D. Delaying security review until after incidents

Correct Answer: B. Standardising configuration and placing infrastructure definitions under version control

Introduction to DevOps and Software Development Lifecycle (SDLC)
Chapter 1 of 14