Разработчик бэкенда в Yandex Storage

Яндекс·Russia·Удалённо, Офис·вчера

Наша команда разрабатывает и поддерживает MDS — распределённое хранилище, которое лежит в основе хранения данных основных сервисов Яндекса. Мы часть Yandex Infrastructure. От надёжности и производительности наших технологий зависит работа сервисов, которыми пользуются миллионы людей.

Сейчас мы развиваем MDS 2.0 — новое поколение хранилища — и дорабатываем возможности, необходимые для полноценной замены предыдущей системы. Впереди подготовка и проведение масштабной миграции накопленных данных с сохранением их целостности и доступности.

Вы будете развивать архитектуру и функциональность MDS 2.0, повышать производительность и надёжность системы и участвовать в переходе на новое хранилище.

С чем предстоит работать

Работа охватывает два основных слоя системы:

  • Data Plane обслуживает пользовательские запросы, читает данные с дисков, записывает данные на диски и использует алгоритм консенсуса для согласования операций между узлами. Здесь предстоит работать с дисковым вводом-выводом, задержками обработки запросов и пропускной способностью.
  • Control Plane отвечает за управление и обслуживание кластера: конфигурацию, балансировку и управление репликацией. Здесь предстоит развивать механизмы, которые обеспечивают устойчивую работу компонентов и автоматизируют обслуживание хранилища.

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

Технологии

Основной язык разработки — Go. В компонентах системы мы используем MongoDB, PostgreSQL и ClickHouse. Значительная часть задач связана с сетевым взаимодействием, дисковым вводом-выводом и работой распределённого хранилища.

Развитие MDS 2.0
Вы будете участвовать в проектировании архитектуры и реализовывать новые возможности хранилища: от механизмов работы с данными в Data Plane до инструментов управления кластером в Control Plane. Ближайшая цель — завершить разработку возможностей, необходимых для перехода со старой системы на MDS 2.0.

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

Подготовка и проведение миграции данных
Вам предстоит проектировать процесс переноса данных из предыдущего поколения хранилища в MDS 2.0, разрабатывать необходимые инструменты и участвовать в проведении миграции. При переходе важно обеспечить целостность данных и непрерывность работы сервисов.

Отдельные задачи могут быть связаны с on-premises-развёртываниями — они составляют небольшую часть работы команды.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

  • Уверенно владеете Go и имеете коммерческий опыт разработки на нём
  • Разрабатывали сетевые приложения, работали с конкурентным и асинхронным выполнением
  • Умеете аргументировать технические решения и конструктивно обсуждать архитектуру и детали реализации с коллегами
  • Ответственно подходите к надёжности своих решений, аккуратны в коде и документации

Похожие вакансии

Другие вакансии Яндекс