Обзор 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 помогают перейти на микросервисную архитектуру и подойдут командам с небольшой по размерам инфраструктурой. Когда цифровые продукты становятся объемными и сложными: внедряются фичи, увеличивается нагрузка пользователей, усложняется управление проектом, стоит рассмотреть переход на платформенное решение. Onplatform способен заменить множество разрозненных инструментов, так как уже сочетает в себе большинство сервисов, доступных из единого окна, а автоматизация типовых задач позволяет сократить затраты компаний на разработку и эксплуатацию программного продукта.
Словарь используемых терминов и сокращений
CI/CD пайплайн (Continuous Integration and Continuous Delivery/Deployment pipeline) — автоматизированная последовательность действий, запускаемых по какому-то преднастроенному триггеру. Может использоваться для сборки новых версий приложений и доставки обновлений программного обеспечения на протяжении всех этапов разработки.
GitOps — процесс постоянной синхронизации инфраструктуры с Git-репозиторием, наиболее часто применяемый для непрерывного развертывания и обновления приложений в k8s.
DevSecOps (Development – разработка, Security – безопасность, Operations – операции) — методология, предполагающая обеспечение безопасности на всех этапах жизненного цикла разработки и доставки ПО.
Кластер — группа узлов с одинаковой конфигурацией, и выполняющих идентичные задачи.
Брокер сообщения — компонент, при помощи которого элементы распределенной системы взаимодействуют между собой.
Окружения dev/stage/prod — среды разработки ПО.
Корневой сертификат (CA) — цифровой документ, с помощью которого центры сертификации заверяют SSL-сертификаты при выдаче.