Düzenle

Aracılığıyla paylaş


Strangler Fig deseni

Azure Migrate

Belirli işlev parçalarını aşamalı olarak yeni uygulamalar ve hizmetlerle değiştirerek, eski sistemi artım bir şekilde geçirin. Eski sistemin özellikleri değiştirildikçe yeni sistem zaman içinde eski sistemin tüm özelliklerini sunmaya başlar, eski sistem işlevsiz hale gelir ve eski sistemi kaldırmanıza olanak verir.

Bağlam ve sorun

Sistemler yaşlandıkça, geliştirme araçları, barındırma teknolojisi ve hatta kullandıkları sistem mimarileri kullanımdan kalkıyor. Yeni özellikler ve işlevler eklendikçe bu uygulamaların karmaşıklığı önemli ölçüde artabiliyor, bakım yapmak ve yeni özellikler eklemek daha zor hale geliyor.

Karmaşık bir sistemi tamamen değiştirmek çok büyük bir iş olabilir. Genellikle, henüz geçirilmeyen özellikleri işlemek için eski sistem korurken yeni bir sisteme aşamalı bir geçiş yapmanız gerekir. Ancak, bir uygulamanın iki farklı sürümünü çalıştırıyorsanız istemcilerin belirli özelliklerin nerede bulunduğunu bilmesi gerekir. Bir özellik veya hizmet her geçirildiğinde, istemcilerin yeni konumunu gösterecek şekilde güncelleştirilmesi gerekir.

Çözüm

Belirli işlev parçalarını yeni uygulamalar ve hizmetlerle aşamalı bir şekilde değiştirin. Eski arka uç sisteme giden istekleri alacak bir aracı oluşturun. Bu aracı, istekleri eski uygulamayı veya yeni hizmetlere yönlendirir. Mevcut özellikler yeni sisteme kademeli olarak geçirilebilir ve tüketiciler, bir geçiş yapıldığının farkında bile olmadan aynı arabirimi kullanmaya devam edebilir.

Strangler İncir deseninin diyagramı

Bu düzen, geçiş işleminde riski en aza indirmeye ve geliştirme çalışmalarını zamana yaymaya yardımcı olur. Aracı, kullanıcıları güvenli bir şekilde doğru uygulama yönlendirirken, eski uygulamanın çalışmaya devam etmesini sağlar ve yeni sisteme işlevleri istediğiniz hızda ekleyebilirsiniz. Zaman içerisinde, özellikler yeni sisteme geçirildikçe eski sistem işlevsiz hale gelir ve gereksiz olur. Bu işlem tamamlandıktan sonra eski sistem güvenli bir şekilde devre dışı bırakılabilir.

Sorunlar ve dikkat edilmesi gerekenler

  • Yeni ve eski sistemler tarafından kullanılan hizmetlerin ve veri depolarının nasıl ele alınacağını göz önünde bulundurun. Her ikisinin de bu kaynaklara yan yana erişebildiğinden emin olun.
  • Yeni uygulamaları ve hizmetleri, gelecekteki boğazlayıcı incir geçişlerinde kolayca kesişebilecekleri ve değiştirilebilecekleri şekilde yapılandırır.
  • Bir noktada, geçiş tamamlandığında, boğazlayıcı incir cephesi ortadan kaybolur veya eski müşteriler için bir bağdaştırıcıya dönüşecektir.
  • Aracının geçiş işlemine uyum sağladığından emin olun.
  • Aracı bir hata noktası veya performans sorunu haline gelmemelidir.

Bu düzenin kullanılacağı durumlar

Bir arka uç uygulamasını yeni bir mimariye aşamalı olarak geçirirken bu düzeni kullanın.

Bu düzen şu durumlarda uygun olmayabilir:

  • Arka uç sistemine giden istekler alınamadığında.
  • Toptan değiştirme karmaşıklığı düşük olan küçük sistemlerde.

İş yükü tasarımı

Bir mimar, İş yükü tasarımında, Azure İyi Tasarlanmış Çerçeve yapılarında ele alınan hedefleri ve ilkeleri ele almak için Strangler Fig deseninin nasıl kullanılabileceğini değerlendirmelidir. Örneğin:

Yapı Taşı Bu desen sütun hedeflerini nasıl destekler?
Güvenilirlik tasarımı kararları, iş yükünüzün arızaya karşı dayanıklı olmasına ve bir hata oluştuktan sonra tamamen çalışır duruma gelmesini sağlamaya yardımcı olur. Bu düzenin artımlı yaklaşımı, bileşen geçişi sırasındaki riskleri azaltmaya ve büyük sistemik değişikliklere karşı yardımcı olabilir.

- RE:08 Testi
Maliyet İyileştirme, iş yükünüzün yatırım getirisini sürdürmeye ve geliştirmeye odaklanır. Bu yaklaşımın amacı, düşük ROI değişimlerinden önce yüksek ROI değişimleri gerçekleştirmenizi sağladığından, artımlı olarak modernleştirildiğinden, şu anda çalışan sistemde mevcut yatırımların kullanımını en üst düzeye çıkarmaktır.

- CO:07 Bileşen maliyetleri
- CO:08 Ortam maliyetleri
Operasyonel Mükemmellik, standartlaştırılmış süreçler ve ekip uyumu aracılığıyla iş yükü kalitesinin sunulmasına yardımcı olur. Bu düzen, zaman içindeki küçük değişikliklerle artımlı değiştirmenin uygulanması daha riskli olan büyük sistemik değişiklikler yerine tercih edilen sürekli bir iyileştirme yaklaşımı sağlar.

- OE:06 İş yükü geliştirme
- OE:11 Güvenli dağıtım uygulamaları

Herhangi bir tasarım kararında olduğu gibi, bu desenle ortaya konulabilecek diğer sütunların hedeflerine karşı herhangi bir dengeyi göz önünde bulundurun.

Sonraki adımlar