© jeancliclac, Fotolia.com

© jeancliclac, Fotolia.com

Make Your IT Automation Systems Play Together Like a Symphony

Cloud Orchestration with Chef

Article from ADMIN 42/2017
Discover the difference between automation and orchestration, and learn to quickly deploy and orchestrate well-defined, scalable business solutions for your organization.
     Special Thanks: This article was made possible by support from Linux Professional Institute

About a month ago, I was talking with a few cloud professionals at an IT conference in London. One of the topics was about ways to eliminate repetitive tasks. Naturally, we started talking about automation and orchestration. It was kind of fun to step back a bit and watch each of these folks test each other’s knowledge about the difference between automation and orchestration. It was even more fun to hear them talk about their favorite solutions for each.

Orchestration and Automation

The general consensus in my impromptu little automation and orchestration panel was that automation allowed workers to easily replicate and repeat traditional IT tasks, usually using cloud-based services. The folks I talked with then went on to talk about how orchestration is a related task, because orchestration allows workers to arrange, sequence, and coordinate automated tasks. I’ve always seen automation and orchestration in musical terms: Automation allows you to replicate a string section, a woodwind section, as well as the percussionists. Orchestration sets up a conductor to get all of these sections to work together to perform a symphony.

Automation is where you take a traditional task and use software to do all of the grunt work. Automation is useful across the board, but here are three common uses in the cloud:

  • Scaling systems from customer requests: Automating the process of provisioning virtualized servers so that they meet the needs of clients. This means automating a server instance so it can contain the features needed by the customer.
  • Data backup: Few people enjoy implementing all of the minutiae of backup. So, why not create a solid template, then automate it?
  • Batting clean-up: Automation can help find and remove rogue virtualized systems or forgotten cloud instances.

Orchestration is where you take automated services, and then place them into some sort of workflow that meets a business need. It’s where you take, as it were, the automated scaled servers, data backup, and the activity of cleaning up systems and, well, orchestrate them. Orchestration doesn’t focus on tasks, really – that’s what automation is for. Orchestration focuses on workflow and coordination. I frame the activities of automation and orchestration in two tiers:

Tier Function Description
1: Automation IT grunt work – templates that contain and replicate individual tasks Taking a set of tasks and placing them into a template
2: Orchestration Administrative function – a “cloud orchestrator” The administrative activity of conducting and coordinating tasks for a business.

These two tiers need to work and play well together in order for things to go smoothly for you and your organization. So, let’s look at how to begin an implementation using Chef, one of the more common orchestration engines.

Cloud Orchestration Architecture and Lifecycle

When orchestrating cloud services, it’s vital to consider the entire lifecycle. This lifecycle is best described in terms of a cloud orchestration architecture, as described in Figure 1.

Figure 1: Cloud orchestration model

In the above figure, the “Service/help desk” domain could be used to configure a particular end point. For example, if you are responsible for configuring 200 Windows workstations for a particular company department, you would create a template for one of those workstations. If you’re responsible for implementing 100,000 IoT devices, you could use this domain, or create a separate domain for that particular end point, and then populate it with templates that help you write an IoT template once, and then implement it 100,000 times.

The cloud orchestration model uses an agent/manager model. Agents reside in various areas of the organization. The manager resides on the orchestration server. It is possible for a sub-manager to be placed on additional servers in larger implementations. But all sub-managers communicate and coordinate directly with the orchestration server manager.

Each of the elements in the architecture is described below:

  • Orchestration engine: Contains the orchestration logic. Includes the visualization interface.
  • Visualization: Interfaces that allow you to configure orchestration, as well as monitor steps along the entire lifecycle of a cloud-based solution:
  • Coordinate automated tasks (e.g., templates). Your automation engine is responsible for storing the templates you create. But it’s the responsibility of the orchestration engine to coordinate these tasks. You can coordinate the launching of any service from here.
  • View workflow: See how well your orchestration is working in real-time.
  • Domains: Designated categories that contain the services that your company or organization uses every day. These can include virtual machines, code submitted from developers, network services, Customer Relationship Management (CRM) systems, Web and/or database servers, or any other element that you deem necessary to fulfill a business need.
  • Automation engine: Contains the templates of services you need to be automated.
  • Customer request: Each of your company’s departments is a customer. You and the orchestrating engine make it possible to quickly fulfill requests. These are monitored by the transaction engine.

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs

Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>


		<div class=