When we hear the term “orchestration”, we naturally think of containers, Docker, and Kubernetes. However, the term, especially when heard for the first time, often evokes images of conductors, violinists, and saxophonists. In this article, I look for the similarities between music and the managing of containers.
Ever since I heard the term “orchestration” for the first time, questions have forced their way into my melodic rippling of thoughts: Where is the music in Kubernetes? What is the rhythm? Where do I find the harmonies? There are so many questions, but no answer in sight. In this space, there is only this empty phrase at all times – meaningless and powerful. Sometimes I think that computer scientists are desperately searching for the musical beauty in the bit-swamp. If nobody understands what we are doing, then we at least want it to sound nicely.
The question of the rhythm urged me the most. Where is this driving and pulsating force in the ominous cluster? I would say it is the container probes – the liveness probe and the readiness probe. Both of them are constantly beating in the fixed rhythm of the cluster system. They keep the containers running and hum stoically in the background. Disharmonies and jolts make us listen attentively and look anxiously into the inside. Always on the lookout for sand in the gears (oh, sorry, wrong metaphore). Then, Kubernetes regulates the stumbling and jolting by itself in order to immediately restore the balance.
Okay, so the rhythm is there but the harmonies are still missing. Hm … couldn’t the services be those? The interface to the user, just like music for the listener. Their balanced cooperation determines the euphony in the bit-operation. If they are balanced inaccurately then it howls crookedly from the inside or it howls loudly from all around, before the service dies quietly. But if they are tuned correctly, then the Kubernetes kitten purrs. Requests are continually answered successfully – from any place and any time. Harmony and balance influence the listeners in an omnipresent way.
And who is the most important accomplice on the way to rhythm and harmony? Exactly, the “first, second, … violin”. They act as mediators between the conductor and the orchestra. The divas in the cluster. With Kubernetes, this could be the kube-proxy. The incomprehensible, inexplicable thing in the heart of every node. It determines the balance of the service harmonies. If they vibrate in harmony, then the system is balanced. If the user, with more load, demands “allegro” for more rhythm, and “forte” for louder music, then he notices it as the first one. He intuitively takes up these demands in order to “subito” balance the system. More containers, additional routes distribute the new load. And “piano” vice versa, of course, too.
Developers as conductors
For me the question of responsibility arises now. Who is the cluster’s composer and conductor? We are! It’s the common computer scientist, who writes YAML notes incessantly. He always has an eye for the details and also for the picture in its entirety. He constantly jingles around on the containers, tunes their instruments, and conducts the service orchestra to keep the data stream playing. He is the protagonist in the spotlight, but without applause.
YAML files are the most important tool for this. Just like the notes that put the composition to paper, YAML describes each service and its container configuration. It tunes the cluster instruments, conducts the orchestra, dictates the rhythm by probes, describes the harmonies via services and composes the music by balancing the data streams.
And where does all the magic happen? In the sound body. This very fine-tuned space, where rhythm and harmony merge into music to please the audience. Could this be the cluster network itself? The all-encompassing thing, where every request finds its addressee in harmonious euphony. Who doesn’t even notice how his senses are caressed finely. But woe to him, the system is out of time. If an inquiry is only answered slowly or answered not all, then the indignation is huge. “Incompetence” and “inaptitude” the masses are babbling, with wild strokes on the keyboard and impetuous clicking on the mouse, only to leave the page after a short but very loud indignation.
So orchestration is not just an empty phrase after all. It is more. It is an image to bring sound into a complex system, to make it tangible without having studied computer science. Go on a quest for the music in the Kubernetes system, and then you might find my pictures and get to know the orchestra. Maybe you are the next Beethoven in the Kubernetes universe. The kubernetic journey has only just begun …