Деплой и эксплуатация
Обновление и откат
Процедура обновления бинаря и сценариев, откат, идемпотентные миграции схемы.
Обновление и откат
Обновление бинаря (даунтайм ~ секунды)
Схема symlink-flip: новый бинарь кладётся рядом, переключение — атомарной заменой симлинка.
NEW=v0.1.1
sudo install -m 0755 build/wallet-scoring /srv/wallet-scoring/bin/wallet-scoring.$NEW
sudo ln -sfn /srv/wallet-scoring/bin/wallet-scoring.$NEW /srv/wallet-scoring/bin/wallet-scoring
sudo systemctl restart wallet-scoring
journalctl -u wallet-scoring -n 50
curl -s http://127.0.0.1:8090/api/healthМиграции — не нужны
- Схема SurrealDB идемпотентна (
DEFINE ... IF NOT EXISTSпри каждом подключении) — ручных миграций нет. - Поля коллекций PocketBase (organizations) добавляются идемпотентно на старте.
- Новые версии программ (сценариев) загружаются как отдельные дистрибутивы — даунтайма для обновления сценария нет.
Откат
sudo ln -sfn /srv/wallet-scoring/bin/wallet-scoring.<OLD> /srv/wallet-scoring/bin/wallet-scoring
sudo systemctl restart wallet-scoring
# при несовместимости данных — восстановить state из бэкапаПравила
- Перед обновлением — бэкап (см. Production).
- Очередь
jobs/переживает рестарт: pending-задачи подхватываются воркерами после старта. - После обновления проверить health и метрики (
/admin/api/metrics), проконтролировать DLQ.