Тонкі клони для створення 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)] (https://en.wikipedia.org/wiki/Copy-on-write#In_computer_storage). 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 під управлінням користувача, Yandex.Cloud, 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 Cheecker збирає різні артефакти, корисні для тестування БД у 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)] (https://postgres.ai/docs/joe-bot)
- DB Migration Checker
Код DLE розповсюджується під ліцензією, схваленою OSI: Apache 2.0.
Зв'яжіться з командою Postgres.ai, якщо вам потрібна комерційна ліцензія, яка не містить пунктів GPL, а також якщо вам потрібна підтримка: Контактна сторінка.
- "Кодекс поведінки спільноти Database Lab Engine"
- Де отримати допомогу: Контактна сторінка
- Спільнота у Телеграм (російська мова)
- Спільнота у Slack
- Якщо вам потрібно повідомити про проблему безпеки, дотримуйтесь інструкцій у документі "SECURITY.md".