A Controller manages the state of a single Resource (Application or Network). It executes the Resource's configuration and instantiation, and is the primary agent in ongoing management, such as control loop actions, migration, and scaling. All of these actions involve executing workflows obtained from Service Design and Creation (SDC). In addition, the Controller reports the status of each workflow execution to both the Active and Available Inventory (AAI) and the Master Service Orchestrator (MSO).
In effect, each Controller instance supports a form of orchestration to manage the operations that are within its scope. This orchestration is a lower-level of orchestration than the orchestration done by the MSO.
OpenECOMP uses different Controller types to manage Resources in the execution environment, corresponding to their assigned controlled domain:
- Network configuration (Network Controller)
- Application (Application Controller).
Both these controllers are based on an OpenDaylight Controller Framework.
Network Controllers
A Network Controller, such as SDNC, instantiates a Virtual Network Function by carrying out its network configuration workflow and reporting the resulting status (to both AAI and MSO).
Figure 1. SDNC Network Controller
Application Controllers
Application controllers, such as APPC, receive orchestrated requests from the MSO, which obtains application-specific components and attributes from SDC. The MSO continues to be responsible for ensuring that the Application Controller successfully completes its Resource configuration as defined by the workflow.
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.
OpenECOMP includes a generic Application Controller (APPC, sometimes called APP-C) that receives commands from OpenECOMP components, such as MSO, DCAE, or the Portal, and uses these commands to manage the life cycle of Services, Resources (virtual applications and Virtual Network Functions), and their components. See the OpenECOMP Application Controller User Guide and the APPC API page.