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