Düzenle

Aracılığıyla paylaş


Azure Uygulaması Hizmeti ve çok kiracılı Azure İşlevleri konuları

Azure
Azure App Service
Azure Functions

Azure Uygulaması Hizmeti güçlü bir web uygulaması barındırma platformudur. App Service altyapısının üzerine kurulan Azure İşlevleri, sunucusuz ve olay odaklı işlem iş yüklerini kolayca oluşturmanıza olanak tanır. Her iki hizmet de çok kiracılı çözümlerde sıklıkla kullanılır.

çok kiracılılığı destekleyen Azure Uygulaması Hizmeti ve Azure İşlevleri özellikleri

Azure Uygulaması Hizmeti ve Azure İşlevleri, çok kiracılılığı destekleyen birçok özellik içerir.

Özel etki alanı adları

Azure Uygulaması Hizmeti joker karakter DNS kullanmanıza ve kendi joker karakter TLS sertifikalarınızı eklemenize olanak tanır. Kiracıya özgü alt etki alanları kullandığınızda joker DNS ve TLS sertifikaları, her yeni kiracı için el ile yeniden yapılandırma gerektirmeden çözümünüzü çok sayıda kiracıya kolayca ölçeklendirmenizi sağlar.

Kiracıya özgü özel etki alanı adlarını kullandığınızda, uygulamanıza eklenmesi gereken çok sayıda özel etki alanı adı olabilir. Özellikle tek tek TLS sertifikalarına ihtiyaç duyduklarında birçok özel etki alanı adını yönetmek zahmetli olabilir. App Service, özel etki alanlarıyla çalışırken gereken çalışmayı azaltan yönetilen TLS sertifikaları sağlar. Ancak, tek bir uygulamaya kaç özel etki alanı uygulanabileceği gibi dikkate alınması gereken sınırlar vardır.

Azure Front Door ile tümleştirme

App Service ve Azure İşlevleri, çözümünüzün İnternet'e yönelik bileşeni olarak hareket etmek için Azure Front Door ile tümleşir. Azure Front Door, bir web uygulaması güvenlik duvarı (WAF) ve uç önbelleğe alma eklemenize olanak tanır ve diğer performans iyileştirmeleri sağlar. Değişen iş veya teknik gereksinimlere göre trafiği farklı arka uçlara yönlendirmek için trafik akışlarınızı kolayca yeniden yapılandırabilirsiniz.

Azure Front Door'ı çok kiracılı bir uygulamayla kullandığınızda, özel etki alanı adlarınızı yönetmek ve TLS bağlantılarınızı sonlandırmak için kullanabilirsiniz. App Service uygulamanız daha sonra tek bir ana bilgisayar adıyla yapılandırılır ve tüm trafik bu uygulamaya akar ve bu da birden çok yerde özel etki alanı adlarını yönetmeyi önlemenize yardımcı olur.

Diagram showing requests coming into Front Door using a variety of host names. The requests are passed to the App Service app using a single host name.

Yukarıdaki örnekte olduğu gibi, Azure Front Door isteğin Host üst bilgisini değiştirmek için yapılandırılabilir. İstemci tarafından gönderilen özgün Host üst bilgi, üst bilgi aracılığıyla X-Forwarded-Host yayılır ve uygulama kodunuz isteği doğru kiracıyla eşlemek için bu üst bilgiyi kullanabilir.

Uyarı

Uygulamanız tanımlama bilgileri veya yeniden yönlendirme yanıtları gönderiyorsa, özel dikkat etmeniz gerekir. İsteğin Host üst bilgilerindeki değişiklikler bu yanıtları geçersiz kabilir. Daha fazla bilgi için bkz . Konak adı koruma en iyi uygulaması.

Uygulamanıza ulaşmadan önce trafiğin Front Door üzerinden akmasını sağlamak için özel uç noktaları veya App Service erişim kısıtlamalarını kullanabilirsiniz.

Çok kiracılı bir çözümde Azure Front Door kullanma hakkında daha fazla bilgi için bkz . Çok kiracılı bir çözümde Azure Front Door kullanma

