Düzenle

Aracılığıyla paylaş


Mikro hizmetlerde API ağ geçitlerini kullanma

Azure Application Gateway
Azure API Management

Mikro hizmetler mimarisinde bir istemci birden fazla ön uç hizmetiyle etkileşimde olabilir. Bu olgu göz önüne alındığında, bir istemci hangi uç noktaların çağrıldığını nasıl bilir? Yeni hizmetler sunulduğunda veya mevcut hizmetler yeniden düzenlendiğinde ne olur? Hizmetler SSL sonlandırma, karşılıklı TLS, kimlik doğrulaması ve diğer endişeleri nasıl işler? API ağ geçidi bu zorlukların giderilmesine yardımcı olabilir.

API ağ geçidiDiyagramı

Bu mimarinin Visio dosyasını indirin.

API ağ geçidi nedir?

API ağ geçidi, istemciler ve uygulama hizmetleri arasındaki etkileşimleri yönetmek için merkezi bir giriş noktası sağlar. Ters ara sunucu işlevi görür ve istemcilerin isteklerini uygun hizmetlere yönlendirir. Ayrıca kimlik doğrulaması, SSL sonlandırma, karşılıklı TLS ve hız sınırlama gibi çeşitli çapraz kesme görevleri de gerçekleştirebilir.

Api ağ geçidi neden kullanılır?

API ağ geçidi iletişimi basitleştirir, istemci etkileşimlerini geliştirir ve ortak hizmet düzeyi sorumluluklarının yönetimini merkezileştirir. Aracı görevi görür ve uygulama hizmetlerinin istemcilere doğrudan açıklanmasını önler. API ağ geçidi olmadan istemcilerin tek tek uygulama hizmetleriyle doğrudan iletişim kurması gerekir ve bu da aşağıdaki zorluklara neden olabilir:

  • karmaşık istemci kodu : Karmaşık istemci koduna neden olabilir. İstemcilerin birden çok uç noktayı izlemesi ve hataları dayanıklı bir şekilde işlemesi gerekir.

  • Sıkı bağlama: İstemci ile arka uç arasında bağlantı oluşturur. İstemcilerin ayrı ayrı hizmetlerin ayrıştırılıp hizmet bakımını ve yeniden düzenlemeyi karmaşık hale getirmesi gerektiğini anlaması gerekir.

  • Gecikme süresini artırma: Tek bir işlem için birden çok hizmete çağrı yapılması gerekebilir. Sonuç, istemci ile sunucu arasında birden çok ağ gidiş dönüşleri olabilir ve bu da önemli gecikme süresine neden olabilir.

  • endişelerin yedekli işlenmesi: Genel kullanıma yönelik her hizmet, kimlik doğrulaması, SSL ve istemci hızı sınırlama gibi endişeleri işlemelidir.

  • Protokol sınırlamaları: Hizmetler HTTP veya WebSocket gibi istemci dostu bir protokolü kullanıma sunmalıdır. Bu maruz kalma, iletişim protokolleri seçenekleri sınırlar.

  • Genişletilmiş saldırı yüzeyi: Genel uç noktalar olası saldırı yüzeyini artırır ve sağlamlaştırma gerektirir.

API ağ geçidi kullanma

Api ağ geçidi, belirli tasarım desenleri kullanılarak uygulamanızın gereksinimlerine uyarlanabilir. Bu tasarım desenleri yönlendirme, istek toplama ve çapraz kesme sorunları gibi temel işlevleri ele alınıyor:

  • ağ geçidi yönlendirme . İstemci isteklerini farklı uygulama hizmetlerine yönlendirmek için ters ara sunucu olarak bir API ağ geçidi kullanabilirsiniz. API ağ geçidi katman 7 yönlendirmesini kullanır ve istemcilerin kullanması için tek bir uç nokta sağlar. İstemcileri uygulama hizmetlerinden ayrıştırmak istediğinizde API ağ geçidi yönlendirmesini kullanın.

  • ağ geçidi toplama . Birden çok istemci isteğini tek bir istekte toplamak için API ağ geçidini kullanabilirsiniz. Tek bir işlem birden çok uygulama hizmetlerine çağrı gerektirdiğinde bu düzeni kullanın. API toplamada, istemci API ağ geçidine bir istek gönderir. Ardından API ağ geçidi, istekleri işlemler için gereken çeşitli hizmetlere yönlendirir. Son olarak, API ağ geçidi sonuçları toplar ve istemciye geri gönderir. Toplama, istemci ile uygulama hizmetleri arasındaki sohbetin azaltılmasına yardımcı olur.

  • Ağ Geçidi boşaltma. Tek tek hizmetlerin bunu sağlaması gerekmemesi için çapraz kesme işlevselliği sağlamak için BIR API ağ geçidi kullanabilirsiniz. Her hizmeti sorumlu hale getirmek yerine çapraz kesme işlevlerini tek bir yerde birleştirmek yararlı olabilir. Aşağıda, BIR API ağ geçidine boşaltabileceğiniz işlevlere örnekler verilmiştir:

    • SSL sonlandırma
    • Karşılıklı TLS
    • Kimlik doğrulama
    • IP izin verilenler listesi veya blok listesi
    • İstemci hızı sınırlama (azaltma)
    • Günlüğe kaydetme ve izleme
    • Yanıt önbelleğe alma
    • Web uygulaması güvenlik duvarı
    • GZIP sıkıştırması
    • Statik içeriğe hizmet verme

API ağ geçidi seçenekleri

