Merge "Refactor codes for subscription"
[vfc/nfvo/lcm.git] / docs / platform / architecture.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4
5 VF-C Architecture
6 ==================
7
8 .. contents::
9    :depth: 2
10
11 VF-C Internal Component
12 -----------------------
13
14 |image0|
15
16 .. |image0| image:: vfc-internal-component.png
17    :width: 6.97047in
18    :height: 4.63208in
19
20 This shows all VF-C components, each component is a standalone microservice, these microservice including:
21
22 * nslcm is the core components, mainly responsible for network service management.
23 * catalog is used to package management, including NS/VNF/PNF package management.
24 * Resource Manager is used to management the instance created by VF-C and also responsible for resource granting.
25 * SVNFM Driver, now VF-C has three vendor's Specific VNFM driver, including nokia/huawei/zte driver, each driver is a microservice.
26 * GVNFM Driver, now have two generic VNFM driver, including gvnfm driver and juju driver. 
27 * SFC Driver, it migrate from Open-O seed code and now haven't been used in any usecase in ONAP. 
28 * Wfengine-mgrservice, it provides the workflow management service, now it has been integrated with activiti workflow and provide the unified interface to external components.
29 * Wfengine-activiti, it is as the activiti work flow microservice.
30 * Multivim-proxy,provide the multivim indirect mode proxy which can forward virtual resource requests to multivim and do some resource checking.  
31 * EMS Driver, used for VNF performance and alarm data collection and report to DCAE VES collector.
32 * GVNFM, it includes three micorservice: vnflcm, vnfmgr and vnfres and the core is vnflcm which responsible for VNF life cycle management.
33 * DB, provide database services for each VF-C component.  
34
35 Note:
36   a. SFC Driver migrated from Open-O seed code and now haven't been used in any usecase in ONAP. 
37   b. Resource resmanagement is used to do the resource granting, but now VF-C has been integrated with OOF, this component will be deprecated in the future release.
38   c. DB provides the stand-alone database microservice in casablanca release, but now VF-C leverages OOM shared MariaDB-Gelera cluster. This repo still has redis to be used by VF-C component. 
39
40
41 VF-C External Dependency
42 ------------------------
43   
44 |image1|
45
46 .. |image1| image:: vfc-dependence.png
47    :width: 6.97047in
48    :height: 4.63208in
49    
50 As you can see in this picture, VF-C has many dependencies with other projects, such as SO, Policy, A&AI, SDC, DCAE, Multi-cloud and so on.
51
52 * NFVO provides north bound interface to SO to take part in fulfilling the orchestration and operation of end2end service.And provides standard south bound interface to VNFMs. 
53
54 * GVNFM provides LCM for VNFs which do not require a vendor VNFM and works with NFV-O component to take part in fulfilling the LCM of NS.
55
56 * VF-C provides VNFM driver interfaces, vendor can implement these integrates to integrate with VF-C. Now, VF-C has integrated with three vendor VNFM, including ZTE, Huawe, Nokia. 
57
58 * In addition, VF-C also provides interface to Policy and works with DCAE for Close Loop Automation.
59    
60 * In Casablanca release, VF-C also integrated with OOF to do the resource homing and placement.
61
62
63 VF-C Usecase and Workflow
64 -------------------------
65
66 VF-C support VoLTE use case, vCPE use case in last three release and will support CCVPN use case in Dublin release.
67
68  - VoLTE usecase information can be found : https://wiki.onap.org/pages/viewpage.action?pageId=6593603
69  - vCPE usecase information can be found : https://wiki.onap.org/pages/viewpage.action?pageId=3246168
70  - CCVPN usecase information can be found : https://wiki.onap.org/pages/viewpage.action?pageId=45296665
71
72 Taking VoLTE as an example to describe the VF-C internal workflow:
73
74 1. VF-C Instantiate
75
76 |image2|
77
78 .. |image2| image:: vfc-instantiate.png
79    :width: 6.97047in
80    :height: 4.63208in
81
82 The workflow:
83
84 *       SO send request to  LCM to deploy vIMS+vEPC network service. 
85 *       LCM  talk with Res Manager  and then A&AI to create NS instances in A&AI inventory. 
86 *       LCM get NSD from VF-C catalog. 
87 *       LCM parse the NS model via TOSCA parser to decompose NS to VNFs and recognize the relationship between VNFs. 
88 *       LCM init workflow context and execute NS instantiation. 
89 *       Workflow will invoke LCM to instantiate VLs between VNFs. 
90 *       LCM talk with Multi-VIM to create virtual network connections between VNFs if needed. 
91 *       LCM talk with Res manager to create related virtual link instances to A&AI inventory(Not included in R1). 
92 *       When VL created ,workflow will invoke LCM to instantiate VNFs. 
93 *       LCM send request to S-VNFM Driver and wok with  S-VNFM to deploy each VNFs. 
94 *       Aligned with ETSI specs work flow, VNFM need to send granting resource request to LCM,LCM transfer this request to Res manager and then response the granting result and related VIM information(such as url/username/password, etc) to VNFM. 
95 *       VNFM call VIM API to deploy VNF into VIM. 
96 *       VNFM send notification to LCM to notify the changes of virtual resources, including VDU/VL/CP/VNFC, etc. 
97 *       LCM talk to Res manager to create/update related records in A&AI inventory
98    
99 2.VF-C Terminate
100
101 |image3|
102
103 .. |image3| image:: vfc-terminate.png
104    :width: 6.97047in
105    :height: 4.63208in
106    
107 The workflow:
108
109 *       SO talk with VF-C to request deletion of vIMS/vEPC network services 
110 *       Lcm work with Res manager to check all  vIMS/vEPC instances in A&AI 
111 *       LCM invoke workflow to delete NS instance 
112 *       First, workflow will execute deleting VNFs by invoke LCM 
113 *       LCM talk with S-VNFM Driver o request deletion of VNFs and related resources 
114 *       Aligned with ETSI specs work flow, VNFM will delete/release virtual resources with the granting to LCM 
115 *       LCM transfer the grant request to Res Manager and then response the granting result and related VIM information(such as url/username/password, etc) to VNFM. 
116 *       VNFM delete VNFs and related resources and  notify the changes(releasing) of virtual resources to LCM 
117 *       Lcm talk with Res Manager to  update/delete related resource instances in A&AI inventory 
118 *       When above work finish, workflow  will delete VLs 
119 *       LCM talk with Multi-VIM to request deletion of virtual network connected to VNFs 
120 *       Multi-VIM delete related virtual network resources, such as network, sub-network and port, etc. 
121 *       LCM talk with Res Manager to update/delete related VL resource instances in A&AI inventory(Not included in R1) 
122 *   LCM talk with Res Manager to update/delete related NS instances in A&AI inventory
123
124 3. VF-C Healing
125
126 |image4|
127
128 .. |image4| image:: vfc-heal.png
129    :width: 6.97047in
130    :height: 4.63208in
131    
132 The workflow:
133
134 *       EMS Driver collects VNF service level FCAPS in real-time or period. 
135 *       EMS Driver will transfe VNF service level FCAPS metrics to DCAE with VES data format. 
136 *       Data filtering/cleaning inside DCAE, DCAE can send related events to data bus. Holmes can keep track the events published to data bus and do the alarm correlation analysis based on the imported rules and Holmes send the result, the root cause, to the event bus. 
137 *       Policy engine subscribe related topic on event bus. After receiving auto-healing triggering events, matching the events with exist rules. 
138 *       Policy invoke VF-C APIs to do the action of auto-healing once matching events with healing rules. 
139 *       LCM talk with VNFM driver to restart VNF and receive the changes of virtual resources. 
140 *       LCM talk with Res manager to update/create related instances information to A&AI inventory according to the changes of resources. 
141
142
143 If you would like to know more details about vCPE, you can refer https://wiki.onap.org/display/DW/vCPE+with+Tosca+VNF+Test+Guide
144
145
146