Dış kullanıcılara iç API'ler yayımlama

Azure API Management
Azure Application Gateway
Azure DevOps
Azure Monitor
Azure Virtual Network

Bu senaryoda bir kuruluş, Sanal Ağın içinde dağıtılan Azure API Management'ı kullanarak şirket içinde birden çok API'yi birleştirir.

Mimari

Dış kullanıcılar tarafından kullanılan iç API'lerin tam yaşam döngüsünü gösteren mimari diyagramı.

Bu mimarinin bir Visio dosyasını indirin.

Yukarıdaki diyagram, dış kullanıcılar tarafından kullanılan iç API'lerin yaşam döngüsünün tamamını kapsar.

Veri akışı

Veriler aşağıdaki gibi akar:

  1. Geliştiriciler, Azure VM'de yüklü ci/CD işlem hattı aracısına bağlı bir GitHub deposuna kod iade eder.
  2. Aracı, derlemeyi ILB ASE'de barındırılan API uygulamasına iletir.
  3. Azure API Management, API Management ilkesinde belirtilen HOST üst bilgileri aracılığıyla önceki API'leri kullanır.
  4. API Management tüm API'ler için App Service Ortamı DNS adını kullanır.
  5. Application Gateway, API Management geliştirici ve API portalını kullanıma sunar.
  6. Azure Özel DNS, trafiği ASE, API Management ve Application Gateway arasında dahili olarak yönlendirmek için kullanılır.
  7. Dış kullanıcılar, Application Gateway genel IP'sini kullanarak API'leri kullanmak için kullanıma sunulan geliştirici portalını kullanır.

Bileşenler

  • Azure Sanal Ağ, Azure kaynaklarının birbirleriyle, İnternet'le ve şirket içi ağlarla güvenli bir şekilde iletişim kurmasını sağlar.
  • Azure Özel DNS, etki alanı adlarının özel bir DNS çözümü eklemeye gerek kalmadan bir sanal ağda çözümlenmesine olanak tanır.
  • Azure API Management, kuruluşların verilerini ve hizmetlerini kullanmak için API'leri dış, iş ortağı ve iç geliştiricilere yayımlamasına yardımcı olur.
  • Application Gateway, web uygulamalarınıza gelen trafiği yönetmenize yardımcı olan bir web trafiği yük dengeleyicidir.
  • İç Load Balancer App Service Ortamı, App Service uygulamaları yüksek ölçekte güvenli bir şekilde çalıştırmak için tamamen yalıtılmış ve ayrılmış bir ortam sağlayan Azure App Service bir özelliktir.
  • Azure DevOps , geliştirme yaşam döngünüzü yönetmeye yönelik bir hizmettir ve planlama ve proje yönetimi, kod yönetimi, derleme ve yayın özellikleri içerir.
  • Application Insights , birden çok platformdaki web geliştiricileri için genişletilebilir bir Uygulama Performansı Yönetimi (APM) hizmetidir.
  • Azure Cosmos DB , Microsoft'un genel olarak dağıtılmış, çok modelli veritabanı hizmetidir.

Alternatifler

Senaryo ayrıntıları

