Технологічний стек Платформи

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Ця сторінка познайомить вас із ключовими технологіями та їх застосуванням у реалізації функціональних та нефункціональних вимог Платформою Реєстрів.

Unresolved include directive in modules/arch/pages/architecture/platform-technologies.adoc - include::platform:ROOT:partial$admonitions/os-apache-license-ua.adoc[]

ddm platform tech view
Зображення 1. Високорівнева структурна діаграма. Технологічний стек

2. Мови програмування

Мова Версія Ліцензія Опис

Java

11.x

GPL v2

Об’єктно орієнтована мова програмування

Groovy

3.0.6

APACHE LICENSE, v2.0

Об’єктно орієнтована динамічна мова програмування, що працює в середовищі JRE

Go

1.19

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

Go мова программування розроблена компанією Google

Python

3.X

PSF License

Мова програмування

JavaScript

V8

BDS license

Мова програмування для розробки веб-застосунків

TypeScript

4.5.5

APACHE LICENSE, v2.0

Мова програмування, представлена Microsoft восени 2012; позиціонується як засіб розробки веб-застосунків, що розширює можливості JavaScript

3. Фреймворки клієнтських додатків

Технологія Версія Ліцензія Опис

VueJS

3.2.45

MIT

JavaScript бібліотека для створення інтерфейсів користувача при розробці односторінкових застосунків

ReactJS

5.0.1

MIT

JavaScript бібліотека для створення інтерфейсів користувача, яка покликана вирішувати проблеми часткового оновлення вмісту веб-сторінки, з якими стикаються в розробці односторінкових застосунків

Redux

4.1.2

MIT

JavaScript бібліотека призначена для управління станом програм JavaScript

Material UI

4.11.4

MIT

Бібліотека UI компонентів яка реалізує систему material design. Більшість компонентів для вводу користувацьких даних основані на компонентах цієї бібліотеки.

4. Фреймворки серверних додатків

Технологія

Версія

Ліцензія

Опис

Spring

5.3.13

APACHE LICENSE, v2.0

Java універсальний фреймворк для побудови серверних додатків

Spring Boot

2.6.1

APACHE LICENSE, v2.0

Розширення до Spring Framework для спрощення побудови аплікацій на базі Spring завдяки автоматичній конфігурації та наявності spring boot стартерів

Spring Cloud

2021.0.0

APACHE LICENSE, v2.0

Фреймворк для реалізації типових патернів побудови надійних розподілених систем

Gin Web Framework

1.7.2

MIT

Go фреймворк для побудови серверних додатків

Node.JS

16.18.1

MIT

Платформа для виконання високопродуктивних мережевих застосунків, написаних мовою JavaScript

5. Засоби скриптування

Технологія

Версія

Ліцензія

Опис

bash

4.2

GNU General Public License, version 3

Сучасна командна оболонка середовища GNU/Linux.

6. Сховища даних

6.1. Технології

Технологія Версія Ліцензія Опис

PostgreSQL

14.5.0

The PostgreSQL Licence

Об’єктно реляційна система керування базами даних

Redis

6.0.8

Three clause BSD license

Розподілене сховище пар ключ-значення, які зберігаються в оперативній пам’яті

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,

Розподілена файлова система

Multo Cloud Gateway (NooBaa)

4.0.2

APACHE LICENSE, v2.0

Розширення для інтеграції об’єктного сховища з OpenShift, що дозволяє підключатися до сховищ з різних хмарних провайдерів, та забезпечує простий доступ до даних з різноманітних джерел.

6.2. Розширення

Розширення Версія Ліцензія Опис

Redis Sentinel

6.2.6

Three clause BSD license

High availability рішення для Redis

Pgpool

4.3.1

MIT

Менеджер пула підключень над PostgreSQL, що також дозволяе організувати реплікацію даних, load balancing, кешування даних

pgAdmin 4

6.18

PostgreSQL licence

Веб-застосунок розробки баз даних

6.3. Оператори

Оператор Версія Ліцензія Опис

CrunchyData Postgres Operator

5.1.1

APACHE LICENSE, v2.0

PostgresOperator для забезпечення менеджменту PostgreSQL кластеру

Redis Operator

1.1.1

APACHE LICENSE, v2.0

Оператор для налаштування Redis / Redis Sentinel

6.4. Оператори

