Привет! Я Максим Морарь, product-owner платформы контейнеризации Nova Container Platform в Orion soft. Продукт появился на рынке чуть больше года назад, уже внедрен в ряде крупных компаний, и только сейчас мы с командой осознали, что еще ничего не рассказывали про него читателям Хабра.

Решили это исправить и сделать первую вводную статью о том, как и зачем наша платформа появилась на свет, что у нее под капотом и какие у нее есть архитектурные и функциональные особенности. Поскольку это статья-интро, я буду рад вашим откликам в комментариях.

Для контекста пара слов про продуктовую команду и опыт. Чтобы было понятно, откуда растут ноги и почему были выбраны именно такие архитектурные решения.

Мы занимаемся проектами, связанными с Kubernetes, с начала 2018 года, и основной опыт приобрели, работая в одном из крупных российских интеграторов. За нашими плечами порядка 35 проектов. В штуках кажется, что это не так уж много, но у этих проектов есть общая особенность — все они реализованы для клиентов уровня Enterprise. Мы проектировали и внедряли Kubernetes в крупнейших банках страны, в промышленности, в том числе ритейле и государственных организациях. И мы не понаслышке знаем, что такое сертифицировать 82 кластера Kubernetes по PCI DSS. А еще как под систему с ~10 000 RPS построить геораспределенный Kubernetes на 3 AZ, где одна площадка это VMware vSphere, а две другие — bare-metal. И, естественно, нигде нет доступа в интернет ?

Все эти годы мы работали с популярными решениями OpenShift, OKD, Tanzu, Rancher — с каждым из этих продуктов у нас есть своя история и свой опыт, как успешный, так и не очень. Работая с каждым из продуктов, внедряя их в разных секторах, мы достаточно глубоко поняли отраслевую специфику, а главное, сильные и слабые стороны каждого из решений такого класса.

И вот компании, отвечающие за эти продукты, официально покинули РФ. Мы почесали репу и, не найдя достойной альтернативы, решили весь свой опыт направить на разработку своего собственного продукта – платформы контейнеризации Kubernetes корпоративного уровня. 

Разработка и тестирование длились около двух лет, а наша команда выросла за это время из 5 человек в 20. В итоге, по нашему мнению, получился качественный и безопасный продукт по оркестрации контейнеров, миссия которого заключается в том, чтобы помогать каждому члену команды заказчика эффективнее решать собственные задачи: 

  • разработчику — сконцентрироваться на разработке и развитии собственных приложений, не думая о том, где и как эти приложения будут развернуты;

  • DevOps инженеру — автоматизировать из коробки огромное число операций первого и второго дня, чтобы он мог сосредоточиться на развитии DevOps практик, автоматизации, CI/CD и проч.;

  • команде ИБ — получить не только безопасный Kubernetes с удобным инструментом контроля всего, что происходит в кластере и на уровне приложений, но и мощный движок для написания собственных security-политик, с отдельным модулем аналитики и отчетности по найденным уязвимостям. 

Общая архитектура и компонентная база

Ядром платформы, конечно же, является Kubernetes. Но помимо правильно сваренного куба, Nova содержит огромное количество дополнительных модулей, так называемых add-on’ов, каждый из которых несет в себе дополнительную ценность. И все они вместе формируют из обычного Kubernetes ту самую платформу. Ниже по каждому блоку пройдемся отдельно, снизу вверх.

Функциональные модули Nova
Функциональные модули Nova

Infrastructure Providers

Продукт интегрирован с другой нашей платформой  – виртуализацией zVirt. Такая связка помогает автоматизировать развёртывание и  конфигурацию ВМ – настраивать руками ничего не придется. В дальнейшем так же автоматически, без ручных операций, можно масштабировать инфраструктуру, как горизонтально, так и вертикально. Также для удобства мы интегрировали в Nova zVirt CSI-драйвер — интерфейс, позволяющий в автоматическом  режиме работать с хранилищем, презентованным платформой виртуализации zVirt.

Мы постоянно расширяем набор поддерживаемых интеграций: помимо zVirt, Nova работает в связке с VMware vSphere и со всеми oVirt-подобными платформами виртуализации. У нас в планах также добавить поддержку еще нескольких российских виртуализаций и облаков.

Возможность же развертывания Nova без использования автоматизации есть вообще в любой среде виртуализации.

Operation Systems