Bu senaryoda, bir kuruluş Azure Uygulaması Hizmet Ortamı (ILB ASE) kullanarak birden çok API barındırıyor ve bir Sanal Ağ içinde dağıtılan Azure API Management (APIM) kullanarak bu API'leri dahili olarak birleştirmek istiyor. İç API Management örneği, API'lerin tam potansiyelinin kullanılmasına izin vermek için dış kullanıcılara da gösterilebilir. Bu dış açığa çıkarma, iç API Management hizmetine Azure Application Gateway iletme istekleri kullanılarak gerçekleştirilebilir ve bu da ASE'de dağıtılan API'leri kullanır.

  • Web API'leri güvenli HTTPS protokolü üzerinden barındırılır ve bir TLS Sertifikası kullanır.
  • Application Gateway ayrıca güvenli ve güvenilir giden çağrılar için 443 numaralı bağlantı noktası üzerinden yapılandırılır.
  • API Management hizmeti, TLS sertifikalarını kullanarak özel etki alanlarını kullanacak şekilde yapılandırılır.
  • App Service Ortamları için önerilen ağ yapılandırmasını gözden geçirin
  • API Management Azure portal veya PowerShell aracılığıyla yönetmesine izin veren 3443 numaralı bağlantı noktası hakkında açık bir ifade olmalıdır.
  • ASE'de barındırılan API için bir HOST üst bilgisi eklemek için APIM içindeki ilkeler'i kullanın. Bu, ASE'nin yük dengeleyicisinin isteği düzgün bir şekilde iletmesini sağlar.
  • API Management, App Service Ortamları altında barındırılan tüm uygulamalar için ASE'nin DNS girişini kabul eder. ASE yük dengeleyicinin App Service Ortamı altındaki Uygulamalar arasında ayrım yapmak üzere HOST üst bilgisini açıkça ayarlamak için bir APIM ilkesi ekleyin.
  • İzleme için Azure İzleyici aracılığıyla ölçümlerin de ortaya çıktığı Azure Uygulaması İçgörüler ile tümleştirmeyi göz önünde bulundurun.
  • İç API'leri dağıtmak için CI/CD işlem hatları kullanıyorsanız, Sanal Ağ içindeki bir VM'de kendi Barındırılan Aracınızı oluşturmayı göz önünde bulundurun.

Olası kullanım örnekleri

  • Müşteri değişiklik yaptıktan sonra müşteri adres bilgilerini dahili olarak eşitleyin.
  • Benzersiz veri varlıklarını açığa çıkartarak geliştiricileri platformunuza çekme.

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Microsoft Azure Well-Architected Framework.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış."

Kullanılabilirlik

Azure API Management hizmetini daha yüksek kullanılabilirlik ve gecikme sürelerini azaltmak için Çok Bölgeli dağıtım olarak dağıtabilirsiniz. Bu özellik yalnızca Premium modda kullanılabilir. Bu senaryodaki API Management hizmeti, App Service Ortamlarındaki API'leri kullanır. ApiM'yi şirket içi altyapıda barındırılan API'ler için de kullanabilirsiniz.

App Service Ortamları, daha yüksek ölçek ve kullanılabilirlik için App Service Ortamlarında barındırılan trafiği dağıtmak için Traffic Manager profillerinden yararlanabilir.

Dayanıklılık

Bu örnek senaryo yapılandırma hakkında daha fazla konuşsa da, App Service Ortamlarında barındırılan API'ler isteklerdeki hataları işleyecek kadar dayanıklı olmalıdır ve bunlar sonunda API Management hizmeti ve Application Gateway tarafından yönetilir. API tasarımında Yeniden Deneme ve Devre kesici desenlerini göz önünde bulundurun. Dayanıklı çözümler tasarlama hakkında genel yönergeler için bkz. Azure için dayanıklı uygulamalar tasarlama.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik sütununa genel bakış.

Yukarıdaki örnek senaryo tamamen bir iç ağda barındırıldığından, API Management ve ASE güvenli altyapıya (Azure VNet) zaten dağıtılmıştır. Ortama yönelik tehditleri önlemeye, algılamaya ve yanıtlamaya yönelik sorunsuz bir yol sağlamak için Application Gateway'leri Bulut için Microsoft Defender ile tümleştirebilirsiniz. Güvenli çözümler tasarlama hakkında genel yönergeler için bkz. Azure Güvenlik Belgeleri.

Maliyet iyileştirmesi

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimliliği artırmanın yollarını gözden geçmektir. Daha fazla bilgi için bkz. Maliyet iyileştirme sütununa genel bakış.

API Management dört katmanda sunulur: geliştirici, temel, standart ve premium. Bu katmanlardaki farkla ilgili ayrıntılı kılavuzu burada Azure API Management fiyatlandırma kılavuzunda bulabilirsiniz.

