Performans verimliliğini destekleyen bulut 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ı olarak denge 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 yardımcı olabilir. Riskler azaltılmazsa, sonuçta performans yetersizliklerine 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ükemmeliyetin 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.

Performans verimliliği için tasarım desenleri

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

Desen Özet
Zaman Uyumsuz İstek-Yanıt Anında yanıt gerektirmeyen 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. Kapasitenin izin verdiği şekilde çalışmayı tamamlanacak şekilde zamanlamak için bu düzeni 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ı ayrı birleş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 Perdesi Arızaların patlama yarıçapını yalıtmak için bileşenler arasında segmentasyon sağlar. Bu tasarım, her bir bölme başlığının, bölmede kapsüllenen 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 düzen özellikle sık değişmeyen ve belirli bir eskime miktarına dayanabilen 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şimi 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 kurtarmayı deneyen bir bağımlılıkta performansı aşırı yükleyebilir.
Talep Denetimi İletiyle ilgili verileri ayrı olarak almak için bir yol sağlayarak verileri mesajlaşma akışından ayırır. 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 bir 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 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 birimleriyle uyumlu hale gelir: Tek bir ölçek biriminin sağladığının ötesinde ek kapasite gerektiğinden, ölçeği genişletmek için ek bir 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 ekli bir günlükte yakalar. İş yükünüze bağlı olarak, genellikle CQRS, uygun bir etki alanı tasarımı ve stratejik anlık görüntü oluşturma ile birleştirilen bu desen performansı artırabilir. Performans geliştirmeleri, yalnızca atomik ekleme işlemleri ve yazma ve okuma işlemleri için veritabanı kilitlemenin engellenmesinden kaynaklanmaktadır.
Federal Kimlik 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üvenen temsilciler. Kullanıcı yönetimi ve kimlik doğrulamasını boşalttığınızda, uygulama kaynaklarını diğer önceliklere ayırabilirsiniz.
Ağ Geçidi Denetleyicisi İsteği bir arka uç düğümüne iletmeden önce ve sonra özellikle güvenlik ve erişim denetimi zorlamasına yönelik istek işlemeyi boşaltıyor. Bu düzen 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 durumunu koordine etmek doğal olarak performansa sahip değildir.
Ağ Geçidi Toplama Tek bir istekte birden çok arka uç hizmetine yapılan çağrıları toplayarak iş yükünüzle istemci etkileşimlerini basitleştirir. Bu tasarım, istemcinin birden çok bağlantı kurduğu tasarımdan daha az gecikme süresine neden olabilir. Önbelleğe alma, arka uç sistemlerine yapılan çağrıları en aza indirdiğ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 boşaltıyor. İ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şlevsellik zaten yüksek performanslı olabilir.
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ızı sağlar.
Geode Birden çok coğrafyada etkin-etkin kullanılabilirlik modlarında çalışan sistemleri dağıtır. Bu düzen, 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 mesafe trafiğini ortadan kaldırarak ve altyapıyı yalnızca şu anda aynı coğrafi bölge kullanan kullanıcılar arasında paylaştığınızdan gecikme süresini azaltır.
Sistem Durumu Uç Nokta İzleme Bu amaçla özel olarak tasarlanmış bir uç noktayı kullanıma sunarak sistemin sistem durumunu veya durumunu izlemenin bir yolunu sağlar. Trafiği yalnızca iyi durumda olarak 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 kapasitesine ilişkin ölçümleri de alabilirsiniz.
Dizin Tablosu İstemcilerin meta verileri aramasına olanak tanıyarak verilerin doğrudan alınabilmesini sağlayarak dağıtılmış veri depolarındaki veri alımını iyileştirir ve tam veri deposu taramaları yapma gereğini ortadan kaldırır. İstemciler, performans iyileştirmesi için dinamik veri bölümleme olanak tanıyabilen 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 hesaplanması gerekmeden karmaşık hesaplamaların veya sorguların sonuçlarını depolar. Bu tasarım genel kaynak tüketimini azaltır.
Öncelikli Kuyruk Daha 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ına zamana en duyarlı çalışmaya odaklanmanızı sağlar.
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.
Kuyruk Tabanlı Yük Dengeleme 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. İsteklerin alımının işlenme hızıyla bağıntıya ihtiyacı olmadığından bu yaklaşım aktarım hızı performansında kasıtlı tasarıma olanak tanır.
Zamanlayıcı Aracısı Gözetmeni Sistemde gözlemlenebilen faktörlere göre görevleri bir sistemde 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. Daha düşük öncelikli işlere 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. Parçalama özelliğini coğrafyaya göre iyileştirmek için de kullanabilirsiniz.
Sepet Birincil olmayan veya çapraz kesme görevlerini ana uygulamanın yanında bulunan bir tamamlayıcı işlemde kapsülleyerek uygulamanın işlevselliğini genişletir. Çapraz kesme görevlerini, ana işlemin birden çok örneğinde ölçeklendirilebilen tek bir işleme taşıyabilirsiniz; bu da uygulamanın her örneği için yinelenen işlevler dağıtma gereksinimini azaltır.
Statik İçerik Barındırma Bu amaç için 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ığı sunmak için kullanmanıza olanak tanır.
Azaltma 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 düzen 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 sağlamak için ara kaynak kullanmadan kaynağa güvenlik kısıtlamalı erişim verir. Bunun yapılması, tüm istemci isteklerini yüksek performanslı bir şekilde işlemesi gereken bir temsilci bileşeni gerektirmeden istemci ile kaynak arasında özel bir ilişki olarak işlemeyi boşaltır. Ara sunucu işleme değer katmadığında bu düzeni kullanmanın avantajı en çok önemlidir.

Sonraki adımlar

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