Rollback (Geri Alma): Hatalı Sürümden Güvenle Dönmek
Sözlük

Rollback (Geri Alma): Hatalı Sürümden Güvenle Dönmek

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 3 dk okuma

Rollback'in ne olduğunu, yazılım sürümü ve veritabanı değişikliklerinde geri almanın nasıl yapıldığını, ne zaman ileri düzeltmenin seçildiğini öğrenin.

Rollback nedir?

Rollback, bir değişiklik sorun çıkardığında sistemi önceki çalışan duruma döndürmektir. Yazılım dağıtımında genellikle yeni sürüm geri çekilir ve önceki sürüm yeniden devreye alınır. Veritabanı dünyasında ise aynı terim, tamamlanmamış bir işlemin yaptığı değişikliklerin iptal edilmesi anlamına da gelir.

Amaç hatayı çözmek değil, etkiyi durdurmaktır. Neyin bozulduğunu anlamak ve kalıcı düzeltmeyi yazmak sonra gelir. Önce kullanıcılar için hizmet kararlı hale getirilir.

Rollback nasıl yapılır?

Yöntem, kullanılan dağıtım stratejisine göre değişir:

  • Sürüm geri alma: Önceki derleme çıktısı (imaj, paket) yeniden dağıtılır. Bunun için eski sürümlerin saklanması ve sürümlerin değiştirilemez kalması gerekir.
  • Trafik çevirme: Blue-green dağıtımda trafik yeniden eski ortama yönlendirilir; canary dağıtımda yeni sürümün trafik payı sıfıra çekilir.
  • Feature flag ile kapatma: Sorunlu özellik bayrakla kapatılır, yeniden dağıtım yapılmaz. Çoğu zaman en hızlı yoldur.
  • Veritabanı geri alma: Şema veya veri değişikliği için geri alma betiği çalıştırılır ya da yedekten dönülür.

Bu yöntemlerin hangisinin kullanılacağı, yayın planlanırken belirlenmeli ve prosedür olarak yazılmalıdır. Kriz anında yöntem aramak zaman kaybettirir.

Küçük bir örnek

Örneğin bir mobil uygulamanın sunucu tarafında yeni bir sürüm yayınlanır. Birkaç dakika içinde giriş işleminde hata oranı yükselir. Nöbetçi mühendis izleme panelinde sapmayı görür, önceden tanımlanmış rollback prosedürünü başlatır ve önceki sürüm yeniden devreye girer. Hata oranı normale döner.

Sonrasında ekip hata nedenini araştırır, düzeltmeyi yazar ve testlere eksik kalan senaryoyu ekler. Rollback burada çözümün kendisi değil, sistemi güvende tutan kısa vadeli bir önlemdir.

Ne zaman rollback, ne zaman ileri düzeltme?

Her sorunda geri almak doğru değildir. Karar ölçütleri:

  • Etki büyük ve düzeltme belirsizse geri alın.
  • Hata küçük ve düzeltmesi açıkça biliniyor, hızlıca yayınlanabiliyorsa ileri düzeltme (roll forward) düşünülebilir.
  • Yeni sürüm geri dönüşü olmayan veri değişiklikleri yaptıysa geri alma tehlikeli olabilir; önce veri etkisi değerlendirilmelidir.
  • Birden çok servis birbirine bağlıysa geri almanın sıralaması önemlidir.

Bu kararı kriz anında vermek yerine, yayın öncesinde karar kuralları ve yetki sahipleri belirlenmelidir.

Veritabanı değişiklikleri neden zordur?

Uygulama kodunu geri almak kolaydır; veriyi geri almak zordur. Yeni sürüm bir sütunu sildiyse ya da veriyi dönüştürdüyse, eski kod artık çalışmayabilir. Bu yüzden geriye uyumlu değişiklikler tercih edilir: önce yeni alan eklenir, uygulama eski ve yeni şemayla çalışır, eski alan ancak yeni sürüm kararlı olduktan sonra kaldırılır.

Geri alma betiklerinin de üretimde denenmemiş olması büyük bir risktir. Güvenilir bir prosedür, geri almayı test ortamında düzenli olarak prova etmeyi içerir.

Sık yapılan hatalar ve nasıl öğrenilir?

Sık hatalar arasında eski sürümün saklanmaması, geri alma prosedürünün yazılı olmaması, yetkinin belirsizliği ve sağlık kontrollerinin zayıflığı yer alır. Metrik olmadan sorunun fark edilmesi de gecikir.

Mindset kataloğundaki Sürüm ve Dağıtım Yönetimi (Release ve Deployment Management) programının modül başlıkları arasında dağıtım stratejilerinin seçimi, doğrulama, izleme ve geri alma ile sürüm sürecinin iyileştirilmesi bulunur. Sürekli Dağıtım Stratejileri (Blue-Green, Canary) programı ise trafik tabanlı geri dönüşü ele alan modüller içerir.

İlgili Mindset programı

Sürüm ve Dağıtım Yönetimi (Release ve Deployment Management)

Sık sorulanlar

Sık sorulan sorular

Rollback ile ileri düzeltme (roll forward) arasındaki fark nedir?

Rollback önceki sürüme döner; ileri düzeltme ise sorunu çözen yeni bir sürümü hızla yayınlar. Geri alma güvenli ve genelde hızlıdır, ancak veri değişikliği varsa riskli olabilir. Düzeltme açıkça biliniyorsa ve hızlı yayınlanabiliyorsa ileri düzeltme de makul bir seçenektir.

Her yayında rollback planı gerekir mi?

Evet, en azından kısa ve yazılı bir plan gerekir: neyin geri alınacağı, kimin karar vereceği, hangi sinyalin tetikleyeceği ve işlemin nasıl yapılacağı. Düşük riskli değişikliklerde plan basit olabilir, ama olmaması kriz anında gecikmeye ve yanlış kararlara yol açar.

Veritabanı işlemlerinde rollback ne anlama gelir?

Veritabanında rollback, bir işlem bloğundaki henüz kalıcılaşmamış değişikliklerin iptal edilmesidir. Adımlardan biri başarısız olursa, hepsi geri alınır ve veri tutarlı kalır. Bu davranış, işlemlerin bölünemezliği ilkesine dayanır ve yazılım sürümü geri almasından farklı bir bağlamdır.

Rollback sonrası ne yapılmalı?

Önce sistemin gerçekten kararlı olduğu izlemeyle doğrulanır. Ardından olay kaydı tutulur, hata nedeni incelenir, düzeltme yazılır ve eksik kalan test senaryosu eklenir. Bu öğrenme adımı atlanırsa aynı sorun bir sonraki yayında tekrar karşılaşılabilecek bir risk olarak kalır.

Rollback (Geri Alma) Nedir? Sürüm Geri Alma Rehberi