Juggler/JNS — событийный мониторинг и шлюз уведомлений
Язык буткемпа: Go, Python
У типового сервиса в Яндексе есть сотни разных метрик и способов замониторить живость приложения. Система событийного мониторинга позволяет на основании входных данных о здоровье сервиса (десятки миллионов событий) из разных источников, по правилам, заданным пользователем, сформировать верхнеуровневое агрегированное состояние сервиса. И в случае наступления аварийной ситуации система уведомит команду о проблемах по указанным правилам (SMS сообщения в мессенджерах, звонки, вебхуки и более сложные сценарии эскалации), задаваемым в настройках шлюза уведомлений.
Шлюз используется и для более общих сценариев отправки уведомлений пользователям — в сумме сотни тысяч уведомлений в день находят своих получателей.
Стек
Go, Python 3, C++ 20 (но становится всё меньше), MongoDB, YDB, k8s | Событийный монтиторинг |
---|---|
Go, YDB, OpenSearch, k8s | Шлюз уведомлений |
Команда
Распределенная команда (РФ, Сербия и Казахстан) — шесть бэкенд-разработчиков и два фронтенд-разработчика.
Особенности
- Мы представлены не только во внутреннем облаке Яндекса, но и планируем стать частью публичного облака Yandex Cloud, как часть сервиса Monitoring.
- Сильная команда, которая умеет в разработку высоконагруженных систем.
- Интересная предметная область.
- Участие в продуктовых решениях, возможность влиять на развитие сервиса.
Что нужно принять во внимание
- Дежурства: мы сами поочередно следим за работоспособностью собственного сервиса, а также отвечаем на вопросы коллег. Это важно, т. к. от работоспособности системы мониторинга потенциально зависит доступность почти всех сервисов компании. При этом проблемы ночью или вне рабочего время — явление достаточно редкое.
Вызовы
- Сделать сервис уведомлений доступным не только для инженеров Яндекса, но и для пользователей Yandex Cloud.
- Объединить модели данных с другими сервисами Мониторинга и логирования, став единой observability-платформой.