Ön Uçlar için Arka Uçlar düzeni

Azure

Belirli ön uç uygulamaları veya arabirimleri tarafından kullanılacak ayrı arka uç hizmetleri oluşturun. Bu düzen, birden çok arabirim için tek bir arka ucu özelleştirmekten kaçınmak istediğiniz durumlarda kullanışlıdır. Bu düzen ilk olarak Sam Newman tarafından açıklanmıştır.

Bağlam ve sorun

Bir uygulama, başlangıçta bir masaüstü web kullanıcı arabirimini hedefleniyor olabilir. Genellikle, buna paralel olarak ilgili kullanıcı arabirimi için gerekli özellikleri sağlayan bir arka uç hizmeti geliştirilir. Uygulamanın kullanıcı tabanı genişledikçe aynı arka uç ile etkileşim kurması gereken bir mobil uygulama geliştirilir. Arka uç hizmeti, hem masaüstü arabirimlerinin hem de mobil arabirimlerin gereksinimlerini karşılayan genel amaçlı bir arka uca dönüşür.

Ancak mobil cihazın özellikleri, ekran boyutu, performans ve görüntü sınırlamaları açısından masaüstü tarayıcısından önemli ölçüde farklıdır. Sonuç olarak, bir mobil uygulama arka ucunun gereksinimleri masaüstü web kullanıcı arabirimi gereksinimlerinden farklıdır.

Bu farklılıklar, arka uç için birbiriyle çelişen gereksinimlere yol açar. Arka uç, hem masaüstü web kullanıcı arabirimi hem de mobil uygulamaya yönelik olarak hizmet sunmak için düzenli ve önemli değişiklikler gerektirir. Genellikle her bir ön uç üzerinde ayrı arabirim ekipleri çalıştığından arka uç, geliştirme sürecinde performans sorunlarına yol açmaya başlar. Birbiriyle çelişen güncelleştirme gereksinimleri ve hizmetin her iki ön uç için çalışmaya devam etmesini sağlama ihtiyacı, tek bir dağıtılabilir kaynağa çok fazla çaba harcanmasına neden olabilir.

Ön Uçlar için Arka Uçlar deseninin bağlam ve sorun diyagramı

Geliştirme etkinlikleri arka uç hizmetine odaklanırken arka ucun yönetilmesi ve bakımının yapılması için ayrı bir ekip oluşturulabilir. Sonuç olarak, bu durum arabirim ekipleri ile arka uç geliştirme ekipleri arasında bir bağlantı kopukluğuna yol açarak arka uç ekibinin farklı kullanıcı arabirimi ekiplerinin birbiriyle çelişen gereksinimlerini karşılama konusunda ek yük altında kalmasına neden olur. Bir arabirim ekibi için gerekli olan arka uç değişikliklerinin arka uçla tümleştirilebilmesi için önce diğer arabirim ekipleri tarafından doğrulanması gerekir.

Çözüm

Kullanıcı arabirimi başına bir arka uç oluşturun. Diğer ön uç deneyimlerini etkileme konusunda endişelenmeden ön uç ortamının gereksinimlerine en uygun şekilde her arka ucun davranışı ve performansında ince ayar yapın.

Ön Uçlar için Arka Uçlar deseninin diyagramı

Her arka uç bir arabirime özgü olduğundan, ilgili arabirim için iyileştirilebilir. Bunun sonucunda, tüm arabirimlerin gereksinimlerini karşılamaya çalışan genel bir arka uçla karşılaştırıldığında daha küçük, daha basit ve muhtemelen daha hızlı olacaktır. Her arabirimi ekibinin kendi arka ucu üzerinde özerk denetimi olur ve merkezi bir arka uç geliştirme ekibi gerekmez. Bu model, arabirim ekibine dil seçimi, yayın temposu, iş yükü önceliklendirmesi ve arka uçta özellik tümleştirmesi konularında esneklik sağlar.

Daha fazla bilgi için bkz. Düzen: Ön Uçlar için Arka Uçlar.

