update link to upper-constraints.txt
[multicloud/framework.git] / docs / specs / MultiCloud-HPA-Discovery-design.rst
1 ..
2  This work is licensed under a Creative Commons Attribution 4.0
3  International License.
4
5 =====================================================
6 MultiCloud HPA information discovery and registration
7 =====================================================
8
9 To support Beijing Release Use Case: "Hardware Platform Enablement In ONAP"
10 (https://wiki.onap.org/display/DW/Hardware+Platform+Enablement+In+ONAP),
11 MultiCloud services play a very key role to discover all available Hardware
12 Platform capabilities and capacities (referred as HPA: Hardware Platform
13 Awareness) from underylying VIMs/Clouds and represent them into AAI, so that
14 ONAP OOF service could match the requirement of HPA from VNF vendors as well
15 as ONAP policy to the HPA information of underylying VIMs/Clouds to decide
16 which VIM/Cloud is the best candidate to place VNFs.
17
18
19 Overall process
20 ================
21
22 The trigger to invoke such discovery and representation process will usually
23 be ESR (External System Registration service). Whenever the ONAP user is
24 onboarding a VIM instance or a cloud, he/she will fill in VIM/Cloud access
25 information including but not limited to :  authentication url, user/password,
26 tenant name, cloud owner and region id, and cloud extra information pertaining
27 to this VIM/Cloud.
28
29 Given these access information for a VIM instance, ESR will request MultiCloud
30 to perform VIM/Cloud registration process.
31
32 .. [The sequence diagram to illustrate the interactions] https://sequencediagram.org/index.html?initialData=C4S2BsFMAIGFwPYFcAmBaASpA5iBA7aASXzGgBEQBnAYwQDdIAnATwCg2AHAQydBpA98waAFUqzLr36Duw6AFEAyhil8QAoSICC2omplboAWSThQ8ZOgBCTBAGtJPdZrkjT5kJdRoACuCRcfAMNWXksAFsEYEgANSJjaDZxZjQAPmUMAC4xCSZobhQUKjhEHyYcPGDM9N0iHO0i0qs0CtwCaGAEToALGBB8RmEEVjZMgB40NDroHKUkGhpIKioAegAzbhAAiuS8ybRMuYWllY2tncgxlXSPCzKbO0cmHIA5aJB1lgKisCroBDraD4SAAd2gNAerUqBDYdy8UNsDlSaXh3keyJe0CUkCgNGAJWAfWgnACQWgACNuBIUADCAAdfDxYxoYAsTgwQG9bgiSEtNpVOFme4tJHPW7ChEtfyBAY5AAqTBA2GwzGBYIhUIFHUKKD+sLRUJlQXSkWicQSOQA4pAROtwNx6CM1rFjEoQAAvZarEhUYByJaddnLIWedF+MkDA5mmLMnJYKicAgSaCgsA9ArgcBBjklKhIThJviQFChkU+Y0DU2QKKxy3QG0iFC2i4lLmM+2O52rV3ur1rX3+-CneXBkqMqC8eQDEkVeh4JB5mKcMtSiuR-DRmvmuPQBNJ-ApgAUaaJ0Gb-u2VAAlKvw5X8BKw0aN28RhFuOBPTBO06mC63W-AdDyHJZR1zaBGTkWkFF8bRoAGdZ3x5f4Bi6RQ4LQX9nUg-BqWgSAAA8OXxEtKW+AB5V5tF8O8X1lR80jqBomlg7QsIdP8Smg3DqSoBABB5Mi2KwyAeSQCpxzw-BaTAbjgGAJUKSQGISiQGS1UZIkYD5coYWCIA
33
34
35 The VIM/Cloud registration process during which MultiCloud discovers and
36 represents HPA information will be implemented in each MultiCloud Plugin
37 service respectively which knows best of the corresponding underylying
38 VIM/Cloud.
39
40 Proposed alternative solutions to discover HPA information
41 ==========================================================
42
43 While it is up to each MultiCloud Plugin service to determine how to discover
44 HPA information, there are several alternative solutions to accomplish such
45 discovery process.
46
47 Solution 1: Hard-coded discovery
48 --------------------------------
49
50 The MultiCloud services are designed in the way that there will be specific
51 plugin service to adapting ONAP into specific type or flavor of VIM/Cloud,
52 so the specific MultiCloud plugin service is tightly coupled with the
53 corresponding VIM/Cloud type or flavor. If some kinds of HPA information are
54 statically pertaining to a VIM/Cloud type or flavor and invariant between
55 different instance, it will be possible to hard coding this HPA information
56 into the corresponding MultiCloud Plugin Service. One example is that Titanium
57 Cloud comes along with builtin HPA feature of vswitch with DPDK support, so
58 this HPA information will be hard-coded into MultiCloud plugin service for
59 Wind River Titanium Cloud.
60
61
62 Solution 2: Manually discovery
63 ------------------------------
64
65 There are some kinds of HPA information which vary between instances of the
66 same VIM/Cloud type, but will be invariant during the whole life-cycle of
67 that instance. These information can be manually injected into ONAP during
68 the VIM/Cloud instance onboarding process. There is a field named
69 "cloud extra info" from the ESR VIM registration portal, ONAP users could
70 input the extra information into ONAP which will be stored into AAI
71 (refer to property of "cloud-extra-info" of /cloud-infrastructure/cloud-regions
72 /cloud-region/{cloud-owner}/{cloud-region-id}). So when MultiCloud Plugin
73 Service are invoked to discover HPA information, the cloud extra information
74 will be decoded to check if there are HPA information can be extracted and
75 represented into AAI.
76
77
78 Solution 3: Automatically discovery
79 -----------------------------------
80
81 There are some other kinds of HPA information which changes dynamically
82 during the life-cycle of a VIM/Cloud instance, so we have to discover them
83 leveraging some automation approach. While different VIM/Cloud type of flavor
84 exposes different approach to support the automatical discovery with respect
85 to HPA resources, the approach is quite straight-forward for OpenStack.
86 For those HPA information will be consumed by specifying the extra specs of a
87 flavor, VIM/Cloud administrators could provision these flavor's extra specs
88 with HPA information before onboarding the VIM/Cloud instance into ONAP.
89 After VIM/Cloud onboarding to ONAP, MultiCloud Plugin Service for OpenStack
90 will extract these HPA information from the extra specs of the flavors and
91 represent them into AAI.
92
93
94 Representation of HPA information
95 =================================
96
97 With regarding to how to represent HPA information into AAI, it is up to how
98 AAI schema are defined and we willcontribute and feedback.
99
100
101 Stectch goal
102 ============
103
104 There is another consideration to discover new HPA information periodically,
105 this can be a stretch goal for Beijng Release.
106
107 .. [Periodically HPA information discovery] https://sequencediagram.org/index.html?initialData=C4S2BsFMAIAVIE4gPYBMQGNroM4eQG6ICe0yAZtNAKKwCCAtOeAIYHII4BQXADiwlAYQ-AHbBoAWQCu4UAGFwyaagYAhBMgDWiPgKEiW4qbIVKVDWOGkBzEKL2DMh43ToBJRwbESASpABbZGBIADV3SR4uUWCYQkQTORBFZVUNbUQALmgAMQ5oSBYMAAtocMloYGJeSGjYsiIERLNUy2s7UWy8psKSsojoBEg7ZAcZJJSLK1t7BgA+cZap9vts+CQ0TBp6bBA8eIRSGNByTBZQUa5F5PNVaY7oef8gkPLsgHFICWY2DhwAelCFQAyiAAF6QAHuUQ4YBGDAwKo1bjHGBIGzFCQUZo3Vr3VbQADyNRhcIwWn6khw0GkOBgP3YTRCCACABpoAAdUR0MHSIY0unUgDkQOgoIhOCFlUQAU53IA6sCBZDoEL7LD4YjqpApczZVzgMhBpBeEM6cYCAIULToPgArxpCFoDZNNJeDgAHRXUy45YzUQAHgYDGesTe0H8OF4ozp0AA7mBSgy-tAcG7o4JIKh2Vy48UvvmmvljpVCzABDBIDFbKUuWblAgEdS2CwQKwAEZQaD2Uto4YoUTQcj5YDFPZD1iM70TW5tf1PQJhiIfL7YL6t8DU0YFIpJyccQEg8GQf7QjWiBGVbXTpZ3FaB4Oh14DbKR6MwmAJ0druFtlH1dFMTIShrkmO9-WyAARdc-27C9rFQGACHkWAAFUcHZAJAlTY8c1EXAKRwY9oCMVAClEYpNTIrleFYYBhxZIdCmAPkVTTXgMxCMj21IUdzgnX4EBvX1wI6eZQNnfFOmgAA5DgAhYcBj3+YAECMHA6JgLlkwQQ8xWUs84QvLUajlewGIUi5B0NIkZLoWA11OUQszlWhGB06kLPOYSwLnMS5jcdwVwkSAAA89lAUQbG2dz904MhrPzY0RjGH1fKkoMGEC19IXfWMv1KRTwBipg4ubfDexAJpEN-TcfMk+9xLShr-WgYK1zkFhoHbL440gKs5TCiL7GitzSsE8rqNEZy43AUhcHwRoXLtB0QgYF1lHdL0JLxRqAo8TI6A4uaOrhAURugQLLtgdw5VIkjNyNFhjtIDBnqKMBSA1Fit0HXpa1EMadO6lg6TI7dvptcz5POAdoCgARxC9LggA
108
109