Uygulamanıza API ağ geçidi uygulamak için bazı seçenekler aşağıda verilmiştır.

  • Ters proxy sunucusu. Nginx ve HAProxy, açık kaynak ters proxy teklifleridir. Yük dengeleme, SSL sonlandırma ve katman 7 yönlendirme gibi özellikleri destekler. Ek özellikler ve destek seçenekleri sağlayan ücretsiz sürümlere ve ücretli sürümlere sahiptir. Bu ürünler zengin özellik kümeleri, yüksek performans ve genişletilebilir özelliklerle olgunlaşır.

  • Service mesh giriş denetleyicisi. Bir hizmet ağı kullanıyorsanız, giriş denetleyicisinin bu hizmet ağıyla ilgili özelliklerini değerlendirin. Istio ve Open Service Mesh gibi AKS tarafından desteklenen eklentileri denetleyin. Linkerd veya Consul Connect gibi üçüncü taraf açık kaynak projeleri arayın. Örneğin, Istio giriş denetleyicisi katman 7 yönlendirmeyi, HTTP yönlendirmelerini, yeniden denemeleri ve diğer özellikleri destekler.

  • Azure Application Gateway. Application Gateway yönetilen bir yük dengeleme hizmetidir. Katman 7 yönlendirme, SSL sonlandırma ve bir web uygulaması güvenlik duvarı (WAF) gerçekleştirir.

  • Azure Front Door. Azure Front Door bir içerik teslim ağıdır (CDN). Uygulamalarınızın statik ve dinamik web içeriğine genel olarak hızlı, güvenilir ve güvenli erişim sağlamak için küresel ve yerel iletişim noktalarını (PoP' ler) kullanır.

  • Azure API Management. API Management, API'leri dış ve iç müşterilere yayımlamaya yönelik yönetilen bir çözümdür. Microsoft Entra Id veya diğer kimlik sağlayıcılarını kullanarak hız sınırlama, IP kısıtlamaları ve kimlik doğrulaması gibi genel kullanıma yönelik API'leri yönetmeye yönelik özellikler sağlar. API Management herhangi bir yük dengeleme gerçekleştirmez, bu nedenle bunu Azure Application Gateway gibi bir yük dengeleyici veya ters ara sunucu ile kullanmanız gerekir. Daha fazla bilgi için bkz. Azure Application Gateway ile API Management .

API ağ geçidi teknolojisi seçme

BIR API ağ geçidi seçerken aşağıdaki faktörleri göz önünde bulundurun:

  • Tüm gereksinimleri destekleyin. Gerekli özelliklerinizi destekleyen bir API ağ geçidi seçin. Önceki tüm API ağ geçidi seçenekleri katman 7 yönlendirmesini destekler. Ancak kimlik doğrulaması, hız sınırlama ve SSL sonlandırma gibi diğer özelliklere yönelik destekleri farklılık gösterebilir. Tek bir ağ geçidinin gereksinimlerinizi karşılayıp karşılamadığını veya birden çok ağ geçidinin gerekli olup olmadığını değerlendirin.

  • Yerleşik teklifleri tercih edin. Güvenlik ve denetim gereksinimlerinizi her karşıladıklarında, platformunuz tarafından sağlanan Azure Container Apps ve AKS gibi yerleşik API ağ geçidi ve giriş çözümlerini kullanın. Yalnızca yerleşik seçeneklerde gerekli esneklik yoksa özel bir ağ geçidi kullanın. Özel çözümler, yaşam döngüsünü etkili bir şekilde yönetmek için GitOps gibi bir idare modeli gerektirir.

  • Doğru dağıtım modelini seçin. Daha az işlem yükü için Azure Application Gateway ve Azure API Management gibi yönetilen hizmetleri kullanın. Genel amaçlı ters proxy'ler veya yük dengeleyiciler kullanıyorsanız, bunları mimarinizle uyumlu bir şekilde dağıtın. Genel amaçlı API ağ geçitlerini ayrılmış sanal makinelere veya giriş denetleyicisi tekliflerinde bir AKS kümesinin içine dağıtabilirsiniz. API ağ geçidini iş yükünden yalıtmak için bunları kümenin dışına dağıtabilirsiniz, ancak bu dağıtım yönetim karmaşıklığını artırır.

  • Değişiklikleri yönetin. Hizmetleri güncelleştirdiğinizde veya yenilerini eklediğinizde, ağ geçidi yönlendirme kurallarını güncelleştirmeniz gerekebilir. Hizmetleri, SSL sertifikalarını, IP izin verilenler listesini ve güvenlik yapılandırmalarını eklerken veya değiştirirken yönlendirme kurallarını yönetmek için işlemleri veya iş akışlarını uygulayın. API ağ geçidi yönetimini kolaylaştırmak için kod olarak altyapı ve otomasyon araçlarını kullanın.

Sonraki adımlar

Önceki makalelerde, mikro hizmetler ile mikro hizmetler ile istemci uygulamaları arasında arabirimler incelenmiştir. Bu arabirimler her hizmeti bağımsız, opak bir birim olarak kabul eder. Mikro hizmet mimarisinin kritik bir ilkesi, hizmetlerin verileri yönetme şekliyle ilgili iç ayrıntıları hiçbir zaman kullanıma sunmamasıdır. Bu yaklaşımın, sonraki makalenin konusu olan veri bütünlüğünü ve tutarlılığını koruma açısından önemli etkileri vardır.

mikro hizmetler için Verilerle ilgili dikkat edilmesi gerekenler