Similar presentations:
yougile_presentation
1.
Yougile: коробочный сервисЧто это за сервис и что было сделано нашей командой DevOps.
погнали деплоить
«у нас всё работает» — сказал девопс перед apply
Презентация · команда TrackerOps
2.
01Что за сервис Yougile
здесь живут задачи и дедлайны
ОБЗОР
Yougile — корпоративный инструмент
планирования
Коробочная (on-premise) версия — разворачивается и
обслуживается на наших серверах, а не в облаке.
Служит для постановки и отслеживания задач, проектов и
процессов команды.
КТО ПОЛЬЗУЕТСЯ
СКОЛЬКО ЧЕЛОВЕК
ТИП
Департамент PR
52
Задачи · проекты ·
канбан
Yougile: коробочный сервис
2
3.
02Инфраструктура: ПО и железо
3 кота = 3 сервера
СРЕДА
PROD
STANDBY (DR)
STAGE
yougile.wb.ru
yougile-standby.wb.ru
yougile-stage.wb.ru
Рабочий сервер
Резервный сервер
Тестовая среда
Принимает трафик пользователей
Готов принять трафик при аварии
Проверка изменений и обновлений
Что на хостах
Сервис / приложение: yougile (systemd)
Веб-сервер: nginx (upstream)
БД: PostgreSQL
Хранилище бэкапов: S3 (basket)
Утилиты: yougile-utils (git)
Yougile: коробочный сервис
3
4.
03Путь
путь кота: дикость → порядок
Как было → как стало
Пришел на поддержку
На текущий момент
· Prod и Stage
· Prod, Standby, Stage
· Backup только в cloud
· Настроен backup/restore
· Данные хранятся на диске
· Подключена db Postgres
· Версия 1.98
· Версия 2.7
· Мониторинг, сбор логов, алерты
5.
Мониторинг, логи и алерты04
алерт! глаза разбежались
НАБЛЮДАЕМОСТЬ
Мониторинг
Метрики сервисов и хостов уходят в
Grafana.
Настроены дашборды
Логи
Сбор и централизованное хранение
логов.
Алерты
Автоматические уведомления при
проблемах.
Уходят в чат команды (band).
Ключевые алерты
Сервис недоступен / не отвечает (probe_success) · нагрузка CPU и заполнение диска · утилизация хранилища S3 · Состояние кластера
Postgres
Yougile: коробочный сервис
5
6.
05Скрипт бэкапа / рестора
есть бэкап — спим спокойно
НАДЁЖНОСТЬ
Бэкап (main.sh)
Рестор (main.sh restore latest)
· Снимает дамп базы данных
· Находит крайний (latest) бэкап
· Забирает файлы сервиса
· Скачивает из S3
· Кладёт всё в S3 (basket)
· Устанавливает на целевой хост
· Пишет алерт в band о результате
· Пишет алерт в band о результате
Автоматизация по cron
· PROD · 20:00 — запуск бэкапа
Yougile: коробочный сервис
· STANDBY · 22:00 — рестор
6
7.
06Дублирование учетных записей
кот раздвоился
ПРОБЛЕМА
Способ 1 · Keycloak
Способ 2 · email + пароль
· корпоративная авторизация (SSO)
· авторизация по email и паролю
· домен: может быть @wb.ru или @rwb.ru
· домен: может быть @wb.ru или @rwb.ru
Домен в Keycloak (@wb.ru или @rwb.ru) может не совпадать с доменом email — у одного человека получается две учётные записи.
8.
07Ошибка при обновлении 2.7 → 2.8+
кот апгрейдился и упал
ПРОБЛЕМА
/yougile/server.js:212167
Error: Processor engine must be initialized
at ResourceProcessor.call (/yougile/server.js:212167:33)
at ClusterMemoryTable.set (/yougile/server.js:212559:58)
...
at Function.migrateEmptyPassHashUsers (/yougile/server.js:1272274:11)
at startAccountNode (/yougile/server.js:1392144:9)
Обновление проходит без проблем — ошибка видна только при старте (на время апдейта сервис выключен)
Что нашли
Что сделали
Статус
· В auth_users — 26 записей с
пустым PassHash
· Для теста удалили все 26 записей
· Вендор с такой ошибкой не
сталкивался
· Все deleted=true, пользователей
уже нет в Yougile
· Сервис запустился без ошибок
· Передали информацию, ждём
решение
passHash: "", passSalt: "", deleted: true
Временное решение: проблемные записи удалены, сервис стартует. Официальное решение ожидаем от вендора
9.
✓Спасибо за внимание!
кот доволен
ФИНАЛ
Паспорт Yougile (внутренний wiki)
Официальный сайт Yougile
wiki.wb.ru/space/186/devtools-team/page/127/Passport
ru.yougile.com
Вопросы? Спрашивайте — отвечаем между деплоями