December 5, 2018

What Is DevOps?


Everyone is talking about DevOps — and many are practicing it. But, what exactly is it? 

What Is DevOps?

DevOps is a culture or practice that focuses on a collaborative approach of developing and deploying a software. It requires the cooperation and integration of software developers (Dev) and IT Operations staff (Ops).

This integration requires a culture shift from how many teams work. It requires a culture that promotes cooperation and communication between teams. The benefits of DevOps are improved agility in IT service delivery and rapid, reliable software delivery.

How DevOps Works

DevOps works by automating tasks. This includes things like Continuous Integration, Continuous Delivery, and Continuous Testing.

To help you understand how DevOps works, here's a metaphor to cooking. 

DevOps Is Like Cooking...

Cooking is my passion. I have always thought of cooking as a combination of art and science. While working in my kitchen recently, I started thinking of how much DevOps and cooking have in common. There’s a reason that “Chef” is both a highly rated movie about cooking and an automation tool. I realized that DevOps is everywhere in some shape or form.

Have you ever watched competitive cooking shows like “Iron Chef America”? If you have, then you probably know what it takes to be successful on the show.

The most successful cooking teams are well organized, know each other’s strengths, and work well under pressure. Similarly, a successful DevOps team must be organized, work together, and adhere to best practices to envision, plan, develop, build, deploy, and validate.

The key to delivering high-quality software is a clean, consistent process for building and deployment.

The DevOps Kitchen

Let me take you through the world of cooking and DevOps together to help you appreciate the similarities between the two.

So, how is DevOps like cooking? We need right set of tools for every task. In any well-equipped kitchen, you need a clean countertop, a good oven, sharp set of knives, and other utensils. Similarly, in the world of DevOps you need DevOps tools (like Jenkins, Ansible, Perforce, and Git), robust and reliable infrastructure, and a solid architecture. I call this the DevOps Kitchen.

The Right Recipe

Let’s talk about what we are planning to create. In the world of cooking, the recipe is where the magic happens. There is a workflow to the recipe, with directions to ensure the right ingredients are added at the right temperature and at the right time.

DevOps needs orchestration of the process to build and deploy the software in a consistent reliable manner. There is a heavy focus on the architecture, environment, and infrastructure. When cooking, we create a meal by cooking each dish and then arranging all the dishes on the plate together.

Similarly, with DevOps, we separate the overall software into modules and deliver it in smaller pieces yet in an integrated manner.

The Magic of Ingredients

For a meal to be full of flavor, we need fresh, high-quality ingredients and the right spices. For a reliable, redeployable DevOps infrastructure, we need DevOps best practices, such as:

  • Sound development practices, coding standards, and lean ideas
  • Test-driven methodologies
  • Processes to reduce technical debt as new features are built

The Grand Finale: the DevOps Dish

They say that you eat with your eyes first. As a chef, you want to make sure that your meal is not only full of flavor but also creative and beautifully presented. Likewise, in the world of DevOps, you want to deliver working software with high-quality code that’s reusable, retestable, and redeployable.

Whether you’re an avid home cook or software developer, following a process is important to achieve great results. By using cooking as an analogy to explain and demystify DevOps, hopefully I’ve helped you understand it better and explained why so many businesses are moving toward this method. Bon appétit!

Learn more about DevOps tools