Kademeli Eski Sistem Geçiş Planı
Mühendislik

Kademeli Eski Sistem Geçiş Planı

Kademeli geçiş, her rotanın sahibi, testi ve geri dönüş yolu açık olduğunda işe yarar. Rota planını, veri sahipliğini ve açılış kapılarını varsayımsal sipariş geçmişi örneğiyle kurun.

Kısa cevap

Strangler Fig pattern, eski uygulamanın işlevlerini ortak giriş noktasının arkasında aşama aşama yeni uygulamaya taşıma yöntemidir. Her rota için veri sahibi, davranış sözleşmesi, ölçülebilir açılış kapısı ve test edilmiş geri dönüş yolu belirleyin. Eski kodu, ilgili iş döngüsü boyunca trafik ve arka plan bağımlılığı kalmadığını doğruladıktan sonra kaldırın.

Strangler Fig pattern nedir, eski sistem geçişinde neden gerekir?

Strangler Fig pattern, eski bir uygulamanın işlevlerini ortak giriş noktası arkasında parça parça yenileme yöntemidir. İstek, taşınan işlev için yeni uygulamaya; kalan işler için eski uygulamaya gider. Kullanıcı aynı adresi kullanırken arka tarafta farklı parçalar değişebilir. Microsoft'un Strangler Fig deseni bu kademeli yönlendirmeyi ve eski bağımlılıklar kalmadığında sistemin kaldırılmasını anlatır. Amaç, büyük bir geçişin riskini daha küçük, ölçülebilir adımlara bölmektir.

Bir vekil sunucu kurmak bütün geçiş planını oluşturmaz. Yeni bileşenin hangi iş kuralını uyguladığı, hangi veriyi yazdığı ve hata durumunda eski uygulamanın devam edip edemeyeceği belirlenmelidir. İsteklerin önüne girilemiyorsa, gerekli eski kod değiştirilemiyorsa veya eski sistemin hızla tamamen kaldırılması gerekiyorsa kademeli geçiş uygun olmayabilir. Küçük ve kolay değiştirilebilir bir uygulama için iki sistemi birlikte işletmek gereksiz yük de yaratabilir.

Geçişte eski ve yeni sistem bir süre birlikte yaşar. Bunun altyapı, izleme ve destek maliyetini baştan planlayın. Her adımın tamamlanma koşulu olmalı; yalnızca yeni kodun yayınlanmasıyla ilerleme ölçülmemelidir. Eski rota, mobil istemci ya da gece çalışan görev tarafından hâlâ çağrılıyorsa iş bitmemiştir. Geçici mimarinin kalıcı ikinci ürüne dönüşmesini engelleyen şey, rota bazında sahiplik ve kapanış kanıtıdır.

Rota bazında kademeli geçiş planı

İstemci, giriş rotası, kimlik doğrulama, arka plan görevi ve veri yazımı arasındaki bağı çizerek başlayın. Ölçülebilir yararı ve yönetilebilir hata maliyeti olan tek iş yeteneğini seçin. Salt okunur katalog, ödeme veya stok etkisi bulunmadığı için sipariş oluşturmadan daha kolay başlangıç olabilir. Aşağıdaki tablo bir sipariş portalı için örnek plan iskeletidir; bütün rotaların aynı projede taşınması önerisi değildir.

Rota veya işGeçiş kapısıGeri dönüş
Ürün kataloğuAlanlar ve filtreler aynıEski okuma rotası
Sipariş geçmişiYetki ve sayfalama doğrulandıGrup yönlendirmesini kapat
Günlük raporTutarlar ve güncellik uzlaştıEski raporu etkinleştir
Sipariş oluşturmaTek yazar ve tekrar güvenliğiYeni kayıtları eskiye aktar
Gece mutabakatıÇalışma döngüsü ve bağımlılıklar doğrulandıEski görevi kontrollü aç

Her satırın ayrıntılı kaydında rota kimliği, iş sahibi, teknik sorumlu, çağıran istemciler, veri sahibi, aşama, kabul ölçütü, geri alma anahtarı ve son eski trafik tarihi bulunsun. Test kanıtını ve kapıyı açan kişinin kararını ilişkilendirin. Tablodaki geri dönüş sütunu, yazma rotaları için yalnızca bir hatırlatmadır; yeni kayıtların dönüşümü ve sıra koruması ayrıca denenmelidir. Çözülmemiş ortak bir işlem (transaction) varsa o rota açılmaz.

Giriş noktası ve davranış sözleşmesi nasıl kurulur?

Yönlendirme katmanında önce bütün trafiği eski sisteme gönderin. Bu değişikliğin kendi gecikmesini ve arıza davranışını ölçün; yeni işlev henüz açılmadığı için sorunsuz olacağını varsaymayın. Rota ve kullanıcı grubu eşlemesini sürümlü yapılandırmada saklayın. Aynı kullanıcının aynı akışta eski ve yeni yollar arasında rastgele dolaşmasını engelleyin. Oturum, yetki kontrolü, istek kimliği ve destek kaydı her iki yolda aynı kullanıcı işlemini izleyebilmelidir.

