Mert Tosun
← Yazılar
Zero-Downtime Veritabani Migrasyonlari: Expand-Contract Yaklasimi

Zero-Downtime Veritabani Migrasyonlari: Expand-Contract Yaklasimi

Mert TosunVeritabani

Schema degisiklikleri deployment kaynakli incident'lerin en yaygin nedenlerinden biridir. En riskli model, schema ve uygulama varsayimlarini ayni anda degistirmektir.

Daha guvenli model expand-contract yaklasimidir.

Expand asamasi

Yeni kolon, tablo veya index gibi degisiklikleri geri uyumlu sekilde ekleyin. Eski okuma ve yazma akislarini bu asamada bozmamalisiniz.

Cift yazma ve backfill

Gecici sure boyunca hem eski hem yeni alana yazin. Gecmis veriyi kontrollu batch'lerle backfill edin ve ilerleme metriklerini takip edin.

Okuma gecisi

Read akislarini feature flag ile yeni schema'ya yonlendirin. Tum trafik gecmeden once latency, hata orani ve veri tutarliligini dogrulayin.

Contract asamasi

Eski path artik kullanilmadiginda, temizligi ayri bir release ile yapin. Eski kolonlari ve kod yollarini bu son adimda kaldirin.

Operasyonel kontrol listesi

  • Sicak tablolarda tam kilit gerektiren islemlerden kacinin.
  • Uygunsa concurrent index olusturma kullanin.
  • Migrasyon sureci icin gozlemlenebilirlik ekleyin.
  • Her asama icin geri donus senaryosunu onceden tanimlayin.

Sonuc

Zero-downtime migrasyon tek bir SQL dosyasi degildir; kademeli bir yayin planidir. Expand-contract modeli, schema evrimini canli trafigi bozmadan yonetilebilir hale getirir.