Оператор Версія Ліцензія Опис

OCS Operator

4.10.7

APACHE LICENSE, v2.0

Оператор для налаштування файлової підсистеми OKD

Rook

4.9.8-2

APACHE LICENSE, v2.0

Operator для розгортання та менеджменту Ceph сховища в Kubernetes

7. Управління інфраструктурою

7.1. Технології

Технологія Версія Ліцензія Опис

Terraform

>=1.0

MPL-2.0

Розгортання інфраструктури для платформенних компонентів

8. Управління контейнерами

8.1. Технології

Технологія Версія Ліцензія Опис

Cri-o

1.24

APACHE LICENSE, v2.0

Технологія управління контейнерами, яка надає високорівневий API для взаємодії

Kubernetes

1.24

APACHE LICENSE, v2.0

Платформа оркестрації контейнерів

OKD

4.11

APACHE LICENSE, v2.0

Платформа для побудови, розгортання та управління контейнерами на базі Kubernetes

Helm

3

APACHE LICENSE, v2.0

Пакетний менеджер для Kubernetes

9. Автоматизація розгортання Платформи, реєстрів та регламенту

9.1. Технології

Технологія Версія Ліцензія Опис

Jenkins

2.303.3

MIT

Сервер для організації процесів Безперервної Інтеграції та Розгортання (CI/CD)

Gerrit

3.3.2

APACHE LICENSE, v2.0

Інструмент проведення перевірки та інтеграції коду

Nexus

3.30.0

Eclipse Public License v1.0

Репозиторій для збереження 3rd party та власних артефактів

9.2. Оператори

Оператор Версія Ліцензія Опис

EDP Codebase Operator

2.10

APACHE LICENSE, v2.0

Оператор для автоматизованого налаштування Git Server

EDP Gerrit Operator

2.10

APACHE LICENSE, v2.0

Оператор для автоматизованого налаштування Gerrit

EDP Jenkins Operator

2.10

APACHE LICENSE, v2.0

Оператор для автоматизованого налаштування Jenkins

EDP Nexus Operator

2.10

APACHE LICENSE, v2.0

Оператор для автоматизованого налаштування Nexus

10. Управління користувачами та доступом

10.1. Технології

Технологія Версія Ліцензія Опис

Keycloak

20.0.3

APACHE LICENSE, v2.0

Система для управління користувачами та їх доступом, автентифікації, інтеграції з зовнішніми Identity провайдерами

10.2. Оператори

Оператор Версія Ліцензія Опис

EDP Keycloak Operator

2.10

APACHE LICENSE, v2.0

Оператор для автоматизованого налаштування Keycloak

Group Sync

0.0.19

APACHE LICENSE, v2

Operator для синхронізації груп користувачів між Keycloak та OKD

11. Управління зовнішнім трафіком

11.1. Технології

Технологія Версія Ліцензія Опис

Kong

3.0.1

APACHE LICENSE, v2.0

Рішення для управлінням доступом до внутрішніх ресурсів. Окрім основного функціоналу платформою також використовуються наступні розширенн:

  • Rate Limiting - дозволяє встановлювати ліміти на кількість викликів від клієнта базуючись на його IP адресі або заголовку запиту.

  • Response Transformer - дозволяє додавати власні заголовки до відповіді сервера.

  • OIDC - плагін власної розробки на основі https://github.com/nokia/kong-oidc. Відповідає за імплементацію OIDC автентифікації та управління сесіями.

11.2. Оператори

Оператор Версія Ліцензія Опис

Kong Ingress Controller

2.7.0

APACHE LICENSE, v2.0

Оператор для налаштування Kong

12. Веб-сервер

12.1. Технології

Технологія Версія Ліцензія Опис

Nginx

1.22.1

FreeBSD

Рішення для постачання статичного контенту по запиту

HAProxy

2.2.24

GNU General Public License, version 2

Рішення для балансування навантаження та забезпечення високої доступності

13. Управління міжсервісною взаємодією

13.1. Технології

Технологія Версія Ліцензія Опис

Istio

1.18.0

APACHE LICENSE, v2.0

Рішення для організації надійного транспорту між сервісами, розгорнутими на платформі оркестрації контейнерів

13.2. Оператори

Оператор Версія Ліцензія Опис

Istio Operator

1.18.0

APACHE LICENSE, v2.0

