YTsaurus — это целая инфраструктурная экосистема, состоящая из тесно переплетающихся друг с другом продуктов.

Слой хранения предоставляет несколько уровней: метаданные, статические таблицы для аналитических данных, и транзакционное KV-хранилище для realtime-процессов.

Дата-инженеры Яндекса могут с помощью MapReduce операций или SPYT-джобов обработать консистентный срез KV-словаря и статической таблицы с событиями. Над результатами этих вычислений менеджеры строят BI-витрины с помощью CHYT.

Аналитики выполняют ad hoc запросы над петабайтами логов на высокоуровневом языке YQL. ML-инженеры строят сложные графы вычислений для обучения моделей на GPU-кластерах под управлением YT. А команда YT обеспечивает всем надежную инфраструктуру, чтобы коллеги могли сосредоточиться на решении продуктовых задач.

40 000
серверов работают над управлением YT во всех дата-центрах Яндекса
2 000 000
CPU-ядер
обрабатывают данные 24×7
2.2
экзабайта на HDD, SSD и NVME дисках используется для хранения информации

Команда

Мы искренне увлечены большими распределёнными системами и сложными техническими задачами. Многие из нас имеют академический опыт и до сих пор активно преподают — в МФТИ, ВШЭ, ШАД и других высших учебных заведениях. Несколько человек занимали топовые места в соревнованиях по спортивному программированию.

Мы следим за новостями индустрии и регулярно обсуждаем свежие доклады с VLDB, SIGMOD и CppCon, а иногда и сами выступаем, например на HighLoad++ и Hydra.

В команде сохраняется дух стартапа: дружно общаемся в рабочее и нерабочее время, вместе штурмуем задачи, экспериментируем и участвуем в CTF.

Работаем в Москве, Белграде, Ереване, Минске и других локациях, в том числе удалённо.

Ищем талантливых бэкенд-разработчиков с уверенным знанием структур данных и алгоритмов, а также опытом разработки распределённых систем. Пишем на C++, Java, Scala, Go/Python.

Ключевые разработчики

Технологии
Ядро системы написано на современном С++ с использованием собственной библиотеки асинхронного программирования на основе файберов. Мы не используем boost, но стараемся брать лучшее из кодовых баз таких проектов, как Chromium, LLVM, Folly и Abseil.
Мы поддерживаем и развиваем SDK для работы с YT на различных языках программирования: С++, Java, Golang и Python. Кроме того, мы работаем над более высокоуровневым API на основе Apache Beam.
Для запуска и изоляции пользовательского кода мы используем внутреннюю систему управления контейнерами Porto. 
Управление кластерами осуществляется с помощью внутренних систем менеджмента сервисов. Используя их API, мы разрабатываем инструменты для автоматизации регламентных операций на Python и Go. Кроме того, мы разрабатываем собственный оператор для разворачивания YT в Kubernetes.
Кого мы ищем
Старший разработчик YP и YT ORM
Мы ждем, что вы имеете опыт промышленной разработки на C++ и хотите развиваться в этом направлении, а так же уверенно знаете алгоритмы и структуры данных.
Техлид ядра Spark over YT
Мы ждем, что вы уверенно пишете на Scala или Java не меньше трёх лет, готовы учить другие языки, а так же понимаете принципы обработки больших данных, парадигму MapReduce и её наследников
Разработчик на Go или Python в YT
Мы ждем, что вы умеете программировать на Go и/или Python, не боитесь работать в консоли и читать логи, работали с распределёнными хранилищами и системами обработки данных или хотите получить такой опыт.
Разработчик динамических таблиц на C++
Мы ждем, что вы хорошо владеете С++ и уверенно знаете структуры данных и алгоритмов. Будет плюсом, если вы знаете устройство одной из СУБД.

Процесс разработки

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

Мы практикуем обязательное code review, и тщательно следим за соблюдением единого стиля и подходов к разработке. Используем различные виды автотестов — юнит-тестирование, интеграционное тестирование, тестирование с использованием синтетической нагрузки и fault injection на тестовом окружении.

В Яндексе развёрнуто более 15 YT-кластеров, которые мы эксплуатируем и предоставляем другим командам as a service. В эксплуатации кластеров участвуют все разработчики: выкатывают релизы и хотфиксы, настраивают мониторинги, занимаются траблшутингом и помогают пользователям.

Статьи и выступления
YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source
Highload++ 2021,
Игнатий Колесниченко
«Как сдержать самые сложные обещания: планирование batch-задач в системе Yandex.YT»
HighLoad 2021
Hydra 2020
Максим Бабенко “Erasure Coding at Scale”

Если вы хотите стать частью нашей команды — находите вакансию и откликайтесь

4 вакансии
Технический менеджер в области хранения и обработки данных
YTsaurus — платформа хранения и обработки больших данных для сервисов Яндекса. Мы ищем технического менеджера для работы над проектами, связанными с развитием платформы. Ждём, что вы управляли проектами или продуктами и работали с командой разработчиков.
Java-разработчик в команду Нирваны
Наша команда разрабатывает Нирвану — группу инфраструктурных сервисов всего Яндекса и вычислительную платформу для выполнения произвольных пользовательских процессов. Ищем разработчика, который будет развивать сервис по сборке, поиску и оптимизации контейнерных образов.
Руководитель команды разработки YP и YT ORM
Yandex YT — основная инфраструктурная экосистема компании. Мы делаем платформу для хранения и обработки эксабайтов данных в batch и real-time. Ищем разработчика, который будет предлагать надёжные и простые в использовании решения. Вам предстоит строить продукты для тысяч сотрудников Яндекса.
Техлид (старший разработчик) ядра Spark over YT
Yandex YT — основная инфраструктурная экосистема компании. Мы делаем платформу для хранения и обработки экзабайтов данных в batch и realtime.

Ищем старшего разработчика Spark over YT. Вы будете работать с кодом Spark Core, улучшать интеграции и дизайнить новые фичи на стыке Spark и YT.

Fri Apr 05 2024 14:34:13 GMT+0300 (Moscow Standard Time)