Orchestration (computing)
Orchestration is the automated arrangement, coordination, and management of computer systems, middleware, and services.
Usage
Orchestration 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.[1]
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.[2] 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 that previously could only be done by multiple administrators operating on their individual pieces of the physical stack.[3]
A somewhat different usage relates to the process of coordinating an exchange of information through web service interactions. (See also service-oriented architecture, and web service choreography.) Applications that decouple the orchestration layer from the service layer are sometimes called agile applications.
A distinction is often made between orchestration (a local view from the perspective of one participant) and choreography (coordination from a global multi-participant perspective, albeit without a central controller).
Cloud computing
Cloud computing introduces more-granular and specific meanings of the terms "workflows" and "processes" as used in different domains. Processes can be identified at both the level of inter-company business and the level of wide area network ("the cloud") operations. An "orchestrator" is understood to be the entity which manages complex cross-domain (system, enterprise, firewall) processes and handles exceptions. Since an orchestrator is valuable in fulfillment, assurance, and billing processes,[4] 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 between a workflow "automation" and an "orchestration" (in the context of cloud computing) 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.[1]
In this context, and with the overall aim to achieve specific goals and objectives (described through quality of service parameters), for example, meet application performance goals using minimized cost[5] and maximize application performance within budget constraints,[6] cloud management solutions also encompass frameworks for workflow mapping and management.[7][8]
Cloud service orchestration consists of these elements:
- 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 workflows when applicable to deliver a defined Service.
Orchestration is critical in the delivery of cloud services for these reasons:
- 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 workflows in various technical and business domains.
References
- 1 2 Thomas Erl. Service-Oriented Architecture: Concepts, Technology & Design. Prentice Hall, ISBN 0-13-185858-0.
- ↑ A Business Resolution Engine for Cloud Marketplaces, IEEE Third International Conference on Cloud Computing Technology and Science (CloudCom), IEEE, 2011, pp. 462–469, doi:10.1109/CloudCom.2011.68
- ↑ Onisick, Joe, "Private Cloud Automation, Orchestration, And Measured Service," Network Computing, June 23, 2011.
- ↑ Bligh, Alex (2012-03-13). "What is Billing?". Retrieved 2012-09-12.
- ↑ Mao, Ming; M. Humphrey (2011). "Auto-scaling to minimize cost and meet application deadlines in cloud workflows". Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC2011). doi:10.1145/2063384.2063449. ISBN 978-1-4503-0771-0.
- ↑ Mao, Ming; M. Humphrey (2013). "Scaling and Scheduling to Maximize Application Performance within Budget Constraints in Cloud Workflows". Proceedings of the 2013 IEEE 27th International Symposium on Parallel and Distributed Processing(IPDPS2013): 67–78. doi:10.1109/IPDPS.2013.61. ISBN 978-0-7695-4971-2.
- ↑ Kyriazis, Dimosthenis; Tserpes, Konstantinos; Menychtas, Andreas; Litke, Antonios; Varvarigou, Theodora (2008). "An innovative workflow mapping mechanism for Grids in the frame of Quality of Service". Future Generation Computer Systems. 24 (6): 498–511. doi:10.1016/j.future.2007.07.009.
- ↑ Gogouvitis, Spyridon; Konstanteli, Kleopatra; Waldschmidt, Stefan; Kousiouris, George; Katsaros, Gregory; Menychtas, Andreas; Kyriazis, Dimosthenis; Varvarigou, Theodora (2012). "Workflow management for soft real-time interactive applications in virtualized environments". Future Generation Computer Systems. 28 (1): 193–209. doi:10.1016/j.future.2011.05.017. ISSN 0167-739X.