Микросервисные БД с Kubernetes, Postgres и CloudNativePG

Перевод статьи Gabriele Bartolini о том, почему PostgreSQL в Kubernetes уместен, что такое микросервисная БД и какую роль здесь играет CloudNativePG.
Опубликовано:

PostgreSQL и Kubernetes

PostgreSQL — это open source СУБД, которая десятилетиями удерживает лидерство. В 2023 году получила награду «Database of the Year» и впервые обогнала MySQL по популярности в опросе Stack Overflow Developer Survey.

Исторически запуск БД в Kubernetes считался нестандартом. Ситуация изменилась после появления Local Persistent Volumes в Kubernetes 1.14 (март 2019) и развития паттерна Operator. Сообщество Data on Kubernetes активно продвигает stateful-нагрузки — включая БД — внутри Kubernetes как способ повысить продуктивность команд.

Главный тезис автора: «PostgreSQL отлично подходит для жизни в экосистеме Kubernetes — рядом с приложениями, а не отдельно от них».

Зачем нужен оператор

Просто завернуть PostgreSQL в контейнер недостаточно. Нормальный оператор должен:

CloudNativePG

CloudNativePG развивается с 2019 года, как продукт запущен в феврале 2021, с мая 2022 распространяется как open source под Apache License 2.0.

Ключевые факты:

Оператор полностью декларативен и тесно интегрируется с Kubernetes API: services, mTLS, affinity, persistent volumes — всё это «из коробки» через CRD.

Парадигма «микросервисная БД»

Идея: распространить принцип микросервисов на саму PostgreSQL. Каждое приложение управляет своим ресурсом Cluster, в кластере живёт одна прикладная БД, владелец БД — обычный application user (не суперпользователь). Транзакционный DDL гарантирует атомарность миграций. GitOps-пайплайны автоматизируют путь от dev до prod.

Это даёт:

Выводы

Связка Kubernetes + PostgreSQL + CloudNativePG — это не только техническое решение, но и удобная организационная модель. Она даёт свободу от vendor lock-in:

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша