Разработчик инструментов мониторинга

MoscowGo, Python, Java, C++, C, C#Search portal, InfrastructureSpecialist
Мы ищем разработчика в Мониторинг Яндекса — сервис для мониторинга инфраструктуры и приложений, про который мы рассказывали на HighLoad HighLoad и about:cloud.
Мониторинг обрабатывает 700 млн точек в секунду на запись и 100 млн точек в секунду на чтение, хранит 40 млрд точек и рассчитывает 1,5 млн алертов в секунду. Такие объемы требуют решения сложных задач по масштабированию и отказоустойчивости.
Мониторинг активно развивается — им пользуется подавляющее большинство команд Яндекса внутри, а также он доступен в Яндекс.Облаке как сервис для всех желающих (пока что в более ограниченной версии, по сравнению с внутренним Мониторингом).

Примеры задач, стоящих перед сервисом:

  • научиться собирать не только метрики, но и логи, трейсы и другие сигналы сервисов;
  • улучшить в алертинге механику мьютов, агрегации и зависимостей проверок;
  • научиться масштабироваться от десятков до сотен миллионов активных метрик в одном пользовательском проекте;
  • разработать новый UI Мониторинга с поддержкой трейсинга и логов;
  • реализовать trace discovery при помощи exemplars;
  • тесно интегрироваться с внутренним инфраструктурным облаком и давать настраивать мониторинг своих приложений в нем проще и удобней .
Мониторинг — один из фундаментальных сервисов, обеспечивающий своевременное обнаружение проблем и помогающий быстро их устранить. От того, насколько хорошо он сделан и работает, зависит стабильность всех сервисов Яндекса, а также пользователей Мониторинга в Облаке.
Сервис написан в основном C++ и Java, часть новых компонентов будем писать на Go.

Что нужно делать:

  • разрабатывать компоненты системы, обеспечивающие эффективный сбор и хранение данных, быструю обработку пользовательских запросов, устойчивую работу системы, взаимодействие со сторонними системами;
  • проектировать надежную архитектуру, которая будет в состоянии справляться с нашими нагрузками;
  • работать с передовыми системами хранения и обработки данных;
  • оптимизировать сервис под высокие нагрузки.

Мы ждем, что вы:

  • умеете писать рабочий, поддерживаемый и тестируемый код на каком-нибудь из языков программирования;
  • испытываете интерес к разработке высоконагруженных сервисов для разработчиков.

Кроме того, приветствуется:

  • знание классических алгоритмов и структур данных;
  • понимание парадигмы многопоточности, знание основных алгоритмов и проблем в этой области;
  • опыт создания распределенных систем и сервисов.