Тонкие клоны для создания dev / test / QA / staging сред.
Доступно для любых PostgreSQL, включая AWS RDS, GCP CloudSQL, Heroku, Digital Ocean и серверы, администрируемых пользователем
- Создавайте 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 периодически создаёт новые снимки директории данных и поддерживает набор таких снимков, регулярно удаляя старые неиспользуемые. При создании новых клонов пользователи могут выбирать, на основе какого именно снимка создавать клон.
Узнать больше можно по следующим ссылкам:
- Введение в Database Lab для любой БД на PostgreSQL
- Введение в Database Lab для Amazon RDS
- Шаблон модуля Terraform (AWS)
- Qiwi: Как Qiwi управляет данными для ускорения процесса разработки
- GitLab: Как GitLab построил итерационный процесс оптимизации SQL для снижения рисков инцидентов
- Молниеносное клонирование БД 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:
Пожалуйста, опубликуйте твит с упоминанием @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.
- Как установить Database Lab с Terraform на AWS
- Как установить и инициализировать Database Lab CLI
- Как управлять DLE
- Как работать с клонами
Вы можете найти больше в секции "How-to guides" документации.
- Docker-образы DLE
- Extended Docker images for PostgreSQL (с огромным количеством расширений)
- Чатбот для оптимизации SQL (чатбот Joe)
- DB Migration Checker
Код DLE распространяется под лицензией, одобренной OSI: GNU Affero General Public License version 3 (AGPLv3).
Свяжитесь с командой Postgres.ai, если вам нужна коммерческая лицензия, которая не содержит предложений GPL, а также, если вам нужна поддержка: Контактная страница.
- "Кодекс поведения сообщества Database Lab Engine"
- Где получить помощь: Контактная страница
- Сообщество в Телеграм (русский язык)
- Сообщество в Slack
- Если вам надо сообщить о проблеме безопасности, следуйте инструкциям в документе "SECURITY.md".