Performans verimliliğini destekleyen mimari tasarım desenleri

İş yükü mimarileri tasarlarken, yaygın zorluklara çözüm getiren sektör desenlerini kullanmanız gerekir. Desenler, iş yükleri içinde kasıtlı dengeler oluşturmanıza ve istediğiniz sonuç için iyileştirme yapmanıza yardımcı olabilir. Ayrıca güvenilirlik, güvenlik, maliyet ve işlemleri etkileyebilecek belirli sorunlardan kaynaklanan riskleri azaltmaya da yardımcı olabilir. Riskler azaltılmazsa, sonuçta performans verimsizliklerine yol açar. Bu desenler gerçek dünya deneyimi tarafından desteklenir, bulut ölçeği ve işletim modelleri için tasarlanmıştır ve doğası gereği satıcıdan bağımsızdır. İş yükü tasarımınızı standartlaştırmanın bir yolu olarak iyi bilinen desenleri kullanmak, operasyonel mükemmelliğinizin bir bileşenidir.

Birçok tasarım deseni bir veya daha fazla mimari sütununu doğrudan destekler. Performans Verimliliği sütununun ölçeklenebilirliği, performans ayarlamasını, görev önceliklendirmesini ve performans sorunlarının giderilmesini destekleyen tasarım desenleri.

Aşağıdaki tabloda, performans verimliliği hedeflerini destekleyen Mimari tasarım desenleri özetlenmiştir.

