# Postgresus 2.0: kluczowe nowości w narzędziu do automatycznego backupu PostgreSQL
Postgresus 2.0 wzmacnia możliwości open source narzędzia do tworzenia kopii zapasowych PostgreSQL. W ciągu pół roku projekt zebrał 246 commitów, 2.7k gwiazdek na GitHub i 40k pobrań z Docker Hub. Dodano sprawdzanie stanu baz, nowe magazyny i powiadomienia, zarządzanie projektami z rolami, wielopoziomowe szyfrowanie, zoptymalizowaną kompresję oraz Helm chart dla Kubernetes. Rezygnacja z przyrostowych backupów uprościła architekturę.
Narzędzie wdraża się w Docker, docker-compose lub Helm, obsługuje self-hosted i zarządzane PostgreSQL. Główny nacisk położono na automatyzację backupów według harmonogramu z powiadomieniami i przechowywaniem w różnych magazynach.
Sprawdzanie dostępności baz danych
Nowa funkcja monitoruje stan połączenia z bazami. Postgresus okresowo sprawdza dostępność, wyświetla metryki w interfejsie i wysyła powiadomienia w przypadku przestojów. Sprawdzanie można wyłączyć lub skonfigurować interwał.
W razie niedostępności bazy generowany jest alert przez wybrany kanał: Telegram, Slack, Discord, MS Teams, SMTP lub webhook. Pozwala to szybko reagować na awarie bez dodatkowych narzędzi do monitoringu.
Rozszerzone magazyny i powiadomienia
Wsparcie dla magazynów zostało rozbudowane: dodano CloudFlare R2, Google Drive, Azure Blob Storage i NAS oprócz lokalnego dysku i S3. FTP, SFTP i NFS w planach.
Powiadomienia teraz integrują się ze Slack, Discord, MS Teams i niestandardowymi webhookami. Webhook konfigurowany jest elastycznie dla dowolnych platform.
- Magazyny: S3, R2, Google Drive, Azure Blob, NAS, lokalnie.
- Powiadomienia: Slack, Discord, Telegram, MS Teams, SMTP, webhook.
Zarządzanie projektami i RBAC
Wprowadzono hierarchię projektów do segmentacji baz danych. Administrator tworzy projekty i przypisuje użytkownikom role:
- Read-only: przegląd historii backupów, pobieranie plików.
- Edit: dodawanie/usuwanie/modyfikowanie baz + prawa read-only.
Logi audytowe rejestrują wszystkie działania: usuwanie baz, pobieranie backupów, zmiany ustawień. To kluczowe dla zespołów DBA, DevOps i zewnętrznych deweloperów pracujących z danymi kilku klientów.
Projekty pozwalają izolować:
- Bazy klienta A.
- Wewnętrzne bazy firmy B.
- Środowiska testowe zespołu C.
Wielopoziomowe szyfrowanie i bezpieczeństwo
Bezpieczeństwo zostało przeprojektowane pod scenariusze enterprise. Ochrona na trzech poziomach:
Szyfrowanie sekretów
Hasła do baz, tokeny magazynów i powiadomień szyfrowane są algorytmem AES-256-GCM. Klucz przechowywany jest w oddzielnym pliku poza bazą Postgresus. Deszyfrowanie następuje na żądanie podczas użycia.
Szyfrowanie backupów
Pliki pg_dump szyfrowane są strumieniowo z solą i IV (AES-256-GCM). Włączone domyślnie, opcjonalnie wyłączalne. Chroni przed wyciekami nawet w publicznych bucketach S3.
Użytkownicy read-only
Przy dodawaniu bazy z prawami zapisu Postgresus proponuje utworzenie roli tylko do odczytu. Automatyzuje najlepsze praktyki, minimalizując ryzyko uszkodzenia danych w razie kompromitacji.
Optymalizacja kompresji i wydajność
Domyślnie zstd na poziomie 5 dla PostgreSQL 16+ (gzip dla PG 12+). Benchmarki 21 scenariuszy wykazały optymalny balans prędkości i rozmiaru: kompresja ~8x, oszczędność miejsca 2-krotna przy tej samej prędkości w porównaniu do gzip 5.
Rezygnacja z przyrostowych backupów i PITR uprościła logikę, skupiając się na pełnych dumpach.
Wdrażanie w Kubernetes i ulepszenia UI
Dodano Helm chart dla natywnego wdrożenia w k8s. Trzech kontributorów wzięło udział w realizacji.
Interfejs zyskał ciemny motyw (na życzenie społeczności). UX poprawiony dla średniozaawansowanych/seniorów: dashboardy z metrykami, ustawienia w jeden klik.
Co nie zostało zaimplementowane
- Pełny monitoring zasobów BD (CPU, I/O).
- Wbudowana konsola SQL.
Te funkcje odłożono na później, skupiając się na rdzeniu: backupy + bezpieczeństwo.
Co najważniejsze
- Wielopoziomowe szyfrowanie: AES-256-GCM dla sekretów i backupów + role read-only.
- Praca zespołowa: projekty, RBAC, logi audytowe.
- Optymalizacja: zstd domyślnie, kompresja 8x.
- Integracje: nowe magazyny (R2, Azure, Drive), powiadomienia (Slack, Teams).
- Monitoring: sprawdzanie stanu baz z alertami.
— Editorial Team
Brak komentarzy.