Though the contents of this post are made up of actual Webster’s dictionary entries, the topic doesn’t sound like English. My challenge is to translate something technical and complex into concepts even my partner can understand. Today’s topic is software-pipelines and continuous delivery. I chose an analogy to illustrate containers, orchestration, pipelines and continuous delivery to a group of people who often hear the words but have no idea what they mean in a technical context. Welcome to my “Chinese para-box”.
The Chinese “para-box” has no similarities to the Chinese “paradox” which describes an Anglo-centrist misunderstanding of the trade imbalance and politics with China. It is just a catchy name that accurately describes the analogy I used to illustrate the complexity of what we do in plain English by using something many of us have engaged in… ordering Chinese-food.
The Chinese Takeout Analogy
Pipelines are an abstraction of the collaboration between multiple technologies to achieve the ultimate goal of delivering applications to our customers continuously. I think you can begin to see the analogy taking shape. Whether it is Chinese food or an application feature, the requirement is still the same. When a customer consumes your product it is important that it arrives quickly, remains hot, tastes fresh, and is satisfying. To accomplish this in the modern (cloud-native) construct requires a revolutionary and accepted standard, the disposable container. It is a para-box because it has many of the same properties as that same delivery mechanism used by thousands of development organizations across the globe; containers that are standardized, portable and disposable.
As with any pipeline, you must begin with the assembly of your ingredients. Gathering these ingredients together, you build your product and prepare it for consumption. If your consumable is not quite right at any point, you can toss it away and start again from the beginning. Applied to our restaurant analogy, if the ingredients are over-cooked or the rice isn’t quite cooked enough one could remove it from the pipeline as it failed the quality tests, dispose of it and start again. Once prepared it is placed in the container, packaged with other containers and delivered to the customer. Should the customer have any problems with your product, they can throw it all away and be delivered another.
“Noise Level Monitoring” is not a successful “Quality Gate”
The above image describes the workflow of a product (pipeline), merging of ingredients (continuous integration), packaging (containers; docker or otherwise), and making it available to the customer (orchestration and continuous delivery to production). However, listening for the screams of your customers as a monitoring strategy is risky and potentially damaging to your brand. Therefore, each of these elements should be decomposed into work items which include quality assurance (testing) and consistency (monitoring) known as ‘Quality Gates’.
As the building blocks for our modern cloud-native architectures these containers and pipelines are the foundation of successful DevOps organizations around the globe. Whether they are working towards a cloud-native strategy through ACM or building upon a framework for continuous delivery, Dynatrace is an important component enabling observability and automating the quality gates of their application pipelines. The quality gates are what ensure that your feedback isn’t an angry customer or tweet but rather process automation that validates and guarantees the business objectives are met for each application pushed through the pipeline.