Техподдержка 24/7 Пн-пт 9:30 – 18:30 +7 495 721 1218
08.07.2024

Обзор vanilla Kubernetes и инфраструктурной Kubernetes-платформы Onplatform

При росте разработки наступает момент, когда простого Kubernetes-кластера (k8s) становится недостаточно. На помощь приходят платформы Kubernetes, где уже преднастроены дополнительные сервисы, способные покрыть гораздо больше задач. В платформы внедрено множество функций, в том числе настройка CI/CD пайплайна, готовый мониторинг, логирование, алерт менеджмент. Полноценная поддержка дает возможность сконцентрироваться на разработке, а не на инфраструктуре.

Рассмотрим основные возможности и ограничения «ванильного» Kubernetes и платформенного решения на примере Onplatform.

Kubernetes

Kubernetes – базовый инструмент для легкого и быстрого развертывания и масштабирования приложений. Он решает большое количество задач в области инфраструктуры и позволяет управлять контейнерами с минимальными расходами на его администрирование. Управление k8s, установку и настройку дополнительных компонентов сети и хранения данных пользователь Kubernetes осуществляет самостоятельно, поэтому это должен быть специалист с высоким уровнем экспертизы. При этом vanilla Kubernetes требует значительной дополнительной настройки, прежде чем станет Production-ready.

Преимущества и возможности k8s:

  • Управление сотнями контейнеров из единой точки.
  • Гибкое управление трафиком и балансировкой между микросервисами.
  • Оптимальное распределение нагрузки по инфраструктуре.
  • Хранение всей инфраструктуры в коде.
  • Увеличение безопасности за счет использования микросервисов и их встроенной изоляции.

Ограничения: 

  • Необходимо подключать внешние дополнительные сервисы: Kafka, Redis, СУБД, S3 и др.
  • Нет интеграции компонентов между собой, из-за чего нужно глубоко погружаться во все используемые инструменты.
  • Нет инструментов централизованной авторизации.
  • Отсутствует встроенная система мониторинга и логирования.
  • Отсутствует резервное копирование k8s: MinIO, Velero.

Onplatform

Onplatform – комплексное решение, построенное на базе Kubernetes. Это платформа оркестрации контейнеров, в которой уже настроены и интегрированы между собой сервисы в части сети, мониторинга, безопасности, логирования, авторизации и различных дополнительных подходов: GitOps, DevSecOps и др. Onplatform входит в реестр отечественного ПО, активно поддерживается командой инженеров.

Как правило, бизнесу необходимо переходить с Kubernetes на платформенное решение в момент, когда происходят:

  • Сложности с поддержкой корректной работы инфраструктуры.
  • Нехватка кадров и отсутствие экспертизы в настройке дополнительных инструментов. 
  • Потребность в дополнительных сервисах: мониторинг, логирование, безопасность, СУБД, S3-хранилище, брокеры сообщений и т.д.
  • Масштабирование инфраструктуры.

Преимущества и возможности Onplatform:

  • Архитектура Onplatform разработана и протестирована для обеспечения максимальной отказоустойчивости. Окружения dev / stage / prod находятся в разных кластерах.
  • Компоненты платформы преднастроены и учитывают потребности Ops / DevOps и Security-команды, предоставляя прозрачность и простоту в управлении жизненным циклом сервисов пользователя. В отличие от других платформ компоненты платформы не зависят друг от друга — их можно менять под запросы пользователя.
  • Инженеры берут на себя поддержку всех сервисов и компонентов платформы, а также помогают выстроить пайплайн CI/CD согласно потребностям ИТ-команды и в соответствии с современными стандартами.
  • Импортозамещение на open source-инструментах и обеспечение работы приложений на отечественных ОС на базе ядра Linux.
  • Оптимизация использования виртуальных мощностей за счет использования кластера k8s и настроенного мониторинга — до 40%.
  • Возможность внедрения платформы Kubernetes Onplatform на базе двух геораспределенных площадок с репликами на два ЦОД для обеспечения гарантированной отказоустойчивости. Можно создать РЦОД — в active или passive режиме.

На данный момент в платформе более 40 различных сервисов, среди которых:

  • Логирование: OpenSearch, Vector, Logstash, Loki.
  • Мониторинг: Victoria Metrics stack.
  • Работа с кодом: GitLab, GitLab Runner, Harbour.
  • Авторизация: Keycloak, Dex. 
  • K8s: Ingress-NGINX Controller, CoreDNS, Linkerd, Cilium, Kyverno, Falco, Linstor.
  • GitOps: Flux, Flagger.

Кроме того, в отличие от присутствующих на российском рынке платформ, в Onplatform уже включены: S3-хранилище MinIO, СУДБ PostgreSQL, собственный DNS-сервис и корневой сертификат (CA).

Ограничения:

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

Отличия Kubernetes от Onplatform

Kubernetes_vs_Onplatform.jpg

Вывод

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


Словарь используемых терминов и сокращений

CI/CD пайплайн (Continuous Integration and Continuous Delivery/Deployment pipeline) — автоматизированная последовательность действий, запускаемых по какому-то преднастроенному триггеру. Может использоваться для сборки новых версий приложений и доставки обновлений программного обеспечения на протяжении всех этапов разработки.

GitOps — процесс постоянной синхронизации инфраструктуры с Git-репозиторием, наиболее часто применяемый для непрерывного развертывания и обновления приложений в k8s.

DevSecOps (Development – разработка, Security – безопасность, Operations – операции) — методология, предполагающая обеспечение безопасности на всех этапах жизненного цикла разработки и доставки ПО.

Кластер — группа узлов с одинаковой конфигурацией, и выполняющих идентичные задачи.

Брокер сообщения — компонент, при помощи которого элементы распределенной системы взаимодействуют между собой.

Окружения dev/stage/prod — среды разработки ПО. 

Корневой сертификат (CA) — цифровой документ, с помощью которого центры сертификации заверяют SSL-сертификаты при выдаче.


Была ли полезна статья?
Расскажите друзьям:
Evolution