İstek ve yanıt sözleşmesini yazın: zorunlu alanlar, boş değerler, hata kodları, zaman dilimi, para birimi, sıralama ve sayfalama. Eski davranışın hangisinin korunacağını, hangisinin bilinçli değişeceğini iş sahibi onaylasın. Sipariş geçmişinde kayıtların aynı olması yetmez; kullanıcının yalnızca kendi siparişlerini görmesi ve sayfa geçişlerinde kaydın tekrarlanmaması veya atlanmaması da gerekir. Eski veriyle yeni veri modeli arasındaki anlam farklarını ayrı test örnekleriyle gösterin.

Microsoft'un anti-corruption layer deseni, farklı anlamlar kullanan sistemler arasına dönüşüm katmanı koyar. Örneğin eski sistemde tek durum kodu olan teslimat, yeni modelde gönderildi ve teslim edildi olarak ayrılabilir. Dönüşümü iş mantığının her yerine dağıtmak yerine belirli bir sınırda tutun. Bu katmanın gecikmesini, hatalarını ve kaldırılma koşulunu da izleyin; yanlış anlamı temiz bir API adıyla taşımak modernizasyon sağlamaz.

Veri sahipliği, gölge trafik ve aşamalı açılış

Her aşamada tek yetkili yazarı açıkça belirtin. Yeni uygulama eski veritabanını geçici okuyabilir, bir API kullanabilir veya eşitlenen okuma modeliyle çalışabilir. Hangi seçenek seçilirse seçilsin, verinin kaynağını, güncellik sınırını ve kopuk bağlantıda davranışı kaydedin. Yeni sistemin eski tablolara süresiz doğrudan bağımlılığı, taşınmış kodun yanında eski şema bağımlılığını da yaşatır. Geçici erişimin bitiş koşulu olmalıdır.

Gölge trafik yalnızca güvenle tekrar edilebilir okuma ve yan etkisiz hesaplama için kullanılmalıdır. Aynı sipariş oluşturma isteğini iki uygulamada çalıştırmak iki sipariş veya ödeme doğurabilir. Yazma akışlarını önce yan etkileri kapalı test ortamında ve temsilî kayıtlarla sınayın. Canlı geçişte yeni yazımların eski uygulamayla nasıl uzlaştırılacağını, tekrarlanan mesajların nasıl ayırt edileceğini ve iptallerin hangi sırayla işleneceğini belirleyin. Kayıt sayısının eşitliği, tutarların ve durumların doğruluğunu tek başına kanıtlamaz.

Microsoft'un güvenli dağıtım rehberi, küçük kullanıcı gruplarıyla aşamalı açılışı ve her aşamada sağlık kontrolünü önerir. Grup büyüklüğünü trafik ve iş riskine göre seçin. Gözlem süresi normal kullanımın, yoğun saatin ve ilgili toplu işin çalışmasına yetecek kadar uzun olmalıdır. İstek gelmeyen bir grupta hata görülmemesi başarı kanıtı değildir. Açılma, durma ve geri dönüş yetkisini isimlendirin.

Varsayımsal örnek: sipariş geçmişini taşıma

Örneğin bir portal günlük 30.000 sipariş geçmişi sorgusu alsın. Eski rotada p95 gecikmesi 900 milisaniye, hata oranı %0,4 olsun. Yeni yol, eski sistemin API'sinden beslenen okuma modelini kullansın ve en fazla 60 saniye güncellik gecikmesine izin verilsin. Bu rakamlar varsayımsaldır; bir müşteri ölçümü veya her sistem için uygun eşik değildir. İlk aşamanın iş sahibi destek ekibi, teknik sorumlusu portal ekibi olarak kaydedilir.

2.000 temsilî okuma isteği gölgede karşılaştırılır. Kimlik, yetki, toplam, sıra ve sayfalama sınanır. Ardından 100 iç kullanıcı yeni yola alınır; bir tam iş günü ve gece eşitlemesi gözlenir. Açıklanamayan kayıt farkı yoksa dış kullanıcıların %5'i açılır. Bu örnekte hedef p95 gecikmesinin 900 milisaniyeyi ve hata oranının %0,4'ü aşmamasıdır. Veri gecikmesi 60 saniyeyi geçtiğinde açılış durur, yapılandırma eski okuma yoluna çevrilir.

Son aşamada tüm trafik yeni yola gitse bile eski rota hemen silinmez. Ay sonu raporunun bu rotayı çağırdığı görülürse plan güncellenir. Tamamlanma için ilgili iş döngüsü boyunca çağrı kalmaması, veri uzlaşması ve geri dönüş tatbikatı gerekir. Son eski trafik zamanı kaydedilir; bağımlılık kaldırılmadan rota kaydı tamamlandı olarak işaretlenmez.

