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