EP21 Backup Agent spouští denní pg_dump na PostgreSQL databáze a výstupy ukládá lokálně i do remote object storage (Contabo S3). Klíčové požadavky na storage vrstvu:
Infra tým diskutoval, zda by DB dumpy měly být komprimovány přes zip nebo tar před uložením. Argument pro: menší objem přenosu. Argument proti: restic deduplikace pracuje na úrovni bloků — ZIP/TAR by dedup znemožnil (komprimovaný soubor je kryptograficky odlišný i při malé změně vstupních dat).
| Nástroj | Dedup | Encryption | S3 backend | Docker-friendly | Zralost |
|---|---|---|---|---|---|
| restic | blokový CDC | AES-256 nativní | ano (nativní) | ano (single binary) | vysoká |
| borg | blokový CDC | ano | jen přes rclone | horší (Python dep) | vysoká |
| tar + gpg | ne | ruční pipeline | ruční | ano | legacy |
| zip | ne | volitelná | ruční | ano | nevhodný pro backup |
Blokový CDC dedup — restic dělí soubory na proměnně velké bloky (512 KB–8 MB, content-defined chunking). Identické bloky se ukládají jen jednou napříč všemi snapshoty. DB dump mění typicky jen malou část dat den za dnem → efektivita dedup 60–90 %.
Proč ne zip/tar před restic — komprese/archivace před restic dedup je kontraproduktivní. Komprimovaný soubor je z pohledu restic zcela jiná sekvence bajtů i při minimální změně vstupních dat → dedup přestane fungovat. restic komprimuje interně volitelně (od v0.14), ale i bez toho dedup výrazně dominuje nad kompresí pro opakující se obsah.
Proč ne borg — borg vyžaduje Python runtime, horší Docker integrace, S3 jen přes rclone wrapper. Pro EP21 scale výhody oproti restic neexistují.
Proč ne tar + gpg — žádná deduplikace, správa šifrování je ruční a chybová, žádný snapshot model, žádné prune, žádný S3. Vhodné pro jednorázové archivy, ne pro denní provoz.
Pozitivní:
restic snapshots, restic stats, restic ls — přehled co je kde uloženorestic forget --keep-* řídí retention bez ručního mazánírestic restore <snapshot> --target /Negativní / omezení:
| Version | Date | Author | Note |
|---|---|---|---|
| 1.0.0 | 2026-04-10 | david.sorf + claude-sonnet-4-6 | Vytvořeno a přijato. Kontext: diskuse s infra týmem o zip/tar vs. dedup. Restic potvrzen jako jediný storage engine. Alternativy borg a tar/zip/gpg dokumentovány a zamítnuty. |