The term orchestration (borrowed from the field of music) designates in IT the flexible combination of several services to a meaningful concept (composition) that describes a business process, including automated configuration, management, and coordination of computer systems, applications, and services. Orchestration can be used to automate complex IT service workflows, local or internal services, external cloud-based services, or hybrid environments, can be integrated by replacing singularly existing processes with an optimally networked orchestration system. In practice, isolated solutions are frequently encountered as network, storage & virtualization automation or application deployments. Missing links result in unstructured conditions decelerating business processes.
Orchestration and Automation are connected but are indeed two different pairs of shoes.
Automation can help make your business more productive by reducing or replacing the need for human interaction with IT systems and instead of using application software to perform its tasks to reduce cost, complexity and errors. In very general terms, automation refers to the automation of a particular task.
In contrast to orchestration, where you can automate a process or workflow that comprises many steps across several heterogeneous systems. If you first incorporate automation into your processes, you can then orchestrate them to run in an automated process. IT orchestration also helps to streamline and optimize common processes and workflows, which can support a DevOps approach and assists teams to deploy applications more rapidly. Orchestration can be used to automate IT processes such as server provisioning, incident management, cloud orchestration, database management, application orchestration, and many other tasks and workflows.
Differentiation of orchestration from IT choreography, orchestration of concept levels, orchestration of cloud services, container orchestration
IT choreography. The interaction of individual processes with each other. But there is no superordinate component that takes over the control. The difference between orchestration and choreography can also be illustrated by the image of a score in a classical orchestra: If you look at the notes of a single voice from the perspective of a single musician, this embodies the idea of a choreography. From the perspective of the conductor, who must have all the individual voices in view at the same time, an orchestration is created.
Orchestration of concept levels. The orchestration of conceptual levels includes the elements of business process modelling, process control and description, service directory, service description, communication security, method calls, message protocols and structures.
Orchestration of Cloud-Services. Orchestration of the cloud and IT services is intended to prevent business departments from using the cloud services as they like and the IT department from losing control of them. IT department assumes the role of a so-called “IT broker” who provides an ideal combination of existing IT infrastructure and additional cloud services. Aiming to reduce inefficient and independent IT silos and data islands is the logical consequence of central IT management.
Cloud Orchestration can be used, for example, to provision servers, allocate storage capacity, create virtual machines and manage networks, like the CloudBroker Platform.
Container Orchestration. For a large number of containers, solutions are needed that are capable of making complex environments transparent and simple. Such management is called container orchestration. These “orchestrators” are assigned to a selection of servers, VMs or “bare metal servers”, called “clusters”, and take over the distribution of the containers to the respective servers. Added to this is another set of tools such as application framework, load balancing and container name resolution to effectively control and manage larger infrastructures and automate updates, status monitoring and failover procedures, solutions like Docker Swarm and Kubernetes.
Scalability of Orchestration Tools
Let’s assume that one day, just like Black Friday, you get traffic that exceeds the usual amount of requests, and that a single server running the web server’s container cannot handle these many requests. The Worst: Denial of Service. Means, your service is no longer available. To avoid DoS, it is needed to scale resources and/or microservices according to user’s demands.
In general, K8s is able to scale, while the below-listed components all “auto scale” something, they are completely unrelated to each other and address very different use cases and use different concepts and mechanisms. They have been developed in separate Kubernetes projects and can be used independently of each other.
- Horizontal Pod Autoscaler: adjusts the number of replicas of an application
- Vertical Pod Autoscaler: adjusts the resource requests and limits of a container
- Cluster Autoscaler: adjusts the number of nodes of a cluster
Building upon K8s, the European funded open-source autoscaler and orchestration framework “MiCADO” by Project COLA allows extending the autoscaling functionalities of Kubernetes, while respecting individual and public compliance regulations, like the general data protection regulations of the European Union.
The auto scalability can be allocated to various custom-defined scaling parameters and policies, on two levels. Scaling policies can be defined on virtual machine and on the application level. Hence, MiCADO supports autoscaling at two levels: at virtual machine (VM) level, a built-in Kubernetes cluster is dynamically extended or reduced by adding/removing virtual machines. At the Kubernetes level, the number of replicas tied to a specific Kubernetes Deployment can be increased/decreased.