Platform technology stack
🌐 This document is available in both English and Ukrainian. Use the language toggle in the top right corner to switch between versions. |
1. Overview
This high-level diagram illustrates the key technologies and how they address the functional and non-functional requirements of the Registries Platform.
2. Programming languages
Language | Version | License | Description |
---|---|---|---|
11.x |
Object-oriented programming language |
||
3.0.6 |
Object-oriented dynamic programming language that works within the JRE environment |
||
1.19 |
Go programming language developed by Google |
||
3.X |
Programming language |
||
V8 |
Programming language for web application development |
||
4.5.5 |
Programming language introduced by Microsoft in the fall of 2012; positioned as a tool for developing web applications, extending the capabilities of JavaScript |
3. Client application frameworks
Technology | Version | License | Description |
---|---|---|---|
3.2.45 |
JavaScript library for creating user interfaces in single-page applications development |
||
5.0.1 |
JavaScript library for creating user interfaces, aimed at solving issues of partial content updates on web pages, commonly encountered in single-page application development |
||
4.1.2 |
JavaScript library designed for managing the state of JavaScript applications |
||
4.11.4 |
UI component library that implements the material design system. Most user input components are based on this library. |
4. Server application frameworks
Technology |
Version |
License |
Description |
5.3.13 |
Java universal framework for building server applications |
||
2.6.1 |
An extension to the Spring Framework for simplifying the development of Spring-based applications through automatic configuration and the availability of Spring Boot starters |
||
2021.0.0 |
A framework for implementing common patterns in building reliable distributed systems |
||
1.7.2 |
Go framework for building server applications |
||
16.18.1 |
A platform for executing high-performance network applications written in JavaScript |
5. Scripting tools
Technology | Version | License | Description |
---|---|---|---|
4.2 |
Modern command-line shell for the GNU/Linux environment. |
6. Data stores
6.1. Technologies
Technology |
Version |
License |
Description |
14.5.0 |
Object-relational database management system |
||
6.0.8 |
Distributed key-value store that stores data in memory |
||
6.2.0-152 |
Distributed file system |
6.2. Extensions
Extensions |
Version |
License |
Description |
6.2.6 |
High-availability solution for Redis |
||
4.3.1 |
Connection pool manager for PostgreSQL that also allows organizing data replication, load balancing, and data caching |
||
6.18 |
ВWeb-based database development application |
6.3. Operators
Operator |
Version |
License |
Description |
5.1.1 |
PostgresOperator for managing the PostgreSQL cluster |
||
1.1.1 |
Operator for configuring Redis / Redis Sentinel |
6.4. Operators
Operator |
Version |
License |
Description |
4.10.7 |
Operator for configuring the OKD file subsystem |
||
4.9.8-2 |
Operator for deploying and managing Ceph storage in Kubernetes |
7. Infrastructure management
7.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
>=1.0 |
Infrastructure deployment for platform components |
8. Container management
8.1. Technologies
Technology |
Version |
License |
Description |
1.24 |
Container management technology that provides a high-level API for interaction |
||
1.24 |
Container orchestration platform |
||
4.11 |
Platform for building, deploying, and managing containers based on Kubernetes |
||
3 |
Package manager for Kubernetes |
9. Platform, registries, and regulations deployment automation
9.1. Technologies
Technology |
Version |
License |
Description |
2.303.3 |
A server for organizing Continuous Integration and Continuous Deployment (CI/CD) processes |
||
3.3.2 |
A tool for code review and integration |
||
3.30.0 |
A repository for storing 3rd party and custom artifacts |
9.2. Operators
Operator | Version | License | Description |
---|---|---|---|
2.10 |
Operator for automated Git Server configuration |
||
2.10 |
Operator for automated Gerrit configuration |
||
2.10 |
ОOperator for automated Jenkins configuration |
||
2.10 |
Operator for automated Nexus configuration |
10. User and access management
10.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
20.0.3 |
A system for user and access management, authentication, and integration with external Identity providers |
10.2. Operators
Operator | Version | License | Description |
---|---|---|---|
2.10 |
Operator for automated Keycloak configuration |
||
0.0.19 |
Operator for synchronizing user groups between Keycloak and OKD |
11. External traffic management
11.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
3.0.1 |
РA solution for managing access to internal resources. In addition to the main functionality, the following extensions are used:
|
11.2. Operators
Operator |
Version |
License |
Description |
2.7.0 |
Operator for configuring Kong |
12. Web server
12.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
1.22.1 |
A solution for serving static content on demand |
||
2.2.24 |
A solution for load balancing and ensuring high availability |
13. Cross-service communication management
13.1. Technologies
Technology |
Version |
License |
Description |
1.18.0 |
A solution for reliable transport between services deployed on the container orchestration platform |
13.2. Operators
Operator |
Version |
License |
Description |
1.18.0 |
Operator for configuring Istio |
14. Message brokers
14.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
3.0.0 |
An open-source distributed streaming platform |
||
6.1.1 |
A registry (store and search) for describing data structures of Kafka messages (Avro schema, JSON schema, Protobuf schema) |
14.2. Operators
Operator |
Version |
License |
Description |
0.28 |
Kafka operator for deployment and management of Kafla cluster |
15. Secret storage
15.1. Technologies
Technology |
Version |
License |
Description |
1.9.7 |
A system for managing secrets |
15.2. Operators
Operator | Version | License | Description |
---|---|---|---|
0.7.0 |
Operator for integrating HashiCorp Vault with Kubernetes Secrets |
||
1.0.25 |
Operator for observing changes in ConfigMaps and Secrets and updating them on registry components' pods |
||
1.6.3 |
Operates the certificates and certificate issuers as resource types in Kubernetes and OKD clusters, and simplifies the process of obtaining, renewing and using those certificates |
16. Business process management
16.1. Technologies
Technology |
Version |
License |
Description |
7.16.0 |
A solution for automated deployment and execution of business processes described in BPMN notation and DMN business rules |
16.2. Libraries
Library |
Version |
License |
Description |
10.0.0 |
JavaScript library for creating tools for visual modeling of business processes according to BPMN notation |
17. UI form management
17.1. Libraries
Library | Version | License | Description |
---|---|---|---|
4.13.12 |
JavaScript library for creating tools for modeling user forms using the Drag&Drop approach with preview capabilities |
18. Geospatial data management
18.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
2.21.0 |
A server that allows managing and distributing geospatial data |
18.2. Extensions
Extension | Version | License | Description |
---|---|---|---|
3.2.1 |
Geo extension for PostgreSQL database |
18.3. Libraries
Library |
Version |
License |
Description |
1.8.0 |
UI Javascript Library for building mobile-friendly interactive maps |
19. Reporting and data visualization
19.1. Technologies
Technology |
Version |
License |
Description |
10.1.0 |
A solution for modeling and visualizing reports based on relational and non-relational data stores |
20. Electronic signature integration
This functionality is specific to the Ukrainian implementation and may not apply or function as described in other contexts or regions. Please consult the local guidelines or documentation if you are implementing this outside Ukraine. |
20.1. Libraries
Library |
Version |
License |
Description |
1.3.236 |
Commercial license |
IIIT Java signature library |
|
20220527 |
Commercial license |
IIIT JavaScript e-signature library. Used for integration with the signature widget. |
21. Internationalization
21.1. Libraries
Library |
Version |
License |
Description |
20.6.0 |
UI Javascript framework for internationalization. Used together with react.i18next. |
22. Database evolution management
22.1. Technologies
Technology | Version | License | Description |
---|---|---|---|
4.3 |
A tool for incremental management of database structure and data |
23. Email exchange
23.1. Technologies
Technology |
Version |
License |
Description |
1.8 |
? |
Software package for sending and receiving email messages |
|
? |
? |
Mail SMAP agent |
|
? |
? |
High-performance IMAP / POP3 mail server |
|
? |
? |
Web-based IMAP client |
|
? |
? |
Antivirus software package for detecting trojans, viruses, malware, and other malicious threats |
|
? |
? |
Software for detecting and filtering email spam |
24. Registry regulations quality control
24.1. Technologies
Technology |
Version |
License |
Description |
2.27.2 |
Tool for defining test behavior of RestAPI services |
||
7.3.0 |
Tool for building Behavior-Driven Development (BDD) tests |
||
4.4.0 |
Tool for building UI WebBrowser UI tests using web drivers |
24.2. Libraries
Library |
Version |
License |
Description |
5.6.2,5.8.2 |
Java library for writing Unit tests |
||
5.1.1 |
Library for specifying validation of responses from Rest API services using a specific DSL language |
25. Event monitoring
25.1. Technologies
Technology |
Version |
License |
Description |
1.67.0 |
UI application for Istio Service Mesh |
||
1.39.0 |
System for providing distributed tracing of platform services |
||
7.4.5 |
Viewing and analyzing system metrics, configuring notifications based on metrics |
||
2.24.0 |
Timeseries database for storing platform metrics and query engine for this data |
25.2. Extensions
Extension |
Version |
License |
Description |
An extension over Prometheus, providing unlimited storage for metrics and high-availability for multiple Prometheus instances |
25.3. Operators
Oparator |
Version |
License |
Description |
4.11.0 |
Operator for configuring the monitoring subsystem of OKD |
||
1.24.0 |
Operator for configuring Jaeger |
||
1.25.0 |
Operator for configuring Kiali |
||
4.11.0 |
Operator for configuring Prometheus |
26. Event logging
26.1. Technologies
Technology |
Version |
License |
Description |
7.16.2 |
Search server that provides a distributed full-text search engine with an HTTP web interface and support for schema-less JSON documents. Acts as a repository and search service for logs |
||
4.11 |
System for data visualization from Elasticsearch |
||
Platform for storing log data. Responsible for log collection and storage in Elasticsearch |
26.2. Operators
Operator |
Version |
License |
Description |
5.5.4 |
Operator for configuring the logging subsystem of OKD |
27. Backing up and restoring
27.1. Technologies
Technology |
Version |
License |
Description |
RELEASE.2021-04-06T23-11-00Z |
S3 compatible object storage service |
||
2.14.7 |
Provides tools for backup and restore of Kubernetes cluster resources and persistent volumes of storage |
||
2.38 |
Solution for providing backup/restore of PostgreSQL databases |
28. Documentation
28.1. Technologies
Technology |
Version |
License |
Description |
3.1.1 |
Documentation generator from asciidoc to html5 using Asciidoctor |