Найти в Дзене
Yandex.Cloud

Как работает Managed Service for PostgreSQL

Разбираемся в архитектуре PostgreSQL и особенности работы ее облачной версии — Managed Service for PostgreSQL

PostgreSQL входит в число самых популярных реляционных СУБД в мире. История началась с проекта Ingres в 1986 году, но только через 10 лет она обрела свое текущее имя PostgreSQL.

Это открытый проект, который постоянно дорабатывают сотни разработчиков, и включиться в работу может каждый желающий. С 2016 года Яндекс.Почта переехала с Oracle на PostgreSQL, и команда разработчиков Яндекса также совершенствует и развивает проект: сделала свой пулер соединений, доработала систему репликации, восстановления и мониторинга. Более того, опыт такой масштабной работы с PostgreSQL позволил создать и предоставить клиентам Yandex.Cloud новый облачный сервис – управляемую базу данных (Managed Service for PostgreSQL).

Популярность PostgreSQL

PostgreSQL подойдет для проектов любой сложности, это универсальная и надежная СУБД с широкой функциональностью и возможностями. Ее выбирают за:

  • соответствие модели ACID (atomicity, consistency, isolation, durability);
  • возможность работы со многими языками программирования;
  • функции репликации, MVCC и индексации геометрических объектов;
  • работу с данными в JSON;
  • широкие возможности кастомизации – типы данных, индексы и другие.

На PostgreSQL работают сервисы и приложения таких компаний как Facebook, Cisco, Spotify, Sun Microsystem и Яндекс.

Как работает PostgreSQL

СУБД реализована по классической клиент-серверной модели, причем и сервер, и клиент могут находиться как на одной машине, так и на разных хостах, взаимодействуя по сети TCP/IP. Также сервер может быть размещен во внешнем дата-центре или облаке, тогда связь обеспечивается по сети интернет.

Чтобы один сервер смог обрабатывать множество запросов от разных клиентов, для каждого запускается новый процесс, который работает изолированно. Процесс – это один из элементов архитектуры PostgreSQL, который наравне с памятью и организацией данных определяет принцип работы СУБД.

-2

При старте сервера первым запускается процесс Postmaster, он начинает инициализировать общую память, запускать остальные фоновые процессы (запись в журнал ошибок, сброс данных из буфера WAL на диск, очистка таблиц от несуществующих записей и другие), принимать входящие соединения и передавать их на серверный процесс Postgres.

Когда число соединений растет, и нагрузка на Postmaster увеличивается, активируется пулер соединения, например, PgBouncer или Odyssey, который в 2019 году разработала команда Яндекса.

Все временные данные PostgreSQL хранит в общей памяти (Shared Memory), часть которой отдана буферному кешу (shared buffers), который ускоряет работу с диском сервера, а другая часть — буферу WAL (журналу упреждающей записи), который временно хранит все изменения данных в базе. Остаток памяти используется для служебной информации.

Пользовательские данные хранятся на диске сервера БД в виде табличных пространств, которые указывают на каталог в файловой системе и могут одновременно использоваться несколькими базами данных. Чтобы хранение было надежным и отказоустойчивым, в основе PostgreSQL кластер из нескольких хостов.

Особенности управляемой PostgreSQL (Managed Service for PostgreSQL)

В случае с локальной СУБД все задачи ее жизненного цикла — от установки до поддержки — лежат на инженерах компании. А Managed Service для СУБД или других облачных услуг предполагает делегирование вопросов обслуживания и поддержки облачному провайдеру.

Заказчик услуги Managed Service for PostgreSQL в несколько кликов создает кластер объектно-реляционной СУБД PostgreSQL внутри инфраструктуры Yandex.Cloud. Облачный провайдер отвечает за:

  • установку, настройку и обслуживание оборудования;
  • администрирование платформы виртуализации и операционной системы;
  • установку и обновление ПО СУБД;
  • защиту данных, безопасность и мониторинг;
  • задачи репликации, резервного копирования и восстановления.

Архитектура и принципы работы управляемой СУБД не отличаются от on-premise, но в случае с Managed Service for PostgreSQL провайдер берет на себя сложные и рутинные вопросы администрирования БД — от создания кластера до регулярных обновлений. Чтобы решать такие задачи самостоятельно, необходим высокий уровень профессиональной подготовки, иначе можно «поломать то, что работает. Инженеры провайдера обладают необходимой квалификацией и гарантируют по SLA безотказную работу PostgreSQL.

Также в долгосрочной перспективе за счет экономии на оборудовании и персонале управляемый сервис БД оказывается дешевле, чем самостоятельное развертывание в on-premise и в ВМ.

Подробнее о технических особенностях Managed Service for PostgreSQL, возможностях гибкого управления кластерами БД, быстрого масштабирования и удобного мониторинга и способах репликации вы можете прочитать в нашей статье «Решайте свои задачи с Managed Service for PostgreSQL».

Managed Service for PostgreSQL — это удобный, масштабируемый и отказоустойчивый инструмент для развития вашего бизнеса. Сервис отлично решает задачи в тех сферах, где из-за простоев в работе возникают финансовые и репутационные потери: ритейл, e-commerce, в энергетика и промышленность, финансы и страхование, образовательные учреждения и IT-компании.

Используйте принцип управляемых сервисов, чтобы оставить себе только задачи стратегического управления, мониторинга производительности и масштабирования, а не заниматься обслуживанием, обновлением и репликацией. Данные будут храниться в безопасной и технически современной инфраструктуре, надежность и отказоустойчивость которой гарантирована соглашением SLA.

Создайте свой первый кластер PostgreSQL

Если статья оказалась полезной, ставьте 👍

Не забывайте подписываться на наши соцсети: Вконтакте, Facebook, Telegram, VC, YouTube.