An orchestra is a collection of instrumentalists working together to produce music – but it only works when the instrumentalists are well coordinated. Without someone directing each individual’s function, the orchestra is more likely to produce a cacophony of noise than symphonic harmonies.

The term “orchestration” is one of the more apt analogies in IT. IT professionals use it to describe the coordination of resources, processes and policies to deliver business services – as in the case of cloud computing. Like an orchestra, cloud computing has a variety of supporting components, ranging from servers and load balancers to storage systems and access controls. Consider a typical multitier business application that provides a Web and mobile user interface, an application layer with business logic and a database server as a persistent data store. This scenario requires:

  • Creating subnets, requesting IP address and updating DNS records
  • Deploying database servers and provisioning storage
  • Provisioning an application server and deploying code
  • Creating a load-balanced Web server in a DMZ subnet
  • Configuring firewall rules
  • Configuring LDAP or Active Directory and specifying access control rules
  • Applying operating system updates and installing endpoint security software
  • Running automated test scripts

And this is just the tip of the iceberg. There are also licensing issues, compliance reporting, monitoring and other operational tasks to consider.

Each of the tasks listed above requires multiple steps, and sometimes coordination among professionals with different areas of expertise, such as network administrators and database developers. Regardless of how many times organizations manually deploy such a system, there is always the risk of errors occurring. These could be as simple and harmless as mistyping an IP address or misconfiguring an operating system in ways that leave your organization exposed to a data breach. However, these risks can be mitigated using automation.

Coordination through Automation

Orchestration is the integration of automated tasks. Tasks are logical units of work, such as deploying a Web server, and when deploying a fully functional business system, there are multiple tasks that need to occur. Coordinating all of these tasks is the process of orchestration. For example, you must consider dependencies among tasks. To ensure high availability and scalability, Web servers are often placed behind a load balancer. An orchestration process would ensure a load balancer is successfully created before attempting to attach Web servers to the load balancer. Similarly, public IP addresses would be requested and received before updating DNS records. Orchestration touches all infrastructure points, business processes and automated testing.

There is an additional benefit of orchestration beyond improving the quality and efficiency of infrastructure deployment that may not be immediately obvious. Orchestration enables the abstraction of resources, and most orchestration tools are API-enabled so upstream systems can take advantage of this abstraction. Orchestration scripts, for example, can run in either a public cloud or in an on-premise private cloud. Using a portal or service catalog, users can request resources from the orchestration tool in a cloud-agnostic way, enabling hybrid cloud. Infrastructure as Code, or platform engineering, can leverage the orchestration system’s course-grained API, making integration easier and decoupling it from the details of underlying infrastructure. Or, IT service management or business management systems can integrate with the orchestration system in a similar way to enable end-to-end provisioning of infrastructure to support business services, such as disaster recovery or customer onboarding to a platform.

Realizing the benefits of orchestration

The benefits of orchestration are clear, but how does an enterprise get to this level of operational functionality? The solution is standardization, the lynchpin of orchestration. Organizations that standardize on infrastructure components, policies, and management tools and methods are most likely to realize the optimal benefits of orchestration. Here are two points to keep in mind regarding standardization.

1. Set your limits

Standardization is a balancing act. It requires limiting options, especially around lower-level services such as networking and operating systems. An organization may need to support both Windows and Linux servers, but does it really need to run half a dozen or more Linux distributions? There may be business requirements for a wide variety of operating systems, and in that case, it is imperative to create and maintain a centrally managed service catalog. Developers and system administrators can use the service catalog to access properly configured machine images or deployment scripts so they do not have to start from scratch to deploy and configure application resources.

2. Define policies clearly

Standardizing configuration management tools and procedures entails defining policies that deploy applications according to the policy specifications. Use network virtualization to provide an interface to network services and to properly configure network security. Similarly, software-defined storage can allocate storage resources and specify performance characteristics, such as the use of SSD storage over magnetic storage and the number of IOPS.

Orchestration is the key to coordinating the large number of varied tasks that must be completed to deploy high-performance business services more quickly. As cloud environments become increasingly complex, an orchestrated environment will be even more critical to ensuring IT organizations can experience the full benefits of cloud computing in terms of efficiency, scalability and cost savings. Orchestration can be revenue generating by becoming an enabler for new digital business services that otherwise would not be feasible through traditional manual processes.