Skip to content

Latest commit

 

History

History
185 lines (146 loc) · 18.4 KB

README.ukrainian.md

File metadata and controls

185 lines (146 loc) · 18.4 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)] (https://en.wikipedia.org/wiki/Copy-on-write#In_computer_storage). 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 під управлінням користувача, 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:

Поставте зірку

Вкажіть явно, що ви використовуєте 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, а також якщо вам потрібна підтримка: Контактна сторінка.

Спільнота та підтримка

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