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.

ddm platform tech view

2. Programming languages

Language Version License Description

Java

11.x

GPL v2

Object-oriented programming language

Groovy

3.0.6

APACHE LICENSE, v2.0

Object-oriented dynamic programming language that works within the JRE environment

Go

1.19

Copyright (c) 2009 The Go Authors. All rights reserved.

Go programming language developed by Google

Python

3.X

PSF License

Programming language

JavaScript

V8

BDS license

Programming language for web application development

TypeScript

4.5.5

APACHE LICENSE, v2.0

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

VueJS

3.2.45

MIT

JavaScript library for creating user interfaces in single-page applications development

ReactJS

5.0.1

MIT

JavaScript library for creating user interfaces, aimed at solving issues of partial content updates on web pages, commonly encountered in single-page application development

Redux

4.1.2

MIT

JavaScript library designed for managing the state of JavaScript applications

Material UI

4.11.4

MIT

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

Spring

5.3.13

APACHE LICENSE, v2.0

Java universal framework for building server applications

Spring Boot

2.6.1

APACHE LICENSE, v2.0

An extension to the Spring Framework for simplifying the development of Spring-based applications through automatic configuration and the availability of Spring Boot starters

Spring Cloud

2021.0.0

APACHE LICENSE, v2.0

A framework for implementing common patterns in building reliable distributed systems

Gin Web Framework

1.7.2

MIT

Go framework for building server applications

Node.JS

16.18.1

MIT

A platform for executing high-performance network applications written in JavaScript

5. Scripting tools

Technology Version License Description

bash

4.2

GNU General Public License, version 3

Modern command-line shell for the GNU/Linux environment.

6. Data stores

6.1. Technologies

Technology

Version

License

Description

PostgreSQL

14.5.0

The PostgreSQL Licence

Object-relational database management system

Redis

6.0.8

Three clause BSD license

Distributed key-value store that stores data in memory

Ceph

6.2.0-152

LGPL-2.1, LGPL-3, BSD 3-clause, Apache-2.0, MIT License, Boost Software License, Version 1.0, BSD 3-clause, CC0, Boost Software License, Version 1.0, GNU Affero General Public License, Version 3,

Distributed file system

6.2. Extensions

Extensions

Version

License

Description

Redis Sentinel

6.2.6

Three clause BSD license

High-availability solution for Redis

Pgpool

4.3.1

MIT

Connection pool manager for PostgreSQL that also allows organizing data replication, load balancing, and data caching

pgAdmin 4

6.18

PostgreSQL licence

ВWeb-based database development application

6.3. Operators

Operator

Version

License

Description

CrunchyData Postgres Operator

5.1.1

APACHE LICENSE, v2.0

PostgresOperator for managing the PostgreSQL cluster

Redis Operator

1.1.1

APACHE LICENSE, v2.0

Operator for configuring Redis / Redis Sentinel

6.4. Operators

Operator

Version

License

Description

OCS Operator

4.10.7

APACHE LICENSE, v2.0

Operator for configuring the OKD file subsystem

Rook

4.9.8-2

APACHE LICENSE, v2.0

Operator for deploying and managing Ceph storage in Kubernetes

7. Infrastructure management

7.1. Technologies

Technology Version License Description

Terraform

>=1.0

MPL-2.0

Infrastructure deployment for platform components

8. Container management

8.1. Technologies

Technology

Version

License

Description

Cri-o

1.24

APACHE LICENSE, v2.0

Container management technology that provides a high-level API for interaction

Kubernetes

1.24

APACHE LICENSE, v2.0

Container orchestration platform

OKD

4.11

APACHE LICENSE, v2.0

Platform for building, deploying, and managing containers based on Kubernetes

Helm

3

APACHE LICENSE, v2.0

Package manager for Kubernetes

9. Platform, registries, and regulations deployment automation

9.1. Technologies

Technology

Version

License

Description

Jenkins

2.303.3

MIT

A server for organizing Continuous Integration and Continuous Deployment (CI/CD) processes

Gerrit

3.3.2

APACHE LICENSE, v2.0

