Привет! Я Руслан Савченко, руководитель разработки динтаблиц YTsaurus. Возможно, мы уже знакомы по курсам в Школе анализа данных (ШАД), интенсиву SRE Week или пересекались на конференции. Наша команда занимается разработкой и поддержкой сервиса YTsaurus в Яндексе и старается применять на практике лучшие идеи из областей разработки и эксплуатации больших систем. Чтобы работа сервиса динтаблиц YTsaurus стала более эффективной и надёжной, мы ищем SRE-инженера с фокусом на performance engineering.
Динтаблицы YTsaurus — это многопользовательская NewSQL-СУБД, развёрнутая на тысячи машин и обслуживающая много пользователей и проектов внутри Яндекса. К сервису предъявляются высокие требования по доступности и времени отклика. Динтаблицы можно использовать там, где ответ нужно получить за миллисекунды, а данные должны быть доступными при обновлениях и внезапных отключениях одной из локаций.
Эксплуатация такой большой и нагруженной системы требует, с одной стороны, хорошо построенных процессов надёжности, а с другой — большого количества низкоуровневых оптимизаций и выстроенных на разных уровнях степеней защиты от сбоев и перегрузок. Задачи по созданию таких решений относят к областям Site Reliability Engineering и Performance Engineering.
Архитектурно YTsaurus состоит из нескольких компонентов, каждый из которых реализован в парадигме тредпулов и файберов. Это не всегда эффективно и надёжно по CPU: во-первых, перемещение файбера между тредпулами приводит к задержкам, и при перегрузках эти задержки могут быть очень высоки, а во-вторых, конфигурация с выделенными тредпулами плохо подходит для запуска в контейнерах с малым числом ядер. Вам предстоит разобраться во внутренней архитектуре и оптимизировать сервис, чтобы снизить время обработки запросов.
Запросы в YTsaurus выполняются распределённо и, следовательно, чувствительны к сетевым задержкам. По имеющимся инструментам сложно понять, на каком уровне происходит задержка: где-то в стеке на стороне YTsaurus или в нижележащей инфраструктуре. Вам нужно реализовать средство мониторинга сетевых задержек на стороне YTsaurus, чтобы можно было понять, на какой стороне нужно искать причину долгой передачи данных.
Придумать и внедрить SLA для сервиса управления базами данных — непростая и творческая задача. Вам совместно с другими разработчиками предстоит придумать и внедрить контракт, который был бы понятен как эксплуатации YTsaurus, так и сервисам, хранящим свои базы данных в YTsaurus.
Будьте осторожны: если работодатель просит войти через Google, iCloud или Госуслуги, прислать код или пароль, запустить ПО или перевести деньги — это мошенники.