Orchestration vs Automation, what’s the difference?
Orchestration is the new automation. If you are an architect, a DevOps or you work with them, you may have heard about orchestration. Orchestration is often discussed in the context of service-oriented architecture, virtualization, provisioning, converged infrastructure and dynamic datacenter topics. However, orchestration is a term that may be used partially correctly.
In this article, we will come back on the definitions of automation and orchestration. Then, we are clearing up the differences between automation and orchestration and dive into examples through BAM orchestrator. We will conclude on what approach between automation and orchestration wins.
What is automation?
- Definition: Automation is the process of creating a program or an algorithm that can be run by a machine to realize a task without a human intervention. Automation is a unit process. It concerns a single task.
- The quote: If you have done it twice, you have done it one too many times
- Services you can automate: In the specific case of DevOps, tasks we want to automate are launching an app, changing a database entry, but as well, infrastructure provisioning, software releases, Testing, Deployment, Core security tasks, Compliance policies and configuration management techniques
- Pros: Automation is the key to increase delivery capacity, standardize delivery and to save time. In DevOps, this is a key highlight of DevOps practice and is essential to push quality software features to end-users faster and effectively.
- From automation to orchestration: It starts to become interesting when several tasks are automated to realize a workflow. Indeed, there are several levels of automation. Once a task is automated, we can imagine automating a whole process. And then, set to music all those processes. However, as we want to automate higher level, we are confronted with the complexity of the interaction between the tasks, the processes and the workflows. This is where orchestration comes in.
What is orchestration?
- Definition: Orchestration is the automated configuration, management and coordination of complex processes (IT systems, applications, services and middleware or softwares). It enables you to manage a whole infrastructure with more accuracy, to facilitate task management and complexe workflows for your team and keeps a check on required resources.
- Metaphor: Similarly to a conductor in an orchestra with its musicians, an orchestrator leads its services. It is giving signals to make services playing or stopping, being attentive if one service is working correctly before launching another, knowing which one is functioning and how. An orchestrator manages processes. It is the brain behind the tools.
- Services you can orchestrate:
-
- Infrastructure
- Application
- Continuous Integration & Continuous Deployment (CI/CD)
- Environment duplication
- Lifecycle management (Environments & projects)
- Multi Cloud Provider
So what’s the difference between orchestration and automation?
- Automation and orchestration are two concepts deeply linked. Orchestration is a form of automation but all automations are not necessarily orchestration.
- While automation concerns a single task, orchestration includes several tasks, processes and the communication between them. It also refers to a whole workflow.
- The orchestrator allows your teams to save time on deployment and infrastructure building. They can use this time to brain on your business and stay focused.
- Pros: Orchestration facilitates the management of complex tasks and workflows for your team.
Orchestration tools
- Orchestrators that serve mainly DevOps teams. We can find several orchestration tools on the market. They belong to different categories and serve different purposes we are going to explore in a further article. To quote the most famous, we have Kubernetes, Ansible, Puppet, Salt, Terraform, AWS CloudFormation and BAM.
- We are going to expose some examples of orchestration through the tool BAM.
Some examples of orchestration with BAM
Fitizzy uses BAM, an orchestration technology.
Fitizzy works with many different clients. Every time the SaaS platform generates a new environment, Fitizzy uses BAM to generate on demand the right to make the most of automation by ensuring the replicated environments of new clients are responding to good practice and well architected framework.
BNC uses BAM as well
Within the banking sector, the compliance context is very central to the work. Working globally, each country has their regulations. With BAM, BNC is able to respond to the compliance needs of its clients in a few clicks. It allows them to be audit ready as well reinforcing trust with its partners.
Prestigia uses BAM
Prestigia is using BAM to control their budget. With the solution, the team has been able to understand better their expenditure and make the most of the cloud provider they use. It is certainly even more relevant for Prestigia as the company works on different international market and different time zones.
Conclusion: So what is the best?
- Automation concerns one single task whereas orchestration concerns a workflow or an environment (so several tasks and the interactions between them).
- If we want to solve the same problem with automation, we would need to automate a workflow, that would require to have configuration file for everything, and the applications must be customizables; So, it would be hell to manage, very slow, hard to maintain, costly… Not the optimal solution.
- Orchestration responds to a challenge of scaling and deals with the existing complexity of applications and infrastructures. This is a solution tailor made that aims to manage your environment needs whatever they are.
- If you want to experiment orchestration, BAM is a perfect solution to handle quickly your infrastructure management.