Платформа поддерживает отечественные ОС, в том числе сертифицированные ФСТЭК: РЕД ОС и Astra Linux. В качестве основного дистрибутива для Open Source-реализаций поддерживается Alma Linux. Набор совместимых ОС расширяется, скоро планируем добавить поддержку ALT Linux.

Подробнее о совместимости Nova с другим ПО можно посмотреть в ​​Перечне матриц совместимости и протестированных интеграций.

Что еще под капотом?

Platform Services

Мониторинг и логирование. В составе Nova поставляется стек инструментов мониторинга и алертинга: Prometheus, Grafana, Alertmanager, Thanos Query. Все компоненты платформы из коробки ставятся на обязательный мониторинг, к которому также можно подключать запускаемые клиентские приложения. И да, конечно, все базовые дашборды и интеграции с экспортерами в Nova являются преднастроенными, поэтому клиентам нет необходимости тратить на это свое время.

Если требуется встроенное логирование, можно подключить опциональный модуль OpenSearch. Если же в компании уже есть централизованная платформа логирования, то усложнять систему добавлением OpenSearch не нужно. Для экспорта во внешнюю платформу логирования метрик Nova можно использовать встроенный в Nova Logging Operator.

Configuration management. В качестве встроенного CD внутри Nova поставляется Flux CD. Он предоставляет следующие функциональности:

  • доставка прикладных компонентов самой Nova при ее развертывании и поддержание их консистентности;

  • полноценный CD-инструмент, который можно использовать для внедрения GitOps-практик и подходов, интеграции с собственной CI-системой и организации полноценного CI/CD и так далее.

GUI по образу и подобию Red Hat OpenShift. Управление всеми компонентами и запущенными в Nova приложениями может осуществляться через единый GUI. Он сделан на основе переработанного GUI опенсорсной консоли OpenShift Console. Выбор базы в виде OpenShift Console для построения нашего GUI — осознанный, сделанный с учетом обратной связи от сотрудников ИТ-отделов в крупных корпорациях и собственного опыта работы с решениями такого класса. Большие команды, которые привыкли к парадигме OpenShift, выстраивают вокруг нее практики управления кластерами и инфраструктурой контейнеризации. Обычно им не хочется менять эти практики. Nova дает возможность не переучиваться, а просто переиспользовать имеющиеся знания и наработки. Это снижает порог входа и потенциальный негатив, который происходит при внедрении любого другого решения, в котором этот функционал реализован иначе.

Мы вложили много сил в адаптацию консоли под Nova, устранили какие-либо ссылки и артефакты от OpenShift, убрали неактуальные для нас фичи от Red Hat и добавили собственные функции. Но саму логику и паттерны управления оставили. Сейчас мы продолжаем развивать GUI, учитываем обновления консоли OpenShift и постоянно привносим новые функциональности Nova.

Главный экран GUI Nova
Главный экран GUI Nova
Раздел Observe: показывает состояние кластера по подам, неймспейсам, узлам, производительности API, внутренним компонентам и так далее. Данная функциональность мониторинга доступна прямо из GUI управления Nova. 
Раздел Observe: показывает состояние кластера по подам, неймспейсам, узлам, производительности API, внутренним компонентам и так далее. Данная функциональность мониторинга доступна прямо из GUI управления Nova. 

Помимо GUI, также поддерживается стандартный kubectl.

Безопасность платформы

Безопасности платформы мы уделяем особое внимание: в составе Nova поставляется интегрированная комплексная платформа безопасности для сред контейнеризации, построенная на базе решения NeuVector. С помощью платформы безопасности наши клиенты получают такие ключевые функциональности, как: 

  • комплексное observability всех уязвимостей внутри кластера. Встроенный NeuVector может на разных уровнях сканировать компоненты платформы и приложений, а именно: сканируется версия Kubernetes, ноды кластера, запущенные приложения и внешние registry. NeuVector анализирует приложение, работающее внутри Nova, и сообщает, из каких библиотек и компонентов оно состоит, какие содержит уязвимости, показывает степень их критичности, выдает ссылки на конкретные CVE и рекомендации по устранению; 

  • мощный движок написания собственных политик безопасности для уровня Kubernetes, запущенных приложений, трафика внутри Kubernetes;

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

Все это управляется из одного GUI, в котором команда ИБ видит все, что происходит с кластером, управляет его политиками, сетевыми подключениями и так далее.

И, естественно, есть возможность интеграции с внешними SIEM-системами клиентов. 

GUI NeuVector
GUI NeuVector

