MSO High-level System Architecture
See the attached presentation for an explanation of the system architecture of MSO, and its interaction with other OpenECOMP components: MSO High-level Design.
MSO Overview
OpenECOMP orchestration arranges, sequences, and implements tasks based on rules and policies to coordinate the creation, modification, or removal of logical and physical resources in the managed environment. The Master Service Orchestrator (MSO) manages orchestration at the top level and facilitates additional orchestration that takes place within underlying controllers. It also marshals data between the various controllers so that the process steps and components required for execution of a task or service are available when needed.
The MSO's primary function is the automation of end-to-end service instance provisioning activities. MSO is responsible for the instantiation and release, and subsequent migration and relocation of VNFs in support of overall end-to-end service instantiation, operations and management. MSO executes well-defined processes to complete its objectives and is typically triggered by the receipt of service requests generated by other OpenECOMP components or by Order Lifecycle Management in the BSS layer. The orchestration recipe is obtained from the Service Design and Creation (SDC) component of OpenECOMP, where all service designs are created and exposed/distributed for consumption.
MSO runs autonomously within OpenECOMP.
The orchestration engine is a reusable service. Any component of the architecture can execute process recipes. Orchestration services can consume a process recipe and execute it. The service model maintains consistency and reusability across all orchestration activities and ensures consistent methods, structure and version of the workflow execution environment.
Orchestration processes interact with other platform components or external systems via standard and well-defined OpenECOMP APIs.
Controllers (Infrastructure, Network and Application) participate in service instantiation and are the primary players in ongoing service management; for example, control loop actions, service migration and scaling, service configuration, and service management activities. Each controller instance supports some form of orchestration to manage operations within its scope.
Figure 1 shows the two major domains that use orchestration: service orchestration, which is embodied in MSO and service control, which is embodied in the controllers (Infrastructure, Application and Network Controllers). Although the objectives and scope of the domains vary, they both follow a consistent model for the definition and execution of orchestration activities.
Figure 1. Orchestration
Depending on the scope of a network issue, MSO may delegate, or a controller may assume, some of the activities identified in Figure 1. For new services, this may involve determination of service placement and identification of existing controllers that meet the Service Request parameters and have the required capacity. If existing controllers (Infrastructure, Network or Application) do not exist or do not have capacity, MSO will obtain a recipe for instantiation of a new controller under which the requested service can be placed.
In future releases Orchestration process flows will be defined in the Service Design and Creation subsystem (SDC). These process flows start with a template that may include common functions such as homing determination, selection of Infrastructure, network and application controllers, consultation of policies and interrogation of Active and Available Inventory (AAI) to obtain information needed to guide the process flows. MSO does not provide any process-based functionality without a recipe for the requested activity (in the current release the process flows are designed directly in MSO using BPMN flows).
MSO interrogates AAI to obtain information regarding existing Network and Application Controllers to support a service request. AAI provides the addresses of candidate controllers that are able to support the service request. MSO may then interrogate the controller to validate its continued available capacity. MSO and the controllers report reference information back to AAI upon completion of a service request to be used in subsequent operations.
Application, Network and Infrastructure Controller Orchestration
As previously stated, orchestration is performed by various components, primarily the MSO and the Application, Network and Infrastructure Controllers. Each will perform orchestration for:
- Service delivery or changes to an existing service
- Service scaling, optimization, or migration
- Controller instantiation
- Capacity management
Regardless of the focus of the orchestration, all recipes must include steps to update AAI with configuration information, identifiers and IP Addresses.
Infrastructure Controller Orchestration
Like MSO, the Application, Network and Infrastructure Controllers obtain their orchestration process and payload (templates/models) from Service Design and Creation (SDC). For service instantiation, MSO maintains overall end-to-end responsibility for ensuring that a request is completed. As part of that responsibility, MSO selects the appropriate controllers (Infrastructure, Network, or Application) to carry out the request. Because a service request is often comprised of one or more Resources, MSO will request the appropriate controllers to obtain the recipe for the instantiation of a Resource within the scope of the requested controller. After service placement is determined, the MSO may request the creation of a virtual machine (VM) at one or more locations depending on the breadth of the service being instantiated and whether an existing instance of the requested service can be used. If new VM resources are required, MSO will place the request to the Infrastructure Controller for the specific cloud location. Upon receipt of the request, the Infrastructure Controller can obtain its resource recipe from SDC. The Infrastructure Controller will then begin orchestrating the request. For infrastructure controllers, this typically involves execution of OpenStack requests for the creation of virtual machines and for the loading of the Virtual Function (VF) software into the new VM container. The resource recipe will define VM sizing, including compute, storage and memory. If the resource level recipe requires multiple VMs, the MSO will repeat the process, requesting each infrastructure controller to spin up one or more VMs and load the appropriate virtual functions (VFs), as specified by the resource recipe of the specific infrastructure controller. When the infrastructure controller completes the request, it passes the virtual resource identifier and access (IP) information back to MSO to provide to the Network and Application Controllers. MSO might write identifier information to AAI for inventory tracking during the entire process.
Network Controller Orchestration
Network Controllers are constructed and operate in much the same manner as Application and Infrastructure Controllers. New service requests will be associated with an overall recipe for instantiation of that service. MSO obtains compatible Network Controller information from AAI and in turn requests LAN or WAN connectivity to be established and configured. This may be done by requesting the Network Controller to obtain its resource recipe from SDC. It is the responsibility of MSO to request (virtual) network connectivity between the components and to ensure that the selected Network Controller successfully completes the network configuration workflow. A service may have LAN, WAN and access requirements, each of which must be included in the recipe and configured to meet the instance specific customer or service requirements at each level. Physical access might need to be provisioned in the legacy provisioning systems prior to requesting MSO to instantiate the service.
Application Controller Orchestration
MSO sends requests to Application Controllers to obtain the application-specific component of the service recipe from SDC and execute the orchestration workflow. MSO ensures that the Application Controller successfully completes its resource configuration as defined by the recipe. As with Infrastructure and Network Controllers, all workflows, whether focused on Instantiation, configuration or scaling, will be obtained or originate from SDC. In addition, workflows also report their actions to AAI as well as to MSO.
Note that not all changes in network or service behavior are the result of orchestration. Policies and rules (in the Policy subsystem) inform the controller such that the Controller can enable service behavior changes.