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.

2022-11-08

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

DevOps

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.

Agile

  • 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.

Culture

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

Tools

  • 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:

Docker

  • 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.

Kubernetes

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

Jenkins

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

Terraform

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

Ansible

  • 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.