Москва
Наша команда строит платформу трейсинга на базе опенсорс решения OpenTelemetry и Jaeger. Мы планируем переходить на собственную реализацю, для сокращения потребления ресурсов. Добавляем новые фичи, тем самым предоставляя более качественный и очень важный продукт для всех разработчиков Ozon.
Вам предстоит:
- Поддерживать и улучшать компоненты трейсинга, менять архитектуру под быстрый и непрерывный рост трафика;
- Работать над стабильностью и находить места оптимизаций для сокращения потребления ресурсов;
- Участвовать в полном переходе на OpenTelemetry;
- Разрабатывать новый большой функционал графа, который позволит быстрее находить проблемное место в большой и сложной архитектуре Озона;
- Реализовывать и улучшать другие фичи: 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 кластерах, что дает полное понимание, как работает система.