Оператор для налаштування Istio

14. Брокери повідомлень

14.1. Технології

Технологія Версія Ліцензія Опис

Kafka

3.0.0

APACHE LICENSE, v2.0

Платформа розподілених потокових трансляцій із відкритим кодом

Kafka Schema Registry

6.1.1

Confluent Community License Version 1.0

Реєстр (сховище та пошук) для опису структур даних kafka messages (Avro schema, JSON schema, Protobuf schema)

14.2. Оператори

Оператор Версія Ліцензія Опис

Strimzi

0.28

APACHE LICENSE, v2

Kafka operator для розгортування та менеджменту Kafla cluster

15. Сховище секретів

15.1. Технології

Технологія Версія Ліцензія Опис

Hashicorp Vault

1.9.7

Mozilla Public License Version 2.0

Система управління секретами

15.2. Оператори

Оператор Версія Ліцензія Опис

External Secrets Operator

0.7.0

APACHE LICENSE, v2.0

Operator для забезпечення інтеграції Hashicorp Vault з Kubernetes Secrets

Reloader

1.0.25

APACHE LICENSE, v2.0

Operator для спостереження за змінами в ConfigMaps та Secrets та їх оновлення на подах компонентів реєстру

16. Управління бізнес-процесами

16.1. Технології

Технологія Версія Ліцензія Опис

Camunda BPM

7.16.0

APACHE LICENSE, v2.0

Рішення для автоматизованого розгортання та виконання бізнес-процесів описаних у BPMN нотації та DMN бізнес-правил

16.2. Бібліотеки

Бібліотека Версія Ліцензія Опис

BPMN.JS SDK

10.0.0

Copyright (c) 2014-present Camunda Services GmbH

JavaScript бібліотека для створення інструментів візуального моделювання бізнес-процесів згідно BPMN нотації

17. Управління UI-формами

17.1. Бібліотеки

Бібліотека Версія Ліцензія Опис

Form.IO SDK

4.13.12

MIT

JavaScript бібліотека для створення інструментів моделювання користувацьких форм використовуючи Drag&Drop підхід з можливостями попереднього перегляду

18. Управління гео-даними

18.1. Технології

Технологія Версія Ліцензія Опис

GeoServer

2.21.0

GNU General Public License, version 2

Сервер, що дозволяє проводиті менеджмент та розповсюдження гео даних

18.2. Розширення

Розширення Версія Ліцензія Опис

PostGIS

3.2.1

GPL v2

Geo розширення до PostgreSQL бази даних

18.3. Бібліотеки

Бібліотека Версія Ліцензія Опис

Leaflet

1.8.0

BSD 2-Clause "Simplified" License

UI Javascript Бібліотека для побудови mobile-friendly інтерактивних карт

19. Звітність та візуалізація даних

19.1. Технології

Технологія Версія Ліцензія Опис

Redash

10.1.0

BSD 2-Clause "Simplified" License

Рішення для моделювання та візуалізації звітів на базі реляційних та нереляційних сховищ

20. Робота з ЕЦП (UA)

20.1. Бібліотеки

Бібліотека Версія Ліцензія Опис

EUSignCP-Java

1.3.236

Commercial license

ІІТ Java бібліотека підпису

eusign.js

20220527

Commercial license

ІІТ JavaScript бібліотека електронного підпису. Використовується для інтеграції з віджетом підпису.

21. Інтернаціоналізація

21.1. Бібліотеки

Бібліотека Версія Ліцензія Опис

i18next

20.6.0

MIT

UI Javascript Фреймворк для інтернаціоналізації. Використовується разом з react.i18next.

22. Управління еволюцією бази даних

22.1. Технології

Технологія Версія Ліцензія Опис

Liquibase

4.3

APACHE LICENSE, v2.0

Інструмент для інкрементального управління структурою БД та даними

23. Обмін поштовими повідомленнями

23.1. Технології

Технологія Версія Ліцензія Опис

Mailu

1.8

MIT

Пакет ПЗ для відправлення та отримання поштових повідомлень

Postfix

3.6.7

Eclipse Public License v2.0

Поштовий SMTP-агент, який виконує пересилання електронних листів за допомогою SMTP. Postfix підтримує широкий спектр функцій, включаючи керування чергою повідомлень, фільтрацію спаму, а також шифрування для забезпечення безпечної передачі даних.

