Mavi-yeşil dağıtım, durumsuz uygulamalar için harika çalışır. Veritabanı şema değişikliklerimiz geri almayı imkansız hale getirdi.

Durum:

  • Yeni sürümü Yeşil'e dağıt
  • Yeni sürüm veritabanı geçişini çalıştırır
  • Trafiği Yeşil'e yönlendir
  • Hata keşfedildi
  • Mavi'ye geri dönmek istiyoruz...
  • Ama Mavi yeni şemayı okuyamıyor!

Yıkıcı geçiş:

-- Geçiş
                                    ALTER TABLE users DROP COLUMN legacy_id;
                                    ALTER TABLE users RENAME COLUMN user_id TO id;

Eski kod legacy_id ve user_id bekliyor. Onlar artık yok.

Düzeltme - genişlet/daralt deseni:

  1. Genişlet: Yeni sütun ekle, eskileri koru
  2. Geçir: Her ikisine de yazan kodu dağıt
  3. Geri Doldur: Veriyi yeni sütuna kopyala
  4. Daralt: Kararlı hale geldikten sonra eski sütunu kaldır

Ana ilke:

  • Şema değişiklikleri geriye dönük uyumlu olmalıdır
  • N-1 sürümü N şemasıyla çalışmalıdır
  • Aynı sürümde asla silme/yeniden adlandırma yapma

Ders: Veritabanı, mavi-yeşil dağıtımın en zor kısmıdır. Bunu açıkça planlayın.


← Alınan Derslere Dön