Tanık Dokümantasyon

İşletme

#Yedekleme ve geri yükleme

Denetim kaydı silinemez; ürünün temel özelliği budur. Ama sunucu kaybolursa kayıt da kaybolur ve o noktada elinizde kanıt kalmaz. Yedekleme, silinmezliğin tek boşluğudur.

Bu yordam koddan ve kurulum tanımından çıkarılmıştır. Kendi kurulumunuzda bir kez baştan sona prova etmeden yedeğiniz olduğunu varsaymayın. Denenmemiş yedek, yedek değildir.

#Ne yedeklenir

NeDocker birimiKaybedilirse
Denetim kaydı ve yapılandırmanev-gateway_mongo-dataGeri getirilemez. Kanıtınız buydu
İmza anahtarı çiftinev-gateway_checkpoint-keysÖzel anahtar giderse yeni checkpoint imzalanamaz. Açık anahtar giderse geçmiş checkpoint'ler doğrulanamaz
Parmak izi ve kasa anahtarlarınev-gateway_gateway-keysParmak izleri doğrulanamaz olur; kasadaki sağlayıcı anahtarları açılamaz
Yazılmayı bekleyen kayıtlarnev-gateway_audit-spoolVeritabanı erişilemezken diske yazılmış, henüz aktarılmamış kayıtlar
Sırlardeploy/.env (sunucuda, birim değil)Parolalar ve sağlayıcı anahtarları

Yedeklenmesi gerekmeyen: nev-gateway_redis-data. Redis yalnız zincir ucunu ve sayaçları tutar; zincir ucu kaybolursa kayıttan yeniden kurulur. Bütçe sayaçları sıfırdan başlar.

#Yedek alma

Kısa bir duruş gerektirir; imaj içindeki araçlara bağlı olmadığı için her kurulumda çalışır.

cd deploy
docker compose stop gateway worker
docker compose stop mongo

TS=$(date -u +%Y%m%dT%H%M%SZ)
mkdir -p "$HOME/nev-yedek/$TS"

for v in mongo-data checkpoint-keys gateway-keys audit-spool; do
  docker run --rm \
    -v "nev-gateway_$v:/kaynak:ro" \
    -v "$HOME/nev-yedek/$TS:/hedef" \
    alpine tar czf "/hedef/$v.tar.gz" -C /kaynak .
done

cp .env "$HOME/nev-yedek/$TS/env.backup"   # sırlar; ayrı ve şifreli saklayın
docker compose up -d

#Geri yükleme

cd deploy
docker compose down
for v in mongo-data checkpoint-keys gateway-keys audit-spool; do
  docker volume rm "nev-gateway_$v"; docker volume create "nev-gateway_$v"
done

TS=<geri-yüklenecek-yedeğin-damgası>
for v in mongo-data checkpoint-keys gateway-keys audit-spool; do
  docker run --rm \
    -v "nev-gateway_$v:/hedef" \
    -v "$HOME/nev-yedek/$TS:/kaynak:ro" \
    alpine tar xzf "/kaynak/$v.tar.gz" -C /hedef
done

cp "$HOME/nev-yedek/$TS/env.backup" .env
docker compose up -d --wait

mongo-provision her up komutunda çalışır ve geri yüklenen veritabanını da bu sürümün beklediği şekle getirir.

#Doğrulama — asıl adım

Geri yükleme "servisler ayağa kalktı" ile bitmez. Kaydın bozulmadan döndüğünü göstermeniz gerekir: kayıtları dışa aktarın ve nev-verify çalıştırın. DOĞRULANDI görmüyorsanız geri yükleme başarısızdır; servisler ayakta olsa bile. Ayrıntı: Bağımsız doğrulama.

#Prova

Yılda bir kez, üretim dışı bir sunucuda: yedeği alın, birimleri gerçekten silin, geri yükleyin, nev-verify ile doğrulayın. Prova edilmemiş bir geri yükleme yordamı, felaket anında ilk kez denenen bir yordamdır.