Российская Kubernetes-платформа Deckhouse: полноценная альтернатива?

Логотип компании
Российская Kubernetes-платформа Deckhouse: полноценная альтернатива?
Разбираемся, как устроена платформа и какие у нее возможности для автоматизации обслуживания Kubernetes-кластера.

Многие современные приложения «живут» в контейнерах — виртуализированных средах, которые запускаются поверх ядра операционной системы сервера. В каждом контейнере работает один экземпляр приложения: в нем содержится бинарный файл со всеми необходимыми зависимостями и средой выполнения.

Контейнер абстрагирован от физической инфраструктуры, поэтому его можно запускать хоть на сервере, хоть на виртуальной машине, — в этом главное удобство технологии. А еще контейнеры можно быстро масштабировать. Например, если во время сезонной распродажи у сайта резко возрастает количество посетителей, можно увеличить число контейнеров, в которых развернуты экземпляры сайта, и он выдержит нагрузку (при условии, конечно, запаса физических мощностей).

Чтобы автоматизировать управление контейнеризированным приложением, нужен оркестратор контейнеров — такой как Kubernetes (также используется название K8s). Это ПО с открытым кодом, которое создавалось в начале 2010-х в Google под названием Borg, а в 2014 году стало общедоступным уже под нынешним названием.

Существуют и другие оркестраторы — например, Docker Swarm, Apache Mesos, Nomad. Однако именно Kubernetes признан «стандартом индустрии».

«Ванильный» Kubernetes vs платформа

Теоретически, чтобы начать пользоваться Kubernetes, достаточно скачать дистрибутив с GitHub, прочитать документацию и развернуть кластер. Звучит просто, но на деле всё куда сложнее. Kubernetes — трудная в изучении технология главным образом из-за большого количества абстракций и сущностей, с которыми приходится иметь дело. К тому же одного лишь «ванильного» Kubernetes (то есть Open-Source-дистрибутива) недостаточно: для реальной работы нужна интеграция со сторонними решениями, например с системой мониторинга. В итоге, чтобы запустить и поддерживать средненагруженный кластер Enterprise-уровня, требуется два-три квалифицированных DevOps-инженера на полный рабочий день. Не всем компаниям это по плечу.

Альтернатива «ванильной» версии K8s — полноценная платформа на ее основе, в которой многие компоненты кластера уже преднастроены, а сторонние решения интегрированы и готовы к работе. Платформа в разы уменьшает количество ручных манипуляций и настолько упрощает обслуживание Kubernetes-кластера, что этим может заниматься один администратор или разработчик даже без опыта работы с K8s.

Из популярных зарубежных Kubernetes-платформ можно назвать OpenShift от RedHat, Rancher от SUSE, VMware Tanzu. В России тоже есть решение подобного класса — Deckhouse, которое разрабатывает компания «Флант».

Первая Kubernetes-платформа в России

«Флант» предлагает целый спектр DevOps-услуг, а также разрабатывает cloud-native-инструменты для обслуживания контейнеризированных приложений. Компания известна своей экспертизой в Kubernetes и приверженностью к ПО с открытым кодом.

Чтобы упростить управление кластерами своих клиентов, «Флант» использовала готовые Open-Source-решения и разрабатывала собственные, для чего была выделена R&D-команда. Постепенно у инженеров компании сформировался набор внутренних инструментов для автоматизации задач, связанных с Kubernetes. В итоге эти инструменты превратились в полнофункциональную платформу.

Официально компания представила Deckhouse летом 2021 года, после трех с половиной лет тестирования в реальных проектах, отладки и доработки. Для «Фланта» Deckhouse сегодня — основной инструмент управления Kubernetes-инфраструктурой клиентов: с его помощью небольшое число специалистов поддерживает работу более чем 200 Kubernetes-кластеров, в которых развернуто свыше 3000 приложений.

Почти сразу после публичного релиза платформа была сертифицирована фондом CNCF ( Cloud Native Computing Foundation), а в конце 2021-го Deckhouse вошла в ​​единый реестр российского ПО.

Deckhouse — решение с открытым кодом. Есть три варианта поставки:

  • Community Edition — бесплатная версия платформы с ограниченной функциональностью и поддержкой от сообщества. Подходит для опытных инженеров и разработчиков, знакомых с Kubernetes.

  • Enterprise Edition — коммерческая версия с полным набором модулей, поддержкой от «Фланта» и гарантированной доступностью. Подходит для компаний, в которых штатная команда инженеров, помимо обслуживания K8s-кластера, занимается и другими задачами.

  • Managed Kubernetes — услуга по поддержке Kubernetes-инфраструктуры исключительно силами команды «Фланта». Предоставляется на основе Deckhouse Enterprise Edition.

Ключевые особенности Deckhouse

Готовая платформа. В состав Deckhouse входят актуальная версия Kubernetes и Open-Source-компоненты для различных задач: например, nginx — для балансировки трафика; cert-manager — для управления сертификатами; Prometheus и Grafana — для мониторинга кластера. Все компоненты преднастроены и интегрированы между собой. Готовый к продакшен кластер K8s можно развернуть менее чем за десять минут.

