Is there really a way for Kubernetes, Ansible, AWS Cloud Formation, Azure ARM and Terraform to work together? Indeed there is… and the future of orchestration is bright.
According to a recent Gartner report,
Product teams see a greater need for unified visibility, orchestration, integration, governance and management of the DevOps value stream to improve flow and traceability.
The changing nature of applications, due to cloud adoption, machine learning, commercial off-the-shelf and open-source software require specialized and best-of-breed DevOps toolchain capabilities.
So it has become exceedingly clear that no single orchestrator can win them all. Instead we have moved to a multi-domain orchestration reality:
- Kubernetes for container orchestration
- Ansible for configuration management
- Terraform for ‘infrastructure as code’.
- The case for AWS cloud formation or Azure ARM is even simpler – each provides native orchestration for its own cloud infrastructure domain.
A common practice in the modern DevOps framework is to have a combination of these orchestration platforms as part of the toolchain especially when it comes to multi-cloud environments.
Is It Time To Orchestrate the Orchestrator?
There is increased interest in a unified platform to simplify the complexity of integrating pipeline activities across the DevOps value stream. Gartner
Having domain specific orchestrators that are managed in silos leads to increased management complexity- and previous attempts to provide a unified platform approach ( in the form of CMP (Cloud Management Platform) ) led to an over-dependence on the platform which couldn’t catch up with the speed in which the different underlying platforms evolved. The result? A systematic compromise to the least common denominator which rendered a total lack of agility.
Lessons Learned from the Failure of CMP
There is an obvious conflict between having a centralized management platform and maintaining agility across the stack. This is why companies are reluctant to continue using CMPs as they move to the public cloud, and cloud native environments.
So how can we overcome CMP limitations and still provide a unified platform to break these tool-chain silos? The answer lies in taking a decentralized approach:
Taking a Decentralized Approach to Maximize Agility
Consider the way an Army is structured – it consists of many different units, each specializing in its specific domain. Each of those units is completely autonomous from the rest of the units and organization. Those units are often coordinated in an ad-hoc fashion based on the target mission. The coordination at the top level is done in a fairly loosely coupled way that doesn’t break the degree of autonomy of each unit. For example; think of the combination of units assembled for a major rescue mission overseas. The common denominator here is surely the higher-level operational command coordinating the mission.
A decentralized orchestration approach is not so different. Users continue to work directly with their domain specific orchestrator e.g Kubernetes, Ansible, AWS Cloud Formation, Azure ARM and Terraform. But it is the master orchestrator that pulls the relevant artifacts from each of those domains through a GIT repository and assembles them together on demand – depending on the target environment and use case. As in an army, adding this layer of orchestration doesn’t come at the expense of the degree of autonomy on each domain but rather as a higher-level overlay that is brought in to handle the coordination task.
The reality today is that most organizations are handling this sort of coordination through a custom integration framework and scripts. This approach is often very limited and doesn’t fit the ad-hoc and dynamic nature of integration that is required. This is where a platform approach would in fact be more suitable.
DIY using custom tool-chain integration
Platform approach using decentralized ‘Orchestrator of Orchestrator’ to achieve a unified DevOps automation experience.
An ‘OrchMaster’ Orchestrator is an approach that is well suited to handle this degree of dynamic updates and changes compared to custom integration alternatives. It can also open up additional benefits:
- Avoidance of continuous transformations – The most time-consuming task in automation is designing and implementing the automation template – every orchestrator comes with its own automation language and thus forces us to go through continuous transformations whenever we adopt a new orchestration framework. Quite often this leads to the ‘golden hammer’ syndrome – where we end up transforming also things we shouldn’t be transforming. Using an ‘OrchMaster’ we can use the right tool for the job and avoid unnecessary transformation.
- Allow Interoperability – a decentralized ‘OrchMaster’ allows us to coordinate action and workflow between the different orchestration domains.
- Minimize Lock-in – we can also decouple our application from being tied to a specific orchestration and thus reduce lock-in to a single platform.
- Future proof – another benefit is being able to adopt new orchestration platforms as they become available with minimum disruption to our existing operation. In other words, we’re not limited by the capability of a specific orchestrator.
Aiming for a Consistent Management Experience Across ALL Domains
And there we have it. As the ‘OrchMaster’ is now used as an overlay, allowing each of the domain-specific orchestrations to provide a consistent view on managing the provisioning, logging, workflow and high-level status of end-to-end automation has become effortless. Having this overlay view doesn’t limit the drill down to each domain specific management. The Orchestrator of Orchestrators can now be used as an additional view of the system and not as a centralized gateway to all of the domains.
Can ONE Orchestrator Really Rule Them All?
The latest version of Cloudify takes a brave and winning step into the world of ‘OrchMaster’. Cloudify handles end-to-end service composition between different orchestration domains such as Kubernetes, Ansible and Terraform alongside AWS Cloud Formation & Azure ARM. The platform also has additional features to ensure consistent behaviour across all relevant plugins, automating the installation and configuration of each orchestration platform for clean and continuous updates – alongside visual mapping and tracking of the entire workflow execution pipeline across all infrastructure orchestration elements. But this is really just a taste of what cloudify can do as ‘OrchMaster’ – download our most recent guide for a deeper dive into Cloudify – and how it rightly holds the leading role of ‘Orchestrator of Orchestrators’.