Облакотека

Что DevSpace от Облакотеки автоматизирует после запуска кластера

Задачу «развернуть окружение» закрыли. Приложение работает, команда готовит следующий релиз. Но в списке дел уже есть проверка восстановления PostgreSQL, обновление брокеров Kafka и еще одно окружение для нового проекта. Сам запуск давно позади, а инфраструктура по-прежнему требует времени.
Именно на эту работу рассчитан DevSpace от Облакотеки. В одном пространстве проекта доступны управляемые Kubernetes, PostgreSQL, Redis, MongoDB и Kafka. Репликацией, восстановлением узлов и другими операциями занимаются механизмы платформы и специализированные операторы. У инженеров при этом есть прямой доступ к сервисам и привычные инструменты.
Что происходит при сбое и как проверить восстановление

Допустим, нужно убедиться, что PostgreSQL восстановится из резервной копии. В DevSpace для этого можно поднять отдельный кластер, проверить данные и подключить к нему тестовое приложение. Рабочую базу трогать не придется.
Кластером PostgreSQL управляет CloudNativePG: он поддерживает репликацию, пересоздает отказавшие узлы и выполняет автоматический failover. При включенном резервном копировании доступны архивирование WAL и восстановление на момент времени. Например, можно восстановить состояние базы до неудачной миграции в отдельный кластер и разобраться, что изменилось.
У Redis своя схема: основной узел и реплики сопровождает оператор, за обнаружение отказа и переключение отвечает Sentinel. Вы задаете ресурсы и число реплик, а оператор поддерживает эту конфигурацию и пересоздает отказавшие узлы.
В MongoDB используется Percona Operator. Replica set автоматически выбирает новый первичный узел при отказе текущего; оператор восстанавливает узлы и управляет TLS-сертификатами, включая их обновление. Есть резервное копирование и шардирование. Выпуск сертификатов для каждого узла не превращается в отдельную задачу команды.

Обновление и масштабирование кластеров

В Kubernetes control plane и etcd работают под управлением платформы. Рабочие узлы создаются как виртуальные машины, их жизненным циклом управляет Cluster API. Количество узлов можно менять автоматически с помощью cluster-autoscaler.
Для Kafka используется Strimzi. Он следит за конфигурацией и выполняет последовательные обновления брокеров. Топики, число партиций, фактор репликации и политики хранения описываются декларативно. Такие настройки можно хранить в репозитории, проверять на ревью и включать в принятый командой GitOps-процесс.
В основе DevSpace — открытая платформа Cozystack. Для инженера это вполне практичная деталь: понятно, какие компоненты управляют сервисами и где посмотреть, как работают их механизмы восстановления и обновления.

Окружение проекта в одном пространстве

Приложение в Kubernetes, PostgreSQL, Redis и Kafka можно разместить в одном пространстве DevSpace. Сервисы взаимодействуют по внутренним адресам: чтобы приложение подключилось к базе или брокеру, публиковать их в интернете не требуется. Если проекту позже понадобится MongoDB, ее можно добавить туда же.

Terraform и привычный доступ к сервисам

В Kubernetes доступны стандартный API, kubeconfig и административные права. Можно работать через Terraform, kubectl, Helm, Argo CD и Flux, использовать свои манифесты и подключать существующий CI/CD. Состояние кластеров хранится в отдельном etcd внутри пространства клиента и не разделяется с другими клиентами платформы.
К PostgreSQL, Redis, MongoDB и Kafka приложения подключаются стандартными драйверами и клиентами. При тестировании DevSpace можно взять существующий pipeline и проверить его на новом окружении. Так сразу будет видно, какие настройки нужно адаптировать под проект.
По вопросам работы сервисов и панели управления доступна поддержка Облакотеки 24/7. Обсуждать инфраструктуру и управляемые сервисы можно с одной командой провайдера.

Ресурсы и расходы по проектам

В DevSpace есть изолированные пространства, лимиты на CPU, память и хранилище, права доступа и централизованный учет потребления. Доступ к финансовому управлению и к инфраструктуре настраивается отдельно.
Например, для тестового окружения можно задать собственные лимиты, а потребление рабочего проекта отслеживать отдельно. По мере роста нагрузки ресурсы можно увеличивать.
При сравнении стоимости стоит посчитать и время команды. Сколько часов уходит на сопровождение кластеров, собственных скриптов и процедур восстановления? Какие из этих операций уже автоматизированы в DevSpace? С таким списком проще оценить, что изменится в расходах после перехода.

Возможности для интеграторов

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

Что проверить на тесте

Начать лучше с окружения, похожего на рабочее. Подключите свой pipeline, проверьте доступы и связь между сервисами. Для PostgreSQL включите резервное копирование и попробуйте восстановить данные в отдельный кластер. Затем дайте нагрузку и посмотрите на потребление ресурсов.
В DevSpace предусмотрен тестовый период. Если конфигурация подходит, ее можно перевести в коммерческую эксплуатацию без переноса данных из тестовой среды.
Попробуйте DevSpace от Облакотеки на задачах своего проекта.