Sorunlar ve dikkat edilmesi gerekenler

  • Kaç arka uç dağıtılması gerektiğini göz önünde bulundurun.
  • Farklı arabirimler (örneğin, mobil istemciler) tarafından aynı istekler gerçekleştirilecekse, her bir arabirim için ayrı bir arka uç uygulanmasının gerekip gerekmediğini ya da tek bir arka ucun yetip yetmeyeceğini değerlendirin.
  • Bu düzen uygulanırken kodun farklı hizmetlerde yinelenme olasılığı yüksektir.
  • Ön uç odaklı arka uç hizmetleri yalnızca istemciye özgü mantığı ve davranışı içermelidir. Genel iş mantığı ve diğer genel özellikler uygulamanızın başka bir yerinde yönetilmelidir.
  • Bu düzenin bir geliştirme ekibinin sorumluluklarına nasıl yansıyabileceğini göz önünde bulundurun.
  • Bu düzeni uygulama sürecinin ne kadar süreceğini göz önünde bulundurun. Mevcut genel arka ucu desteklemeye devam ederken yeni arka uçların oluşturulması için çaba harcanması teknik borç oluşmasına mı neden olacak?

Bu düzenin kullanılacağı durumlar

Bu düzeni aşağıdaki durumlarda kullanın:

  • Önemli miktarda geliştirme ek yükü doğuran bir paylaşılan veya genel amaçlı arka uç hizmetinin gerekli olduğu durumlar.
  • Arka ucu belirli istemci arabirimlerinin gereksinimlerine göre iyileştirmek istediğiniz durumlar.
  • Genel amaçlı bir arka ucun birden çok arabirime uygun hale getirilmesi için özelleştirildiği durumlar.
  • Programlama dili, belirli bir kullanıcı arabiriminin arka ucu için daha uygundur ancak tüm kullanıcı arabirimleri için uygun değildir.

Bu düzen şu durumlarda uygun olmayabilir:

  • Arabirimlerin arka uca yönelik olarak aynı veya benzer istekleri gerçekleştirdiği durumlar.
  • Arka uç ile etkileşim için yalnızca bir arabirimin kullanıldığı durumlar.

İş yükü tasarımı

Bir mimar, Azure İyi Tasarlanmış Çerçeve yapılarında ele alınan hedefleri ve ilkeleri ele almak için Ön Uçlar için Arka Uçlar düzeninin iş yükünün tasarımında 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. Belirli bir ön uç arabirimine özel ayrı hizmetlere sahip olmak arızalar içerdiğinden, bir istemcinin kullanılabilirliği başka bir istemcinin erişiminin kullanılabilirliğini etkilemeyebilir. Ayrıca, çeşitli istemcilere farklı davrandığınızda, beklenen istemci erişim desenlerine göre güvenilirlik çalışmalarının önceliğini belirtebilirsiniz.

- RE:02 Kritik akışlar
- RE:07 Kendini koruma
Güvenlik tasarımı kararları, iş yükünüzün verilerinin ve sistemlerinin gizliliğini, bütünlüğünü ve kullanılabilirliğini sağlamaya yardımcı olur. Bu düzende sunulan hizmet ayrımı nedeniyle, bir istemciyi destekleyen hizmet katmanındaki güvenlik ve yetkilendirme, bu istemcinin gerektirdiği işlevlere göre uyarlanabilir ve bu da bir API'nin yüzey alanını ve farklı özellikleri ortaya çıkarabilecek farklı arka uçlar arasındaki yanal hareketi azaltabilir.

- SE:04 Segmentlere Ayırma
- SE:08 Sağlamlaştırma kaynakları
Performans Verimliliği , ölçeklendirme, veri ve kod iyileştirmeleri aracılığıyla iş yükünüzün talepleri verimli bir şekilde karşılamasını sağlar. Arka uç ayrımı, paylaşılan bir hizmet katmanıyla mümkün olmayacak şekilde iyileştirmenizi sağlar. Tek tek istemcileri farklı şekilde işlediğiniz zaman, belirli bir istemcinin kısıtlamaları ve işlevselliği için performansı iyileştirebilirsiniz.

- PE:02 Kapasite planlaması
- PE:09 Kritik akışlar

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