Rolling deployment, blue-green, повторна експертиза при зміні функцій безпеки.
Класична модель «зупинимо систему вночі на 4 години для оновлення» прийнятна для невеликих внутрішніх систем. Для систем 24/7 — це втрата довіри і потенційні штрафи за порушення SLA. Стаття описує, як оновлювати UBD без простою, і коли це насправді можливо, а коли — ні.
| Тип | Зміна функціональності | Простой | Регуляторика |
|---|---|---|---|
| Security patch | Без зміни поведінки | Не потрібен (rolling) | Не вимагає повторної експертизи |
| Мінорна версія (1.2.3 → 1.2.4) | Bug fixes, мінорні покращення | Не потрібен (rolling) | Зазвичай не вимагає |
| Мажорна версія (1.x → 2.0) | Нові функції, зміна API | Можливий простой кілька хвилин | Може вимагати повторної експертизи функцій безпеки |
| Прикладна логіка | Нові моделі, зміна політик | Не потрібен у більшості випадків | Залежить від обсягу — модель загроз може потребувати оновлення |
Експертиза захищеності прив’язана до конкретної версії системи на момент видачі висновку. Будь-яке оновлення формально вимагає оцінки впливу на захищеність.
Не потребує повторної експертизи:
Потребує повторної експертизи:
Сіра зона (вимагає консультації з експертною організацією):
Стандартний підхід для кластера UBD з 3+ нодами:
Для кластера з 5 нод і 10 хв на ноду — повне оновлення займає ~1 годину без простою. Користувачі помічають тільки якщо потрапили на ноду під час drain (рідко, при правильно налаштованому graceful shutdown — не помічають взагалі).
Підхід для випадків, коли rolling не підходить (наприклад, несумісна зміна формату даних):
Перевага: миттєвий rollback при проблемі (повертаємось на «зелений»). Недолік: подвійні ресурси на час deployment.
Для функцій з невпевненістю — поступова розкатка:
Підходить для функцій, які важко відтестувати в lab: специфіка реальних навантажень, інтеграцій, користувацьких патернів.
План відкату — обов’язкова частина процедури оновлення. Перед запуском:
Тонкий момент: якщо нова версія міняла схему БД — відкат складніший. Іноді міграцію треба робити двома фазами: фаза 1 — додає нові колонки/таблиці (сумісно зі старою версією), фаза 2 — видаляє старі (вже після стабілізації нової версії).
Навіть rolling deployment без простою — комунікується заздалегідь:
Для систем КІІ і держсектору — додатково повідомлення регулятора, особливо якщо оновлення зачіпає функції безпеки.
Системи в air-gapped мережі (без виходу у інтернет) — окремий випадок:
UBD підтримує rolling updates у stateless кластері з мінімізацією розривів сесій. Сесії зберігаються поза вузлами кластера (у Redis або БД), тому наступні запити у штатних сценаріях переходять на доступний вузол без повторного входу. Graceful shutdown коректно завершує активні запити перед вимкненням вузла. Це покриває NIST 800-40 рекомендації щодо patch management у виробничих середовищах.