This post originally appeared on SDN Central. This is a verbatim repost.
DevOps practices rely on workflow automation to support evolving software function and programming, especially during the transition into live operations. At the heart of workflow automation lies standardization: the ability to produce something to meet demand, maintain a standard, and have the end result deliver the same amount of satisfaction through consistency.
While the culture and practices of DevOps are new, the central problem of standardization has been around for a long time. Look around at the world you live in, and you’ll notice how automated workflows and functions affect your day-to-day life. For me, the practice and benefits of standardization can be illustrated with one humble, everyday object: the ice cube.
The earliest forms of refrigeration required carving ice from a frozen lake and hauling it underground into bricked cellars. Sheets of ice varied in size, and supply was random and sporadic, as ice harvesting depended on the dynamic variable of weather and the length of winter.
As technology progressed and refrigerators and freezers became available, people gained the ability to freeze water in their own homes and make ice cubes standard in shape, consistent in size, and produced to meet demand. The original process was always manual, requiring an actual person to fill the ice cube tray with water and place it in the freezer. Now, refrigerators can be plumbed into water systems for input and automatically manage ice output.
This example is not the most glamorous, but it is a concrete way to show how a workflow with a manual process can be automated. More importantly, it shows how automation can foster consistency and repeatability, which become increasingly important as more downstream functions require the base unit to be consistent.
Many DevOps discussions apply the analogy of a production line, which requires managing raw resources and using resources wisely throughout the process. Any successful end result is usually the product of a successful system of systems that benefited from the timely, reliable delivery of all the component products.
Let’s apply this thinking to our ice analogy and extend the production metaphor to look at ice in context of a restaurant setting. Ice can be used in cocktails, water, dessert making, and many other culinary functions. Whenever many people or functions require one resource, there is a chance for a bottleneck.
What if the restaurant’s ice maker is acting erratically? When the front of the house takes an order for a table that wants a round of mojitos, some desserts, and various tapas, workflows are enacted. A common ingredient in all these workflows is ice: Will there be enough to meet demand?
As more orders pile up, the ice machine struggles to work and becomes the bottleneck, affecting orders, slowing workflows, and breaking down processes. Long delivery times to tables – analogous to long times to market in our world – become a major headache for the restaurant.
As you integrate DevOps into your own environment, think about what your “ice machines” may be. Where are your choke points? Bottlenecks disturb expectations, delivery, and consistency, and their consequences cascade to downstream workflows.
Developing effective DevOps workflow automation requires you to consider the ice machines in your organization. Make sure your ice machine is adequate for demand and protected enough by workflows to ensure consistent output. Effective planning early on makes it more likely to deliver timely, quality end products to every stakeholder downstream