Orchestration describes the automated arrangement, coordination, and management of complex computer
systems, middleware, and services.
It is often discussed as having an inherent intelligence or even implicitly autonomic
control, but those are largely aspirations or analogies rather than technical descriptions.
In reality, orchestration is largely the effect of automation or systems deploying elements
of control theory.
This usage of orchestration is often discussed in the context of service-oriented architecture,
virtualization, provisioning, Converged Infrastructure and dynamic datacenter topics.
Orchestration in this sense is about aligning the business request with the applications,
data, and infrastructure.
It defines the policies and service levels through automated workflows, provisioning,
and change management.
This creates an application-aligned infrastructure that can be scaled up or down based on the
needs of each application.
Orchestration also provides centralized management of the resource pool, including billing, metering,
and chargeback for consumption.
For example, orchestration reduces the time and effort for deploying multiple instances
of a single application.
And as the requirement for more resources or a new application is triggered, automated
tools now can perform tasks which, previously, could only be done by multiple administrators
operating on their individual pieces of the physical stack.
A somewhat different usage relates to the process of coordinating an exchange of information
through web service interactions.
Applications which decouple the orchestration layer from the service layer are sometimes
called agile applications.
Although appearing to make rather arbitrary use of language, a distinction is often made
between orchestration and choreography.
Orchestration and Choreography in the context of Cloud Computing:
Cloud computing introduces more-granular and specific meanings of these terms: "workflows"
and "processes" are used in different domains.
At one level there are inter-company business processes, and at another level there are
processes to get the wide area network operational.
To keep matters simple, we will define "an orchestrator" as: the entity that manages
complex cross domain processes, and that handles exceptions.
Since an orchestrator is valuable in the fulfillment, assurance as well as billing processes, service-aware
incarnations of an orchestrator should be capable of adjustments based on feedback from
monitoring tools.
At the most basic level, an orchestrator is a human.
The main difference, then, between a workflow "automation" and an "orchestration", is that
workflows are processed and completed as processes within a single domain for automation purposes,
whereas orchestration includes a workflow and provides a directed action towards larger
goals and objectives.
In this context, and with the overall aim to achieve specific goals and objectives,
e.g., meet application performance goals using minimized cost and maximize application performance
within budget constraints, cloud management solutions also encompass frameworks for workflow
mapping and management.
Cloud service orchestration therefore is the: Composing of architecture, tools and processes
used by humans to deliver a defined Service.
Stitching of software and hardware components together to deliver a defined Service.
Connecting and Automating of work flows when applicable to deliver a defined Service.
Orchestration is critical in the delivery of cloud services because:
Cloud services are intended to scale-up arbitrarily and dynamically, without requiring direct
human intervention to do so.
Cloud service delivery includes fulfillment assurance and billing.
Cloud services delivery entails work flows in various technical and business domains.
References