Principles of DevOps

The union of People, Process and Products to delivery value.

Marcello Marrocos
DevOps, Cloud & IT Career
5 min readJan 6, 2020

--

A couple of months ago, I had the opportunity to address our ITE department Townhall to talk about DevOps.

In past years I’ve seen efforts to transform the way of work by implementing agile techniques and that is an important movement for changes. But is it enough?

Waterfall

Do you remember the waterfall? Well, I do, but sometimes, I wish to forget it!

Photo by Poswiecie on Pixabay

We analyze, design, implement, test and… Deploy. Awesome! But with new functionalities also comes “that’s not exactly what I wanted…” or even “yeah, it works, but it doesn’t make sense anymore…”

One of the challenges with this model is that everything is done in huge phases with a single deployment. Usually, we discover mistakes too late.

But what if we could deploy it faster and reliable? Can you imagine your product having 1 deployment per day?

We have agile!

Well, problem solved, right?

Image by mcmurryjulie on Pixabay

Almost. DevOps takes huge advantage of agile principles, such as small batches and fast iterations

However agile refers to the iterative approach with a focus on collaboration, customer feedback, and small releases. And we still must deal with end-to-end processes for development and operations.

Development and Operations. And everything in between. This is DevOps.

I mean, everything in between because Security must be part of it. As well as QA, Governance, Network, and all other teams involved in these processes.

Nowadays we face several acronyms such as DevSecOps, DevMLOps, FinOps, DevQaOps…

To keep it simple, let’s use the term DevOps, but keep in mind I’m considering all of you guys!

No matter what, we should consider the whole pipeline of development and operations, since the conception of the idea to the monitoring of this idea implemented in production.

3 Pillars of DevOps

Before going further, it’s important to notice that DevOps is not just a product like Jenkins… or deploying in Containers, running Kubernetes or having your code on a git repository. Neither it’s a person who works on the development and is also responsible for the operations. Also, it’s not a methodology or a specific process. DevOps is about the union of all of it. People, Process, Products. It’s culture.

DevOps — People, Process, Product
Image by Microsoft

If you google you will find several definitions for DevOps, but one that I really like is by Donovan Brow from Microsoft.

“DevOps is the union of people, processes, and products to enable continuous delivery of value to our end users.”

It’s people, processes, and products to deliver value.

Infinity Loop

A very common representation of a DevOps process is the Infinity Loop. It represents a continuous process throughout the development phases.

Image by PCB-Tech on Pixabay

The main goal of DevOps is to enable consistent deliveries with defined steps on each phase, with the required validations and automation wherever it is possible.

Why DevOps matter?

To achieve their goals, companies increasingly rely on their ability to deliver and operate the software.

The latest State of DevOps Report presents the difference of Elite compared to Low performers.

Screenshot from The State of DevOps

For reference, Flicker, an image hosting website, was handling 10 deployments per day. In 2009. Ten years ago. So, it’s already proved that it IS possible.

Nowadays, companies like Netflix and Amazon deploys thousands of times a day.

But keep in mind that the point is not the number of deployments per day, but to have the capacity of doing so.

In the following image is possible to see a comparison with last year’s report, where we can notice that the proportion of elite performances is increasing, which means that this level of excellence is possible.

Screenshot from The State of DevOps

But it is also worth to notice that the number of medium performers also increased. It is due to the obvious fact that low performers are getting better and going up on the category, but some high performances also stepped back, showing that keep the level of excellence is a challenge. Looking at the half-full glass, we can assume that part of this is due to experimentation, an important factor that leads to the process to evolve.

It is impossible to change and evolve on the process without taking risk (check my article about risk!) and getting out of comfort zone to implement new practices, such as:

· Continuous Integration
· Continuous Deployment
· Automated Deployment
· Automated Testing
· App Performance Monitoring
· Automated Scaling
· Infrastructure as Code (IaC)
· Automated Environment Provisioning

Some of these practices also take advantage of the cloud environment. For instance, we can automatically scale the infrastructure in and out, up and down, to adapt to our application workload.

And automation is the key. Automate where possible.

But where to start?

Well, I hate the consultant answer but… it depends.

Every project, every environment is different. Try to take some action where you can have quick wins. Map the value stream of your development process and identify the gaps and the bottlenecks. You don’t need the big bang, small changes that can give you value will help you to notice the evolution.

And don’t forget to measure, that will be your indicator of how much you are getting better.

Well, this is very a short overview and I highly recommend the following must-read books on this topic:

The Phoenix Project: A Novel about IT, DevOps and Helping Your Business Win

The Unicorn Project: A Novel about Developers, Digital Disruption and Thriving in the Age of Data

The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

Finally check the full State of DevOps 2019 Report.

As usual, don’t forget to follow, comment, clap, and check the other articles of DevOps, Cloud & IT Career Publication!

Marcello Marrocos is a DevOps and Cloud advocate, passionate about technology and software development. He is an Azure certified professional in DevOps, Developer, and Architecture. In his spare time, he writes for DevOps, Cloud and IT Career publication on Medium. You can find him on Twitter and LinkedIn.

--

--

Marcello Marrocos
DevOps, Cloud & IT Career

Cloud, Integrations and Collaboration Manager | in/mrmarrocos | DevOps, Cloud & IT Career Publication http://devopscloudit.com