Network orchestration is a policy-driven approach to network automation that coordinates the hardware and software components a software application or service requires to run. An important goal of orchestration is to automate the way network requests are carried out and minimize the human intervention required to deliver an application or service. For example, if a cloud storage provider receives an order for 2TB of storage through its customer-facing website, the provider’s orchestration platform can translate the order’s requirements into configuration tasks for network devices to execute.
Network orchestration allows network engineers to define their own gateways, routers, and security groups through software configuration files or policies that are written in a language that a control plane can understand. Instead of one person setting network services and another deploying the application, orchestration automates workflows so both tasks can be carried out programmatically at the same time. Some sophisticated orchestration platforms are network-aware and can use analytics to decide where specific resources should be deployed in order to maintain optimal network performance.
The term network orchestration is sometimes confused with network automation. Generally, automation is used to describe the automation of a low-level if this than that (IFTTT) management task, while orchestration is used to describe the automation of management tasks that have lots of dependencies. Orchestration allows networks to scale as needed, enables network services to be provisioned across multiple devices, and it makes it possible to deploy resources as needed, thus making the network more agile and responsive.
Network orchestration tools and their uses
There are several areas in which network orchestration can be applied:
- Automating the configuration of an interface or routing using IP and OpenFlow protocol;
- Establishing overlays to dictate control and forwarding planes;
- Enabling security domains;
- Using traffic engineering to ensure workflows follow the correct paths;
- Provisioning network services, such as deep packet inspection (DPI), stateful inspection and filters, which need to be placed within the workflow path; and,
- Directing workflow to the right place, and tagging and managing that information.
Network orchestration deployment models
In software-defined networking, network orchestration allows an SDN controller--via APIs--to provision, update and manage the computing resources required to deliver an application or service.
In cloud computing, orchestration is the means through which a framework of repeatable, reliable and predictable processes can be harnessed to deliver network services over a wide variety of physical and virtual network components.
Orchestration is particularly important in a multicloud environment, where services and applications are provisioned and delivered from multiple sources. OpenStack, an open source software framework to manage public and private cloud infrastructure, is one way to enable orchestration in a cloud environment.
Orchestration and containers
Containers represent a new area where network orchestration is being applied. Containers are a way to run and deploy distributed applications without requiring the use of a dedicated virtual machine. Orchestration manages how these containers are created, upgraded and put into operation; the technology also manages how multiple containers can be connected to build more comprehensive applications.
Kubernetes, a popular, open source platform to deploy and operate multiple application containers, also contains orchestration tools.