Kubernetes в облаках: два сервиса De Novo для контейнерных инфраструктур
2024-04-01
De Novo продолжает разрабатывать и выводить на рынок новые облачные услуги. В начале 2024 года клиентам стали доступны сервисы для работы с кластерами Kubernetes – HCI и KaaS . Что собой представляют, какие возможности открывают и почему это важное событие для украинского рынка, мы и поговорим.
Начнем с того, что в мире все активнее развивается контейнерный подход к построению программных инфраструктур. Его используют компании и организации практически любых сфер и направлений – от маленьких стартапов до гигантов вроде Google, Spotify, Airbnb . Контейнерная виртуализация заняла прочные позиции в области разработки и использования программного обеспечения. По мере роста популярности, накапливаются и сложности решать которые помогают, в частности, новые облачные сервисы De Novo – Hosted Container Infrastructure (HCI) и Kubernetes as a Service (KaaS).
Монолиты, контейнеры, кластеры… несколько слов о базовых понятиях
Для начала немного истории и основных терминов. Долгое время доминирующей, при разработке программных продуктов любого уровня, была монолитная архитектура. Это подход при котором все составляющие системы собраны в единый процесс. Все компоненты программы работают в одном экземпляре и используют одни и те же ресурсы. Монолитная архитектура относительно проста в разработке, развертывании и управлении, но имеет ряд потенциальных ограничений. Обычно к ним относят невысокие показатели гибкости, масштабируемости, а иногда и надежности, являющиеся следствием самого подхода, лежащего в основе архитектуры. В определенный момент стало понятно, что монолитная архитектура не в состоянии решать все вопросы, возникающие перед разработчиками.
Поэтому в начале 2000-х параллельно с процессом проникновения гипервизорной виртуализации на массовый рынок начал развиваться другой, "контейнерный" подход к разработке ПО. Контейнеры представляют собой небольшие пакеты программного обеспечения, содержащие все необходимое для запуска программы, включая код, библиотеки, данные. В контейнере можно запустить практически любое ПО или сервисы: веб-приложения, базы данных, игры, инструменты DevOps и т.д.
Удобство здесь заключается в определенной автономности таких структур — контейнеры можно легко создавать, добавлять, удалять, переносить без ущерба для работы всей системы. Это гораздо удобнее, чем в случае монолитной архитектуры, где изменение одного компонента приводит к изменению работы всех других составляющих. Контейнеры относительно просты в создании и управлении, что позволяет снизить сложность разработки и эксплуатации ПО. Они эффективно используют аппаратные ресурсы, что часто помогает снизить затраты. К тому же контейнеры могут запускаться на любой виртуальной машине, поддерживающей соответствующую программную среду, что упрощает развертывание и масштабирование программ.
Заметим, что контейнеры отличаются от традиционных виртуальных машин. В частности, для их работы не требуется гипервизор, используется только операционная система и соответствующая программная среда. Разница между монолитным, виртуализированным (гипервизорным) и контейнерным подходами представлена на рис.1.
Поскольку статья посвящена последнему аспекту, мы не будем здесь рассматривать детали и отличия каждого из трех упомянутых подходов, а уделим внимание контейнерам. Преимуществ у них много, но есть, конечно же, и свои недостатки. К примеру, контейнерные инфраструктуры могут насчитывать десятки, сотни и даже тысячи объектов, которыми необходимо управлять в режиме реального времени, соответственно, нужны надежные инструменты настройки и оркестрации. Также жизненно необходимо обеспечивать балансировку нагрузки на серверы, хранилища, сети. Надо отслеживать и динамично регулировать производительность, оптимизировать потребление ресурсов, обеспечивать безопасность.
Все это обычно проще делать для монолитных приложений (к тому же далеко не все ПО, особенно старое, поддерживает технологии контейнеризации). Поэтому сейчас оба подхода – монолитный и контейнерный – не столько конкурируют, сколько дополняют друг друга и нет смысла спорить, какой из них лучше. Всё зависит от задачи. Однако идея контейнеров показалась настолько перспективной, что ИТ-сообщество стало активно разрабатывать и продвигать различные программные инструменты (как открытые, open source, так и «проприетарные»), которые помогли бы облегчить работу с контейнерами и устранить существующие недостатки.
Самыми известными разработками такого рода являются платформы Dockers и Kubernetes (которую часто называют более коротко – K8s). Первая предназначена для создания и запуска контейнеров, вторая для их оркестрации. С помощью Dockers можно быстро и эффективно создавать, тестировать и развертывать программы в контейнерах. Kubernetes позволяет масштабировать контейнерные системы, управлять ими, координировать и планировать их работу. Еще одним преимуществом контейнерных инфраструктур является то, что они хорошо функционируют в облаках — частных, коллективных, гибридных, обеспечивая еще большую гибкость и удобство работы (рис. 2).
«Kubernetes уже стал стандартом де-факто в мире контейнерной виртуализации, микросервисных архитектур и парадигмы DevOps. Многие организации рассматривают Kubernetes как почти безальтернативную платформу разработки и запуска Cloud Native Apps».
Геннадий Карпов, директор по технологиям De Novo
Сложность в том, что у больших и даже средних организаций контейнерные инфраструктуры разрастаются очень быстро и управлять необходимо уже самими кластерами Kubernetes. Для решения этой комплексной задачи также есть инструменты. Один из самых мощных функциональных и популярных – платформа VMware Tanzu Kubernetes Grid (табл. 1).
Табл. 1 . Место VMware Tanzu Kubernetes Grid в процессе работы с контейнерными инфраструктурами
Docker | Kubernetes (K8s) | VMware TKG | |
Основная задача | Создание контейнеров | Оркестрация контейнеров | Управление кластерами контейнеров Kubernetes |
Интеграция с vSphere | Нет | Нет | Да |
Управление жизненным циклом приложений | Нет | Да | Да |
Мониторинг, журналирование | Нет | Да | Да |
Безопасность | Нет | Ограничено | Да |
Но, для надежной работы самой TKG также нужна подходящая, многослойная и устойчивая к отказу программно-аппаратная инфраструктура, создание которой это тоже отдельная, сложная и очень затратная задача. По данным одного из новых исследований, людей, знаний и квалификации в вопросах инфраструктур контейнерной виртуализации не хватает многим компаниям (рис. 3).
Но теперь доступ к полному спектру инструментов управления кластерами Kubernetes можно получить из облака, как услугу, то есть легко просто и без лишних затрат. Первым облачным оператором в Украине, предлагающим подобный сервис своим клиентам, стала компания De Novo , которая вывела на рынок сразу два сервиса, ориентированых на разные группы пользователей – HCI и KaaS .
Лучшие мировые практики для украинских пользователей
В основе сервисов HCI и KaaS , относящихся к облачным платформам класса PaaS , лежат очень близкие инструменты и технологии (рис. 4). Основная разница в том, что первый разворачивается на ресурсах частного облака Novo HPI («частное облако, как сервис» ), а второй использует мощности коллективного облака оператора (рис. 5 ).
В случае HCI заказчик получает ресурсы в эксклюзивное использование, а используя KaaS – делит мощности коллективного облака с «соседями». Оба сервиса, хотя и немного отличаются в деталях реализации (о которых поговорим в следующем разделе), обеспечивают пользователям очень близкую функциональность, надежность и удобство использования – на уровне таких известных решений как AWS Elastic Kubernetes Service , Google Kubernetes Engine , MS Azure Kubernetes Service .
Важно, что впервые подобную функциональность мирового уровня на украинском рынке предлагает национальный оператор облаков — компания De Novo .
Что может HCI
Сервис Hosted Container Infrastructure, кроме того, что развернут на ресурсах платформы HPI и построен в соответствии с эталонной архитектурой VMware на базе VMware TKG, дает возможность управления K8s -кластерами (и даже отдельными виртуальными машинами) непосредственно из окружения Kubernetes, без необходимости знания деталей инфраструктуры и владения инструментами VMware vSphere (которая используется в качестве базовой IaaS -платформы). Глубокая интеграция с IaaS-инфраструктурой облака De Novo позволяет использовать IaaS -ресурсы — системы хранения, сети, балансировку нагрузки, GPU и т.д. – самым эффективным образом, без лишних программных слоев, стандартными для Kubernetes средствами (CSI, CNI, CPI , GPU-Operator).
Крайне важно то, что TKG не содержит каких-либо проприетарных компонентов и не создает “vendor lock”. Базовая технология TKG – Kubernetes Cluster API является открытой технологией сообщества Kubernetes и используется, в том числе, как основа сервисов класса managed Kubernetes от гиперскейлеров.
Вот лишь краткий список того, какие возможности открывает HCI. К примеру, пользователь сможет:
- Создавать изолированные окружения (тенанты), устанавливать для них лимиты потребления ресурсов, предоставлять к ним доступ для отдельных команд DevOps-инженеров и разработчиков.
- Использовать образы немодифицированных Kubernetes и других open-source компонентов, подготовленных, верифицированных , подписанных и поддерживаемых (в том числе обновляемых) VMware для развертывания кластеров Kubernetes и сопутствующих сервисов.
- Управлять (создавать, конфигурировать, масштабировать, обновлять, удалять) кластерами Kubernetes , виртуальными машинами, сетями, ingress/egress и другими объектами инфраструктуры декларативным методом, используя Kubernetes Cluster API в сочетании с kubectl и YAML.
- Использовать уже интегрированные в платформу сервисы Harbor , Contour , MinIO , Velero , Prometeus , Graphana , FluentBit , Carvel , Sonobouy . Cert-Manager , External DNS (список постоянно расширяется).
- Использовать встроенную в платформу функциональность горизонтального автомасштабирования кластеров Kubernetes (autoscaling)
- Значительно уменьшить непроизводительную нагрузку на DevOps-инженеров за счет максимальной автоматизации процессов управления жизненным циклом кластеров Kubernetes и платформы в целом.
И, конечно, каждый клиент получает доступ к более высокому уровню технической поддержки (production grade support) для всего технологического стека в режиме 24/7.
HCI и KaaS для поддержки цифровой трансформации
Новые возможности, которые открывает для пользователей сервис De Novo Hosted Container Infrastructure очень разнообразны. Например, вы планируете или реализуете трансформацию прикладного ландшафта от унаследованной архитектуры в Cloud Native. Конечно, у вас возникнет потребность в надежной платформе, которая сможет обеспечить функционирование бизнес-приложений с обоими типами архитектуры одновременно.
Или, скажем, вы уже используете сервисы managed Kubernetes одного или нескольких мировых операторов, таких как Google Cloud , AWS, Microsoft Azure. Но при этом вас не устраивает стоимость или уровень предсказуемости затрат на услуги.
Возможно, вы бы хотели снизить объем непрофильной нагрузки на DevOps-инженеров, избавить их от необходимости разбираться в глубоких слоях технологического стека. Или, допустим, пора минимизировать риски неоправданных затрат, связанных с ошибками планирования, необходимостью поддержки резерва ресурсов при внезапном или периодическом росте потребностей в мощностях .
Бывает и так, что компания уже развернула инфраструктуру Kubernetes своими силами, используя открытые (open source) компоненты, но стабильность и производительность такого решения оставляет желать лучшего, а трудовые затраты на поддержку и развитие системы неоправданно высоки. Или есть регуляторные ограничения или корпоративные политики, запрещающие использование публичных облаков или хранение/обработку информации вне периметра организации (HCI может быть установлена в периметре организации заказчика).
В этих и многих других случаях, мешающих процессу цифровой трансформации организации, сервис De Novo HCI будет эффективным ответом на вызовы.
Что касается сервиса KaaS , то по своим основным возможностям он не уступает HCI, но его базой является коллективное облако. В основе KaaS также лежит технологический стек VMware Tanzu Kubernetes Grid и, дополнительно, программа Cloud Director Container Services Extension, позволяющая управлять полным жизненным циклом K8s-кластеров непосредственно из графического интерфейса операционного портала облака Cloud Director или через vCD API (с использованием, например, terraform). KaaS бесконфликтно сосуществует и интегрируется с «обычными» (IaaS) виртуальными дата-центрами в Cloud Director.
Как и в случае с HCI, для KaaS реализована глубокая интеграция с инфраструктурой IaaS, а также доступна техподдержка уровня production grade support. Для удобства восприятия сравним некоторые параметры HCI и KaaS в таблице 2 .
Табл. 2. Сравнение основных параметров облачных сервисов De Novo HCI и KaaS
Как видите, каждый сервис имеет преимущества и особенности, поэтому HCI и KaaS можно рассматривать как взаимодополняющие услуги со своими сферами применения и целевыми аудиториями, даже в рамках одной организации.
Какой сервис подойдёт для ваших задач? Можно попробовать и решить!
Практика – критерий истины
Прежде чем решить, что подходит именно вам, оба сервиса можно проверить на реальных задачах. Для KaaS есть стандартная программа бесплатного тестирования облака «Try & Buy».
Что касается HCI, то поскольку это более сложное и комплексное решение, то здесь есть несколько опций. Для начала можно договориться о подробной технической демонстрации сервиса с использованием полнофункционального экземпляра HCI. Архитекторы и инженеры De Novo за полтора-два часа ответят на все технические вопросы. Также можно протестировать полнофункциональный экземпляр на реальных задачах в течение нескольких недель.