🔥

Не упустите лучшие вакансии!

Подключите наш Telegram-бот и получайте мгновенные уведомления о новых предложениях из 10+ источников. Будьте первым, кто откликнется!

Подключить бота

Разработчик в Unified Agent

Вакансия снята с публикации
Яндекс
Ереван, Москва, Санкт-Петербург, Екатеринбург, Новосибирск
Работа в офисе
Опубликовано: 09 Apr 2025
Unified Agent — это ключевой компонент инфраструктуры Яндекса для сбора и обработки данных. Он работает как универсальный коллектор, интегрируясь с различными сервисами и обеспечивая полный цикл обработки информации: от сбора логов и метрик до их передачи в централизованные системы мониторинга.

Ключевые особенности агента:

  • Гибкий язык конфигурирования для настройки потоков данных
  • Модульная архитектура с богатой системой плагинов
  • Возможность гибкой маршрутизации данных между источниками, фильтрами и получателями
  • Локальная буферизация для обеспечения надёжности

Техническая часть:

  • Современный C++20, асинхронное взаимодействие компонентов, использование coroutine
  • Поддержка различных сетевых протоколов: gRPC, HTTP(S) v1/v2, Unix domain sockets
  • Интеграция с OpenTelemetry, использование Asio, protobuf
  • TDD; СI/CD; тестовый стенд; релиз версии раз в две недели, когда заканчивается спринт

Масштаб использования впечатляет: Unified Agent развернут в 2 млн контейнеров в инфраструктуре Яндекса с общим трафиком порядка 1 ТБ/с и является основным инструментом сбора метрик в Yandex Cloud. Это решение конкурирует с такими популярными инструментами, как Fluentd, Logstash, Amazon CloudWatch Agent и Datadog Agent.

Проект активно развивается: мы планируем открыть исходный код и сделать его опенсорс-решением. Для вас это отличная возможность присоединиться к команде на раннем этапе и внести свой вклад в формирование архитектуры и функциональности!

Вот небольшая часть вызовов, которые стоят перед командой разработчиков Unified Agent:

  • Мгновенная передача логов

В инфраструктуре Яндекса расположено множество распределённых серверов, а получение доступа к консоли занимает значительное время. Поэтому требуется возможность мониторить логи с различных серверов быстро, в режиме реального времени.

  • Разработка интеллектуальной системы диагностики

Невозможно мониторить 2 млн хостов вручную, равно как и выявлять проблемы традиционными методами. Учитывая, что сбор метрик и дополнительных логов существенно увеличивает сетевой трафик, в агенте должна быть интеллектуальная система диагностики, которая не только заранее обнаруживает на серверах неполадки, но и предлагает, как их исправить.

  • Высокая надёжность

Если что-то идёт не по плану — Unified Agent становится ключевым инструментом диагностики. Поэтому критически важно, чтобы агент мог продолжать работу даже при сбоях в системе, обеспечивая доставку логов и метрик независимо от обстоятельств. Присоединяйтесь к разработке инструмента, который играет важнейшую роль в управлении инфраструктурой и её мониторинге в одной из крупнейших технологических компаний!

Какие задачи вас ждут

Разрабатывать высоконагруженные компоненты на C++
Агент функционирует как многомодульная система, где каждый модуль отвечает за сетевое взаимодействие и операции с файловой системой. Чтобы оптимизировать использование ресурсов, все операции выполняются через общие компоненты, которые создаёт и улучшает команда разработчиков.

Оптимизировать производительность при работе с большими объёмами данных
Система непрерывно получает на вход значительные потоки данных, оптимально обрабатывает их и надёжно передаёт на серверы сбора метрик. Нужно создавать эффективные сценарии обработки, тщательно контролируя пропускную способность и производительность всей системы, профилировать и оптимизировать важные участки кода.

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

Участвовать в проектировании архитектуры системы и реализовывать новые сценарии сбора метрик и логов
Вы станете проектировать и развивать архитектуру агента, которая должна быть гибкой и масштабируемой, чтобы соответствовать растущей инфраструктуре Яндекса. При этом важно обеспечить поддержку различных протоколов и форматов данных, а также создать механизмы быстрой адаптации системы к изменениям в инфраструктуре компании.

Предлагать и внедрять инновационные решения для улучшения продукта
Понадобится активно участвовать в инновационном развитии системы: создавать новые методы оптимизации и эффективные способы сбора и обработки метрик и логов. Вы сможете реализовывать свои идеи, как улучшить систему, и предлагать собственные инновационные решения, чтобы заранее адаптировать агента к изменениям.

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

  • Владеете C++, разрабатывали надёжные программные продукты
  • Понимаете принципы работы многопоточности и умеете эффективно их применять
  • Знакомы с принципами работы операционных систем
  • Готовы предлагать и реализовывать новые технические решения
  • Стремитесь создавать качественный продукт для тысяч пользователей

Будет плюсом, если вы

  • Работали с сетевыми протоколами
  • Оптимизировали производительность
  • Умеете работать с большими объёмами данных
  • Разрабатывали хранилища данных
🚀

Ваше резюме увидят первым!

Автоматическое поднятие на HeadHunter каждые 4 часа. Увеличьте свои шансы на успех в 10 раз!

Подключить автоподнятие