Обязанности:
Наша команда строит платформу трейсинга на базе опенсорс решения OpenTelemetry и Jaeger. Мы планируем переходить на собственную реализацю, для сокращения потребления ресурсов. Добавляем новые фичи, тем самым предоставляя более качественный и очень важный продукт для всех разработчиков Ozon.Вам предстоит: Поддерживать существующие компоненты трейсинга и переписывать на собственную реализацию; Работать над стабильностью и находить места оптимизации для сокращения потребления ресурсов; Реализовывать и улучшать такие фичи как: Critical Path, экземпляры, корреляция трейсов, интеграция с алертингом; Поддерживать и улучшать интеграцию с собственной базой данных; Поддерживать трейсинг в Ozon банке; Заниматься сетапом компонентов трейсинга в новых k8s кластерах, улучшать конфигурацию деплоя; Исследовать нетривиальные баги и фиксить их. Мы ожидаем: Умение писать чистый и производительный код на Go; Опыт написания Unit тестов; Опыт в разработке высоконагруженных, отказоустойчивых, распределенных систем; Знания docker/kubernetes: умение создавать ресурсы, смотреть логи, выполнять команды в контейнере; Опыт с CI/CD, знание helm, qbec или kustomize приветствуется; Опыт работы с Unix подобными операционными системами; Умение работать с мониторингом (Prometheus + Grafana): писать алерты, делать запросы, инструментировать сервисы метриками. Почему у нас может быть интересно: Мы активно улучшаем существующую платформу трейсинга на базе OpenTelemetry и Jaeger и начали процесс переезда на собственное решение; У нас один из самых высоконагруженных сервисов в компании. Агенты для сбора трейсов установлены на около 3000 серверов, которые в пике отправляют 10Gb трейсов в секунду; Коллекторам выделено порядка 22Tb оперативной памяти и 2700 ядер; У нас много ресерча существующих решений, а также активно думаем над новыми фичами, интеграциями, чтобы облегчить поиск узких, аномальных мест нашим разработчикам; Мы используем свою базу данных, которая изначально была разработана под хранение логов. Есть возможность оптимизировать части связанные с хранение, поиском и так далее; Наш продукт настроен и оптимизирован так, чтобы переживать DC-1; Мы сами разворачиваем большинство компонентов в k8s кластерах, что дает полное понимание, как работает система.