Is “orchestration” just a fancy way to say “automation”? That seems like a reasonable question to ask, given that the line separating orchestration from automation tends to be a bit blurry.
When you look closely, however, it becomes clear enough that automation and orchestration mean different – albeit related – things. Here’s a primer on these two terms, their similarities and differences, and the role each of them plays in IT.
What Is Automation in IT?
Automation is a word that – to anyone who has worked in IT during the past decade, at least, and possibly long before that – needs no introduction. In IT, automation is the use of software tools to perform a process so that a person doesn’t have to perform it.
An automated approach to IT offers a variety of obvious benefits. In addition to saving IT engineers time, it speeds results, which improves the end-user experience. It tends to save money, too, by allowing businesses to do more with smaller staffs. And in a world where software environments tend to scale rapidly, automation is critical for adjusting resource allocations, rebalancing loads and otherwise reacting to ever-shifting fluctuations in demand.
Automation can be applied to virtually any domain in IT today. It’s common to use infrastructure-as-code (IaC) to automate the provisioning of resources. Application performance management tools now sometimes offer auto-remediation features that can resolve certain performance issues automatically. Security orchestration, automation and response (SOAR) platforms can do the same.
What Is Orchestration?
If orchestration isn’t just another term for automation, what is it? The simplest way to define orchestration is to say that it is the automation of multiple related tasks. In other words, whereas you could use automation to manage individual processes, orchestration lets you manage a complex set of processes using a single tool.
Those processes tend to span multiple domains. For that reason, orchestration is useful for enabling an automation-based approach to an entire IT environment or application lifecycle. Automation, in contrast, only manages individual components or stages of an environment or lifecycle.
A Real, but Ambiguous, Difference
It’s worth noting that there is something of a gray area between automation and orchestration. How many tasks do you need to automate at once to be performing orchestration? How broad does the scope of your operations need to be to qualify as automation? These aren’t always easy questions to answer.
For instance, you could debate whether an IaC tool that manages both servers and application deployments via a single set of templates is an orchestration solution or an automation solution. It automates more than a single task, but not much more than that.
This is to say that the precise difference between automation and orchestration sometimes lies in the eye of the beholder. There are borderline cases that lack clear distinctions.
Automation vs. Orchestration: The Kubernetes Example
As an example of orchestration at work, take Kubernetes, the open-source container orchestration tool. Kubernetes counts as an orchestration platform and not just an automation platform because it automates multiple processes related to containers. It automatically decides where to place containers within a cluster. It automatically manages load for containers. It automatically restarts failed containers. And so on.
If Kubernetes did just one of these things – for instance, if it only determined which node a container should run on – it would be an automation tool. But Kubernetes is an orchestrator because it automates almost all of the processes required to manage containerized applications.
The Role of Code-Based Policies in Automation
Another area in which automation and orchestration diverge is that most (though not all) orchestration tools are configured using code. Developers and IT engineers write code to define how the tool should manage workloads, and the tool then operationalizes the configuration automatically.
Here again, Kubernetes is a good example. Most large-scale Kubernetes environments depend on prebuilt configurations that define the cluster state that Kubernetes is supposed to achieve. If all goes well, Kubernetes orchestrates workloads in such a way that it achieves that state.
Automation tools tend not to be as code-centric. If you use an automated monitoring tool, for example, you may well spend much of your time staring at dashboards and clicking buttons, not writing code that defines how the tool should operate.
There are exceptions. IaC, for instance, is an automation use case that relies almost exclusively on code. But for the most part, automation doesn’t require extensive knowledge of coding.
When to Use Automation, and When to Use Orchestration
It’s hard to imagine an IT team functioning today without making extensive use of automation. Modern IT environments are simply too complex and fast-moving to be managed without the help of automation.
In contrast, it might be possible to manage at least basic environments without orchestration. If you run monolithic applications in VMs or directly on bare metal, you only update your applications a few times a year and you don’t use complex cloud architectures, you probably don’t need orchestration.
But more complex environments – those involving microservices, containers, and complex networking and cloud architectures – can’t be managed effectively at scale without the help of orchestration tools. There is just too much going on in these environments for IT teams to be able to keep track of it all, and react quickly to change, by automating individual processes. Instead, they need to orchestrate the environments at a high level.
Although the difference between automation and orchestration is debatable to a point, most automation-driven IT processes cleanly fall into one bucket or the other. And either way, debating semantics surrounding these two terms is not as important as ensuring that you automate and orchestrate as much as you can, no matter which labels you choose to apply to which processes.