Notes Home

Dr. Niall McMahon
Lecture Notes
Table of Contents

DevOps in Industry

Dr. Niall McMahon

An edited version of lecture notes by Dr. Michael Scriney.


If you print these slides, think about using two pages per sheet although don't worry too much about it!


Why DevOps?

  • Deployment and testing are hard.
  • Systems are a lot more complex these days.
  • Microservices mean more deployments and more CI/CD.
  • Maximize efficiency with automation.


  • Being agile means that code is deployed soon after its written.
  • A high release velocity is good for customers.
  • High release velocity means high responsivity.

Have a look at Release Velocity Is Abysmal And Needs Continuous Deployment by Elinor Klavens.


It's important to have a long-term, people-centric view.

One example is the Toyota Way with its three core principles. These are:

  1. The right process will produce the right results.
  2. Add value by developing people.
  3. Continuously solve root problems.

Factory Analogy

  • Although writing software is a little more abstract than building a car or a wind turbine, the code development and operations pipeline is similar to a factory production line.
  • Main objective is to create a steady flow that minimises waste


  • In addition to the mindset you must have technical knowledge.
  • Proficiency in multiple tools is essential as well as understanding their strengths, weaknesses and how they interact.
  • Assuming a cloud deployment, e.g. AWS, Azure or GCC, tools you might need include:


  • Containers.
  • Separates code from infrastructure.
  • Ensures the same code environment regardless of physical deployment.
  • A Docker node is a machine that where containers are deployed.


  • Containers.
  • Similar to Docker but for a cluster of nodes, i.e. many machines.
  • Useful for large systems.


  • Automates tedious aspects of software build, test and deployment.
  • Helps reduce human error and speed continuous integration and delivery.


  • Allows specification of data centre infrastructure.
  • Supports most of the large cloud providers.


  • Is another infrastructure as code tool.
  • Python based configuration of machines.
  • The aim is to allow machines to be easily integrated into a system.

A Sample Workflow

  • Code pushed to .git repo.
  • Jenkins pulls the new code.
  • Docker instances created.
  • Kubernetes cluster created.
  • Push to cloud.