Bulut Tasarımı Desenleri
Bu tasarım desenleri, bulutta güvenilir, ölçeklenebilir, güvenli uygulamalar oluşturmak için kullanışlıdır.
Her desende, desenin çözüm getirdiği sorun, deseni uygularken dikkat edilecek noktalar açıklanır ve Microsoft Azure'u temel alan bir örnek yer alır. Çoğu desen, Azure'da desenin nasıl uygulandığını gösteren kod örneklerini veya kod parçacıklarını içerir. Ancak çoğu desen, Azure'da veya diğer bulut platformlarında barındırılan tüm dağıtılmış sistemlerde geçerlidir.
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.
Bulut dağıtımındaki zorluklar
Veri YönetimiVeri yönetimi, bulut uygulamalarının temel öğesidir ve kalite özniteliklerinin çoğunu etkiler. Veriler genellikle farklı konumlarda ve performans, ölçeklenebilirlik veya kullanılabilirlik için birden çok sunucuda barındırılır. Bu, çeşitli zorluklar ortaya koyabilir. Örneğin, veri tutarlılığının korunması gerekir ve verileri normalde farklı konumlar arasında eşitlenmelidir. |
|
Tasarım ve Uygulamaİyi tasarım, bileşen tasarımı ve dağıtımında tutarlılık ve tutarlılık, yönetim ve geliştirmeyi basitleştirmeye yönelik bakım ve bileşenlerin ve alt sistemlerin diğer uygulamalarda ve senaryolarda kullanılmasına izin vermek için yeniden kullanılabilirliği kapsar. Tasarım ve uygulama aşamasında alınan kararlar, bulutta barındırılan uygulama ve hizmetlerin sahip olma kalitesini ve toplam maliyetini önemli ölçüde etkiler. |
|
MesajlaşmaBulut uygulamalarının dağıtılmış yapısı, bileşenleri ve hizmetleri birbirine bağlayan, ölçeklenebilirliği en üst düzeye çıkarmak için ideal olarak gevşek bir şekilde bağlanmış bir mesajlaşma altyapısı gerektirir. Zaman uyumsuz mesajlaşma yaygın olarak kullanılır ve birçok avantaj sağlar, ancak iletileri sıralama, zehirli ileti yönetimi, eşzamanlılık ve daha fazlası gibi zorluklar da getirir. |
Desen kataloğu
Desen | Özet | Kategori |
---|---|---|
Büyükelçi | Bir tüketici hizmeti veya uygulaması adına ağ istekleri gönderen yardımcı hizmetler oluşturur. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Bozulma Önleyici Katman | Modern uygulamayla eski sistem arasında bir cephe veya bağdaştırıcı katmanı oluşturun. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
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. | Mesajlaşma |
Ön Uçlar için Arka Uçlar | Belirli ön uç uygulamaları veya arabirimleri tarafından kullanılacak ayrı arka uç hizmetleri oluşturun. | Tasarım ve Uygulama |
Bölme Perdesi | Uygulamanın öğelerini havuzlarda yalıtın; biri başarısız olursa, diğerleri çalışmaya devam edecektir. | Güvenilirlik |
Edilgen Önbellek | Bir veri deposundaki verileri isteğe bağlı olarak bir önbelleğe yükleyin | Veri Yönetimi, Performans Verimliliği |
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. | Mesajlaşma, Performans Verimliliği |
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. | Güvenilirlik |
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. | Mesajlaşma |
Telafi İşlemi | Hep birlikte sonunda tutarlı bir işlemi tanımlayan bir dizi adımda gerçekleştirilen çalışmayı geri alın. | Güvenilirlik |
Rakip Tüketiciler | Tüketicilerin aynı ileti kanalı üzerinden alınan iletileri eşzamanlı olarak işlemesine olanak tanıyın. | Mesajlaşma |
İşlem Kaynağı Birleştirme | Birden çok görevi veya işlemi tek bir hesaplama biriminde birleştirin | Tasarım ve Uygulama |
CQRS | Ayrı arabirimler kullanarak verileri okuyan işlemleri verileri güncelleştiren işlemlerden ayırın. | Veri Yönetimi, Tasarım ve Uygulama, Performans Verimliliği |
Dağıtım Damgaları | Veri depoları dahil olmak üzere uygulama bileşenlerinin birden çok bağımsız kopyasını dağıtın. | Güvenilirlik, Performans Verimliliği |
Edge İş Yükü Yapılandırması | Atölyedeki çok çeşitli sistemler ve cihazlar, iş yükü yapılandırmasının zor bir sorun olmasına neden olabilir. | Tasarım ve Uygulama |
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. | Veri Yönetimi, Performans Verimliliği |
Dış Yapılandırma Deposu | Yapılandırma bilgilerini uygulama dağıtım paketinden merkezi bir konuma taşıyın. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Federal Kimlik | Kimlik doğrulama temsilcisi olarak bir dış kimlik sağlayıcısı kullanın. | Güvenlik |
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. | Güvenlik |
Ağ Geçidi Toplama | Tek tek birden çok isteği tek bir istekte toplamak için ağ geçidi kullanın. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Ağ Geçidi Boşaltma | Paylaşılan veya özelleştirilmiş hizmet işlevlerini bir ağ geçidi ara sunucusuna boşaltın. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Ağ Geçidi Yönlendirme | Tek bir uç nokta kullanarak istekleri birden çok hizmete yönlendirin. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Coğrafi Düğümler | Arka uç hizmetlerini, her biri tüm bölgelerdeki tüm istemci isteklerine hizmet sunabilen coğrafi düğümlere dağıtın. | Güvenilirlik, Operasyonel Mükemmellik |
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. | Güvenilirlik, Operasyonel Mükemmellik |
Dizin Tablosu | Sorguların sıklıkla başvurduğu veri kaynaklarındaki alanlar üzerinden dizin oluşturun. | Veri Yönetimi, Performans Verimliliği |
Ö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. | Tasarım ve Uygulama, Güvenilirlik |
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. | Veri Yönetimi, Operasyonel Mükemmellik, Performans Verimliliği |
Kanallar ve Filtreler | Karmaşık bir işlem gerçekleştiren bir görevi yeniden kullanılabilecek bir dizi ayrı öğeye bölün. | Tasarım ve Uygulama, Mesajlaşma |
Ö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. | Mesajlaşma, Performans Verimliliği |
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. | Mesajlaşma |
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. | Güvenilirlik, Mesajlaşma, Dayanıklılık, Performans Verimliliği |
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. | Güvenilirlik |
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. | Güvenilirlik |
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. | Mesajlaşma |
Zamanlayıcı Aracısı Gözetmeni | Bir dizi dağıtılmış hizmet ve diğer uzak kaynaklar arasında bir dizi eylemi koordine edin. | Mesajlaşma, Güvenilirlik |
Sıralı Konvoy | Diğer ileti gruplarının işlenmesini engellemeden, birbiriyle ilgili bir dizi iletiyi tanımlı sırada işleyin. | Mesajlaşma |
Parçalama | Veri deposunu bir dizi yatay bölüme veya parçaya ayırın. | Veri Yönetimi, Performans Verimliliği |
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. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Statik İçerik Barındırma | Statik içeriği, bunları doğrudan istemciye teslim edebilecek bulut tabanlı bir depolama hizmetine dağıtın. | Tasarım ve Uygulama, Veri Yönetimi, Performans Verimliliği |
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. | Tasarım ve Uygulama, Operasyonel Mükemmellik |
Azaltma | Bir uygulama örneği, tek bir kiracı veya hizmetin tamamı tarafından kullanılan kaynakların tüketimini denetleyin. | Güvenilirlik, Performans Verimliliği |
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. | Veri Yönetimi, Güvenlik |