A tool for code review and integration

Nexus

3.30.0

Eclipse Public License v1.0

A repository for storing 3rd party and custom artifacts

9.2. Operators

Operator Version License Description

EDP Codebase Operator

2.10

APACHE LICENSE, v2.0

Operator for automated Git Server configuration

EDP Gerrit Operator

2.10

APACHE LICENSE, v2.0

Operator for automated Gerrit configuration

EDP Jenkins Operator

2.10

APACHE LICENSE, v2.0

ОOperator for automated Jenkins configuration

EDP Nexus Operator

2.10

APACHE LICENSE, v2.0

Operator for automated Nexus configuration

10. User and access management

10.1. Technologies

Technology Version License Description

Keycloak

20.0.3

APACHE LICENSE, v2.0

A system for user and access management, authentication, and integration with external Identity providers

10.2. Operators

Operator Version License Description

EDP Keycloak Operator

2.10

APACHE LICENSE, v2.0

Operator for automated Keycloak configuration

Group Sync

0.0.19

APACHE LICENSE, v2

Operator for synchronizing user groups between Keycloak and OKD

11. External traffic management

11.1. Technologies

Technology Version License Description

Kong

3.0.1

APACHE LICENSE, v2.0

РA solution for managing access to internal resources. In addition to the main functionality, the following extensions are used:

  • Rate Limiting — allows setting limits on the number of calls from a client based on its IP address or request header.

  • Response Transformer — allows adding custom headers to the server response.

  • OIDC — custom-developed plugin based on https://github.com/nokia/kong-oidc. Responsible for implementing OIDC authentication and session management.

11.2. Operators

Operator

Version

License

Description

Kong Ingress Controller

2.7.0

APACHE LICENSE, v2.0

Operator for configuring Kong

12. Web server

12.1. Technologies

Technology Version License Description

Nginx

1.22.1

FreeBSD

A solution for serving static content on demand

HAProxy

2.2.24

GNU General Public License, version 2

A solution for load balancing and ensuring high availability

13. Cross-service communication management

13.1. Technologies

Technology

Version

License

Description

Istio

1.18.0

APACHE LICENSE, v2.0

A solution for reliable transport between services deployed on the container orchestration platform

13.2. Operators

Operator

Version

License

Description

Istio Operator

1.18.0

APACHE LICENSE, v2.0

Operator for configuring Istio

14. Message brokers

14.1. Technologies

Technology Version License Description

Kafka

3.0.0

APACHE LICENSE, v2.0

An open-source distributed streaming platform

Kafka Schema Registry

6.1.1

Confluent Community License Version 1.0

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

Strimzi

0.28

APACHE LICENSE, v2

Kafka operator for deployment and management of Kafla cluster

15. Secret storage

15.1. Technologies

Technology

Version

License

Description

Hashicorp Vault

1.9.7

Mozilla Public License Version 2.0

A system for managing secrets

15.2. Operators

Operator Version License Description

External Secrets Operator

0.7.0

APACHE LICENSE, v2.0

Operator for integrating HashiCorp Vault with Kubernetes Secrets

Reloader

1.0.25

APACHE LICENSE, v2.0

Operator for observing changes in ConfigMaps and Secrets and updating them on registry components' pods

cert-manager

1.6.3

APACHE LICENSE, v2.0

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

Camunda BPM

7.16.0

APACHE LICENSE, v2.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

BPMN.JS SDK

10.0.0

Copyright (c) 2014-present Camunda Services GmbH

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

Form.IO SDK

4.13.12

MIT

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

GeoServer

2.21.0

GNU General Public License, version 2

A server that allows managing and distributing geospatial data

18.2. Extensions

Extension Version License Description

PostGIS

3.2.1

GPL v2

Geo extension for PostgreSQL database

18.3. Libraries

Library

Version

License

Description

Leaflet

1.8.0

BSD 2-Clause "Simplified" License

UI Javascript Library for building mobile-friendly interactive maps

19. Reporting and data visualization

19.1. Technologies

Technology

Version

License

Description

Redash

10.1.0

BSD 2-Clause "Simplified" License

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

EUSignCP-Java

1.3.236

Commercial license

IIIT Java signature library

eusign.js

20220527

Commercial license

IIIT JavaScript e-signature library. Used for integration with the signature widget.

21. Internationalization

21.1. Libraries

Library

Version

License

Description

i18next

20.6.0

MIT

UI Javascript framework for internationalization. Used together with react.i18next.

22. Database evolution management

22.1. Technologies

Technology Version License Description

Liquibase

4.3

APACHE LICENSE, v2.0

A tool for incremental management of database structure and data

23. Email exchange

23.1. Technologies

Technology

Version

License

Description

Mailu

1.8

?

Software package for sending and receiving email messages

Postfix

?

?

Mail SMAP agent

Dovecot

?

?

High-performance IMAP / POP3 mail server

Roundcube

?

?

Web-based IMAP client

ClamAV

?

?

Antivirus software package for detecting trojans, viruses, malware, and other malicious threats

Rspamd

?

?

Software for detecting and filtering email spam

24. Registry regulations quality control

24.1. Technologies

Technology

Version

License

Description

Wiremock

2.27.2

APACHE LICENSE, v2.0

Tool for defining test behavior of RestAPI services

Cucumber

7.3.0

MIT

Tool for building Behavior-Driven Development (BDD) tests

Selenium

4.4.0

APACHE LICENSE, v2.0

Tool for building UI WebBrowser UI tests using web drivers

24.2. Libraries

Library

Version

License

Description

JUnit

5.6.2,5.8.2

Eclipse Public License v2.0

Java library for writing Unit tests

Rest-assured

5.1.1

APACHE LICENSE, v2.0

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

Kiali

1.67.0

APACHE LICENSE, v2.0

UI application for Istio Service Mesh

Jaeger

1.39.0

APACHE LICENSE, v2.0

System for providing distributed tracing of platform services

Grafana

7.4.5

APACHE LICENSE, v2.0

Viewing and analyzing system metrics, configuring notifications based on metrics

Prometheus

2.24.0

APACHE LICENSE, v2.0

Timeseries database for storing platform metrics and query engine for this data

25.2. Extensions

Extension

Version

License

Description

Thanos querier

APACHE LICENSE, v2.0

An extension over Prometheus, providing unlimited storage for metrics and high-availability for multiple Prometheus instances

25.3. Operators

Oparator

Version

License

Description

Cluster Monitoring Operator

4.11.0

APACHE LICENSE, v2.0

Operator for configuring the monitoring subsystem of OKD

Jaeger Operator

1.24.0

APACHE LICENSE, v2.0

Operator for configuring Jaeger

Kiali Operator

1.25.0

APACHE LICENSE, v2.0

Operator for configuring Kiali

Prometheus Operator

4.11.0

APACHE LICENSE, v2.0

Operator for configuring Prometheus

26. Event logging

26.1. Technologies

Technology

Version

License

Description

Elasticsearch

7.16.2

APACHE LICENSE, v2.0

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

Kibana

4.11

APACHE LICENSE, v2.0

System for data visualization from Elasticsearch

Fluentd

APACHE LICENSE, v2.0

Platform for storing log data. Responsible for log collection and storage in Elasticsearch

26.2. Operators

Operator

Version

License

Description

Cluster Logging Operator

5.5.4

APACHE LICENSE, v2.0

Operator for configuring the logging subsystem of OKD

27. Backing up and restoring

27.1. Technologies

Technology

Version

License

Description

Minio

RELEASE.2021-04-06T23-11-00Z

GNU AGPL v3

S3 compatible object storage service

Velero

2.14.7

APACHE LICENSE, v2.0

Provides tools for backup and restore of Kubernetes cluster resources and persistent volumes of storage

pgBackRest

2.38

MIT

Solution for providing backup/restore of PostgreSQL databases

28. Documentation

28.1. Technologies

Technology

Version

License

Description

Antora

3.1.1

Mozilla Public License Version 2.0

Documentation generator from asciidoc to html5 using Asciidoctor