База данных Postgres Pro: когда она лучше PostgreSQL
Еще лет 10-15 назад разработчики повально ставили на свои бэкенд-проекты популярную СУБД MySQL. У нее в те времена было огромное количество косяков — разваливались кластеры и реплики, тормозили индексы, тексты в таблицах превращались в кракозябры. Разработчики плакали, кололись, но продолжали есть кактус MySQL — несмотря на отвратительное качество работы, это было самое популярное, документированное и простое в установке решение на рынке.
постгрес в то время уже существовала и по качеству работы рвала MySQL. Но меньшая популярность в сообществе программистов и необходимость вдумчиво читать документацию делала эту СУБД не столь популярной.
Шли годы, ландшафт рынка СУБД поменялся, PostgreSQL заняла достойное место в умах людей — бесплатная и с открытыми исходниками СУБД, обладающая потрясающей надежностью и гибкостью. Вокруг нее выросло сообщество инженеров, продвигающих использование PostgreSQL в своих проектах. Она обрела репутацию крутой штуковины для крутых разрабов, в этом положении и находится по сей день.
Как появилась российская СУБД Postgres Pro
Дикая популярность PostgreSQL привела к тому, что в России одна умная и успешная компания сделала свою версию этой СУБД — Postgres Pro. Ну а что? Код оригинальной БД открыт — при условии соблюдения определенных требований со стороны лицензии на свободное ПО можно делать свои продукты на основе публичного кода.
Комьюнити вокруг опенсорс-продуктов часто весьма инертное, некоторые правки и предложения вносятся в ядро кода годами — куда быстрее сделать свою копию кода и внести туда все, что считаешь нужным.
А еще у разных стран разные юридические требования к использованию программного обеспечения в системах. У России они тоже есть, и с ними нужно считаться. Так что вполне хватает причин создать свой, местный, вариант СУБД, использовав открытый код.
Тут можно вспомнить компанию Percona, основанную в Штатах двумя российскими разработчиками. Percona заработала кучу денег, поставляя дополнительные решения к различным СУБД, в том числе к MySQL. Решения от этой компании решали различные проблемы резервного копирования, репликации и работы с MySQL.
Так что предпосылки для создания таких проектов есть и они уже подтверждены рынком. Проекты российской компании Postgres Pro построены на этих же принципах.
Давайте разбираться, что нам предлагают.
Сравнение Postgres Pro и PostgreSQL: что добавилось в российской версии
Нам предлагают полнофункциональную версию PostgreSQL с кучей мощных доработок и сертификацией под Россию.
Postgres Pro является полным преемником традиционного PostgreSQL. А это значит, что мы держим в руках систему, ориентированную на максимальную функциональность и надежность хранимых данных. Она — идеальное решение для систем, где нельзя терять или случайно искажать данные. Основные сферы применения Postgres Pro: финансовый сектор, транспорт, складские поставки, системы управления бизнесом и так далее.
Надежность здесь не означает простоту и примитивность — Postgres Pro прекрасно справляется с добавлением специализированных процедур в свой встроенный язык запросов, хранением бинарных данных, географических точек, работой с JSON-документами. Все фичи крутой современной СУБД на месте! И они нисколько не замедляют работы этой системы — всё работает шустро и стабильно.
Postgres Pro (как и родительская PostgreSQL) хорошо масштабируется, и, как следствие, легко переносит выход из строя пары серверов БД, не теряя при этом данные и не переставая обслуживать клиентов.
Есть и кое-какие фичи, которых у родительской СУБД нет, например:
- Multimaster — это то, о чем мы все мечтали. Репликация в кластере, при которой писать и читать можно на разные серверы, и на них будут идентичные данные. Оригинальная PostgreSQL предоставляет лишь традиционную master-slave репликацию плюс некоторые надстройки поверх. Мультимастер дает возможность строить принципиально более надежные и отказоустойчивые системы.
- Сертификация и отметка в реестре сертифицированных средств защиты информации (ФСТЭК). Одно это позволяет работать на этой СУБД с российскими отраслями, требующими сертификации.
- Можно интегрироваться с продуктами 1С — одним из краеугольных камней российского IT-сектора. Конечно, там есть возможность работы с PostgreSQL, но совместимость с Postgres Pro весьма полезна — вся мощь новых фичей и доработок из Pro без проблем заведется в 1C.
- Сжатие. Да, мы живем в эпоху резиновых облачных серверов, но иногда данных прилетает столько, что надо думать и о сжатии. Postgres Pro пакует информацию так, что файлы с таблицами занимают в 2-5 раз меньше места, чем файлы оригинального PostgreSQL.
- Улучшенные механизмы транзакций. Запросы на обновление и откат критических важных записей в БД теперь проходят проще и понятнее.
- Postgres Pro нормально заведется в сертифицированных ФСТЭК дистрибутивах Linux — актуально для тех, кому нужно строить продукты для регулируемых государством областей.
- Улучшены и ускорены бэкапы, мониторинги, системы безопасности. Тут более надежные способы построения резервных копий. Есть дополнительные инструменты аналитики и администрирования.