Skip to content

Latest commit

 

History

History
186 lines (146 loc) · 18.8 KB

README.russian.md

File metadata and controls

186 lines (146 loc) · 18.8 KB

Database Lab Engine (DLE)

⚡ Молниеносное клонирование баз данных PostgreSQL 🐘
Тонкие клоны для создания dev / test / QA / staging сред.
Доступно для любых PostgreSQL, включая AWS RDS, GCP CloudSQL, Heroku, Digital Ocean и серверы, администрируемых пользователем

Latest release

CI pipeline status Go report

Contributor Covenant Community Slack Twitter Follow

Зачем это нужно?

  • Создавайте dev-, QA-, staging-среды, основанные на полноразмерных базах данных, идентичных или приближенных к «боевым».
  • Получите доступ к временным полноразмерным клонам «боевых» БД для анализа запросов SQL и оптимизации (смотрите также: чат-бот для оптимизации SQL Joe).
  • Автоматически тестируйте изменения БД в CI/CD-пайплайнах, чтобы не допускать инцидентов в продуктиве.

Например, клонирование 1-терабайтной базы данных PostgreSQL занимает около 10 секунд. При этом десятки независимых клонов могут работать на одной машине, обеспечивая разработку и тестирование без увеличения затрат на железо.

Попробуйте сами прямо сейчас:

  • зайдите на Database Lab Platform, присоединитесь к организации "Demo" и тестируйте клонировани ~1-терабайтной демо базы данных или
  • смотрите другое демо, DLE CE: https://nik-tf-test.aws.postgres.ai:446/instance, используйте демо-токен, чтобы зайти (это демо имеет самозаверенные сертификаты, так что игнорируйте жалобы браузера)

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

Тонкое клонирование работает сверхбыстро, так как оно базируется на технологии Copy-on-Write (CoW). DLE поддерживает два варианта CoW: ZFS (используется по умолчанию) и LVM.

При работе с ZFS, DLE периодически создаёт новые снимки директории данных и поддерживает набор таких снимков, регулярно удаляя старые неиспользуемые. При создании новых клонов пользователи могут выбирать, на основе какого именно снимка создавать клон.

Узнать больше можно по следующим ссылкам:

С чего начать

Изучение кейсов

Возможности

  • Молниеносное клонирование БД Postgres - создание нового клона, готового к работе, всего за несколько секунд (вне зависимости от размера БД).
  • Максимальное теоретическое количество снимков: 264. (ZFS, вариант по умолчанию).
  • Максимальный теоретический размер директории данных PostgreSQL: 256 квадриллионов зебибайт или 2128 байт (ZFS, вариант по умолчанию).
  • Поддерживаются все основные версии PostgreSQL: 9.6-14.
  • Для реализации тонкого клонирования поддерживаются две технологии (CoW): ZFS и LVM.
  • Все компоненты работают в Docker-контейнерах.
  • UI для удобства ручных действий пользователя.
  • API и CLI для удобства автоматизации работы со снимками и клонами DLE.
  • Контейнеры с PostgreSQL по умолчанию поставляются с большим количеством популярных расширений (docs).
  • Поддерживается расширение контейнеров PostgreSQL (docs).
  • БД-источник может находиться где угодно (Postgres под управлением пользователя, Яндекс.Облако, AWS RDS, GCP CloudSQL, Azure, Timescale Cloud и т.д.) и не требует никаких изменений. Нет никакий требований для установки ZFS или Docker в БД-источники (продуктивная БД).
  • Первоначальное получение данных может быть выполнено как на физическом (pg_basebackup или инструменты для бэкапов — такие как WAL-G, pgBackRest), так и на логическом (dump/restore напрямую из источника или восстановление из файлов, хранящихся в AWS S3) уровнях.
  • Для логического режима поддерживается частичное восстановление данных (конкретные БД, таблицы).
  • Для физического режима поддерживается постоянно обновляемое состояние ("sync container"), что, по сути, делает DLE репликой специального назначения.
  • Для логического режима поддерживается периодическое полное обновление данных, полностью автоматизированное и контролируемое DLE. Есть возможность использовать несколько дисков, содержащих различные версии БД, так что процесс обновления не приводит к простою в работе с DLE и клонами.
  • Сверхбыстрое восстановление на конкретную временную точку (Point in Time Recovery, PITR).
  • Неиспользованные клоны автоматически удаляются.
  • Опциональный флаг «защита от удаления» защищает клон от автоматического или ручного удаления.
  • В конфигурации DLE можно настроить политику зачистки снимков.
  • Неубиваемые клоны: клоны переживают рестарты DLE (включая случай с перезагрузкой машины).
  • Команда "reset" может быть использована для переключения между разными версиями данных.
  • Компонент DB Migration Checker собирает различные артефакты, полезные для тестирования БД в CI (docs).
  • SSH port forwarding для API и Postgres-соединений.
  • Параметры конфига Docker-контейнера могут быть специализированы в конфиге DLE.
  • Квоты использования ресурсов для клонов: процессор, память (любые квоты контейнеров, поддерживаемые Docker).
  • Параметры Postgres-конфига могут быть специализированы в конфиге DLE (отдельно для клонов, контейнеров "sync" и "promote").
  • Monitoring: открытый /healthz (без авторизации), расширенный /status (требует авторизации), Netdata-модуль.

Как поучаствовать в развитии проекта

Поставьте проекту звёздочку

Самый простой способ поддержки - поставить проекту звезду на GitHub/GitLab:

Поставьте звезду

Укажите явно, что вы используете DLE

Пожалуйста, опубликуйте твит с упоминанием @Database_Lab или поделитесь ссылкой на этот репозиторий в вашей любимой социальной сети.

Если вы используете DLE в работе, подумайте, где вы могли бы об этом упомянуть. Один из лучших способов упоминания - использование графики с ссылкой. Некоторые материалы можно найти в директории ./assets. Пожалуйста, используйте их в своих документах, презентациях, интерфейсах приложений и вебсайтов, чтобы показать, что вы используете DLE.

HTML-код для светлых фонов:

<a href="http://databaselab.io">
  <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-light-background.svg" />
</a>

Для тёмных фонов:

<a href="http://databaselab.io">
  <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-dark-background.svg" />
</a>

Предложите идею или сообщите об ошибке

Подробнее: ./CONTRIBUTING.md.

Участвуйте в разработке

Подробнее: ./CONTRIBUTING.md.

Справочники

HowTo-инструкции

Вы можете найти больше в секции "How-to guides" документации.

Разное

Лицензия

Код DLE распространяется под лицензией, одобренной OSI: Apache 2.0.

Свяжитесь с командой Postgres.ai, если вам нужна коммерческая лицензия, которая не содержит предложений GPL, а также, если вам нужна поддержка: Контактная страница.

Сообщество и Поддержка

Кодекс поведения