Juggler/JNS — событийный мониторинг и шлюз уведомлений

Язык буткемпа: Go, Python

У типового сервиса в Яндексе есть сотни разных метрик и способов замониторить живость приложения. Система событийного мониторинга позволяет на основании входных данных о здоровье сервиса (десятки миллионов событий) из разных источников, по правилам, заданным пользователем, сформировать верхнеуровневое агрегированное состояние сервиса. И в случае наступления аварийной ситуации система уведомит команду о проблемах по указанным правилам (SMS сообщения в мессенджерах, звонки, вебхуки и более сложные сценарии эскалации), задаваемым в настройках шлюза уведомлений.
Шлюз используется и для более общих сценариев отправки уведомлений пользователям — в сумме сотни тысяч уведомлений в день находят своих получателей.

Стек

Go, Python 3, C++ 20 (но становится всё меньше), MongoDB, YDB, k8s Событийный монтиторинг
Go, YDB, OpenSearch, k8s Шлюз уведомлений

Команда

Распределенная команда (РФ, Сербия и Казахстан) — шесть бэкенд-разработчиков и два фронтенд-разработчика.

Особенности

  • Мы представлены не только во внутреннем облаке Яндекса, но и планируем стать частью публичного облака Yandex Cloud, как часть сервиса Monitoring.
  • Сильная команда, которая умеет в разработку высоконагруженных систем.
  • Интересная предметная область.
  • Участие в продуктовых решениях, возможность влиять на развитие сервиса.

Что нужно принять во внимание

  • Дежурства: мы сами поочередно следим за работоспособностью собственного сервиса, а также отвечаем на вопросы коллег. Это важно, т. к. от работоспособности системы мониторинга потенциально зависит доступность почти всех сервисов компании. При этом проблемы ночью или вне рабочего время — явление достаточно редкое.

Вызовы

  • Сделать сервис уведомлений доступным не только для инженеров Яндекса, но и для пользователей Yandex Cloud.
  • Объединить модели данных с другими сервисами Мониторинга и логирования, став единой observability-платформой.
Предыдущая