1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
========
Delivery
========
SDC Dockers Containers
======================
Overview
--------
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| Name | Content of the container | On Startup |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-cs-init | Logic for creating the **schemas for SDC catalog** server | Create the **schemas** |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-cs-onboard init | Logic for creating the **schemas for SDC onboarding** server | Create the **schemas** |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-cs | **Cassandra** server | Starts **Cassandra** |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-onboard-BE | Onboarding **Backend** Jetty server | Starts Jetty with the application. |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-BE | **Backend** Jetty server | Starts Jetty with the application. |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-BE-init | Logic for importing the SDC **Tosca normative types** | Executes the rest calls for the catalog server |
| | Logic for configuring **external users** for SDC external api's | |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
| sdc-FE | SDC **Frontend** Jetty server | Starts Jetty with our application. |
+---------------------+----------------------------------------------------------------------------+------------------------------------------------+
Deployement dependency map
--------------------------
.. blockdiag::
orientation = portrait
class job [color = "#FFA300", style = dotted, shape = "box"]
class app [color = "#29ADFF", shape = "roundedbox"]
fe [label = "sdc-frontend", class = "app"];
be [label = "sdc-backend", class = "app"];
onboarding-be [label = "sdc-onboarding-backend", class = "app"];
cassandra [label = "sdc-cassandra", class = "app"];
be-config [label = "sdc-backend-config", class = "job"];
cassandra-config [label = "sdc-cassandra-config", class = "job"];
onboarding-init [label = "sdc-onboarding-init", class = "job"];
job [class = "job"];
app [class = "app"];
fe -> be-config -> be -> onboarding-be -> onboarding-init -> cassandra-config -> cassandra;
Connectivity Matrix
-------------------
+---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
| Name | API purpose | protocol | port number / range | TCP / UDP |
+---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
| sdc-cassandra | SDC backend uses the two protocols to access Cassandra | trift/async | 9042 / 9160 | TCP |
+---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
| sdc-onboard-backend | Access the onboarding functionality | http(s) | 8081 / 8445 | TCP |
+---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
| sdc-backend | Access the catalog functionality | http(s) | 8080 / 8443 | TCP |
+---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
| sdc-frontend | Access SDC UI and proxy requests to SDC backend | http(s) | 8181 / 9443 | TCP |
+---------------------+--------------------------------------------------------------+-------------+---------------------+-----------+
Offered APIs
------------
+---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
| container / vm name | address | API purpose | protocol | port number | TCP / UDP |
+---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
| sdc-fe | /sdc1/feproxy/* | Proxy for all REST calls from SDC UI | HTTP(S) | 8181 / 8443 | TCP |
+---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
| sdc-be | /sdc2/* | Internal APIs used by the UI. Request is passed through front end proxy | HTTP(S) | 8080 / 8443 | TCP |
+---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
| | /sdc/* | External APIs offered to the different components for retrieving info from SDC catalog. | HTTP(S) | 8080 / 8443 | TCP |
+---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
| sdc-onboarding-be | /onboarding/api/* | Internal APIs used by the UI | HTTP(S) | 8080 / 8443 | TCP |
+---------------------+-------------------+-----------------------------------------------------------------------------------------+----------+-------------+-----------+
Structure
---------
Below is a diagram of the SDC project docker containers and the connections between them.
.. blockdiag::
blockdiag delivery {
node_width = 100;
orientation = portrait;
sdc-cassandra[shape = flowchart.database , color = grey]
sdc-frontend [color = blue, textcolor="white"]
sdc-backend [color = yellow]
sdc-onboarding-backend [color = yellow]
sdc-cassandra-Config [color = orange]
sdc-backend-config [color = orange]
sdc-onboarding-init [color = orange]
sdc-onboarding-init -> sdc-onboarding-backend;
sdc-cassandra-Config -> sdc-cassandra;
sdc-backend-config -> sdc-backend;
sdc-wss-simulator -> sdc-frontend;
sdc-frontend -> sdc-backend, sdc-onboarding-backend;
sdc-backend -> sdc-cassandra;
sdc-onboarding-backend -> sdc-cassandra;
sdc-sanity -> sdc-backend;
sdc-ui-sanity -> sdc-frontend;
group deploy_group {
color = green;
label = "Application Layer"
sdc-backend; sdc-onboarding-backend; sdc-frontend; sdc-cassandra; sdc-cassandra-Config; sdc-backend-config; sdc-onboarding-init;
}
group testing_group {
color = purple;
label = "Testing Layer";
sdc-sanity; sdc-ui-sanity
}
group util_group {
color = purple;
label = "Util Layer";
sdc-wss-simulator;
}
}
|