Müşteriler birimleri ekleyerek ve kaldırarak API Management ölçeklendirebilir. Her ünitenin katmanına bağlı olan kapasitesi vardır.

Not

API Management özelliklerinin değerlendirilmesi için Geliştirici katmanını kullanabilirsiniz. Üretim için Geliştirici katmanını kullanmamalısınız.

Öngörülen maliyetleri görüntülemek ve dağıtım gereksinimlerinize göre özelleştirmek için Azure Fiyatlandırma Hesaplayıcısı'nda ölçek birimi sayısını ve App Service örneklerini değiştirebilirsiniz.

Benzer şekilde, App Service Ortamları fiyatlandırma kılavuzunu bulabilirsiniz.

Gerekli katmana ve kaynaklara bağlı olarak Application Gateway fiyatlandırmayı yapılandırabilirsiniz.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

Ölçeklenebilirlik

Eş zamanlı bağlantıların sayısı ve oranı, yapılandırılan ilkelerin türü ve sayısı, istek ve yanıt boyutları ve API'lerdeki arka uç gecikme süreleri gibi çeşitli faktörlere bağlı olarak API Management örneklerin ölçeğini genişletebilirsiniz. Ölçeği genişletme örnek seçenekleri Temel, Standart ve Premium Katmanlar'da kullanılabilir ancak Temel ve Standart katmanlarda üst ölçek sınırına bağlıdır. Örnekler Birim olarak adlandırılır ve Temel katmanda en fazla iki birim, Standart katmanda dört birim ve Premium katmanındaki herhangi bir birim sayısına kadar ölçeklendirilebilir. Kuralları temel alarak ölçeği genişletmeyi etkinleştirmek için Otomatik Ölçeklendirme seçenekleri de kullanılabilir.

App Service Ortamları, fiyatlandırma katmanına göre sınırlarla ölçeklendirmek için tasarlanmıştır. App Service Ortamları altında barındırılan uygulamaları, uygulamanın gereksinimlerine bağlı olarak ölçeği genişletecek (örnek sayısı) veya ölçeği artıracak (örnek boyutu) yapılandırabilirsiniz.

Azure Application Gateway otomatik ölçeklendirme, tüm genel Azure bölgelerinde Alanlar arası yedekli SKU'nun bir parçası olarak kullanılabilir. Uygulama ağ geçidi Otomatik ölçeklendirme ile ilgili genel önizleme özelliğine bakın.

Bu senaryoyu dağıtın

