Ключевые навыки
Описание вакансии
YDB — это реляционная база данных. Распределённая, масштабируемая, отказоустойчивая. YDB ещё и платформа. Мы предлагаем пользователям не только надёжные транзакции поверх таблиц, но и готовые решения на основе самого движка: персистентные очереди, федеративные запросы, сетевые диски для виртуальных машин (Yandex Network Block Store) и др.
YDB используется в Маркете, Такси, Финтехе, Алисе и других сервисах Яндекса. Мы уже умеем обрабатывать миллионы запросов в секунду и надёжно хранить петабайты данных. На базе YDB построены решения для доставки платёжных данных в биллинг Яндекса и хранения логов в Yandex Cloud.
Команда автоматизации управления распределёнными системами занимается эксплуатацией YDB, тиражированием облаков, автоматизирует развёртывание БД (кластер по кнопке), разрабатывает внутреннюю платформу для нагрузочного тестирования и YDB as a service. Наша глобальная цель — сделать YDB максимально отказоустойчивой и масштабируемой.
Задачи:
-
Разработка отказоустойчивой инфраструктуры YDB и вокруг неё:
Наши продукты постоянно развиваются, и мы масштабируемся вместе с ними, поэтому хотим запускать новые кластеры «по кнопке» и добиться zero downtime при миграции кластеров. Вместе с этим мы создаём платформу для нагрузочного тестирования YDB (в том числе для переезда на процессоры AMD), внедряем практики IaC (Infrastructure as Code) при реализации CI/CD-процессов.
-
Создание Internal Developer Platform:
Мы улучшаем внутреннюю инфраструктуру для разработчиков YDB, чтобы упростить их работу с базой данных, и делаем собственный Terraform Provider для разработки YDB as a Service в Yandex Cloud и внутри Яндекса. Создаём собственную систему деплоя на основе стратегии blue-green deployment для удобства разработчиков и минимизации рисков при внедрении новых фич.
Одна из наших задач — обеспечение непрерывного релизного процесса YDB с возможностью отката за минуту!
-
Универсальный деплой YDB в различных инсталляциях:
Сейчас YDB развёртывается в Yandex Cloud, внутреннем облаке Яндекса и на железных серверах, но механика развёртывания в каждой среде своя. Мы хотим это изменить.
Наша цель — сделать так, чтобы развёртывание и обновление баз данных не зависело от среды. Для этого мы развиваем YDB Control Plane — сервис, который управляет жизненным циклом баз данных внутри Яндекса. Вам предстоит научить его взаимодействовать с Yandex Cloud, Yandex Deploy и Baremetal, чтобы для YDB не было разницы, где разворачиваться.
-
Миграция сервисов в Docker и Kubernetes:
У YDB много особенностей, которые усложняют процесс миграции. Например, мы не используем файловую систему и работаем с дисками напрямую, как с блочными устройствами (поэтому мы сами управляем записью и чтением данных и гарантируем скорость и надёжность). Или для более равномерной нагрузки мы используем так называемую client-side-балансировку. Всё это потребовало разработки различных инструментов и сервисов. Kubernetes — один из них.
-
Умеете и хотите писать код на Go или Python (можно даже на С++);
-
Ориентируетесь в Linux на уровне администратора (например, Ubuntu или Debian, CentOS, Astra Linux);
-
Ориентируетесь в TCP/IP-модели, имеете представление о протоколах HTTP и gRPC.
-
Работали с K8s, Terraform, Ansible;
-
На базовом уровне знакомы с iptables.