Dovecot

2.3.15

MIT

Високопродуктивний IMAP / POP3 поштовий сервер

Roundcube

1.4.11

GPLv3

Поштовий IMAP-клієнт із вебінтерфейсом

ClamAV

0.103.3

GPLv2

Пакет проти-вірусного ПЗ для виявлення троянів, вірусів, шкідливих програм та інших зловмисних загроз

Rspamd

2.7

APACHE LICENSE, v2.0

ПЗ для виявлення та фільтрації поштового спаму

24. Перевірка якості регламенту

24.1. Технології

Технологія Версія Ліцензія Опис

Wiremock

2.27.2

APACHE LICENSE, v2.0

Інструмент для задання тестовоє поведінки RestAPI сервісів

Cucumber

7.3.0

MIT

Інструмент для побудови Behavior-Driven Development (BDD) тестів

Selenium

4.4.0

APACHE LICENSE, v2.0

Інструмент для побудови UI WebBrowser UI тестів з використанням вебдрайверів

24.2. Бібліотеки

Бібліотека Версія Ліцензія Опис

JUnit

5.6.2,5.8.2

Eclipse Public License v2.0

Java бібліотека для написання Unit тестів

Rest-assured

5.1.1

APACHE LICENSE, v2.0

Бібліотека для завдання валідації відповідей від Rest API сервісів використовуючи специфічну мову DSL

25. Моніторинг подій

25.1. Технології

Технологія Версія Ліцензія Опис

Kiali

1.67.0

APACHE LICENSE, v2.0

UI застосунок для Istio Service Mesh

Jaeger

1.39.0

APACHE LICENSE, v2.0

Система для забезпечення розподіленого трейсингу сервісів платформи

Grafana

7.4.5

APACHE LICENSE, v2.0

Перегляд та аналіз метрик системи, налаштування нотифакацій по метрикам

Prometheus

2.24.0

APACHE LICENSE, v2.0

Timeseries база данних для збереження метрик платформи та query engine по цим даним

25.2. Розширення

Розширення Версія Ліцензія Опис

Thanos querier

APACHE LICENSE, v2.0

Надбудова над Prometheus, що забезпечує необмежений розмір сховища для метрик та high-availability для декількох Prometheus instances

25.3. Оператори

Оператор Версія Ліцензія Опис

Cluster Monitoring Operator

4.11.0

APACHE LICENSE, v2.0

Оператор для налаштування підсистеми моніторингу OKD

Jaeger Operator

1.24.0

APACHE LICENSE, v2.0

Оператор для налаштування Jaeger

Kiali Operator

1.25.0

APACHE LICENSE, v2.0

Оператор для налаштування Kiali

Prometheus Operator

4.11.0

APACHE LICENSE, v2.0

Оператор для налаштування Prometheus

26. Журналювання подій

26.1. Технології

Технологія Версія Ліцензія Опис

Elasticsearch

7.16.2

APACHE LICENSE, v2.0

Пошуковий сервер що надає розподіленийбповнотекстовий пошуковий рушій з HTTP веб-інтерфейсом і підтримкою безсхемних JSON документів. Виступає в ролі сховища та пошукового сервісу для логів

Kibana

4.11

APACHE LICENSE, v2.0

Система для візуалізації даних з Elasticsearch

Fluentd

APACHE LICENSE, v2.0

Платформа для збереження даних логування. Відповідає за збір та зберігання логів в Elasticsearch

26.2. Оператори

Оператор Версія Ліцензія Опис

Cluster Logging Operator

5.5.4

APACHE LICENSE, v2.0

Оператор для налаштування підсистеми журналювання OKD

27. Резервне копіювання та відновлення

27.1. Технології

Технологія Версія Ліцензія Опис

Minio

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

GNU AGPL v3

S3 сумісний сервіс збереження об’єктів

Velero

2.14.7

APACHE LICENSE, v2.0

Надає інструменти для резервного копіювання та відновлення ресурсів кластера Kubernetes та постійних томів сховища

pgBackRest

2.38

MIT

Рішення для забезпечення backup/restore баз даних PostgreSQL

28. Документація

28.1. Технології

Технологія Версія Ліцензія Опис

Antora

3.1.1

Mozilla Public License Version 2.0

Генератор документації з asciidoc в html5 використовуючи Asciidoctor