Підсистема управління нереляційними базами даних
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Загальний опис
Підсистема, призначенням якої є зберігання складових регламенту реєстру та проміжних даних, які продукуються системою у процесі взаємодії користувача з системою.
2. Функції підсистеми
-
Довготривале зберігання схем UI-форм бізнес-процесів
-
Короткострокове зберігання проміжних даних бізнес-процесів
-
Короткострокове зберігання JWT-токенів аутентифікованих користувачів
3. Технічний дизайн підсистеми
Підсистема управління нереляційними базами даних використовує Redis в якості key-value сховища, а відмовостійкість забезпечується за допомогою механізму Redis Sentinel.
Для автоматизації розгортання та управління кластером Redis з Redis Sentinel використовується Kubernetes-оператор Redis Operator by Spotahome.
Redis Sentinel є розподіленою системою, яка складається з декількох екземплярів Sentinel процесів, які взаємодіють один з одним.
Redis Sentinel має наступні особливості:
-
факт відмови мастер вузла підтверджується декількома екземплярами Sentinel, які формують кворум, що зменшує кількість хибних спрацювань
-
Sentinel сам по собі є відмовостійкою системою, яка може виконувати свої функції навіть у разі, якщо частина Sentinel екземплярів не працюють.
Redis Sentinel надає наступні можливості:
-
Моніторинг - Sentinel слідкує за тим, щоб екземпляри Redis-мастера та реплік працювали коректно
-
Алертинг - Sentinel надає можливості відправки повідомлень адміністратору у разі ідентифікації збоїв екземплярів Redis
-
Автоматичне відновлення - У разі, якщо екземпляр Redis-мастер починає працювати некоректно, Sentinel ініціює процес визначення нового Redis-мастер екземпляру та реконфігурації інших Redis-реплік на взаємодію з новим мастером.
Детальну інформацію можно знайти в офіційній технічній документації Redis Sentinel. |
4. Складові підсистеми
Назва компоненти | Представлення в реєстрі | Походження | Репозиторій | Призначення |
---|---|---|---|---|
Сервіс Sentinel |
|
3rd-party |
Керування високою доступністю та автоматичним перемиканням між серверами Redis |
|
Key-value сховище Redis |
|
3rd-party |
Збереження даних у пам’яті у форматі ключ-значення |
|
Kubernetes оператор для Redis |
|
3rd-party |
Розгортання та конфігурація ресурсів Redis Sentinel |
5. Класифікація даних, що зберігаються у Redis
Простір імен | Підсистема власник | Опис |
---|---|---|
Підсистема управління зовнішнім трафіком операційної зони реєстру |
Користувацькі JWT-токени |
|
Підсистема управління зовнішнім трафіком адміністративної зони реєстру |
Користувацькі JWT-токени |
|
Дані, отримані через UI-форми |
||
Дані, які були породжені у результаті міжпроцесної взаємодії |
||
Схеми UI-форм |
||
Зовнішні скрипти для UI-форм |
||
OTP-коди для підтвердження каналу зв’язку з користувачем |
6. Технологічний стек
При проектуванні та розробці підсистеми, були використані наступні технології:
7. Атрибути якості підсистеми
7.1. Scalability
Підсистема управління нереляційними базами даних підтримує вертикальне масштабування у разі збільшення навантаження шляхом виділення додаткових ресурсів для подів підсистеми.
Також підсистема підтримує горизонтальне масштабування шляхом додавання реплік та можливість балансування читання між ними.
7.2. Security
Підсистема управління нереляційними базами даних забезпечує захист каналу інформаційної взаємодії між сервісами підсистеми за допомогою SSL/TLS шифрування трафіку.
Взаємодія з сервісами підсистеми потребує аутентифікації клієнтів.
Дані зберігаються у Підсистемі розподіленого зберігання файлів та використовують її можливості забезпечення безпеки.
7.3. Availability
Підсистема управління нереляційними базами даних сконфігурована для роботи у режимі високої доступності за допомогою Redis Sentinel.
7.4. Observability
Підсистема управління нереляційними базами даних підтримує журналювання вхідних запитів та збір метрик продуктивності для подальшого аналізу через веб-інтерфейси відповідних підсистем Платформи.
Детальніше з дизайном підсистем можна ознайомитись у відповідних розділах: |
7.5. Reliability
Надійність Підсистеми управління нереляційними базами даних забезпечується підсистемою резервного копіювання та відновлення яка включає у себе резервне копіювання файлових систем сховища Redis.