Geçiş kapıları için test planı

  1. Sözleşme: Eski ve yeni yolda aynı temsilî girdileri çalıştırın; amaçlı değişiklikleri hata listesinden ayrı tutun ve onay kaydı ekleyin.
  2. Yetki: Farklı kullanıcı ve rollerle aynı rota çağrısını sınayın; yeni yönlendirme eski erişim sınırını genişletmemelidir.
  3. Arıza: Yeni hizmeti ve dönüşüm katmanını durdurun. Anahtarın çalıştığını, eski yol kapasitesini ve devam eden işlemlerin sonucunu doğrulayın.
  4. Veri: Gecikmiş güncelleme, tekrar, iptal ve eşitleme kesintisini deneyin; tutar, durum ve kayıt kimliğini uzlaştırın.
  5. Açılış: Rota ve gruba göre hata, p95 gecikmesi, iş sonucu ve trafik sayısını izleyin; kapıyı yalnızca yeterli kullanım kanıtıyla açın.
  6. Kapatma: Mobil istemci, dosya aktarımı ve arka plan görevlerinin eski bağımlılığını kontrol edin; kaldırmadan önce yedek ve yeniden kurma yolunu doğrulayın.

Sık yapılan hatalar

  • Vekil sunucuyu geçiş planı sayıp iş ve veri sahibini belirsiz bırakmak.
  • Sıkı bağlı birkaç rotayı birlikte taşıyarak geri dönüş sınırını gereksiz büyütmek.
  • Yazma isteklerini iki sistemde gölgede çalıştırıp yan etkileri çoğaltmak.
  • Bir açılış yüzdesini bütün trafik seviyelerine uygulamak ve kullanılmayan grubu başarılı saymak.
  • Eski kodu yalnızca ön yüz trafiğine bakarak silip gece işleri ile mobil istemcileri atlamak.

Hatson Tech bunu nasıl kuruyor?

Özel yazılım geliştirme çalışmalarında geçişi rota envanteri, veri sahipliği ve kabul kapılarıyla kapsamlandırıyoruz. Seçilecek sınırı monoliti ne zaman servislere ayırmalı rehberindeki alıştırmayla değerlendirebilir, bütün uygulamanın hangi parçalarının korunacağını uygulama modernizasyonu karar rehberinden belirleyebilirsiniz. İlk çıktıda rota planı, sorumlular, test kanıtı ve geri dönüş adımları birlikte görünür. Bir aday akışı ve mevcut bağımlılıklarını paylaşmanız, geçişin ilk denemesini somutlaştırır.

Önemli çıkarımlar

  • API ve veri sınırı açık tek iş yeteneği seçip rota kaydı oluşturun.
  • Yönlendirme katmanını önce eski sistemle sınayın, kullanıcı grubunu tutarlı yönlendirin.
  • Yan etkili yazma isteklerini iki sistemde gölgede çalıştırmayın.
  • Her aşamayı rota ve gruba göre kullanım, hata ve veri uzlaşmasıyla açın.
  • Eski kodu kaldırmadan mobil istemci ve arka plan bağımlılıklarının bittiğini kanıtlayın.

Sıkça sorulan sorular

Strangler Fig pattern nedir?

Eski sistemin bütününü aynı anda değiştirmek yerine işlevleri ortak giriş noktasının arkasında ayrı ayrı yenilemektir. Taşınmayan işlevler eski uygulamada çalışır; kaldırma kararı kalan bağımlılıkların bitmesine bağlıdır.

Kademeli eski sistem geçişi nasıl yapılır?

Önce çağıranları ve veri yazımlarını envantere alın, ardından tek rota için sözleşme ve kabul kapısı yazın. Yeni yolu temsilî testlerle sınayın, küçük grupla açın ve sonraki aşamayı kullanım kanıtına göre onaylayın.

Strangler Fig ile mikroservis aynı şey mi?

Hayır, biri geçiş yöntemi diğeri uygulamayı düzenleme biçimidir. Kademeli geçişle yeni işlevi bir mikroservise veya başka bir uygulama bileşenine taşıyabilirsiniz.

Strangler fig geçişinde geri dönüş nasıl yapılır?

Rota, yönlendirme katmanında yeniden eski uygulamaya çevrilir. Salt okunur rotalarda bu yeterli olabilir, ancak kapasite ve yetki yine sınanmalıdır. Yeni yol veri yazıyorsa eski uygulamanın yeni kayıtları işleyebilmesi ve iki sistemin uzlaşması ayrıca planlanmalıdır.

Eski sistemi ne zaman kapatabilirim?

İlgili iş döngüsünde kalan çağrı ve arka plan bağımlılığı görülmediğinde, veri doğrulandığında ve geri dönüş tatbikatı tamamlandığında kapatmayı değerlendirin. Aylık bir görev varsa yalnızca günlük trafiğe bakarak karar vermeyin.

Tüm yazılar