Bulut Tasarımı Desenleri
Mimariler, iş yüklerindeki işlevsel ve işlevsiz gereksinimleri karşılamak için platform hizmetlerini, işlevselliğini ve kodunu birleştirerek iş yüklerini tasarlar. İş yüklerinin tasarlanması için bu iş yükü gereksinimlerinin anlaşılması ve ardından topolojilerin seçilmesi ve iş yükünün kısıtlamalarının getirdiği zorlukların çözümüne yaklaşımlar gerekir. Birçok yaygın zorluğun üstesinden gelen bulut tasarımı desenleri.
Sistem tasarımı, tasarım kalıplarına büyük ölçüde bağlıdır. Altyapı, kod ve dağıtılmış sistemlerin tümü tasarım desenlerinin bir bileşimi etrafında tasarlanmıştır. Bu tasarım desenleri bulutta güvenilir, güvenli, maliyet için iyileştirilmiş, operasyonel açıdan sağlam ve yüksek performanslı uygulamalar oluşturmak için kullanışlıdır.
Bu tasarım desenleri herhangi bir teknolojiye özgü değildir ve Azure'da, diğer bulut platformlarında barındırılan ve hatta bazıları şirket içi veya karma iş yüklerine kadar uzanabilen herhangi bir dağıtılmış sistemle ilgilidir.
Bulut iş yükleri, dağıtılmış bilgi işlemin yanlışlıklarına açıktır. Bulut tasarımıyla ilgili bazı hata örnekleri şunlardır:
- Ağ güvenilir
- Gecikme süresi sıfır
- Bant genişliği sonsuz
- Ağ güvenli
- Topoloji değişmez
- Bir yönetici var
- Bileşen sürümü oluşturma basittir
- Gözlemlenebilirlik uygulaması gecikebilir
Tasarım desenleri bunlar gibi ifadeleri ortadan kaldırmaz, ancak bunların farkındalığını, telafilerini ve risk azaltmalarını sağlamaya yardımcı olabilir. Her bulut düzeninin kendi dengeleri vardır. Belirli bir deseni nasıl uygulayabileceğinize kıyasla neden seçtiğinize daha fazla dikkat etmeniz gerekir.
İyi tasarlanmış bir iş yükü, bu sektör genelindeki tasarım desenlerinin iş yükü tasarımı için temel yapı taşları olarak nasıl kullanılması gerektiğini dikkate alır. Her Azure Well-Architected sütunu bu tasarım desenlerinde temsil edilir ve genellikle tasarım deseni diğer sütunların hedefleriyle dengeleri sağlar.
Bu katalogdaki her desen, desenin ele alındığı sorunu, deseni uygulamak için dikkat edilmesi gereken noktaları ve Microsoft Azure'a dayalı bir örneği açıklar. Bazı desenler, Azure'da desenin nasıl uygulandığını gösteren kod örnekleri veya kod parçacıkları içerir.
Desen | Özet | Azure Well-Architected Framework sütunları |
---|---|---|
Büyükelçi | Bir tüketici hizmeti veya uygulaması adına ağ istekleri gönderen yardımcı hizmetler oluşturur. |
|
Bozulma Önleyici Katman | Modern uygulamayla eski sistem arasında bir cephe veya bağdaştırıcı katmanı oluşturun. |
|
Zaman Uyumsuz İstek-Yanıt | Arka uç işlemesinin zaman uyumsuz olması gereken, ancak ön ucun yine de net bir yanıta ihtiyaç duyduğu noktada arka uç işlemeyi ön uç konağından ayırın. |
|
Ön Uçlar için Arka Uçlar | Belirli ön uç uygulamaları veya arabirimleri tarafından kullanılacak ayrı arka uç hizmetleri oluşturun. |
|
Bölme Perdesi | Bir uygulamanın öğelerini havuzlar halinde yalıtın, böylece biri başarısız olursa diğerleri çalışmaya devam eder. |
|
Edilgen Önbellek | İsteğe bağlı olarak verileri bir veri deposundan önbelleğe yükleyin. |
|
Koreografi | Merkezi bir düzenleyiciye bağlı olmak yerine bir iş işleminin ne zaman ve nasıl işleneceğini her hizmetin belirlemesine izin verin. |
|
Devre Kesici | Uzak hizmete veya kaynağa bağlanırken, düzeltmek için gereken sürenin değişiklik gösterebileceği hataları işleyin. |
|
Talep Denetimi | İleti veri yolunu aşırı yüklemekten kaçınmak için büyük iletileri talep denetimi ve yük olarak ikiye ayırın. |
|
Telafi İşlemi | Hep birlikte sonunda tutarlı bir işlemi tanımlayan bir dizi adımda gerçekleştirilen çalışmayı geri alın. |
|
Rakip Tüketiciler | Tüketicilerin aynı ileti kanalı üzerinden alınan iletileri eşzamanlı olarak işlemesine olanak tanıyın. |
|
İşlem Kaynağı Birleştirme | Birden çok görevi veya işlemi tek bir hesaplama biriminde birleştirin. |
|
CQRS | Ayrı arabirimler kullanarak verileri okuyan işlemleri verileri güncelleştiren işlemlerden ayırın. |
|
Dağıtım Damgaları | Veri depoları dahil olmak üzere uygulama bileşenlerinin birden çok bağımsız kopyasını dağıtın. |
|
Edge İş Yükü Yapılandırması | Atölyede birden çok sistem ve cihaz yapılandırma zorluğuna çözüm bulmak için yapılandırmayı merkezileştirin. | |
Olay Kaynağını Belirleme | Etki alanındaki veriler üzerinde gerçekleştirilen eylemleri açıklayan olayların tam serisini kaydetmek için bir yalnızca ekleme deposu kullanın. |
|
Dış Yapılandırma Deposu | Yapılandırma bilgilerini uygulama dağıtım paketinden merkezi bir konuma taşıyın. |
|
Federal Kimlik | Kimlik doğrulama temsilcisi olarak bir dış kimlik sağlayıcısı kullanın. |
|
Ağ Geçidi Denetleyicisi | İstemcilerle uygulama veya hizmet arasında aracı işlevi gören, istekleri doğrulayan ve temizleyen, aralarında isteklerle verilerin geçişini yapan ayrılmış bir konak örneği kullanarak uygulamaları ve hizmetleri koruyun. |
|
Ağ Geçidi Toplama | Tek tek birden çok isteği tek bir istekte toplamak için ağ geçidi kullanın. |
|
Ağ Geçidi Boşaltma | Paylaşılan veya özelleştirilmiş hizmet işlevlerini bir ağ geçidi ara sunucusuna boşaltın. |
|
Ağ Geçidi Yönlendirme | Tek bir uç nokta kullanarak istekleri birden çok hizmete yönlendirin. |
|
Geode | Arka uç hizmetlerini, her biri tüm bölgelerdeki tüm istemci isteklerine hizmet sunabilen coğrafi düğümlere dağıtın. |
|
Sistem Durumu Uç Nokta İzleme | Dış araçların düzenli aralıklarla ortaya çıkarılan uç noktalar üzerinden erişebildiği bir uygulamada işlev denetimleri yapın. |
|
Dizin Tablosu | Sorguların sıklıkla başvurduğu veri kaynaklarındaki alanlar üzerinden dizin oluşturun. |
|
Öncü Seçimi | Bir örneği, diğer örneklerin yönetiminde sorumluluk üstlenen bir öncü olarak seçerek, dağıtılmış bir uygulamadaki işbirliği görev örnekleri koleksiyonunda gerçekleştirilen eylemleri koordine edin. |
|
Gerçekleştirilmiş Görünüm | Verilerin gerekli sorgu işlemleri için ideal biçimlendirmeye sahip olmadığı durumlarda, bir veya birden çok veri deposundaki veriler üzerinden önceden doldurulmuş görünümler oluşturun. |
|
Mesajlaşma Köprüsü | Protokol veya biçim nedeniyle uyumlu olmayan mesajlaşma sistemleri arasında iletişimi etkinleştirmek için bir aracı oluşturun. |
|
Kanallar ve Filtreler | Karmaşık bir işlem gerçekleştiren bir görevi yeniden kullanılabilecek bir dizi ayrı öğeye bölün. |
|
Öncelikli Kuyruk | Yüksek öncelikli isteklerin düşük öncelikli olanlardan daha önce alınması ve işlenmesini sağlamak için hizmete gönderilen isteklerin önceliklerini belirleyin. |
|
Yayımcı/Abone | Bir uygulamanın, gönderenlerle alıcıları eşlemeden etkinlikleri ilgi duyan birden çok tüketiciye zaman uyumsuz bir şekilde duyurmasını sağlayın. |
|
karantina |
Dış varlıkların iş yükünde kullanma yetkisi olmadan önce ekip tarafından kabul edilen bir kalite düzeyine uygun olduğundan emin olun. |
|
Kuyruk Tabanlı Yük Dengeleme | Görevle hizmet arasında tampon görevi görecek ve aralıklı olarak ağırlaşan yükleri hafifletmek için çağrılacak bir kuyruk kullanın. |
|
Hız Sınırı Deseni | Bu azaltma sınırlarıyla ilgili azaltma hatalarından kaçınmanıza veya en aza indirmenize yardımcı olmak ve aktarım hızını daha doğru tahmin etmenize yardımcı olmak için deseni sınırlama. |
|
Yeniden dene | Hizmete veya ağa bağlanmayı denediğinde daha önce başarısız olan bir işlemi saydam bir şekilde yeniden denemesini sağlayarak, uygulamanın beklenen, geçici hataları işlemesine olanak tanıyın. |
|
Destan | Dağıtılmış işlem senaryolarında mikro hizmetler genelinde veri tutarlılığını yönetin. Saga, her hizmeti güncelleştiren ve bir sonraki işlem adımını tetikleyen bir ileti veya olay yayımlayan bir işlem dizisidir. |
|
Zamanlayıcı Aracısı Gözetmeni | Bir dizi dağıtılmış hizmet ve diğer uzak kaynaklar arasında bir dizi eylemi koordine edin. |
|
Sıralı Konvoy | Diğer ileti gruplarının işlenmesini engellemeden, birbiriyle ilgili bir dizi iletiyi tanımlı sırada işleyin. |
|
Parçalama | Veri deposunu bir dizi yatay bölüme veya parçaya ayırın. |
|
Sepet | Yalıtım ve kapsülleme sağlamak için uygulamanın bileşenlerini ayrı işleme veya kapsayıcıya dağıtın. |
|
Statik İçerik Barındırma | Statik içeriği, bunları doğrudan istemciye teslim edebilecek bulut tabanlı bir depolama hizmetine dağıtın. |
|
Aşamalı Geçiş | Belirli işlev parçalarını aşamalı olarak yeni uygulamalar ve hizmetlerle değiştirerek, eski sistemi artım bir şekilde geçirin. |
|
Azaltma | Bir uygulama örneği, tek bir kiracı veya hizmetin tamamı tarafından kullanılan kaynakların tüketimini denetleyin. |
|
Vale Anahtarı | İstemcilerin belirli bir kaynağa veya hizmete kısıtlı olarak doğrudan erişimini sağlayan bir belirteç veya anahtar kullanın. |
|
Desenlerin optimize etmeyi hedeflediği Azure Well-Architected sütununu perspektifinden tasarım desenlerini gözden geçirin.
- Güvenilirlik sütununu desteklemek için tasarım desenleri
- Güvenlik sütununu desteklemek için tasarım desenleri
- Maliyet İyileştirme sütununu desteklemek için tasarım desenlerini
- Operasyonel Mükemmellik sütununu desteklemek için tasarım kalıpları
- Performans Verimliliği sütununu desteklemek için tasarım desenlerini