Automation versus Orchestration

Yes, Virginia, there is a difference.

One of the things devops practitioners are tasked with is the provisioning and configuration of all sorts of infrastructure.  Application servers, web servers, load balancers, proxies and database servers are among the lengthy (and no doubt growing) list of “boxes” devops needs to get up and running to support just about any given application today. One of the key value propositions of a devops approach to operations is that it can reduce the time it takes to get applications to market by getting them up and running in production faster. That’s increasingly important as we move into the Era of Things, driven by extreme connectivity of everything, because all those “things” need are going to need to be talking to applications on the back side.

So speed is of the essence, but not at the cost of accuracy. We’re encouraged, then, to automate tasks and orchestrate processes to achieve that speed. The side effect of codification of tasks is higher accuracy (aka fewer mistakes).

So far so good.

But you may notice that I have (and will continue to) clearly delineate between “automate” and “orchestrate”, between “task” and “process”.

The reason for that is that, simply, they are not the same thing. We should strive not to confuse these two because while the two share some benefits, there are other benefits that are achievable only by one or the other – or the combination thereof.

Process optimization, for example, can’t be achieved by simple automation. Automation is concerned with a single task – launching a web server, configuring a web server, stopping a service. Orchestration, however, is concerned with automating, if you will, the execution of a workflow – of a process. A provisioning process may be comprised of multiple tasks and involve multiple systems. An “application” is not just a single server, after all, it’s likely several servers – web, app and database in a traditional three-tier architecture.

The goal of orchestration is not just to automatically execute a service, which brings speed to the deployment process and gets applications into production faster. It also affords an opportunity to streamline – to optimize – those processes for even greater gains in deployment velocity.

One of the simplest ways to optimize a process is to eliminate repetitive steps. This entry on Vagrant explains it fairly well :

“We could just SSH in and install a webserver and be on our way, but then every person who used Vagrant would have to do the same thing. Instead, Vagrant has built-in support for automated provisioning. Using this feature, Vagrant will automatically install software when you vagrant up so that the guest machine can be repeatably created and ready-to-use.” [emphasis mine]

— Vagrant Docs “Getting Started | Provisioning”

Now certainly the step of installing a web server on a new box with vagrant is hardly all that time consuming, it’s just a single line of text. But every line of text must be manually typed, and that introduces the possibility of fat fingering the command, which either consumes time in fixing it or introduces an error into the system. Neither are desirable results.

automate-orchestrate

Ensuring that the process is repeatable and orchestrated by automating all the tasks that comprise that process an optimize it by eliminating redundancy. That results in greater deployment velocity.

Recognizing that processes should be comprised of composable tasks offers a higher degree of reuse across operations. The task of provisioning and configuration a web server with the appropriate base software means consistency, aka standardization, across all applications. Processes that take advantage of standardization result in greater infrastructure stability, another benefit often cited by organizations that have adopted a devops approach to operations.

iweek-devops-stability

The key here is to recognize the difference between automation and orchestration and how they relate to one another. Automation is about codifying tasks and orchestration is about codifying processes. Orchestration takes advantage of automation by reusing these basic building blocks.

There is a difference, and done right, the two play off one another to result in streamlined, more accurate execution of operational processes that speed up successful application deployments.

Comments

12 responses to “Automation versus Orchestration”

  1. […] without buy in and solid trust and relationships across groups they may not be given access to automate and orchestrate certain key […]

  2. […] has a number of popular, industry-leading open source tools at its disposal. Vagrant manages development environments. Packer automates building artifacts like Docker containers, […]

  3. […] one article, its author explains the mentioned difference as […]

  4. […] their technicians to the field like electrician, HVAC, and plumbing companies. An FSMS system can automate multiple tasks done currently on paper such as invoicing and scheduling. It also promotes efficient communication […]

  5. […] may also find programs that can help with Orchestration. This is a bit different from simple automation. You can automate tasks more easily, but orchestration is about automating workflows and […]

  6. […] I find it frustrating that the concepts of automation and orchestration seem to be conflated within the container world, juxtaposing one for the other. But for now, let’s just ignore that […]

  7. Hank Taylor Avatar
    Hank Taylor

    This is so tautological it makes the whole article useless.

  8. […] Macvittee, technical evangelist at F5 Networks, noted that “the key here is to recognize the difference between automation and orchestration and how […]

  9. […] other words, the task can be completed on its own, without the need for physical input. Conversely, orchestration is a process of handling multiple automated tasks, turning various procedures into a single and effective […]

  10. […] would have their own set of tools and little sharing which meant that delays could occur. Now teams use centralised processes that increase communication and prevent […]

  11. […] media posts or sending out email newsletters. As a matter of fact, multiple automated processes can be orchestrated to create seamless and effective workflows. This can help a business reduce operating costs, […]

Leave a Reply