Orchestration often refers to the automated configuration, coordination, and management of computer systems and services. This makes it far more complex than automation alone. Orchestration needs to make decisions based on context and rule, as well as react to events.
In the context of service-oriented architectures, orchestration can range from simply executing a single service at a specific time and day, to a more sophisticated approach of automating and monitoring multiple services over longer periods of time, with the ability to react and handle failures as they crop up.
In the data engineering context, orchestration is central to coordinating the services and workflows that prepare, ingest, and transform data. It can go beyond data processing and also involve a workflow to train a machine learning (ML) model from the data.
In the context of cloud infrastructure, orchestration typically applies to the provisioning of resources, resolution of technical issues, and response to security events. For example: start a VM, apply networking, apply tagging, apply security software, install software bundles, attach to log server, enable systems management, etc.
Cloud platforms are built from the ground up to be managed programmatically via API’s – the very management consoles are built using the same function calls. Orchestration of API’s is the cloud-native way to get things done.
Finally, both automation and orchestration are important elements in DevOps practices. DevOps focusses on shortening the system development lifecycle, therefore one of its principles is to “Automate everything that can be automated”. Automation drives tangible benefits in terms of consistency of systems and error reduction to save time and money.
Who is it for and why do it?
- any cloud service consumer who wants to improve their operational efficiency at scale, reduce errors associated with manual intervention, and reduce time to resolution of common issues.
- infrastructure experts who want to automate deployment and configuration tasks.
- administrators who want to reliably resolve common issues, improve troubleshooting efficiency, and reduce repetitive operations.
- users who want to automate a task they normally perform manually