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