Кстати, во многих конкурентных решениях для задач сканирования и управления политиками чаще всего используются разные децентрализованные инструменты с различными подходами к управлению, требующие от сотрудника ИБ глубоких знаний Linux и Kubernetes, что сильно повышает порог входа в технологию.

Secrets manager. В Nova плотно интегрировано наше корпоративное хранилище секретов StarVault, построенное на базе HashiСorp Vault. В составе Nova StarVault закрывает ключевые задачи:

  • хранение секретов (логинов, паролей, API-ключей, токенов и так далее);

  • расширение RBAC Kubernetes в части возможностей работы с пользователями, их ролями и привилегиями;

  • расширение возможностей CertManager в части работы с сертификатами;

  • построение PKI-инфраструктуры внутри платформы. В Nova Container Platform управление центрами сертификации, а также конечными сертификатами Kubernetes интегрировано со StarVault. На узлах кластера не хранятся приватные ключи центров сертификации. Узлы кластера взаимодействуют с Secrets Manager через API для получения или обновления своих сертификатов.

StarVault является единым центром аутентификации пользователей в платформе. На его базе строятся все интеграции с внешними системами: MS Active Directory, FreeIPA, ALD Pro, Dex, Keycloak и так далее. Это удобно и безопасно.

Подробнее о StarVault мы уже писали тут.

Подробнее о сервисах Nova тут.

Главные особенности Nova

Кратко пройдусь по тому, что делает Nova уникальной на российском рынке.

Я уже рассказал про GUI, который позволяет работать в логике OpenShift, и комплексную безопасность на борту за счет интегрированной платформы NeuVector. Сейчас просто повторю, что эти два момента мы считаем важным преимуществом Nova. Какие еще есть особенности?

Возможность лицензирования по физическим узлам кластера. Мы задействуем уникальную для российского Kubernetes рынка модель лицензирования, которая зачастую помогает нашим клиентам снизить стоимость владения инфраструктурой контейнеризации. Обычно для on-premise инсталляций мы предлагаем лицензирование по узлам (физическим серверам), причем не важно, используется ли на них какая-либо платформа виртуализации и сколько на ней ВМ. Например, вы задействуете под Nova десять физических узлов, на которых используете платформу виртуализации. Для лицензирования не важно, развернуто ли на этой инфраструктуре 100 или 200 ВМ: объект лицензирования не изменится и останется равным 10 физическим узлам.

Эта модель лицензирования особенно выгодна в долгосрочной перспективе, и часто реализация платформы on-premise на базе Nova оказывается выгоднее, чем при использовании аналогов.

Альтернативная модель лицензирования по vCPU чаще применяется при размещении Nova в публичных облаках или когда невозможно выделить под Nova отдельный физический сегмент. 

Экосистема продуктов для ИТ-инфраструктуры Orion soft. Nova особенно уникальна тем, что интегрирована в моновендорную экосистему решений, которая закрывает бОльшую часть потребностей современных цифровых компаний.

Nova объединена со средой виртуализации zVirt и платформой для построения гибридных облаков Cloudlink. Cloudlink решает задачу централизованного управления множеством кластеров Nova из единого портала. Если у вас под управлением десятки или сотни кластеров Kubernetes, мы рекомендуем развертывать Nova в связке с Cloudlink, так как это позволит значительно сократить трудозатраты на администрирование инфраструктуры Kubernetes.

Вместе zVirt, Nova и Cloudlink полностью закрывают задачу построения облачной инфраструктуры в контуре компании – с полноценным биллингом, marketplace’ом сервисов и централизованным пользовательским порталом управления.

Параллельный деплой. Еще одна из особенностей Nova — это параллельное развертывание платформы и ее компонентов на всех узлах одновременно. Кластер на 10 и на 100 нод развернется примерно за одно и тоже время – в районе 10 минут.

Большинство аналогов на российском рынке выполняют развертывание узлов платформы последовательно, установка кластера на сотни нод может занять несколько часов (если еще по пути не случится какая-либо ошибка). 

Преимущество параллельного деплоя особенно отмечают те, кто использует Nova для ML-задач. Когда нужно быстро развернуть Kubernetes, погонять ML-модели, оттестировать гипотезы и быстро сделать вывод, скорость развертывания становится критичной.

Особенности построения кластера Nova

