Patternr Pattern

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.

Veri Akışı Düzeni 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, gelecekte değiştirilebilir ve kolayca müdahale edilebilir bir şekilde yapılandırabilirsiniz.
  • Bir noktada, geçiş tamamlandığında, geçiş tamamlandıktan sonra, yeni bir ya da eski istemciler için bir uyarıcıya dönüşecek.
  • 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.
  • Martin Fowler'ın,...... Ile ilgili blog gönderisi