Ищем разработчика базовой инфраструктуры

Ищем разработчика базовой инфраструктуры

Дима Липин, руководитель службы базовой инфраструктуры Яндекс.Облака

Привет!

Наша команда ищет разработчика базовой инфраструктуры для обслуживания внутреннего облака Яндекса. Это один из крупнейших в России геораспределенных MAAS (Metal-as-a-Service), который насчитывает десятки тысяч физических серверов (нод). Во внутреннем облаке развернуто большинство сервисов Яндекса: от Поиска до MapReduce. При этом одной ноде могут достаться разные нагрузки, так что наша команда должна не только обеспечить работоспособность ноды, но и ограничить влияние разных нагрузок друг на друга.

Metal-as-a-Service

Наша цель — предоставить внутреннему облаку Яндекса работоспособные вычислительные мощности. Для этого нужно уметь все: от ввода ноды в эксплуатацию до изоляции контейнеров по ресурсам. Какие сервисы для этого необходимы?

Начнем с «низких» энергий, запускаемых непосредственно на ноде:

  1. Ядро Linux: мы стараемся поддерживать кластер в актуальном состоянии и учимся обновлять весь парк нод хотя бы раз в полгода.
  2. Система контейнерной изоляции Porto поддерживает максимально надежные и гибкие конфигурации (например, вложенные контейнеры).
  3. Разнообразные нодовые агенты используются для разных задач: от настройки сети до управления eBPF для форсирования сетевых политик.

Поднимаемся к переходным и «высоким» энергиям:

  1. Host Manager управляет хостовыми конфигурациями (сотни различных комбинаций пакетов и настроек хоста).
  2. Собственный HaaS автоматизирует рутину по эксплуатации нод от ввода до демонтажа, в том числе все плановые работы вокруг нод.
  3. Демон Maxwell служит для перезагрузки, переустановки и обновления прошивки нод в фоновом режиме без последствий для пользователя.

Наконец, переходим к мониторингу:

  1. Juggler предназначен для событийного мониторинга.
  2. Netmon нужен для мониторинга связности сети.
  3. Тентаклей (тоже наш внутренний инструмент) используется для blackbox-мониторинга и вычисления показателей доступности кластера.

Чем занимается команда инфраструктуры

  1. Мы предоставляем механизмы для разделения ресурсов между контейнерами:

— развиваем свою систему контейнерной изоляции Porto, в которой сотни тысяч контейнеров.

— поддерживаем иерархические контейнеры, накладываем ограничения на процессоры, память, диски (в том числе на вход и выход), сеть.

2. Оказываем системную поддержку:

— боремся с нетривиальными проблемами «железа» и ядер на кластере.

— внедряем новые платформы, портируем наше ядро для симуляции сетевого стека, участвуем в тестировании нового оборудования.

3. Автоматизируем эксплуатацию кластера:

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

4. Настраиваем событийный, сетевой и blackbox-мониторинг.

5. Активно взаимодействуем с NOC, чтобы оптимизировать использование сети:

— форсируем сетевые политики, внедряем самовосстанавливающуюся сеть без задержек.

6. Используем стек: Python, Go, C++, Linux, eBPF, MongoDB и др.

Задачи, которые нам предстоит решить вместе с вами

1.    Распределение и использование ресурсов. Нужно научиться эффективно использовать имеющиеся у нас ресурсы. Для этого мы планируем увеличить объем полезной работы, которую выполняет нода, без ухудшения метрик запущенных на ней приложений — например, за счет запуска MapReduce на простаивающих мощностях. Чтобы этого добиться, надо поработать над механизмами распределения ресурсов и решить некоторые проблемы.

2.    Стабильность и надежность системы. Это одни из самых приоритетных показателей, которые нужно поддерживать на высоте одновременно с развитием и изменением компонентов облака. HaaS (Hardware-as-a-Service) можно считать единой точкой отказа, а он отвечает за доступность нод. Нужно вкладываться в безопасность сервиса, развивать интеграционное тестирование, упрощать систему, уменьшать долю рутины.

3.    Событийный мониторинг (Juggler), который по количеству событий и нотификаций растет на 50% в год. Нужно научиться контролировать этот рост, внедрить механизмы квотирования. Но даже после внедрения нужно быть готовым к росту — для этого мы работаем над масштабированием системы.

Кого мы ищем

Помните цитату из Стругацких: «Лично я вижу в этом перст судьбы — шли по лесу и встретили программиста. Мне кажется, вы обречены»? Вот так и мы: ищем тех, у кого глаза горят, кто готов вместе с нами на порядок улучшить базовую инфраструктуру сервиса.

Если у вас остались вопросы, напишите в телеграм мне @blackwithwhite или нашему рекрутеру Яне Вебер @IT_Yana.

Report Page