A person interacts with a colorful QR code display on a laptop in a modern indoor setting.

Tekirdağ’da plastik ambalaj üreten 280 çalışanlı bir firma, 24 TB üretim + ERP + dosya sunucusu verisini eski LTO kasetlere yedekliyordu. Kaset değiştirme manuel, restore tatbikatı yok, son 3 ayın yedekleri okunamıyor. 4 ayda Azure Backup hibrit mimariye geçildi. Bu yazı projeyi anlatıyor.

Mimarinin Ana Bileşenleri

Bileşen Görev
Recovery Services Vault (RSV) Merkezi yedek deposu, Azure NorthEurope
MARS Agent File server (8 TB) → doğrudan vault’a
Azure Backup Server (MABS) On-prem 22 VM + SQL → MABS → RSV
Azure VM Backup Bulutta çalışan 14 VM (test/staging)
Veeam B&R SAP B1 + ERP DB — application-aware backup
Immutable Vault Ransomware koruması, 14 gün soft delete

Recovery Services Vault Tasarımı

az backup vault create -g rg-backup -n rsv-prod-tr 
  --location northeurope

# Cross-region restore aktif (ekstra GRS)
az backup vault backup-properties set -g rg-backup -n rsv-prod-tr 
  --backup-storage-redundancy GeoRedundant 
  --cross-region-restore-flag true

# Soft delete + immutability
az backup vault backup-properties set -g rg-backup -n rsv-prod-tr 
  --soft-delete-feature-state Enable 
  --soft-delete-retention 14

# Vault'u immutable yap (silinmesin)
az dataprotection backup-vault update -g rg-backup --vault-name rsv-prod-tr 
  --immutability-state Locked

Backup Politikası: GFS Retention

Policy: "Critical-GFS"
Schedule:
  - Daily backup: 22:00
  - Differential incremental during day (SQL only)

Retention:
  - Daily: 30 gün
  - Weekly (her Pazar): 12 hafta
  - Monthly (her ayın 1'i): 36 ay
  - Yearly (1 Ocak): 7 yıl

Toplam recovery point: ~~30 + 12 + 36 + 7 = 85 nokta

MARS Agent Kurulumu (File Server)

PS> .MARSAgentInstaller.exe /q
PS> Register-OBMachine -VaultCredentials "vault-cred.vaultcredentials"
PS> $passphrase = ConvertTo-SecureString -String "32CharRandomPassphrase..." -AsPlainText -Force
PS> Set-OBMachineSetting -EncryptionPassphrase $passphrase

# Backup policy
PS> $policy = New-OBPolicy
PS> $sched = New-OBSchedule -DaysofWeek Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday -TimesofDay 22:00
PS> Set-OBSchedule -Policy $policy -Schedule $sched
PS> $retention = New-OBRetentionPolicy -RetentionDays 30 -RetentionWeeklyPolicy ...
PS> Set-OBRetentionPolicy -Policy $policy -RetentionPolicy $retention
PS> $files = New-OBFileSpec -FileSpec @("E:Production","F:Shares")
PS> Add-OBFileSpec -Policy $policy -FileSpec $files
PS> Set-OBPolicy -Policy $policy

SQL Server Backup (MABS)

MABS Console:
  - Add SQL Server: ERP-SQL-01
  - Protection group: "SQL-Critical"
  - Database list: ERPProd, ERPLog, MES_Prod
  - Recovery goal:
      - Short-term disk: 7 gün, 4 saatlik incremental
      - Long-term Azure: GFS 7 yıl
  - Express full: günde 1 (gece 23:00)
  - Log backup: 15 dakikada bir (RPO 15 dk)

Azure VM Backup

# Backup policy
az backup policy create -g rg-backup --vault-name rsv-prod-tr 
  --policy "vm-daily-gfs" 
  --backup-management-type AzureIaasVM 
  --policy-file vm-policy.json

# 14 VM'i policy'e ekle
for vm in vm-app01 vm-app02 vm-web01 vm-web02 ... ; do
  az backup protection enable-for-vm -g rg-backup --vault-name rsv-prod-tr 
    --vm $vm --policy-name vm-daily-gfs
done

Bandwidth Throttling

İlk full backup 8 TB. Throttling olmazsa internet hattı tıkanır. Çalışma saatlerinde sınırlı:

PS> Set-OBMachineSetting `
    -WorkDay Mon,Tue,Wed,Thu,Fri `
    -StartWorkHour "08:00" -EndWorkHour "18:00" `
    -WorkHourBandwidth 8MB `
    -NonWorkHourBandwidth 80MB

İlk full 6 gece sürdü. Sonraki incremental günde 30-50 GB.

Restore Tatbikatı (8 Hafta Sonra)

Senaryo Süre Sonuç
Tek dosya restore (file server) ~~3 dk OK
50 GB klasör restore ~~22 dk OK
SQL DB point-in-time restore (15 dk öncesi) ~~28 dk OK
Tüm VM restore (alternatif lokasyon) ~~1 saat 40 dk OK
Cross-region restore (Northeurope → Westeurope) ~~3 saat OK
Tüm site DR (22 VM + 8 TB file) ~~14 saat RTO hedefi 24 saat, OK

Ransomware Tatbikatı

Test ortamında deliberate olarak file server “encrypt” edildi (test dataset), sonra restore:

  1. 14:00 — saldırı başladı, file server encrypted
  2. 14:35 — tespit (Defender alert)
  3. 14:50 — IT acil koordinasyon
  4. 15:15 — RSV’den son temiz snapshot seçildi (14:00 öncesi 23:00 backup’ı)
  5. 15:25 — alternate VM’e restore başladı
  6. 17:40 — tüm 8 TB restore tamam
  7. 18:10 — DNS cutover yeni file server
  8. RPO = 15 saat (gecelik backup), RTO = 4 saat 10 dk

Maliyet

Kalem Aylık (USD)
RSV instance fee (35 backed-up source) $245
Storage GRS (~~24 TB after dedup/compression ~~14 TB) $420
Cross-region restore storage $80
MABS server VM (on-prem)
Toplam aylık ~~$745

Yıllık ~$8.940. Eski LTO maliyeti (kaset + drive bakım + offsite kurye) ~~$11.000/yıl. Bulut daha ucuz + güvenli + automated.

Sahada Düşülen Üç Tuzak

  1. Soft delete’i ve immutable vault’u atlamak: Ransomware ilk önce backup’a saldırır. Soft delete + immutability lock kritik.
  2. İlk full backup planlamamak: 8 TB ilk full internet’i 6 gün tıkar. Throttling + Azure Data Box (offline transfer) seçeneği değerlendirilmeli.
  3. Restore tatbikatı yapmamak: “Backup var” derken “restore çalışıyor mu” test edilmedi. 6 ayda bir tatbikat zorunlu.

CloudSpark olarak Azure Backup mimarisi, Recovery Services Vault tasarımı, MABS deployment, GFS retention politikası, immutable vault konfigürasyonu ve ransomware kurtarma tatbikatları için danışmanlık veriyoruz.

🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español