Яндекс·Москва·4 дн назад
Разработчик бэкенда в Yandex Storage
Ориентир по рынку≈ 150 000 – 350 000 ₽наша приблизительная оценка по 148 вакансиям этой роли и грейда, у работодателя вилка не указана
🔄 ГибридMiddleПолная занятостьКорпорация
61
Хорошие условия
За такой навык на рынке платят больше, работа расписана подробно. Но вилки нет, про деньги придётся договариваться с нуля.
Наша компания
Наша команда разрабатывает и поддерживает MDS — распределённое хранилище, которое лежит в основе хранения данных основных сервисов Яндекса. Мы часть Yandex Infrastructure. От надёжности и производительности наших технологий зависит работа сервисов, которыми пользуются миллионы людей. Сейчас мы развиваем MDS 2.0 — новое поколение хранилища — и дорабатываем возможности, необходимые для полноценной замены предыдущей системы. Впереди подготовка и проведение масштабной миграции накопленных данных с сохранением их целостности и доступности.
О роли
Вы будете развивать архитектуру и функциональность MDS 2.0, повышать производительность и надёжность системы и участвовать в переходе на новое хранилище. С чем предстоит работать
Чем предстоит заниматься
Развитие MDS 2.0
Вы будете участвовать в проектировании архитектуры и реализовывать новые возможности хранилища: от механизмов работы с данными в Data Plane до инструментов управления кластером в Control Plane. Ближайшая цель — завершить разработку возможностей, необходимых для перехода со старой системы на MDS 2.0
Повышение надёжности и производительности
Вы станете анализировать метрики, находить причины высоких задержек и ограничений пропускной способности, устранять узкие места и повышать устойчивость системы к сбоям. Задача — обеспечивать быструю и предсказуемую работу хранилища при нагрузке в миллионы запросов в секунду
Подготовка и проведение миграции данных
Вам предстоит проектировать процесс переноса данных из предыдущего поколения хранилища в MDS 2.0, разрабатывать необходимые инструменты и участвовать в проведении миграции. При переходе важно обеспечить целостность данных и непрерывность работы сервисов
Отдельные задачи могут быть связаны с on-premises-развёртываниями — они составляют небольшую часть работы команды
Больше о бэкенде в Яндексе — в канале Yandex for Backend
Наши требования
Уверенно владеете Go и имеете коммерческий опыт разработки на нём
Разрабатывали сетевые приложения, работали с конкурентным и асинхронным выполнением
Умеете аргументировать технические решения и конструктивно обсуждать архитектуру и детали реализации с коллегами
Ответственно подходите к надёжности своих решений, аккуратны в коде и документации
Основной язык разработки — Go. В компонентах системы мы используем MongoDB, PostgreSQL и ClickHouse. Значительная часть задач связана с сетевым взаимодействием, дисковым вводом-выводом и работой распределённого хранилища
Дополнительно
Data Plane обслуживает пользовательские запросы, читает данные с дисков, записывает данные на диски и использует алгоритм консенсуса для согласования операций между узлами. Здесь предстоит работать с дисковым вводом-выводом, задержками обработки запросов и пропускной способностью
Control Plane отвечает за управление и обслуживание кластера: конфигурацию, балансировку и управление репликацией. Здесь предстоит развивать механизмы, которые обеспечивают устойчивую работу компонентов и автоматизируют обслуживание хранилища
В команде нет строгого разделения между этими направлениями. Первоначальный фокус может быть на одном из них, но со временем вы будете решать задачи в обоих слоях