Разработчик инструментов мониторинга
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Мы ищем разработчика в Мониторинг Яндекса — сервис для мониторинга инфраструктуры и приложений, о котором мы рассказывали на HighLoad и about:cloud.
Мониторинг обрабатывает 700 млн точек в секунду на запись и 100 млн точек в секунду на чтение, хранит 40 млрд точек и рассчитывает 1,5 млн алертов в секунду. Такие объемы требуют решения сложных задач по масштабированию и отказоустойчивости.
Мониторинг активно развивается — им пользуется подавляющее большинство команд Яндекса, а ещё он доступен в Yandex Cloud как сервис для всех желающих (пока в более ограниченной версии по сравнению с внутренним Мониторингом). Сервис построен поверх YDB — распределённой высокодоступной опенсорсной базы данных, разработанной в Яндексе.
Примеры наших задач:
- научиться собирать не только метрики, но и логи, трейсы и другие сигналы сервисов;
- улучшить в алертинге механику мьютов, агрегации и зависимостей проверок;
- научиться масштабировать от десятков до сотен миллионов активных метрик в одном пользовательском проекте;
- разработать новый UI Мониторинга с поддержкой трейсинга и логов;
- реализовать trace discovery при помощи exemplars;
- тесно интегрироваться с внутренним инфраструктурным облаком и упростить настройку мониторинга своих приложений в нём.
Что нужно делать:
- писать асинхронный код на языке Java;
- разрабатывать компоненты системы для эффективного сбора и хранения данных, быстрой обработки пользовательских запросов, устойчивой работы системы и взаимодействия со сторонними системами;
- проектировать надёжную архитектуру, которая справится с нашими нагрузками;
- работать с передовыми системами хранения и обработки данных;
- оптимизировать сервис для высоких нагрузок.
Мы ждем, что вы:
- пишете рабочий, поддерживаемый и тестируемый код на любом языке программирования;
- интересуетесь высоконагруженными сервисами для разработчиков.
Будет плюсом, если вы:
- знаете классические алгоритмы и структуры данных;
- понимаете парадигму многопоточности, знаете основные алгоритмы и проблемы в этой области;
- создавали распределённые системы и сервисы.