Особая архитектура кластеров Nova обеспечивает их отказоустойчивость из коробки:

  • Все ноды платформы зарезервированы: мастер-узлы, инфраструктурные узлы, сетевые узлы (gateway-ноды). В каждом узле служебные компоненты Nova поднимаются в нескольких репликах.

  • На gateway-нодах (узлы балансировки Kubernetes) отдельно устанавливаются public-балансировщики Ingress NGINX, а internal ingress размещаются на инфраструктурных нодах. Такое разделение сделано для того, чтобы повысить уровень доступности кластера и гарантированно обеспечить возможность доступа к критичным компонентам самой платформы в случае каких-либо аварий. 

Такая конфигурация поднимается по умолчанию для любого отказоустойчивого кластера.

Как реализуется отказоустойчивость и надежность в кластерах Nova
Как реализуется отказоустойчивость и надежность в кластерах Nova

Установка и обновление Nova

Подходы к установке и обновлению. Установка и обновление платформы осуществляются при помощи нашей собственной утилиты — nova-ctl. При установке платформы необходимо выбрать инфраструктуру, на которой мы хотим развернуть кластер Nova, а также заполнить типовой конфигурационный YAML файл с указанием типов и количества нод (master, worker и тд.), их ресурсов, подсетей и базового образа ОС. После запуска процесса инсталляции все настройки выполняются автоматически.

Обновление в нашем случае выполняется по нодам. Ноды поочередно выводятся из кластера, обновляются и возвращаются в кластер уже с новой версией платформы. И так одна за другой, пока не завершится обновление всего кластера. Если в кластере достаточно запаса ресурсов, чтобы было куда мигрировать поды с обновляемой ноды, то обновление может пройти без какого-либо простоя для конечных сервисов клиента. Если обновление по какой-то причине прервется, после перезапуска оно продолжится ровно с той ноды, на которой произошло прерывание.

Открытое и закрытое окружение. Развертывание Nova происходит по-разному, в зависимости от наличия доступа в интернет:

  • Установка в открытом окружении — с прямым доступом в интернет или доступом через HTTP-прокси. При таком сценарии вся установка и последующие обновления платформы осуществляются напрямую, из нашего защищенного репозитория;

  • Установка в закрытом окружении — без доступа в интернет. Дистрибутив клиент получает в виде образа виртуальной машины, собранного под конкретную платформу виртуализации. Этот виртуальный appliance в нашей терминологии называется Nova Universe и содержит репозиторий со всеми пакетами  и инструментами для автоматического развертывания. Nova Universe нужно развернуть внутри изолированного контура, и все кластеры Nova будут устанавливаться уже с него.

Nova Universe отвечает и за последующее обновление всех компонентов платформы. Обновления поставляются в виде архива и содержат в себе только изменяемую часть. То есть при появлении новой версии платформы второй раз тащить полный образ ВМ в закрытый контур не потребуется. 

Соответствие требованиям и бенчмаркам

Nova соответствует самым популярным в индустрии требованиям и технологическим стандартам в области информационной безопасности. Платформа постоянно проверяется на соответствие CIS Benchmark for Kubernetes и может использоваться для контуров, сертифицированных по PCI DSS.

Кстати, если говорить про тот же CIS, то в документации на этой страничке мы показываем, как именно Nova закрывает каждое конкретное требование CIS Benchmark for Kubernetes. 

Что касается ФСТЭК, то в России еще ни одно решение не прошло весь путь сертификации до конца, и мы также находимся в процессе, в числе первых, кто ее проходит. Ожидаем получить сертификат по УД 4 в ближайшие 6-8 месяцев. 

Совместимость с инструментами DevOps

Так как Nova построена на базе Kubernetes, платформа совместима со всей экосистемой Kubernetes, а также поддерживает самые популярные практики и подходы в области CI/CD, DevSecOps, GitOps, IaC и др. 

Некоторые из DevOps-инструментов, с которыми совместима Nova
Некоторые из DevOps-инструментов, с которыми совместима Nova

Поддержка

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

Мы выполняем:

  • техническую поддержку при внедрениях и эксплуатации;

  • консалтинг по построению архитектуры, процессов эксплуатации и DevOps-процессов;

  • расширенную поддержку и администрирование в формате professional services (самостоятельно или через технологических партнеров).

Итог

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

Если вы развертываете большие кластеры, приглашаю вас поделиться вашим опытом в комментариях. Какая функциональность для вас ключевая? Чего чаще всего не хватает? Что из важного для себя функционала вы не увидели в составе Nova?

Комментарии (3)


  1. leninD
    03.07.2024 08:23
    +5

    И какой ценник у этого решения?