Desen Özet
Zaman Uyumsuz İstek-Yanıt Anında yanıtlara ihtiyaç duymayan işlemler için etkileşimlerin istek ve yanıt aşamalarını birbirinden ayrıştırarak sistemlerin yanıt hızını ve ölçeklenebilirliğini artırır. Zaman uyumsuz bir desen kullanarak, sunucu tarafında eşzamanlılığı en üst düzeye çıkarabilirsiniz. Bu düzeni, kapasitenin izin verdiği şekilde çalışmanın tamamlanacak şekilde zamanlanması için kullanabilirsiniz.
Ön uçlar için arka uçlar Belirli bir ön uç arabirimine özel ayrı hizmetler oluşturarak iş yükünün hizmet katmanını bireyselleştirir. Bu 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.
Bölme Arızaların patlama yarıçapını yalıtmak için bileşenler arasında segmentasyon sağlar. Bu tasarım, her bölme başlığının bölmede kapsüllenmiş olan görevin gereksinimlerini karşılamak için ayrı ayrı ölçeklenebilir olmasını sağlar.
Edilgen Önbellek İsteğe bağlı olarak doldurulan bir önbellek sunarak sık okunan verilere erişimi iyileştirir. Önbellek daha sonra aynı veriler için sonraki isteklerde kullanılır. Bu desen özellikle sık değişmeyen ve belirli bir eskime miktarını tolere edebilen okuma ağırlıklı verilerde kullanışlıdır. Bu uygulamanın amacı, bu tür verileri veri deposundan kaynak oluşturmak yerine önbelleğe yükleyerek sistemde genel olarak daha iyi performans sağlamaktır.
Koreografi Merkezi olmayan, olay odaklı iletişim kullanarak bir iş yükündeki otonom dağıtılmış bileşenlerin davranışını koordine eder. Bu düzen, merkezi bir düzenleme topolojisinde performans sorunları oluştuğunda bir alternatif sağlayabilir.
Devre kesici Hatalı çalışan veya kullanılamayan bir bağımlılık için sürekli istekleri engeller. Hatada yeniden deneme yaklaşımı, bağımlılık kurtarma sırasında aşırı kaynak kullanımına yol açabilir ve kurtarma girişiminde bulunan bir bağımlılıkta performansı aşırı yükleyebilir.
Talep Denetimi Verileri mesajlaşma akışından ayırarak iletiyle ilgili verileri ayrı ayrı almak için bir yol sağlar. Bu düzen, sistem büyük veri yüklerini işlediğinde ileti yayımcılarının, abonelerin ve ileti veri yolunun verimliliğini ve performansını artırır. İletilerin boyutunu azaltarak ve tüketicilerin yük verilerini yalnızca gerektiğinde ve uygun zamanda almasını sağlayarak çalışır.
Rakip Tüketiciler Bir kuyruktaki öğeleri verimli bir şekilde işlemek için dağıtılmış ve eşzamanlı işleme uygular. Bu model, yükü tüm tüketici düğümlerine dağıtmayı ve kuyruk derinliğine dayalı dinamik ölçeklendirmeyi destekler.
İşlem Kaynağı Birleştirme Yoğunluğu artırarak işlem kaynaklarını iyileştirir ve birleştirir. Bu düzen, paylaşılan bir altyapıda bir iş yükünün birden çok uygulaması veya bileşenini birleştirir. Bu birleştirme, fazla sağlamayı azaltmak için yedek düğüm kapasitesini kullanarak bilgi işlem kaynaklarının kullanımını en üst düzeye çıkarır. Kapsayıcı düzenleyicileri yaygın bir örnektir. Büyük (dikey olarak ölçeklendirilmiş) işlem örnekleri genellikle bu altyapılar için kaynak havuzunda kullanılır.
Komut ve Sorgu Sorumluluğu Ayrım (CQRS) Bir uygulamanın veri modelinin okuma ve yazma işlemlerini birbirinden ayırır. Bu ayrım, her işlemin belirli bir amacı için hedeflenen performans ve ölçeklendirme iyileştirmelerini etkinleştirir. Bu tasarım en çok okuma-yazma oranı yüksek uygulamalarda yararlıdır.
Dağıtım Damgaları Aynı veya farklı sürümlerin eşzamanlı olarak dağıtılacağı varsayımını temel alarak uygulamanın belirli bir sürümünü ve altyapısını denetimli bir dağıtım birimi olarak yayınlamaya yönelik bir yaklaşım sağlar. Bu düzen genellikle iş yükünüzdeki tanımlı ölçek birimlerine hizalanır: Tek bir ölçek biriminin sağladığının ötesinde ek kapasite gerektiğinden, ölçeği genişletmek için ek dağıtım damgası dağıtılır.
Olay Kaynağını Belirleme Durum değişikliğini bir dizi olay olarak kabul eder ve bunları sabit, yalnızca ekleme günlüğünde yakalar. İş yükünüze bağlı olarak, bu desen genellikle CQRS, uygun bir etki alanı tasarımı ve stratejik anlık görüntü oluşturma ile birlikte performansı artırabilir. Performans geliştirmeleri yalnızca atomik ekleme işlemleri ve yazma ve okuma işlemleri için veritabanı kilitlemenin önlenmesinden kaynaklanmaktadır.
Federasyon Kimliği Temsilciler, kullanıcıları yönetmek ve uygulamanız için kimlik doğrulaması sağlamak için iş yükünün dışında olan bir kimlik sağlayıcısına güvenir. Kullanıcı yönetimi ve kimlik doğrulamasını boşalttığınızda, uygulama kaynaklarını diğer önceliklere ayırabilirsiniz.
Gatekeeper İsteği arka uç düğümüne iletmeden önce ve sonra güvenlik ve erişim denetimi zorlamasına yönelik istek işlemeyi boşaltılır. Bu desen genellikle düğüm düzeyinde hız denetimleri uygulamak yerine ağ geçidi düzeyinde azaltma uygulamak için kullanılır. Tüm düğümler arasında hız durumunun eşgüdümlü olarak gerçekleştirilmesi doğal değildir.
Ağ Geçidi Toplama Tek bir istekte birden çok arka uç hizmetine yönelik çağrıları toplayarak iş yükünüzle istemci etkileşimlerini basitleştirir. Bu tasarım, istemcinin birden çok bağlantı kurduğu bir tasarımdan daha az gecikmeye neden olabilir. Önbelleğe alma, arka uç sistemlerine yapılan çağrıları en aza indirgediğinden toplama uygulamalarında da yaygındır.
Ağ Geçidi Boşaltma İstek işlemeyi bir arka uç düğümüne iletmeden önce ve sonra bir ağ geçidi cihazına yükler. İstek işlemine yük boşaltma ağ geçidi eklemek, işlev ağ geçidinde merkezileştirildiğinden düğüm başına daha az kaynak kullanmanıza olanak tanır. Boşaltılan işlevselliğin uygulanmasını uygulama kodundan bağımsız olarak iyileştirebilirsiniz. Boşaltılan platform tarafından sağlanan işlevlerin yüksek performansa sahip olma olasılığı yüksektir.
Ağ Geçidi Yönlendirme Gelen ağ isteklerini istek amaçlarına, iş mantığına ve arka uç kullanılabilirliğine göre çeşitli arka uç sistemlerine yönlendirir. Ağ geçidi yönlendirmesi, yükü dengelemek için trafiği sisteminizdeki düğümler arasında dağıtmanıza olanak tanır.
Geode Etkin-etkin kullanılabilirlik modlarında çalışan sistemleri birden çok coğrafyaya dağıtır. Bu desen, herhangi bir istemcinin herhangi bir coğrafi örneğe bağlanabilmesi idealini desteklemek için veri çoğaltmayı kullanır. Uygulamanızı dağıtılmış kullanıcı tabanınıza en yakın bölgeden sunmak için kullanabilirsiniz. Bunun yapılması, uzun mesafeli trafiği ortadan kaldırarak ve altyapıyı yalnızca aynı coğrafi bölge kullanan kullanıcılar arasında paylaştığınız için gecikme süresini azaltır.
Sistem Durumu Uç Noktası İzleme Bu amaçla özel olarak tasarlanmış bir uç noktayı kullanıma sunarak sistemin durumunu veya sistem durumunu izlemenin bir yolunu sağlar. Trafiği yalnızca iyi durumda olduğu doğrulanmış düğümlere yönlendirerek yük dengelemeyi geliştirmek için bu uç noktaları kullanabilirsiniz. Ek yapılandırma ile kullanılabilir düğüm kapasitesiyle ilgili ölçümleri de alabilirsiniz.
Dizin Tablosu İstemcilerin verilerin doğrudan alınabilmesi için meta verileri aramasına olanak tanıyarak dağıtılmış veri depolarındaki veri alımını iyileştirir ve tam veri deposu taramaları yapma gereksinimini ortadan kaldırır. İstemciler performans iyileştirmesi için dinamik veri bölümlemesi etkinleştirebilen parçalarına, bölümlerine veya uç noktalarına işaret edilir.
Gerçekleştirilmiş Görünüm Veri alımını iyileştirmek için verilerin önceden derlenmiş görünümlerini kullanır. Gerçekleştirilmiş görünümler, veritabanı altyapısının veya istemcinin her istek için yeniden derlemesini gerektirmeden karmaşık hesaplamaların veya sorguların sonuçlarını depolar. Bu tasarım, genel kaynak tüketimini azaltır.
Öncelik Sırası Yüksek öncelikli öğelerin düşük öncelikli öğelerden önce işlenmesini ve tamamlanmasını sağlar. Öğeleri iş önceliğine göre ayırmak, performans çalışmalarını zamana en duyarlı çalışmalara odaklamanıza olanak tanır.
Yayımcı/Abone Doğrudan istemciden hizmete veya istemciden hizmete iletişimi ara ileti aracısı veya olay veri yolu aracılığıyla iletişimle değiştirerek mimarinin bileşenlerini ayırır. Yayımcıların tüketicilerden ayrıştırılması, özellikle tüketicinin belirli bir ileti için gerçekleştirmesi gereken görev için işlem ve kodu iyileştirmenize olanak tanır.
yük dengelemeyiQueue-Based Gelen istekleri veya görevleri bir kuyrukta arabelleğe alarak ve kuyruk işlemcisinin bunları denetimli bir hızda işlemesine izin vererek gelen isteklerin veya görevlerin düzeyini denetler. bu yaklaşım, isteklerin alımının işlenme hızıyla bağıntılı olması gerekmediğinden aktarım hızı performansı üzerinde kasıtlı tasarıma olanak tanır.
Zamanlayıcı Aracısı Gözetmen Sistemde gözlemlenebilen faktörlere göre görevleri sistem genelinde verimli bir şekilde dağıtır ve yeniden dağıtır. Bu düzen, geçerli kullanımı algılamak ve görevleri kapasiteye sahip bir aracıya yönlendirmek için performans ve kapasite ölçümlerini kullanır. Ayrıca, daha düşük öncelikli çalışmaya göre daha yüksek öncelikli çalışmanın yürütülmesine öncelik vermek için de kullanabilirsiniz.
Parçalama Belirli bir isteği işlemek için yükü belirli bir mantıksal hedefe yönlendirir ve iyileştirme için birlikte bulundurmayı etkinleştirir. Ölçeklendirme stratejinizde parçalama kullandığınızda, veriler veya işleme bir parçaya yalıtılır, bu nedenle kaynaklar için yalnızca bu parçaya yönlendirilen diğer isteklerle rekabet eder. Coğrafyaya göre iyileştirme yapmak için parçalama özelliğini de kullanabilirsiniz.
Sepet Birincil olmayan veya çapraz kesme görevlerini ana uygulamayla birlikte var olan bir yardımcı işlemde kapsülleyerek uygulamanın işlevselliğini genişletir. Çapraz kesme görevlerini ana işlemin birden çok örneğinde ölçeklenebilen tek bir işleme taşıyabilirsiniz ve bu da uygulamanın her örneği için yinelenen işlevleri dağıtma gereksinimini azaltır.
Statik İçerik Barındırma Bu amaçla tasarlanmış bir barındırma platformu kullanarak statik içeriğin iş yükü istemcilerine teslimini iyileştirir. Sorumluluğu dışlaştırılmış bir konağa boşaltmak, tıkanıklığı azaltmaya yardımcı olur ve uygulama platformunuzu yalnızca iş mantığı sağlamak için kullanmanıza olanak tanır.
Kısıtlama Bir kaynağa veya bileşene gelen isteklerin hızına veya aktarım hızına sınırlar uygular. Sistem yüksek talep altında olduğunda, bu desen performans sorunlarına yol açabilecek tıkanıklığı azaltmaya yardımcı olur. Gürültülü komşu senaryolarından proaktif olarak kaçınmak için de kullanabilirsiniz.
Vale Anahtarı Erişime ara sunucu oluşturmak için ara kaynak kullanmadan kaynağa güvenlikle kısıtlanmış erişim verir. Bunun yapılması, tüm istemci isteklerini performanslı bir şekilde işlemesi gereken bir büyükelçi bileşeni gerektirmeden, istemci ile kaynak arasında özel bir ilişki olarak işlemeyi boşaltır. Ara sunucu işleme değer eklemediğinde bu deseni kullanmanın avantajı en çok önemlidir.

Sonraki Adımlar

Diğer Azure Well-Architected Framework yapılarını destekleyen Mimari tasarım desenlerini gözden geçirin: