Have you ever imagined a world where Dev and Ops become DevOps? Well, I must say this world is real and we are living on it right now! That’s why I wrote this post to try to discuss The Principles of DevOps. The content was based on what I learned after reading the book The DevOps Handbook available on Amazon and after working in a DevOps role for more than one year. I’m also planning to write a series of posts to deep dive better in some concepts. So let’s go!

Basically, DevOps is based on three Principles:

  • At first, the Principles of Flow;
  • Second, the Principles of Feedback;
  • Last but not least, the Principles of Continual Learning.

Each one of them represents important steps and actions that should be taken by its practitioners. Always looking to improve their processes and deliver more reliable systems.

DevOps is more about a culture and a way of thinking, not about technologies. So you won’t see in this post content targeting specific applications like Azure DevOps ones I have written before.

DevOps Flow - The Principles of DevOps
DevOps Flow

The Principles of Flow

The principles of flow are mostly focused on the flow between what you develop/created and what you delivery.

You must define the foundations of your deployment pipeline that is going to deliver value to your customers or users. Ensuring it is reliable and you are going to deliver as fast as possible to have time-to-market as a differential.

Needless to say that you need to focus on a reliable automated testing culture making use of continuous integration. Exploring that you will always prepared to prevent any bad release from happen.

Finally plan and architect low-risk releases. Try to deliver in small batches the new features developed and ensuring a more stable environment to your customers.

The Principles of Feedback in DevOps

Considering the Principles of Feedback, they will always orbitate the Log and Telemetry words.

You must try to always create a telemetry system to understand what is going on in your system. Always analyzing those logs, looking to anticipate problems.

You must not just monitor logs when in production. But consider the logs in all development phases.

Finally establish some process to review how things are going and how to improve by exploring A/B Testing. Always question the status quo of the things, looking for a better quality of your services.

The Principles of Continual Learning and Experimentation

Once you have logging and a good pipeline of information established, make the knowledge and the information available to everyone. Doing that you ensure a smooth way to transmit the local discoveries into global improvements. Enabling everyone to evolve together and benefit from the enterprise knowledge.

Provide reports, graphs and dashboards, newsletters, etc, to share the findings and make everyone be in the page!

That’s it! I hope this post could help on understanding the principles of DevOps. Maybe you can have some ideas on organizing the information flow and deployment planning in your company.

References:
The DevOps Handbook