Философия NoOps: кому и зачем нужна автоматизация K8s «на максималках»
Привет, Хабр! Я Максим Еремин, руководитель направления развития продуктов beeline cloud, и сегодня я хочу рассказать о нашем новом сервисе Cloud Kubernetes Clusters, который мы предоставляем вместе с компанией «Флант». Обсудим, что это за сервис, кому стоит задуматься о передаче управления компонентами Kubernetes «автопилоту» и при чем здесь NoOps.
NoOps vs DevOps
Всё больше компаний переносят приложения на контейнерные платформы в облаке. Такой подход позволяет выстроить процесс разработки, управление обновлениями, повысить отказоустойчивость и сократить time-to-market. Однако в большинстве случаев облако предлагает базовые возможности «ванильного» Kubernetes, при этом многие задачи по конфигурированию и кастомизации остаются на стороне клиентов.
Здесь на помощь приходит NoOps. Эту концепцию предложил еще в 2011 году ведущий аналитик Forrester Майк Гуалтьери (Mike Gualtieri). В короткой (и провокационной) заметке он выдвинул тезис о том, что DevOps — это «шаг назад» в развитии ИТ-индустрии, а будущее — за подходом, при котором разработчикам вообще не нужно взаимодействовать с тестировщиками, администраторами и другими специалистами поддержки, а взамен — полагаться на предельную автоматизацию и возможности облака.
Тогда эта идея казалась утопичной, но развитие контейнеризации и появление Kubernetes привело к тому, что о NoOps заговорили всерьез. Правда, не в таком радикальном ключе, как предполагал автор термина: платформы, продвигающие NoOps-подход, действительно помогают избавить команды разработки и поддержки от рутины. Они могут автоматизировать операции по развертыванию и масштабированию инфраструктуры, управлять базовыми компонентами Kubernetes, фактически, перевести часть задач в режим автопилота. Но не предлагают полной замены поддержке — скорее, это продолжение и развитие философии DevOps.
Кому это нужно
Подход NoOps Kubernetes (или «автопилотируемого» Kubernetes) и соответствующие решения становятся актуальны, когда:
растет число требований к организации ИТ-инфраструктуры (по части безопасности, мониторинга, управления ролями, развертыванием приложений);
становится сложно выбирать из разнообразия решений, представленных на open-source рынке Kubernetes, а также «стыковать» их между собой;
повышаются запросы профильных сотрудников: от специалистов по ИБ, которых интересует безопасность конфигурации кластера, до DevOps’ов, которым может быть важна скорость запуска готового кластера, в том числе на отличающейся инфраструктуре, а также вопросы масштабирования и контроль за обновлениями;
не удовлетворяет базовый функционал, который предоставляется managed-сервисами из коробки — компании ищут платформенных решений;
растут масштабы использования Кubernetes-инфраструктуры.
Поэтому NoOps Kubernetes востребован в enterprise-секторе в сферах банкинга, ритейла, телекома: там, где есть необходимость в разработке и поддержке mission critical-приложений, которые, к тому же, чувствительны к динамическому масштабированию в зависимости от нагрузки. Кстати, такими сервисами интересуются не только B2C-компании, но и B2B — например, облачные провайдеры.
Что можем предложить мы
На нашем рынке «автопилотируемый» K8s предоставляет партнер beeline cloud, компания «Флант». К слову, она является одним из ведущих контрибьюторов в дистрибутив Kubernetes; в конце прошлого года коллеги из «Фланта» реализовали улучшение (Kubernetes Enhancement Proposal), которое вошло в версию 1.26. Их продукт — платформа Deckhouse, которая позволяет создавать Kubernetes-кластеры на любой инфраструктуре и обеспечивает управление ими.
В основе платформы лежит подход создания «автопилотируемой» инфраструктуры. Наша цель — минимизировать вовлечение инженеров в рутинные ручные операции управления кластерами Kubernetes. Например, если необходимо обновить кластер, платформа обеспечит автоматическое беспростойное обновление всех его компонентов. Deckhouse также проверит совместимость обновления с манифестами и подскажет инженеру, где необходимо внести изменения. Нам было важно обеспечить, с одной стороны, гибкость, максимально доступное количество модулей и возможность их конфигурирования под свои нужды, с другой — сделать так, чтобы все модули были преднастроены и интегрированы между собой.
— Екатерина Емельянова, менеджер по развитию продукта, «Флант»
Deckhouse лежит в основе нашего совместного решения — Cloud Kubernetes Clusters. «Флант» в данном случае отвечает за работу Deckhouse, а также за обновление Kubernetes, проверку на уязвимости всех сборок и модулей, которые идут в составе платформы. beeline cloud обеспечивает выполнение SLA по предоставлению решения в облаке, стабильность работы, безопасную инфраструктуру, на которой это решение развернуто, и возможность связать все с уже существующей инфраструктурой заказчика.
Работа в такой связке позволяет закрыть самые распространенные потребности: когда у клиента уже есть инфраструктура, но ему рядом нужен еще один Kubernetes, и все это дело нужно, например, «обвязать» VPN-сетью и предоставить как сервис. Без необходимости клиенту набирать инженеров, которые будут сами эти сети прокидывать.
А еще мы предоставляем компетенции: облачный провайдер — с точки зрения того, как интегрировать и внедрить Kubernetes во всю инфраструктуру клиента. «Флант» — с точки зрения того, как этому продукту работать на решение конкретных клиентских задач.
Kubernetes для больших и маленьких
До появления Cloud Kubernetes Clusters у нас в beeline cloud уже был сервис Kubernetes в облаке (Cloud Managed Kubernetes). Главное отличие между ними в том, что Kubernetes Clusters «заточен» на крупные компании, а Managed Kubernetes больше подходит небольшим проектам.
Cloud Managed Kubernetes — это мультитенантная история для маленьких заказчиков, которые хотят начать быстро пользоваться Kubernetes. Этот сервис ориентирован на клиентов, у которых нет задачи делать масштабное enterprise-приложение, зато есть задача хостить контейнеры и управлять ими из веба без сложных настроек — для выполнения типовых действий, с которыми может помочь Kubernetes.
Deckhouse, платформа, которая идет в составе услуги Kubernetes Clusters, нацелена на enterprise-клиентов. Это уже выделенный кластер, не мультитенантный. Запросы, на которые рассчитан Kubernetes Clusters, уже были у многих наших крупных клиентов: они спрашивали по поводу платформы, которая бы обеспечивала им, во-первых, простоту разработки приложений на микросервисах, во-вторых, все «enterprise-хотелки»: безопасность, работу с пользователями, автоматизацию процессов, в том числе и загрузку приложений, их эксплуатацию и мониторинг. Теперь мы предоставляем все это как коробочное решение, готовое под любого клиента, но с возможностью донастройки.
Вот несколько кейсов, когда крупной компании пригодится Cloud Kubernetes Clusters:
Хочется запускать новые кластеры быстрее — и дешевле
Один из частых случаев: компания уже использует контейнеры для разработки приложений, при этом проектом занимается относительно небольшая команда. Разработчикам хочется быстро создавать идентичные кластеры в Kubernetes. Менеджменту — унифицировать требования к разработке, оптимизировать затраты на эксплуатацию и, по возможности, не нанимать для этого новых людей.
В таких условиях переход на решение в формате NoOps Kubernetes дает возможность запускать новые кластеры быстро (в одном из кейсов «Фланта» на это уходило не больше 20 минут) и относительно дешево (снижается стоимость владения кластером). Команда разработки может запускать приложения в Kubernetes по единым правилам — без необходимости нанимать дополнительных сотрудников в штат.
Тяжело обслуживать Kubernetes-зоопарк
Тоже распространенный кейс — каждый вендор поставляет «свой K8s» вместе с софтом. Особенно тяжело ИТ-отделу бывает, если отказаться от конкретного вендорского софта нельзя (например, нужны решения отечественного разработчика), а в самом отделе нет специалистов, которые умеют работать с Kubernetes-зоопарком.
Еще более сложный вариант: работа ведется с большими объемами кластеров, при этом в проектах занято множество команд, и каждая из них выбирает свое решение. Централизованно заниматься управлением и обслуживанием такого технологического стека становится крайне сложно: для этого потребовались бы супергерои от техподдержки с широчайшим диапазоном знаний и навыков (и не один, а несколько).
В такой ситуации платформа позволяет стандартизировать подход к получению ресурсов, сформировать единые требования и общий процесс запуска контейнеризированных приложений, который легко поддерживать. Подход «автопилотирования» дает возможность автоматизировать большинство рутинных операций и снизить требования к уровню специалистов — обслуживать до 200 кластеров может один middle-инженер.
Некогда копаться в рутине
Актуально для средних и больших ИТ-команд, развивающих свою developer-платформу на базе Kubernetes. Таким командам может пригодиться «NoOps в его классическом понимании» — возможность максимально автоматизировать рутину, развивать свою платформу и высвобождать время разработчиков для более важных дел.
Нужно найти российское решение, не уступающее привычному вендорскому
В современных реалиях появился еще один сценарий: вендоры, на чьих решениях строилась архитектура ранее, ушли с российского рынка. Собственной экспертизы на обслуживание и поддержку зарубежного софта не хватает — либо его использование по ряду причин становится невозможным. Требуется не просто заместить ушедшие разработки российским ПО, но и подобрать вариант не хуже привычного западного: обеспечивающий поддержку, интеграцию и совместимость софта от разных вендоров, а также высокий уровень надежности и безопасности сервисов.
В основе Deckhouse лежит API-first подход — он позволяет легко настраивать интеграцию с большинством российских продуктов для оптимизации бизнес-процессов, управления и безопасности, а также с ОС Astra Linux и РедОС. При этом мы обеспечиваем SLA 99,95%, постоянную клиентскую поддержку (а еще обучение работе с сервисом — кстати, команда «Фланта» сейчас работает над углубленным вариантом обучающего курса) и 1 месяц тест-драйва. Если у вас остались вопросы по сервису Cloud Kubernetes Clusters, напишите в нашу поддержку или в комментариях к посту — я постараюсь на все ответить.
beeline cloud — secure cloud provider. Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы.