H
HireSeeker
яндекс

Разработчик инфраструктуры поисковой системы (Go/Python)

яндекс · 10 июн.

Зарплата не указана

SaaS (Search-as-a-Service) — общая поисковая платформа в Яндексе. Мы создаём технологии, благодаря которым другие команды получают готовый полнотекстовый поиск, key-value-хранилище (eventually consistent) или kNN — и не тратят месяцы на разработку и поддержку собственного решения.

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

Отдельную сложность добавляют множество внешних зависимостей и периодически изменяющееся мультидатацентровое окружение. Кроме того, мы должны уметь жить в условиях частичных отказов, когда деградируют смежные сервисы или целый дата-центр выходит из строя.

Большая часть текущей инфраструктуры написана на Python — это живая и сложная система. Мы постепенно унифицируем и переписываем отдельные процессы на Go — в частности, переходим на общепоисковые Kubernetes-контроллеры для развёртывания и управления поисковыми сервисами. Это осознанный шаг: мы хотим, чтобы наша инфраструктура стала ближе к тому, как устроены другие поисковые проекты в компании.

Основная работа впереди — у вас есть возможность присоединиться и повлиять на ключевые технические решения.

Управление жизненным циклом поисковых сервисов

Мы отвечаем за полный жизненный цикл сервиса: от первого деплоя до изменения конфигурации под нагрузкой. Автоматически создаём, масштабируем и удаляем инсталляции. Эти процессы постоянно развиваются, и вам предстоит перестраивать их под новые требования — так, чтобы платформа могла одинаково хорошо работать как с небольшими, так и с самыми крупными пользователями.

Проектирование надёжных алгоритмов

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

Учёт ресурсов и эффективность их использования

Платформа потребляет сотни тысяч ядер, поэтому учёт железа и эффективность его использования — отдельная инженерная задача, результат которой измеряется в реальных деньгах. У нас есть собственная модель учёта ресурсов, но она далека от идеала: вам предстоит переработать её, перестроить логику смежных процессов и улучшить работу с заказами железа. А чтобы заказанные ресурсы не простаивали, нужно разработать инструменты, которые помогут следить за эффективностью их использования.

Миграция на новый механизм доставки данных

Мы находимся в процессе миграции на общий механизм доставки распределённых индексов. Это не просто рутинный переезд — вам необходимо практически с нуля построить инфраструктуру миграции и помочь нам провести её так, чтобы не потерялось ни байта данных и ни капли трафика на сотнях работающих сервисов.

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

* Уверенно владеете Go или Python — и готовы работать с обоими языками
* Имеете опыт разработки и эксплуатации распределённых систем
* Готовы разбираться в сложных инфраструктурных задачах и не боитесь запутанных внешних зависимостей

* Решали похожие инфраструктурные задачи — строили системы оркестрации сервисов, автоматизировали деплой или управление ресурсами в распределённых системах
* Знаете и используете классические алгоритмы и структуры данных
* Понимаете, как работают поисковые системы и как устроены поисковые индексы