Some time ago I shared my thoughts about how “containers” can be used to reduce the overhead costs and complexity for managing operational systems. Today I want to talk about a different technology that can work alongside containers, and make the most of their flexibility.
A musical analogy.
Picture if you will a professional orchestra – some 44 different instruments all working together to play an expansive piece of music. Each instrument has its own distinct sound, its own contribution to the overall experience. Taken on their own some musical parts might be recognisable, but still would be a long way from the full piece.
At the head of the orchestra, the conductor’s sole role is to coordinate the ensemble of the instruments, to bring the piece of music together.
Of course, the world is full of bands and artists who produce music without the need for a conductor. But as the size of an ensemble grows, it gets harder and harder to coordinate, until it needs a distinct person to manage it.
So how does the “orchestration” technology relate to this, and what does it mean for containers? Well, the goal (or mission, if you like) of an orchestra is to play a piece of music, and this is achieved with many instruments working together in harmony. Likewise, technology systems have a goal or mission – often achieved through smaller components all needing to work together. Like the instruments in an orchestra, the more complex or large the technology system, the greater the overhead in coordinating and managing the individual parts – until it becomes a distinct role.
Dealing with component failure.
Let’s return to our musical analogy for a moment and assume that one of the instrumentalists with a solo part is unexpectedly ill and not able to play. The resources that the orchestra has do not extend to a spare person just waiting for this eventuality. They need to play the piece of music (including the solo part) using the resources they have available. So, one of the other instrumentalists will take a different role for a period of time.
In technology systems, there are times when a system component becomes unavailable. We might have some spare resource we can bring in – either an existing part or something held in reserve for a situation like this. But it will often be needed at short notice. In an orchestra, this is done by a second musician being able to stand in for any soloist who becomes unavailable. It is then up to the conductor to decide how best to perform the piece using the remaining available resources.
In the technical systems realm, orchestration is the technology used to rapidly deploy components (which are often containers). Orchestration tools can quickly deploy components configured for a very specific purpose, and they can reconfigure existing components based on operational need. Because they specialise in configuration and management, they’re often used for building containers and using those containers as lightweight building blocks for an overall system.
Of course, we’re talking about a technology – but there needs to be someone somewhere driving that technology. Someone who decides what the system should look like. Somebody who uses an orchestration toolset like the conductor of an orchestra uses their baton. Hence the name orchestration – that person is using tools to make all the components work together for the overall goal.