Güvenilirliği 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üvenlik, performans, maliyet ve işlemleri etkileyebilecek belirli sorunlardan kaynaklanan riskleri azaltmaya da yardımcı olabilir. Risk azaltılmazsa, bu riskler sonunda güvenilirlik sorunlarına neden olur. 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. Güvenilirlik sütununu destekleyen tasarım desenleri iş yükü kullanılabilirliğini, kendini korumayı, kurtarmayı, verileri ve işleme bütünlüğünü ve arızaları kapsamayı önceliklendirir.
Güvenilirlik için tasarım desenleri
Aşağıdaki tabloda güvenilirlik hedeflerini destekleyen bulut tasarım desenleri özetlenmektedir.
Desen | Özet |
---|---|
Büyükelçi | Ağ iletişimi ile ilgili çapraz kesme görevlerini boşaltarak ağ iletişimlerini kapsüller ve yönetir. Sonuçta elde edilen yardımcı hizmetler, istemci adına iletişim başlatır. Bu aracılık noktası, ağ iletişimine yeniden deneme veya arabelleğe alma gibi güvenilirlik desenleri ekleme fırsatı sağlar. |
Ö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 nedeniyle, hizmet katmanında bir istemciyi destekleyen bir arıza, başka bir istemcinin erişiminin kullanılabilirliğini etkilemeyebilir. Çeşitli istemcilere farklı davrandığınızda, beklenen istemci erişim desenlerine göre güvenilirlik çalışmalarının önceliğini belirtebilirsiniz. |
Bölme Perdesi | Arızaların patlama yarıçapını yalıtmak için bileşenler arasında kasıtlı ve tam segmentasyon sağlar. Bu hata yalıtım stratejisi, yalnızca sorunla karşılaşan bölmeye yönelik hatalar içermeye çalışır ve diğer bölmelerin etkilenmesini önler. |
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. Önbelleğe alma, veri çoğaltması oluşturur ve kaynak veri deposu geçici olarak kullanılamıyorsa sık erişilen verilerin kullanılabilirliğini korumak için sınırlı yollarla kullanılabilir. Ayrıca önbellekte bir arıza varsa iş yükü kaynak veri deposuna geri dönebilir. |
Devre Kesici | Hatalı çalışan veya kullanılamayan bir bağımlılık için sürekli istekleri engeller. Bunu yaptığınızda, bu desen hatalı bir bağımlılığın aşırı yüklenmesini önler. Bu düzeni, iş yükünde düzgün bir düşüş tetiklemesi için de kullanabilirsiniz. Devre kesiciler genellikle hem kendini koruma hem de kendi kendini iyileştirme sağlamak için otomatik kurtarma ile birleştirilir. |
Talep Denetimi | İletiyle ilgili verileri ayrı olarak almak için bir yol sağlayarak verileri mesajlaşma akışından ayırır. İleti veri yolları genellikle ayrılmış veri depolarında bulunan aynı güvenilirlik ve olağanüstü durum kurtarmayı sağlamaz, bu nedenle verileri iletiden ayırmak temel alınan veriler için daha fazla güvenilirlik sağlayabilir. Bu ayrım, olağanüstü durumdan sonra ileti kuyruğu kurtarma yaklaşımına da olanak tanır. |
Telafi İşlemi | Daha önce uygulanan eylemlerin etkilerini tersine çevirme yoluyla hataların kurtarılması için bir mekanizma sağlar. Bu düzen veri değişikliklerini doğrudan geri alma, işlem kilitlerini bozma ve hatta etkiyi tersine çevirmek için yerel sistem davranışını yürütme gibi işlemleri içerebilen dengeleme eylemlerini kullanarak kritik iş yükü yollarındaki arızaları giderir. |
Rakip Tüketiciler | Bir kuyruktaki öğeleri verimli bir şekilde işlemek için dağıtılmış ve eşzamanlı işleme uygular. Bu model, tüketicileri çoğaltma olarak değerlendirerek kuyruk işlemede yedeklilik oluşturur, bu nedenle örnek hatası diğer tüketicilerin kuyruk iletilerini işlemesini engellemez. |
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. Karmaşık bir iş sürecinde güvenilir bir değişiklik geçmişi kritik öneme sahip olduğunda bu düzeni kullanabilirsiniz. Ayrıca, durum depolarını kurtarmanız gerekiyorsa durum yeniden oluşturmayı kolaylaştırı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ın boşaltılması, bu bileşenlerin güvenilirliğini genellikle yüksek bir SLA'ya sahip olan kimlik sağlayıcısına kaydırıyor. Ayrıca, iş yükü olağanüstü durum kurtarma sırasında kimlik doğrulama bileşenlerinin büyük olasılıkla iş yükü kurtarma planının bir parçası olarak ele alınması gerekmez. |
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 topoloji, istemciler arasında dağıtılmış bir uygulamadan merkezi bir uygulamaya geçici hata işlemeyi kaydırmanızı sağlar. |
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. Bu sorumluluğun bir ağ geçidine boşaltılması, arka uç düğümlerindeki uygulama kodunun karmaşıklığını azaltır. Bazı durumlarda, boşaltma işlevi tamamen platform tarafından sağlanan güvenilir bir özellik ile değiştirir. |
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, trafiği yalnızca sisteminizdeki iyi durumdaki düğümlere yönlendirmenizi 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. İş yükünüzün bir veya daha fazla bölgesel kesintiye dayanması konusunda yardımcı olabilir. |
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. Bu uç noktayı iş yükünüzün durumunu yönetmek, uyarı ve pano oluşturmak için kullanabilirsiniz. Kendi kendini düzeltme için bir sinyal olarak da kullanabilirsiniz. |
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 bir arama işlemi aracılığıyla parçalarına, bölümlerine veya uç noktalarına işaret edildiğinden, veri erişimi için yük devretme yaklaşımını kolaylaştırmak için bu düzeni kullanabilirsiniz. |
Öncü Seçimi | Dağıtılmış bir uygulamanın örneklerinin liderini oluşturur. Öncü, bir hedefe ulaşmakla ilgili sorumlulukları koordine eder. Bu düzen, işi güvenilir bir şekilde yeniden yönlendirerek düğüm arızalarının etkisini azaltır. Ayrıca bir lider arızalandığında konsensüs algoritmaları aracılığıyla yük devretme uygular. |
Kanallar ve Filtreler | Belirli bir sonuca ulaşmak için karmaşık veri işlemeyi bir dizi bağımsız aşamaya ayırır. Her aşamanın tek sorumluluğu odaklanmış dikkati sağlar ve toplanan veri işlemenin dikkatinin dağılmasını önler. |
Ö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, güvenilirlik çalışmalarına en kritik çalışmalara 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. |
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. Bu yaklaşım, görevlerin gelişini işlenmelerinden ayrıştırarak talepteki ani ani artışlara karşı dayanıklılık sağlayabilir. Ayrıca kuyruk işlemedeki arızaları, alımı etkilemeyecek şekilde yalıtabilir. |
Hız Sınırlama | Azaltma hatalarını azaltmak ve sınırsız hata üzerinde yeniden deneme senaryolarından kaçınmak için istemci isteklerinin hızını denetler. Bu taktik, hizmet belirtilen sınırlara ulaşmamak için tasarlandıysa bir hizmetle iletişim kurmanın sınırlamalarını ve maliyetlerini kabul ederek istemciyi korur. Belirli bir zaman aralığında hizmete gönderilen işlemlerin sayısını ve/veya boyutunu denetleyerek çalışır. |
Yeniden Deneme | Belirli işlemleri denetimli bir şekilde yeniden deneyerek geçici veya aralıklı olabilecek hataları giderir. Dağıtılmış bir sistemde geçici hataları azaltmak, bir iş yükünün dayanıklılığını geliştirmeye yönelik önemli bir tekniktir. |
Saga dağıtılmış işlemleri | Uzun süre çalışan ve karmaşık olabilecek işlemleri, çalışmayı daha küçük, bağımsız işlemlerin dizilerine bölerek koordine eder. Her işlemin yürütmedeki hataları tersine çevirmek ve bütünlüğü korumak için telafi eylemleri de olmalıdır. Birden çok dağıtılmış sistem genelinde monolitik işlemler genellikle imkansız olduğundan, bu düzen bölünmezlik ve dengeleme uygulayarak tutarlılık ve güvenilirlik sağlar. |
Zamanlayıcı Aracısı Gözetmeni | Sistemdeki gözlemlenebilir faktörlere göre görevleri sistem genelinde verimli bir şekilde dağıtır ve yeniden dağıtır. Bu düzen, bir arızanın etkilerini azaltmak amacıyla hataları algılamak ve görevleri iyi durumdaki bir aracıya yeniden yönlendirmek için sistem durumu ölçümlerini kullanır. |
Sıralı Konvoy | Eş zamanlı mesajlaşma girişini korurken aynı zamanda tanımlı bir sırada işlemeyi destekler. Bu düzen, sorun gidermesi zor olan yarış koşullarını, çekişen ileti işlemeyi veya hatalı hatalara yol açabilecek yanlış sıralanmış iletilerin giderilmesine yönelik diğer geçici çözümleri ortadan kaldırabilir. |
Parçalama | Belirli bir isteği işlemek için belirli bir mantıksal hedefe yük yükleyerek iyileştirme için birlikte bulundurmayı etkinleştirir. Veriler veya işleme parçaya yalıtılmış olduğundan, bir parçadaki bir arıza o parçayla yalıtılmış olarak kalır. |
Aşamalı Geçiş | Çalışan bir sistemin bileşenlerini genellikle sistemin geçişi veya modernizasyonu sırasında yeni bileşenlerle sistematik olarak değiştirmek için bir yaklaşım sağlar. Bu düzenin artımlı yaklaşımı, geçiş sırasında riskleri azaltmaya yardımcı olabilir. |
Azaltma | Bir kaynağa veya bileşene gelen isteklerin hızına veya aktarım hızına sınırlar uygular. Arızalara yol açabilecek kaynak tükenmesini önlemeye yardımcı olmak için sınırları tasarlayabilirsiniz. Bu düzeni düzgün bir düşüş planında denetim mekanizması olarak da kullanabilirsiniz. |
Sonraki adımlar
Diğer Azure Well-Architected Framework yapılarını destekleyen bulut tasarım desenlerini gözden geçirin: