## 4 Model and Design of SPIDEP Platforms
### Variants of Software Architectures
#### 4.2.6. SPIDEP MSA Variant: Deployment of the Platform  
To meet the software attributes and quality requirements, it was necessary to establish an automated workflow for the integration and continuous deployment of the microservices in SPIDEP-MSA. Therefore, we assigned a cross-team (typically a small group of six to eight people [100; 101]) for each case (e.g., decomposed by verb or use case [56]); each team is responsible for the development, debugging and deployment of the assigned microservice. This workflow reduces the time between updates or new system functionality (without affecting end users) and implementation of changes to the production environment (without affecting system performance) [21; 102; 103].  
Considering the above, we implemented the same framework proposed for the MSA variant of SPIDEP (beta v2), whose framework is divided into the following nine phases: (i) cross-team project, (ii) service, (iii) code repository, (iv) software analysis and testing, (v) test environment, (vi) quality assurance, (vii) production environment, (viii) performed postproduction and (ix) managed Kubernetes [21].  
\begin{table}
\begin{tabular}{c c c} \hline \hline \multicolumn{2}{c}{**Description**} & \multicolumn{1}{c}{**Version**} \\ \hline
**Category** & **Subcategory** & **Beta v2** & **RC** \\ \hline \multirow{4}{*}{\begin{tabular}{c} Programming language \\ Framework \\ \end{tabular} } & PHP 7.2 (us-A) \& Python 3.6 & Python 3.7 (us-A–G) \& Python 3.8 \\  & (us-B–I) & (us-H–I) \\  & & Laraved 5.4 LTS (us-A) \& Django 2.2 LTS (us-A–G) \& Flask 1.1 \\  & Django 2.1 (us-B–I) & (us-H–I) \\  & PHP/Laravel dependencies & & \\  & (Guzzle;Laravel Sanctum and others), Python/Django & Python/Django–Flask dependencies (setuptools; requests; pyscopg2; requests\_futures; kml;six;werkzeug \\  & Core libraries & requests\_futures;lxml;six;clango-cas-server;django-cas-ng; python-cas; djangorestframework; Flask-RESTful; celery, TensorFlow and others) \& Custom libraries \\  & UI & Bootstrap 3 & Bootstrap 4 \\  & Web server & Apache as an endpoint and NGINX as the implementation & Apache as an endpoint and \\ Used technologies & \multirow{2}{*}{\begin{tabular}{c} DebMS \\ Data access methods \\ Object-relational mapping \\ API Scheme \\ API Gateway \\ \end{tabular} } & MariaDB Galera Cluster & \multirow{2}{*}{\
\begin{tabular}{c} Postgresql 10, Cassandra \& Redis \\ Stored procedures \& Column \\ Family \\ \end{tabular} } \\  & & Eloquent, QuerySet \& \multirow{2}{*}{
\begin{tabular}{c} QuerySet, SQLALchemy \& \\ CQLAchemy \\ RESTful (JSON \\ \end{tabular} } \\  & & Request/Response HTTP) \\  & & Backends for Frontends (2 \\  & & EndPoints) \\  & & Custom Docker Container & Custom Docker Container \\  & OS & Ubuntu 18 LTS & Ubuntu 18 LTS \\  & & Custom Authentication & Custom Authentication [OAuth1, \\ Authentication Scheme & [OAuth1, OAuth2 or JWT \\ Web Token] \& CAS Protocol & OAuth2 or JWT Web Token] \& CAS Protocol 3.0 Specification \\  & & HTTP Authentication (Tokens and SSL); PBKDF2 with a \\ Encryption Protocol & SHA256 hash; public/private & HTTP Authentication (Tokens and SSL); PBKDF2 with a SHA256 hash; \\  & & rsa key pair and custom & public/private rsa key pair and custom \\  & authentication settings & authentication settings \\ \hline \hline \end{tabular}
\end{table}
Table 2: Cont.  
Unlike the SPIDEP-SOA variant, this platform requires applying the implementation patterns based on MSA (i.e., service instance per container, database per service and Backends for Frontends), since it is necessary to fully support a horizontal scalability of the resources. However, this entails an increase in the effort and complexity to manage all interactions between microservices, according to the size of the organization to be implemented [60]. Additionally, in this variant, we verify the identity of the user for each message sent and/or received through the signal mechanisms; therefore, a secure communication channel is established for different computer attacks (e.g., man-in-the-middle) during active sessions [104].