Aracılığıyla paylaş


Bulutta yerel iletişim desenleri

İpucu

Bu içerik, .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için Buluta Özel .NET Uygulamaları Tasarlama adlı e-Kitap'tan bir alıntıdır.

Azure eBook kapak küçük resmi için Bulutta Yerel .NET uygulamaları.

Bulutta yerel bir sistem oluştururken iletişim önemli bir tasarım kararı haline gelir. Ön uç istemci uygulaması arka uç mikro hizmetiyle nasıl iletişim kurar? Arka uç mikro hizmetleri birbiriyle nasıl iletişim kurar? Bulutta yerel uygulamalarda iletişim uygularken dikkate alınması gereken ilkeler, desenler ve en iyi yöntemler nelerdir?

İletişimle ilgili dikkat edilmesi gerekenler

Monolitik bir uygulamada iletişim basittir. Kod modülleri bir sunucudaki aynı yürütülebilir alanda (işlem) birlikte yürütülür. Her şey paylaşılan bellekte birlikte çalıştığından bu yaklaşımın performans avantajları olabilir, ancak bakımı, gelişmesi ve ölçeklendirilmesi zor hale gelen sıkı bir şekilde bağlanmış kodla sonuçlanır.

Bulutta yerel sistemler, çok sayıda küçük, bağımsız mikro hizmet içeren mikro hizmet tabanlı bir mimari uygular. Her mikro hizmet ayrı bir işlemde yürütülür ve genellikle kümeye dağıtılan bir kapsayıcı içinde çalışır.

Küme, yüksek oranda kullanılabilir bir ortam oluşturmak için bir sanal makine havuzunu birlikte gruplandırmaktadır. Kapsayıcılı mikro hizmetleri dağıtmak ve yönetmekle sorumlu olan bir düzenleme aracıyla yönetilirler. Şekil 4-1'de, tam olarak yönetilen Azure Kubernetes Services ile Azure bulutuna dağıtılan bir Kubernetes kümesi gösterilmektedir.

Azure'da Kubernetes kümesi

Şekil 4-1. Azure'da Kubernetes kümesi

Mikro hizmetler, küme genelinde API'ler ve mesajlaşma teknolojileri aracılığıyla birbirleriyle iletişim kurar.

Birçok avantaj sağlasa da mikro hizmetler ücretsiz öğle yemeği değildir. Bileşenler arasındaki yerel işlem içi yöntem çağrıları artık ağ çağrılarıyla değiştiriliyor. Her mikro hizmet, sisteminize karmaşıklık katan bir ağ protokolü üzerinden iletişim kurmalıdır:

  • Ağ tıkanıklığı, gecikme süresi ve geçici hatalar sürekli bir sorundur.
  • Dayanıklılık (yani başarısız istekleri yeniden denemek) çok önemlidir.
  • Tutarlı durumu korumak için bazı çağrıların bir kez etkili olması gerekir.
  • Her mikro hizmetin kimlik doğrulaması yapması ve çağrıları yetkilendirmesi gerekir.
  • Her ileti seri hale getirilmeli ve seri durumdan çıkarılmalıdır. Bu da pahalı olabilir.
  • İleti şifreleme/şifre çözme önemli hale gelir.

Microsoft tarafından ücretsiz olarak sunulan .NET Microservices: Architecture for Containerized .NET Applications (Kapsayıcılı .NET Uygulamaları için Mimari) kitabı, mikro hizmet uygulamaları için iletişim desenlerinin kapsamlı bir kapsamını sunar. Bu bölümde, Azure bulutunda sağlanan uygulama seçeneklerinin yanı sıra bu desenlere üst düzey bir genel bakış sağlıyoruz.

Bu bölümde ilk olarak ön uç uygulamalarıyla arka uç mikro hizmetleri arasındaki iletişimi ele alacağız. Ardından arka uç mikro hizmetlerinin birbirleriyle iletişim kurmalarına göz atacağız. Yukarı ve gRPC iletişim teknolojisini keşfedeceğiz. Son olarak, hizmet ağı teknolojisini kullanarak yeni yenilikçi iletişim desenleri arayacağız. Ayrıca Azure bulutunun buluta özel iletişimi desteklemek için farklı türde destek hizmetleri sağladığını da göreceğiz.