Kimlik doğrulaması ve yetkilendirme

Azure Uygulaması Hizmeti, uygulamanız adına kimlik doğrulama belirteçlerini doğrulayabilir. App Service bir istek aldığında, aşağıdaki koşulların her birinin karşılanıp karşılanmadığını denetler:

  • İstek bir belirteç içeriyor.
  • Belirteç geçerli.
  • İstek yetkilendirildi.

Koşullardan herhangi biri karşılanmazsa App Service isteği engelleyebilir veya kullanıcıyı kimlik sağlayıcınıza yönlendirerek oturum açabilmesini sağlayabilir.

Kiracılarınız kimlik sistemi olarak Microsoft Entra Id kullanıyorsa, Azure Uygulaması Hizmeti'ni kullanıcı belirteçlerini doğrulamak için /common uç noktasını kullanacak şekilde yapılandırabilirsiniz. Bu, kullanıcının Microsoft Entra kiracısına bakılmaksızın belirteçlerinin doğrulanmasını ve kabul edilmesini sağlar.

Ayrıca, tüketicilerin kimlik doğrulaması için Azure Uygulaması Hizmetini Azure AD B2C ile tümleştirebilirsiniz.

Daha fazla bilgi:

Erişim kısıtlamaları

Erişim kısıtlamalarını kullanarak uygulamanıza gelen trafiği kısıtlayabilirsiniz. Bunlar, uygulamaya bağlanmasına izin verilen IP adresi aralıklarını veya sanal ağları belirtmek için kullanılabilir.

Çok kiracılı bir çözümle çalışırken en fazla erişim kısıtlama kuralı sayısına dikkat edin. Örneğin, her kiracı için bir erişim kısıtlama kuralı oluşturmanız gerekiyorsa izin verilen en fazla kural sayısını aşabilirsiniz. Daha fazla kurala ihtiyacınız varsa Azure Front Door gibi bir ters ara sunucu dağıtmayı göz önünde bulundurun.

Yalıtım modelleri

Azure Uygulaması Hizmeti veya Azure İşlevleri kullanarak çok kiracılı bir sistemle çalışırken, kullanmak istediğiniz yalıtım düzeyi hakkında bir karar vermeniz gerekir. Senaryonuz için en iyi yalıtım modelini seçmenize yardımcı olmak için çok kiracılı bir çözüm için dikkate alınacak kiracı modellerine ve çok kiracılı çözümlerde işlem için mimari yaklaşımlarda sağlanan kılavuza bakın.

Azure Uygulaması Hizmeti ve Azure İşlevleri ile çalışırken aşağıdaki temel kavramları bilmeniz gerekir:

  • Azure Uygulaması Hizmeti'nde bir plan barındırma altyapınızı temsil eder. Uygulama, bu altyapıda çalışan tek bir uygulamayı temsil eder. Tek bir plana birden çok uygulama dağıtabilirsiniz.
  • Azure İşlevleri,barındırma ve uygulamanız da ayrılmıştır, ancak esnek barındırma için ek barındırma seçenekleriniz vardır; burada Azure İşlevleri sizin için ölçeklendirmeyi yönetir. Kolaylık olması için, bu makalenin tamamında barındırma altyapısını bir plan olarak adlandırıyoruz, çünkü burada açıklanan ilkeler kullandığınız barındırma modeline bakılmaksızın hem App Service hem de Azure İşlevleri için geçerlidir.

Aşağıdaki tabloda, Azure Uygulaması Hizmeti için ana kiracı yalıtım modelleri ile Azure İşlevleri arasındaki farklar özetlemektedir:

Dikkat edilmesi gereken noktalar Paylaşılan uygulamalar Paylaşılan planlara sahip kiracı başına uygulamalar Kiracı başına planlar
Yapılandırma yalıtımı Düşük Orta. Uygulama düzeyi ayarları kiracıya ayrılmıştır, plan düzeyi ayarları paylaşılır Yüksek. Her kiracının kendi yapılandırması olabilir
Performans yalıtımı Düşük Düşük-orta. Gürültülü komşu sorunlarına maruz kalma olasılığı Yüksek
Dağıtım karmaşıklığı Düşük Orta Yüksek
operasyonel karmaşıklık Düşük Yüksek Yüksek
Kaynak maliyeti Düşük Uygulamaya bağlı olarak düşük-yüksek Yüksek
Örnek senaryo Paylaşılan uygulama katmanına sahip büyük çok kiracılı çözüm Kiracının farkında olmayan uygulamaları Azure'a geçirirken maliyet verimliliği de kazanın Tek kiracılı uygulama katmanı

Paylaşılan uygulamalar

Paylaşılan bir uygulamayı tek bir plana dağıtabilir ve paylaşılan uygulamayı tüm kiracılarınız için kullanabilirsiniz.

Bu genellikle en uygun maliyetli seçenektir ve yönetilecek kaynak sayısı daha az olduğundan en az işlem yükü gerektirir. Genel planı yük veya talebe göre ölçeklendikleyebilirsiniz ve planı paylaşan tüm kiracılar artan kapasiteden yararlanacaktır.

App Service kotalarına ve sınırlarına dikkat etmek önemlidir; örneğin, tek bir uygulamaya eklenebilecek en fazla özel etki alanı sayısı ve bir planın sağlanabilir en fazla örnek sayısı.

Bu modeli kullanabilmek için uygulama kodunuzun çok kiracılı olması gerekir.

Paylaşılan planlara sahip kiracı başına uygulamalar

Planınızı birden çok kiracı arasında paylaşmayı seçebilir, ancak her kiracı için ayrı uygulamalar dağıtabilirsiniz. Bu, her kiracı arasında mantıksal yalıtım sağlar ve bu yaklaşım size aşağıdaki avantajları sağlar:

  • Maliyet verimliliği: Barındırma altyapınızı paylaşarak genellikle kiracı başına genel maliyetlerinizi düşürebilirsiniz.
  • Yapılandırma ayrımı: Her kiracının uygulamasının kendi etki alanı adı, TLS sertifikası, erişim kısıtlamaları ve belirteç yetkilendirme ilkeleri uygulanabilir.
  • Yükseltmelerin ayrılması: Her kiracının uygulama ikili dosyaları aynı plandaki diğer uygulamalardan bağımsız olarak yükseltilebilir.

Ancak, planın işlem kaynakları paylaşıldığından, uygulamalar Gürültülü Komşu sorununa tabi olabilir. Ayrıca, tek bir plana dağıtılacak uygulama sayısını sınırlayabilirsiniz.

Dekont

Farklı kiracılar için dağıtım yuvalarını kullanmayın. Yuvalar kaynak yalıtımı sağlamaz. Bunlar, uygulamanızın mavi-yeşil dağıtımlar ve kanarya dağıtımı stratejisi gibi kısa bir süre boyunca çalışan birden çok sürümüne sahip olmanız gerektiğinde dağıtım senaryoları için tasarlanmıştır.

Kiracı başına planlar

En güçlü yalıtım düzeyi, kiracı için ayrılmış bir plan dağıtmaktır. Bu ayrılmış plan, kiracının söz konusu plana ayrılan tüm sunucu kaynaklarını tam olarak kullanmasını sağlar.

Bu yaklaşım, her kiracı için performans yalıtımı sağlamak ve Gürültülü Komşu sorununu önlemek için çözümünüzü ölçeklendirmenizi sağlar. Ancak kaynaklar birden çok kiracıyla paylaşılmadığından maliyeti de daha yüksektir. Ayrıca, tek bir Azure kaynak grubuna dağıtabileceğiniz maksimum plan sayısını da göz önünde bulundurmanız gerekir.

Konak API'leri

API'leri hem Azure Uygulaması Hizmetinde hem de Azure İşlevleri barındırabilirsiniz. Platform seçiminiz, ihtiyacınız olan belirli özellik kümesine ve ölçeklendirme seçeneklerine bağlıdır.

API'nizi barındırmak için hangi platformu kullanırsanız kullanın, API uygulamanızın önünde Azure API Management'ı kullanmayı göz önünde bulundurun. API Management, aşağıdakiler de dahil olmak üzere çok kiracılı çözümler için yararlı olabilecek birçok özellik sağlar:

  • Tüm kimlik doğrulaması için merkezi bir nokta. Bu, bir belirteç talebi veya diğer istek meta verilerinden kiracı tanımlayıcısını belirlemeyi içerebilir.
  • İstekleri farklı API arka uçlarına yönlendirme, isteğin kiracı tanımlayıcısını temel alabilir. Bu, kendi bağımsız API uygulamalarıyla birden çok dağıtım damgası barındırdığınızda yararlı olabilir, ancak tüm istekler için tek bir API URL'niz olması gerekir.

Ağ ve çok kiracılılık

IP adresleri

Birçok çok kiracılı uygulamanın veri göndermek için kiracıların şirket içi ağlarına bağlanması gerekir.

Bilinen bir statik IP adresinden veya bilinen statik IP adresleri kümesinden giden trafik göndermeniz gerekiyorsa NAT Ağ Geçidi kullanmayı göz önünde bulundurun. Nat Gateway'i çok kiracılı çözümlerde kullanma hakkında daha fazla bilgi için bkz . Çok kiracılılık için Azure NAT Ağ Geçidi ile ilgili dikkat edilmesi gerekenler. App Service, NAT Ağ Geçidi ile tümleştirme konusunda rehberlik sağlar.

Statik giden IP adresine ihtiyacınız yoksa, ancak bunun yerine uygulamanızın giden trafik için kullandığı IP adresini zaman zaman denetlemeniz gerekiyorsa, App Service dağıtımının geçerli IP adreslerini sorgulayabilirsiniz.

Kotalar

App Service çok kiracılı bir hizmet olduğundan, paylaşılan kaynakları nasıl kullandığınıza dikkat etmeniz gerekir. Ağ, uygulamanızın kaynak ağ adresi çevirisi (SNAT) ve TCP bağlantı noktası sınırları da dahil olmak üzere hem gelen hem de giden ağ bağlantılarıyla nasıl çalışabileceğini etkileyen sınırlar olduğundan, özellikle dikkat etmeniz gereken bir alandır.

Uygulamanız çok sayıda veritabanına veya dış hizmete bağlanıyorsa, uygulamanız SNAT bağlantı noktası tükenme riski altında olabilir. Genel olarak, SNAT bağlantı noktası tükenmesi kodunuzun TCP bağlantılarını doğru şekilde yeniden kullanamediğini gösterir ve hatta çok kiracılı bir çözümde bile bağlantıları yeniden kullanırken önerilen yöntemleri izlediğinizden emin olmanız gerekir.

Ancak, bazı çok kiracılı çözümlerde, iyi kodlama uygulamalarını izleseniz bile, farklı IP adreslerine giden bağlantı sayısı SNAT bağlantı noktası tükenmesine neden olabilir. Bu senaryolarda aşağıdaki seçeneklerden birini göz önünde bulundurun:

  • Uygulamanızın kullanabileceği SNAT bağlantı noktası sayısını artırmak için NAT Ağ Geçidi'ni dağıtın. Nat Gateway'i çok kiracılı çözümlerde kullanma hakkında daha fazla bilgi için bkz . Çok kiracılılık için Azure NAT Ağ Geçidi ile ilgili dikkat edilmesi gerekenler.
  • Yük dengeleyici sınırlarını atlamak için Azure hizmetlerine bağlanırken hizmet uç noktalarını kullanın.

Bu denetimler olsa bile, çok sayıda kiracıyla sınırlara yaklaşabilirsiniz, bu nedenle ek App Service planlarına veya dağıtım damgalarına ölçeklendirmeyi planlamanız gerekir.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

  • John Downs | Baş Müşteri Mühendisi, Azure için FastTrack

Diğer katkıda bulunanlar:

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

Sonraki adımlar

Çok kiracılı çözümlerin mimarları ve geliştiricileri için Kaynaklar'ı gözden geçirin.