Bu senaryoda kuruluş, bir sanal ağ içinde dağıtılan Azure API Management'ı kullanarak birden çok API'yi dahili olarak birleştirir.
Mimari
Bu mimarinin bir Visio dosyasını indirin.
Yukarıdaki diyagram, dış kullanıcılar tarafından kullanılan iç API'lerin tam yaşam döngüsünü kapsar.
Veri akışı
Veriler aşağıdaki gibi akar:
- Geliştiriciler, Azure VM'de yüklü ci/CD işlem hattı aracısına bağlı bir GitHub deposuna kodu iade eder.
- Aracı, derlemeyi ILB App Service Ortamı üzerinde barındırılan API uygulamasına iletir.
- Azure API Management, API Management ilkesinde belirtilen HOST üst bilgileri aracılığıyla önceki API'leri kullanır.
- API Management, tüm API'ler için App Service Ortamı DNS adını kullanır.
- Application Gateway, API Management geliştiricisini ve API portalını kullanıma sunar.
- Azure Özel DNS, trafiği App Service Ortamı, API Management ve Application Gateway arasında dahili olarak yönlendirmek için kullanılır.
- 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, internetle 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 api'leri dış, iş ortağı ve iç geliştiricilere yayımlayarak verilerini ve hizmetlerini kullanmaları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.
- İç yük dengeleyici App Service Ortamı, App Service uygulamalarını yüksek ölçekte güvenli bir şekilde çalıştırmak için tamamen yalıtılmış ve ayrılmış bir ortam sağlayan bir Azure Uygulaması Hizmeti özelliğidir.
- 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 sürüm ö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
- Azure sanal ağına dağıtılan bir Azure lift and shift senaryosunda arka uç sunucuları özel IP adresleri aracılığıyla doğrudan ele alınabiliyordu.
- Şirket içi kaynakları kullanıyorsanız, API Management örneği bir Azure VPN Gateway ve siteden siteye İnternet Protokolü Güvenliği (IPSec) VPN bağlantısı veya ExpressRoute aracılığıyla özel olarak iç hizmete ulaşabilir ve hibrit bir Azure ve şirket içi senaryo oluşturur.
- Azure tabanlı DNS Hizmeti yerine mevcut veya açık kaynak DNS sağlayıcıları kullanılabilir.
- Azure dışında dağıtılan iç API'ler, API'leri API Management Hizmeti aracılığıyla ortaya çıkararak avantajlı olmaya devam edebilir.
Senaryo ayrıntıları
Bu senaryoda kuruluş, Azure Uygulaması Lication Service Environment (ILB App Service Ortamı) 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 şirket içinde birleştirmek istiyor. İç API Management örneği, API'lerin tüm potansiyelinin kullanılmasına izin vermek için dış kullanıcılara da gösterilebilir. Bu dış pozlama, Azure Uygulaması lication Gateway iletme istekleri iç API Management hizmetine ileterek elde edilebilir ve bu da App Service Ortamı 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.
- Uygulama ağ geçidi, güvenli ve güvenilir giden çağrılar için 443 numaralı bağlantı noktası üzerinden de yapılandırılır.
- API Management hizmeti, TLS sertifikalarını kullanarak özel etki alanlarını kullanacak şekilde yapılandırılmıştır.
- App Service Ortamı için önerilen ağ yapılandırmasını gözden geçirin
- API Management'ın Azure portalı veya PowerShell aracılığıyla yönetmesine olanak sağlayan 3443 numaralı bağlantı noktası hakkında açık bir ifade olması gerekir.
- App Service Ortamı üzerinde barındırılan API için bir HOST üst bilgisi eklemek için APIM içindeki ilkeleri kullanın. Bu, App Service Ortamı yük dengeleyicinin isteği düzgün bir şekilde iletmesini sağlar.
- API Management, App Service Ortamı altında barındırılan tüm uygulamalar için App Service Ortamı DNS girişini kabul eder. App Service Ortamı 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.
- ölçümleri izleme için Azure İzleyici aracılığıyla da ortaya çıkaran Azure Uygulaması lication Insights 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 adresi bilgilerini dahili olarak eşitleyin.
- Benzersiz veri varlıklarını göstererek geliştiricileri platformunuza çekin.
Dikkat edilmesi gereken noktalar
Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.
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
Daha yüksek kullanılabilirlik ve ayrıca gecikme sürelerini azaltmak için Azure API Management hizmetini Çok Bölgeli dağıtım olarak dağıtabilirsiniz. Bu özellik yalnızca Premium modda kullanılabilir. Bu senaryodaki API Management hizmeti, App Service Ortamı api'leri kullanır. ApiM'yi şirket içi altyapıda barındırılan API'ler için de kullanabilirsiniz.
Dayanıklılık
Bu örnek senaryo yapılandırma hakkında daha fazla konuşsa da, App Service Ortamı'lerde barındırılan API'ler, sonunda API Management hizmeti ve Application Gateway tarafından yönetilen isteklerdeki hataları işleyecek kadar dayanıklı olmalıdır. 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 App Service Ortamı güvenli altyapıda (Azure Sanal Ağ) zaten dağıtılmıştır. Application Gateway'leri Bulut için Microsoft Defender ile tümleştirerek ortama yönelik tehditleri önlemeye, algılamaya ve yanıtlamaya yönelik sorunsuz bir yol sağlayabilirsiniz. Güvenli çözümler tasarlama hakkında genel yönergeler için Bkz . Azure Güvenlik Belgeleri.
Maliyet iyileştirme
Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. 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 birimler ekleyip çıkartarak API Yönetimi'ni ölçekleyebilir. Her birim, kendi katmanına bağlı bir kapasiteye sahiptir.
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 Ortamı fiyatlandırma kılavuzunu bulabilirsiniz.
Gerekli katmana ve kaynaklara bağlı olarak Application Gateway fiyatlandırmasını 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
API Management örneklerinin ölçeğini eş zamanlı bağlantı 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 genişletebilirsiniz. Ölçeği genişletme örneği 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 sayıda birim ölçeğine 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 Ortamı, fiyatlandırma katmanına göre sınırlarla ölçeklendirmek için tasarlanmıştır. uygulamanın gereksinimlerine bağlı olarak ölçeği genişletmek (örnek sayısı) veya ölçeği genişletmek (örnek boyutu) için App Service Ortamı altında barındırılan uygulamaları yapılandırabilirsiniz.
Azure Uygulaması lication Gateway otomatik ölçeklendirmesi, 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
- Özel bir etki alanı adı satın almanız gerekir.
- Tüm özel etki alanlarımızda kullanmak için bir TLS sertifikasına (Azure Sertifika Hizmeti'nden joker sertifika kullandık) ihtiyacınız vardır. Geliştirme Testi senaryoları için otomatik olarak imzalanan bir sertifika da temin edebilirsiniz.
- Bu özel dağıtımda etki alanı adı contoso.org ve etki alanı için joker karakter TLS sertifikası kullanılır.
- 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
Yukarıdaki Resource Manager şablonunu kullanarak dağıtılan bileşenleri aşağıdaki gibi daha fazla yapılandırmanız gerekir:
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/24apimsubnet
İç API Management Hizmeti için: 10.0.1.0/28asesubnet
ILB App Service Ortamı 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
- Ad:
dns hizmeti eklendiğinden Özel DNS hizmeti (Genel Önizleme) sanal ağın boş olmasını gerektirir.
İç yük dengeleyici (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ükleyinKonum olarak App Service Ortamı app service planı
Api Uygulaması (Basitlik için App Service) -
srasprest
(URL:https://srasprest.contoso.org
) – Model-Görünüm Denetleyicisi (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 yönelik 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 Azure Özel DNS bölgesinde DNS girişleri oluşturma
- Azure Pipelines'ı kullanarak Sanal Makineler'da aracıları iç Ağda Web App kodunu dağıtmak üzere yapılandırabilirsiniz
- API Uygulamasını dahili olarak test için sanal ağ alt ağında bir test VM'sini oluşturun
API Management hizmeti oluşturma:
apim-internal
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ı uygulayın:- 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, Web uygulaması için ANA BILGISAYAR Üst Bilgisi için İlke App Service Ortamı DNS adını kullanarak App Service Ortamı Uygulamalarını yapılandırın
- API Management hizmetinin iç Sanal Ağ test etmek için önceki oluşturulan test VM'sini kullanın
- API portalı (
Not
ApiM API'lerini Azure portalından test etmek işe yaramaz çünkü
api.contoso.org
genel olarak çözümlenemez.*- TLS kullanarak APIM Hizmetleri için özel etki alanlarını yapılandırma
Uygulama ağ geçidini API hizmetine erişecek şekilde yapılandırın:
apim-gateway
bağlantı noktası 80'de. TlS sertifikalarını uygulama ağ geçidine ve ilgili sistem durumu yoklamalarına ve HTTP ayarlarına ekleyin. Ayrıca Kuralları ve Dinleyicileri TLS sertifikasını kullanacak şekilde yapılandırın.
Yukarıdaki adımlar başarıyla tamamlandıktan sonra, ve web kayıt şirketi CNAME girdilerindeki DNS girişlerini api.contoso.org
portal.contoso.org
Application Gateway genel DNS adı: ile yapılandırın. ase-appgtwy.westus.cloudapp.azure.com
Geliştirme Portalı'na Genel'den ulaşabildiğinizi ve Azure portalını 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.
Katkıda Bulunanlar
Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunan tarafından yazılmıştır.
Asıl yazar:
- Srikant Sarwa | Kıdemli Müşteri Mühendisi
Diğer katkıda bulunanlar:
- Shawn Kupfer | Teknik Yazar
Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.
Sonraki adımlar
- Öğretici: İlk API’nizi içeri aktarma ve yayımlama
- Öğretici: Ürün oluşturma ve yayımlama
- Öğretici: API'nizin birden fazla sürümünü yayımlama