88 lines
8.5 KiB
Markdown
88 lines
8.5 KiB
Markdown
|
|
# Cloud PostgreSQL
|
|||
|
|
|
|||
|
|
## Назначение сервиса
|
|||
|
|
|
|||
|
|
**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости.
|
|||
|
|
|
|||
|
|
PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений.
|
|||
|
|
|
|||
|
|
В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически.
|
|||
|
|
|
|||
|
|
Сервис самостоятельно:
|
|||
|
|
- управляет ролями серверов базы данных (основной сервер и реплики);
|
|||
|
|
- отслеживает состояние узлов;
|
|||
|
|
- автоматически переключает основной сервер при сбоях.
|
|||
|
|
|
|||
|
|
Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов:
|
|||
|
|
- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах;
|
|||
|
|
- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов;
|
|||
|
|
- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами.
|
|||
|
|
|
|||
|
|
Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа.
|
|||
|
|
|
|||
|
|
Для управления базами данных и пользователями доступен web-интерфейс **pgAdmin**, позволяющий выполнять администрирование непосредственно через браузер.
|
|||
|
|
|
|||
|
|
## Конфигурации кластера
|
|||
|
|
|
|||
|
|
Сервис Cloud PostgreSQL поддерживает версии СУБД с 13 по 17 включительно.
|
|||
|
|
|
|||
|
|
Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает:
|
|||
|
|
|
|||
|
|
- синхронную репликацию данных;
|
|||
|
|
- повышенную отказоустойчивость.
|
|||
|
|
|
|||
|
|
В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий:
|
|||
|
|
|
|||
|
|
- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных;
|
|||
|
|
- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя.
|
|||
|
|
|
|||
|
|
Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT).
|
|||
|
|
|
|||
|
|
В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования.
|
|||
|
|
|
|||
|
|
## Режимы репликации
|
|||
|
|
|
|||
|
|
По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик.
|
|||
|
|
|
|||
|
|
Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения.
|
|||
|
|
|
|||
|
|
При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой.
|
|||
|
|
|
|||
|
|
## Доступ к серверам и оптимизация соединений
|
|||
|
|
|
|||
|
|
Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом.
|
|||
|
|
|
|||
|
|
На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных.
|
|||
|
|
|
|||
|
|
::: warning Примечание
|
|||
|
|
|
|||
|
|
Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами.
|
|||
|
|
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
## Возможности сервиса
|
|||
|
|
|
|||
|
|
**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры.
|
|||
|
|
|
|||
|
|
Сервис обеспечивает:
|
|||
|
|
|
|||
|
|
- автоматическое управление кластером PostgreSQL;
|
|||
|
|
- высокую доступность за счёт репликации и автоматического переключения primary-узла;
|
|||
|
|
- единую точку подключения к базе данных через прокси;
|
|||
|
|
- автоматическое переключение при отказе узлов кластера без вмешательства пользователя;
|
|||
|
|
- web-доступ к управлению базами данных и пользователями через pgAdmin;
|
|||
|
|
- совместимость со стандартными клиентскими инструментами PostgreSQL;
|
|||
|
|
- возможность установки расширений PostgreSQL в базу данных.
|
|||
|
|
|
|||
|
|
## Сценарии использования сервиса
|
|||
|
|
|
|||
|
|
**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных.
|
|||
|
|
|
|||
|
|
Сервис может применяться в следующих сценариях:
|
|||
|
|
|
|||
|
|
- размещение production-баз данных с высокими требованиями к доступности;
|
|||
|
|
- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных;
|
|||
|
|
- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры;
|
|||
|
|
- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover;
|
|||
|
|
- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера.
|