Önkoşullar ve varsayımlar

  1. Özel bir etki alanı adı satın almanız gerekir.
  2. Tüm özel etki alanlarımız için bir TLS sertifikası (Azure Sertifika Hizmeti'nden joker sertifika kullandık) gerekir. Geliştirme Testi senaryoları için otomatik olarak imzalanan bir sertifika da temin edebilirsiniz.
  3. Bu özel dağıtımda etki alanı adı contoso.org ve etki alanı için joker karakter TLS sertifikası kullanılır.
  4. Dağıtım, Dağıtım bölümünde belirtilen kaynak adlarını ve adres alanlarını kullanır. Kaynak adlarını ve adres alanlarını yapılandırabilirsiniz.

Dağıtım ve parçaları bir araya getirme

Azure’a dağıtın

Yukarıdaki Resource Manager şablonunu kullanarak dağıtılan bileşenleri aşağıdaki gibi daha fazla yapılandırmanız gerekir:

  1. Aşağıdaki yapılandırmalara sahip sanal ağ:

    • Ad: ase-internal-vnet
    • Sanal ağ için adres alanı: 10.0.0.0/16
    • Dört Alt Ağ
      • backendSubnet DNS Hizmeti için: 10.0.0.0/24
      • apimsubnetİç API Management Hizmeti için: 10.0.1.0/28
      • asesubnet ILB ASE için: 10.0.2.0/24
      • Test VM'leri ve İç DevOps Barındırılan Aracı VM'leri için VMSubnet: 10.0.3.0/24
  2. DNS hizmeti eklendiğinden Özel DNS hizmeti (Genel Önizleme) sanal ağın boş olmasını gerektirir.

  3. İç Load Balancer (ILB) seçeneğiyle App Service Ortamı: aseinternal (DNS: aseinternal.contoso.org). Dağıtım tamamlandıktan sonra ILB için joker karakter sertifikasını karşıya yükleyin

  4. konum olarak ASE ile planlama App Service

  5. Api Uygulaması (Basitlik için Uygulama Hizmetleri) - srasprest (URL: https://srasprest.contoso.org) – MVC tabanlı web API'sini ASP.NET. Dağıtımdan sonra şunları yapılandırın:

    • TLS sertifikasını kullanmak için web uygulaması
    • Önceki uygulamalara Application Insights: api-insights
    • Sanal ağ içinde barındırılan web API'leri için Azure Cosmos DB hizmeti oluşturun: noderestapidb
    • Oluşturulan Özel DNS bölgesinde DNS girdileri oluşturma
    • Azure Pipelines'ı kullanarak Sanal Makineler üzerindeki aracıları iç Ağda Web Uygulaması kodunu dağıtacak şekilde yapılandırabilirsiniz
    • API Uygulamasını dahili olarak test için sanal ağ alt ağı içinde bir test VM'sini oluşturun
  6. API Management hizmeti oluşturma:apim-internal

  7. Hizmeti Alt Ağ üzerindeki iç sanal ağa bağlanacak şekilde yapılandırın: apimsubnet. Dağıtım tamamlandıktan sonra aşağıdaki ek adımları gerçekleştirin:

    • TLS kullanarak APIM Hizmetleri için özel etki alanlarını yapılandırma
      • API portalı (api.contoso.org)
      • Geliştirme Portalı (portal.contoso.org)
      • API'ler bölümünde, ASE'nin DNS adını kullanarak ASE Uygulamalarını yapılandırın ve Web uygulaması için HOST Üst Bilgisi İlkesi eklendi
      • Sanal Ağ içindeki API Management hizmetini test etmek için önceki oluşturulan test VM'sini kullanın

    Not

    api.contoso.org genel olarak çözümlenemediğinden, Azure portal APIM API'lerini test etmek işe yaramaz.*

  8. 80 numaralı bağlantı noktasında apim-gateway API hizmetine erişmek için Application Gateway (WAF V1) yapılandırın. Application Gateway ve ilgili sistem durumu yoklamalarına ve http ayarlarına TLS sertifikaları ekleyin. Ayrıca Kuralları ve Dinleyicileri TLS sertifikasını kullanacak şekilde yapılandırın.

Önceki adımlar başarıyla tamamlandıktan sonra, api.contoso.org web kayıt şirketi CNAME girişlerindeki DNS girişlerini yapılandırın ve Application Gateway genel DNS adıyla portal.contoso.org: ase-appgtwy.westus.cloudapp.azure.com. Geliştirme Portalı'na Genel'den ulaşabildiğinizi ve Azure portal kullanarak APIM hizmetleri API'lerini test edebildiğinizden emin olun.

Not

APIM hizmetleri için iç ve dış uç noktalar için aynı URL'yi kullanmak iyi bir uygulama değildir (ancak bu tanıtımda her iki URL de aynıdır). İç ve dış uç noktalar için farklı URL'ler kullanmayı seçerseniz http yeniden yönlendirmeyi ve çok daha fazlasını destekleyen Application Gateway WAF v2'yi kullanabilirsiniz.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. İlk olarak aşağıdaki katkıda bulunan tarafından yazılmıştır.

Asıl yazar:

Diğer katkıda bulunanlar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar

Azure API Management kullanarak web uygulamasını geçirme