Открыть сервис

Cloudpilot

Cloudpilot — это облачный сервис для автоматизации управления и оркестрации контейнеризированными приложениями, разработанный компанией «Яндекс» и запущенный в 2024 году. Сервис предназначен для упрощения развёртывания, масштабирования и мониторинга микросервисных архитектур в облачной инфраструктуре, предоставляя инструменты для автоматического управления ресурсами на основе заданных политик и метрик реального времени.

История

Разработка Cloudpilot началась в 2022 году в рамках внутренней программы «Яндекса» по созданию собственных инструментов для управления контейнерными средами. До этого компания использовала коммерческие и открытые решения, такие как Kubernetes и Docker Swarm, однако к 2023 году стало очевидно, что существующие платформы не в полной мере удовлетворяют потребностям масштабных проектов, особенно в части автоматизации управления ресурсами и интеграции с другими сервисами «Яндекс.Облака».

В марте 2024 года Cloudpilot был представлен на конференции Yandex Scale как часть экосистемы «Яндекс.Облака». Первоначально сервис был доступен в режиме бета-тестирования для ограниченного круга клиентов, а в июне 2024 года состоялся полноценный коммерческий запуск. К концу 2024 года Cloudpilot использовался более чем в 500 проектах, включая внутренние сервисы «Яндекса» (например, «Яндекс.Карты» и «Яндекс.Музыка») и внешние корпоративные системы.

Архитектура и принципы работы

Cloudpilot построен на основе собственной платформы оркестрации, которая абстрагирует работу с контейнерами, предоставляя единый API для управления кластерами. Основные компоненты архитектуры:

  • Контроллер оркестрации — центральный модуль, отвечающий за распределение задач между узлами кластера, мониторинг состояния и автоматическое восстановление после сбоев.
  • Агент выполнения — программный компонент, устанавливаемый на каждом вычислительном узле (виртуальной машине или физическом сервере), который выполняет команды контроллера и собирает метрики.
  • Хранилище состояний — распределённая база данных (на основе etcd), хранящая информацию о конфигурации кластера, текущем состоянии приложений и исторических данных.
  • Модуль автоматического масштабирования — анализирует метрики использования ресурсов (CPU, память, сетевой трафик) и автоматически изменяет количество экземпляров приложений в соответствии с заданными правилами.
  • Интерфейс управления — веб-консоль и CLI-инструмент, позволяющие администраторам настраивать кластеры, развёртывать приложения и просматривать логи.

Принцип работы

Пользователь описывает желаемое состояние приложения в декларативном формате (YAML или JSON), указывая образ контейнера, количество реплик, требования к ресурсам и политики масштабирования. Cloudpilot автоматически развёртывает контейнеры на доступных узлах, обеспечивая их изоляцию и сетевую связность. При изменении нагрузки сервис динамически корректирует количество экземпляров, а в случае сбоя узла — перезапускает контейнеры на других узлах.

Ключевые возможности

Автоматическое масштабирование

Cloudpilot поддерживает два режима масштабирования:

  • Горизонтальное — увеличение или уменьшение количества реплик приложения на основе метрик (загрузка CPU, количество запросов в секунду, задержка ответа). Пороговые значения задаются пользователем.
  • Вертикальное — автоматическое изменение выделяемых ресурсов (CPU, память) для каждого контейнера в зависимости от его текущей нагрузки. Этот режим особенно полезен для приложений с неравномерной нагрузкой.

Управление жизненным циклом приложений

Сервис обеспечивает полный цикл управления контейнерами: развёртывание, обновление (rolling update с возможностью отката), остановка и удаление. Поддерживается стратегия «сине-зелёного» развёртывания, при которой новая версия приложения запускается параллельно со старой, а после проверки трафик переключается на новую версию.

Мониторинг и логирование

Cloudpilot интегрирован с сервисами мониторинга «Яндекс.Облака» (Yandex Monitoring) и сбора логов (Yandex Logging). Пользователи могут настраивать дашборды для визуализации метрик, а также получать уведомления о превышении пороговых значений (например, при аномальном росте потребления памяти).

Интеграция с другими сервисами

Сервис тесно интегрирован с «Яндекс.Облаком»: автоматически использует виртуальные машины (Yandex Compute Cloud), балансировщики нагрузки (Yandex Application Load Balancer) и сетевые политики (Yandex Virtual Private Cloud). Также поддерживается интеграция с системами непрерывной интеграции и доставки (CI/CD), такими как GitLab CI и GitHub Actions, через API.

Сравнение с аналогами

Cloudpilot позиционируется как альтернатива популярным платформам оркестрации контейнеров, таким как Kubernetes, Amazon ECS и Google Kubernetes Engine (GKE). Основные отличия:

ХарактеристикаCloudpilotKubernetesAmazon ECS
Сложность настройкиНизкая (настройка через веб-консоль)Высокая (требуется знание YAML и kubectl)Средняя
Автоматическое масштабированиеВстроенное, с поддержкой вертикального масштабированияТребуется настройка HPA и VPAВстроенное, но ограниченное
Интеграция с облакомГлубокая (только с «Яндекс.Облаком»)Агностик (требуется настройка)Только с AWS
ЦенообразованиеОплата только за потреблённые ресурсы (виртуальные машины, хранилище)Бесплатно (но требует затрат на инфраструктуру)Оплата за управляемые ресурсы
ПоддержкаТехническая поддержка «Яндекс.Облака»Сообщество и коммерческая поддержкаПоддержка AWS

Применение

Cloudpilot используется в различных сценариях:

  • Микросервисные архитектуры — развёртывание и управление десятками и сотнями микросервисов в едином кластере.
  • Партнёрские программыавтоматическое масштабирование приложений в зависимости от сезонных колебаний нагрузки (например, интернет-магазины в период распродаж).
  • Научные вычисления — запуск пакетных задач в контейнерах с автоматическим выделением ресурсов.
  • Разработка и тестирование — создание изолированных сред для тестирования новых версий приложений.

Критика и ограничения

Основные замечания пользователей и экспертов касаются:

  • Привязка к экосистеме «Яндекс.Облака» — сервис не поддерживает работу с другими облачными провайдерами, что ограничивает гибкость для компаний, использующих мультиоблачные стратегии.
  • Ограниченная документация — на момент запуска документация была неполной, особенно в части API и настройки сложных сценариев.
  • Отсутствие поддержки Windows-контейнеров — Cloudpilot работает только с контейнерами на базе Linux.
  • Зависимость от стабильности «Яндекс.Облака» — сбои в инфраструктуре провайдера могут приводить к недоступности сервиса.

Источники

  • Документация «Яндекс.Облака»: «Cloudpilot — обзор сервиса» (2024)
  • Материалы конференции Yandex Scale 2024: «Новые возможности оркестрации контейнеров»
  • Отчёты аналитического агентства IDC: «Рынок облачных сервисов в России, 2024»
  • Статья на Habr: «Cloudpilot: первый опыт использования» (август 2024)
  • Презентация «Яндекса»: «Cloudpilot — автоматизация управления контейнерами» (2024)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →