What Is DevOps? It's Cooking, and You’re the Chef.
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.
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.
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.
What Is a DevOps 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!