На схеме ниже представлены Platform Level и Cluster Level — уровни, на которых непосредственно работает Deckhouse, внутри — используемые технологии. В блоке Infrastructure Level — варианты поддерживаемой инфраструктуры.

Российская Kubernetes-платформа Deckhouse: полноценная альтернатива?. Рис. 1

Функциональные возможности Deckhouse и поддерживаемые технологии

Совместимость с любой инфраструктурой. Deckhouse работает в публичных облаках — AWS, Azure, GCP, «Яндекс.Облако» и др., а также на bare-metal-серверах, виртуальных машинах и в приватных облаках. Пользователь не привязан к поставщику инфраструктуры: это может быть облачный провайдер, коммерческий дата-центр с выделенными серверами или собственные серверы. Более того, кластеры могут быть развернуты в облаках разных поставщиков.

Deckhouse обеспечивает легкую миграцию рабочих нагрузок между кластерами, развернутыми на разной инфраструктуре. Для разработчика инфраструктура — просто абстракция, выкат приложения не зависит от того, что «внизу» — серверы или виртуальные машины.

Максимальная автоматизация (NoOps-подход). Поскольку «Фланту» приходится обслуживать множество клиентских кластеров, разработчики платформы сфокусировались на том, чтобы автоматизировать большую часть процессов администрирования. Проще говоря, платформа во многом работает «сама», то есть не требует постоянного контроля и участия со стороны Operations-команды. Системное и базовое ПО Kubernetes, а также все дополнительные компоненты управляются автоматически. Полностью автоматизирован и процесс обновления Deckhouse. Можно сказать, что платформа реализована согласно принципу NoOps: для управления ИТ-системой не требуется отдельной команды инженеров.

Отличие платформы от EKS / AKS / GKE

Крупные облачные поставщики предлагают управляемые Kubernetes-сервисы в своих облаках: Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS) и др. Такие сервисы относятся к услугам типа Kubernetes as a service (KaaS). Как и платформа, KaaS — подходящее решение для компаний, которые не готовы самостоятельно администрировать Kubernetes, – управление кластером здесь во многом автоматизировано.

Однако у Kubernetes-платформ есть ряд преимуществ над KaaS. Отметим самые важные (на примере той же Deckhouse):

  1. Больше функций. Кроме «ванильного» K8s, платформа включает в себя дополнительные компоненты для балансировки трафика, мониторинга, безопасного доступа и других задач. KaaS-поставщики предлагают только «ванильный» K8s.

  2. Более высокий уровень автоматизации. Платформа сама управляет, настраивает и обслуживает компоненты кластера и дополнительные компоненты. В KaaS этим приходится заниматься вручную.

  3. Отсутствие привязки к поставщику. Как уже говорилось, платформа не зависит от поставщика инфраструктуры. В случае KaaS пользователь привязан к его облаку и не может перенести кластер куда-то еще.

  4. Действительно автоматическое обновление. Платформа сама обновляет K8s-кластер и все его компоненты. При этом большая часть обновлений не требует maintenance-окон, так как выполняется бесшовно. KaaS-поставщик обновляет только управляющий слой (Control Plane) кластера, обновлением остальных компонентов занимается пользователь.

  5. Единый API. В случае платформы управление кластером организовано через API самого K8s. При этом можно использовать «родную» утилиту kubectl или сторонние (типа Helm). В свою очередь, у каждого поставщика KaaS есть собственные инструменты управления (API, CLI, веб-интерфейс).

У KaaS-сервисов тоже свои плюсы:

  1. Готовое надежное облако. Пользователь получает серверные ресурсы у проверенного провайдера и не думает о том, как создавать и поддерживать инфраструктурный слой для своего кластера – об этом уже позаботился поставщик KaaS.

  2. Удобная интеграция с внутренними сервисами. Кроме самого Kubernetes, провайдеры предоставляют дополнительные сервисы в своем облаке (например, для мониторинга и сбора логов). Их можно быстро подключить, они не требуют сложной настройки и легко интегрируются с существующим кластером. Правда, обычно за эти сервисы приходится доплачивать — в отличие от платформы, где они поставляются «в коробке».

Подытожим:

  • Платформа Deckhouse — готовое решение для работы с Kubernetes, подходит для компаний, у которых низкоуровневая эксплуатация K8s не относится к приоритетным бизнес-задачам.

  • Для обслуживания платформы не нужна отдельная команда, в большинстве случаев справится один опытный инженер по эксплуатации или разработчик.

  • Deckhouse не привязана к поставщикам инфраструктуры, а значит, кластер можно разворачивать там, где удобнее (и дешевле). Можно развернуть несколько кластеров в разных дата-центрах и реализовать DRP (disaster recovery plan).

  • Пользователь не привязан к платформе: в любой момент кластер можно вывести из-под управления Deckhouse или перейти с платной версии Enterprise Edition на бесплатную Community Edition.

Напоследок добавим, что многие компании в России вынуждены искать замену решениям вроде OpenShift и Rancher. Учитывая технические возможности и соответствие требованиям регулятора, платформу Deckhouse можно считать полноценной альтернативой.

Опубликовано 08.06.2022

Похожие статьи