Deploy Platform

В команде Deploy Platform объединяем продукты, отвечающие за эксплуатацию и работоспособность внутреннего облака, в котором живут сервисы Яндекса, а также деплой и управление трафиком этих сервисов.

 
тыс.

сервисов живут во внутреннем облаке, в более чем 1 млн контейнеров

 
тыс.

релизов в сутки «катают» пользователи

 
Миллионы

ядер CPU — ёмкость внутреннего облака

 
млн RPS

обрабатывают наши балансировщики трафика

Собственные разработки

Управление сервисами

Управление сервисами

Не только запуск сервисов, но и всё необходимое, чтобы с ними работать: настройки балансировки, мониторинги, логи и интеграция с инструментами CI/CD

Traffic management

Traffic management

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

Эффективные решения

Сервис разрабатывает, внедряет и поддерживает решения разных уровней сложности.
Вот некоторые из них.

Деплой сервисов во внутреннем облаке

Всем командам Яндекса необходимо не только разрабатывать, но и эксплуатировать свои сервисы. Мы предоставляем единую точку входа как для управления настройками и релизом своего сервиса, так и для управления подачи трафика на него. Тесно интегрированы с системами observability, CI/CD, секретами и многим другим.

Особенности

  • Одна инсталляция системы деплоя на всю компанию (экономим силы команд на эксплуатацию).
  • Управляет как stateless-, так и stateful-сервисами, а также пользовательскими виртуальными машинами.
  • Используем Yandex Planner для эффективного планирования и распределения вычислительных мощностей.

Технологии

  • Языки программирования: Java, Python, C++, Go, TypeScript
  • Storage: YP (Yandex Planner) — для хранения конфигураций сервисов.

Infractl — инструмент унификации настроек инфраструктуры

Инфраструктура любого сервиса в Яндексе состоит из большого числа компонентов: от контейнеров в облаке и управляемых баз данных до настроек мониторинга и сетевых доступов. Каждый из этих компонентов имеет свою историю, пользовательский интерфейс и API.

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

Особенности

  • Предоставляет унифицированный API управления инфраструктурными ресурсами, а также реализует подход Infrastructure as Code c возможностью хранить все настройки сервиса в репозитории и управлять ими при помощи единых релизных механизмов.
  • Служит фундаментом для платформы разработчика (PaaS), позволяя поднимать в два клика новые приложения со всей необходимой инфраструктурой.
  • Предоставляет единый go-фреймворк для интеграции с инфраструктурными провайдерами; его используют разработчики отдельных компонентов для встраивания в единую экосистему.

Технологии

  • Языки программирования: Go, TypeScript.
  • Kubernetes® — используем как скелет для построения экосистемы API и контроллеров, управляющих ресурсами компонентов инфраструктуры.

Система контейнеризации Porto

В Яндексе великое множество разных сервисов, и все они должны как‑то уживаться на серверах. Чтобы изолировать сервисы друг от друга, мы сделали свою систему контейнеризации.

Она тесно интегрирована со всеми компонентами нашего облака, учитывает особенности пользовательских сервисов и инфраструктуры в Яндексе.

Особенности

  • Универсальная система контейнеризации промышленных масштабов, может использоваться где угодно, даже вне Яндекса.
  • Скрывает низкоуровневые абстракции ОС Linux для удобной настройки изоляции.
  • Умеет работать со вложенными контейнерами.

Технологии

  • Языки программирования: C++.
  • Linux cgroups, namespaces, mounts.

Технологический стек

Работаем с широким спектром технологий и языков, чтобы быстро и эффективно решать задачи.

C++

Эффективное решение для ситуаций, в которых производительность стоит на первом месте или есть необходимость работать как можно ближе к «железу». Также используется при разработке ядра Linux или его модулей

Java

Основной язык для наших систем деплоя

Go

Обеспечивает читаемость, быстроту написания кода, лёгкость в распараллеливании и приемлемую производительность

Python

Основной язык для ряда компонентов наших систем, а также для реализации ИИ-агентов

TypeScript

Современный стандарт фронтенда: обеспечивает высокую скорость разработки, удобную интеграцию с бэкендом и лёгкий рефакторинг приложений

Статьи и выступления
команды Deploy Platform

Делимся с сообществом знаниями и опытом и рассказываем, как у нас всё устроено.
Infrastructure as Code

Infrastructure as Code — разбираемся в терминах

Service Mesh

One mesh to rule them all: история внедрения Service Mesh

Kubernetes

Как мы нарушили все гайдлайны Kubernetes®

Буткемп в Deploy Platform

Новым коллегам мы предлагаем пройти буткемп, который поможет им выбрать команду по душе.

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