App Service Ortamları ile Coğrafi Olarak Dağıtılmış Ölçek

Genel Bakış

Çok yüksek ölçek gerektiren uygulama senaryoları, bir uygulamanın tek bir dağıtımında kullanılabilen işlem kaynağı kapasitesini aşabilir. Oylama uygulamaları, spor etkinlikleri ve televised eğlence etkinlikleri, son derece yüksek ölçek gerektiren senaryolara örnek olarak verilebilir. Uygulamaların ölçeği yatay olarak genişletilerek yüksek ölçek gereksinimleri karşılanabilir. Aşırı yük gereksinimlerini karşılamak için birçok uygulama dağıtımı tek bir bölge içinde ve bölgeler arasında yapılabilir.

App Service Ortamları, yatay ölçek genişletme için ideal bir platformdır. Geliştiriciler, bilinen bir istek hızını destekleyebilecek App Service Ortamı bir yapılandırma seçtikten sonra istenen en yüksek yük kapasitesine ulaşmak için "tanımlama bilgisi kesici" olarak ek App Service Ortamları dağıtabilir.

Örneğin, bir App Service Ortamı yapılandırmasında çalışan bir uygulamanın saniyede 20.000 isteği (RPS) işlemek için test edildiğini varsayalım. İstenen en yüksek yük kapasitesi 100.000 RPS ise beş (5) App Service Ortamı oluşturulup yapılandırılarak uygulamanın öngörülen en yüksek yükü işleyebilmesi sağlanır.

Müşteriler genellikle özel (veya özel) bir etki alanı kullanarak uygulamalara erişdiğinden, geliştiricilerin uygulama isteklerini tüm App Service Ortamı örneklerine dağıtması gerekir. Bu hedefe ulaşmak için harika bir yol, bir Azure Traffic Manager profili kullanarak özel etki alanını çözümlemektir. Traffic Manager profili, tek tek tüm App Service Ortamlarını işaret etmek üzere yapılandırılabilir. Traffic Manager, Traffic Manager profilindeki yük dengeleme ayarlarına göre tüm App Service Ortamları arasında müşterileri dağıtma işlemini otomatik olarak işler. Bu yaklaşım, tüm App Service Ortamlarının tek bir Azure bölgesinde mi yoksa birden çok Azure bölgesine dünya çapında mı dağıtıldığından bağımsız olarak çalışır.

Ayrıca, müşteriler uygulamalara özel etki alanı üzerinden erişdiğinden, müşteriler bir uygulamayı çalıştıran App Service Ortamlarının sayısını bildiğinden de habersizdir. Sonuç olarak geliştiriciler, gözlemlenen trafik yüküne göre ortamlar App Service hızlı ve kolay bir şekilde ekleyebilir ve kaldırabilir.

Aşağıdaki kavramsal diyagramda, tek bir bölge içindeki üç App Service Ortamı arasında yatay olarak ölçeklendirilen bir uygulama gösterilmiştir.

Traffic Manager ile coğrafi olarak dağıtılmış uygulama hizmetinin kavramsal mimari diyagramı.

Bu konunun geri kalanında, birden çok App Service Ortamı kullanarak örnek uygulama için dağıtılmış topolojiyi ayarlamayla ilgili adımlarda yol gösterilir.

Topolojiyi Planlama

Dağıtılmış bir uygulama ayak izi oluşturmadan önce, önceden birkaç parça bilgiye sahip olmanıza yardımcı olur.

  • Uygulama için özel etki alanı: Müşterilerin uygulamaya erişmek için kullanacağı özel etki alanı adı nedir? Örnek uygulama için özel etki alanı adı şeklindedir www.asabuludemo.com.
  • Traffic Manager etki alanı:Azure Traffic Manager profili oluştururken bir etki alanı adı seçin. Bu ad, Traffic Manager tarafından yönetilen bir etki alanı girişini kaydetmek için trafficmanager.net soneki ile birleştirilir. Örnek uygulama için seçilen ad scalable-ase-demo şeklindedir. Sonuç olarak Traffic Manager tarafından yönetilen tam etki alanı adı scalable-ase-demo.trafficmanager.net.
  • Uygulama ayak izini ölçeklendirme stratejisi: Uygulama ayak izi tek bir bölgedeki birden çok App Service Ortamına dağıtılacak mı? Birden çok bölge mi? Her iki yaklaşımın da karışımı ve eşleşmesi mi? Kararı, müşteri trafiğinin nereden kaynaklandığına ve bir uygulamanın destek arka uç altyapısının geri kalanının ne kadar iyi ölçeklendirilebileceğine ilişkin beklentilere dayandırın. Örneğin, %100 durum bilgisi olmayan bir uygulamayla bir uygulama, her Azure bölgesindeki birçok App Service Ortamı birleşimi kullanılarak büyük ölçüde ölçeklendirilebilir ve birçok Azure bölgesine dağıtılan App Service Ortamlarıyla çarpılabilir. Aralarından seçim yapabileceğiniz 15'ten fazla küresel Azure bölgesi sayesinde müşteriler gerçekten dünya çapında bir hiper ölçekli uygulama ayak izi oluşturabilir. Bu makalede kullanılan örnek uygulama için, tek bir Azure bölgesinde (Orta Güney ABD) üç App Service Ortamı oluşturuldu.
  • App Service Ortamları için adlandırma kuralı: Her App Service Ortamı benzersiz bir ad gerektirir. Bir veya iki App Service Ortamın ötesinde, her App Service Ortamı tanımlamaya yardımcı olacak bir adlandırma kuralına sahip olmak yararlı olur. Örnek uygulama için basit bir adlandırma kuralı kullanılmıştır. Üç App Service Ortamın adları fe1ase, fe2ase ve fe3ase'tir.
  • Uygulamalar için adlandırma kuralı: Uygulamanın birden çok örneği dağıtılacağından, dağıtılan uygulamanın her örneği için bir ad gerekir. App Service Ortamları'nın az bilinen ama kullanışlı özelliklerinden biri, aynı uygulama adının birden çok App Service Ortamı arasında kullanılabilmesidir. Her App Service Ortamı benzersiz bir etki alanı soneki olduğundan, geliştiriciler her ortamda tam olarak aynı uygulama adını yeniden kullanabilir. Örneğin, bir geliştiricinin şu şekilde adlandırılmış uygulamaları olabilir: myapp.foo1.p.azurewebsites.net, myapp.foo2.p.azurewebsites.net, myapp.foo3.p.azurewebsites.net vb. Ancak örnek uygulama için her uygulama örneğinin benzersiz bir adı vardır. Kullanılan uygulama örneği adları webfrontend1, webfrontend2 ve webfrontend3'tür.

Traffic Manager Profilini Ayarlama

Bir uygulamanın birden çok örneği birden çok App Service Ortamına dağıtıldıktan sonra tek tek uygulama örnekleri Traffic Manager'a kaydedilebilir. Örnek uygulama için, müşterileri aşağıdaki dağıtılan uygulama örneklerinden herhangi birine yönlendirebilen scalable-ase-demo.trafficmanager.net için bir Traffic Manager profili gerekir:

  • webfrontend1.fe1ase.p.azurewebsites.net: İlk App Service Ortamı dağıtılan örnek uygulamanın bir örneği.
  • webfrontend2.fe2ase.p.azurewebsites.net: İkinci App Service Ortamı dağıtılan örnek uygulamanın bir örneği.
  • webfrontend3.fe3ase.p.azurewebsites.net: Üçüncü App Service Ortamı dağıtılan örnek uygulamanın bir örneği.

Tümü aynı Azure bölgesinde çalışan birden çok Azure App Service uç noktasını kaydetmenin en kolay yolu PowerShell Azure Resource Manager Traffic Manager desteğidir.

İlk adım bir Azure Traffic Manager profili oluşturmaktır. Aşağıdaki kod, örnek uygulama için profilin nasıl oluşturulduğunu gösterir:

$profile = New-AzTrafficManagerProfile –Name scalableasedemo -ResourceGroupName yourRGNameHere -TrafficRoutingMethod Weighted -RelativeDnsName scalable-ase-demo -Ttl 30 -MonitorProtocol HTTP -MonitorPort 80 -MonitorPath "/"

RelativeDnsName parametresinin scalable-ase-demo olarak nasıl ayarlandığına dikkat edin. Bu parametre, etki alanı adının scalable-ase-demo.trafficmanager.net oluşturulmasına ve bir Traffic Manager profiliyle ilişkilendirilmesine neden olur.

TrafficRoutingMethod parametresi, Traffic Manager'ın müşteri yükünün tüm kullanılabilir uç noktalara nasıl yayılacağını belirlemek için kullanacağı yük dengeleme ilkesini tanımlar. Bu örnekte Ağırlıklı yöntemi seçilmişti. Bu seçenek nedeniyle, müşteri istekleri her uç noktayla ilişkili göreli ağırlıklara göre tüm kayıtlı uygulama uç noktalarına yayılır.

Profil oluşturulduktan sonra, her uygulama örneği profile yerel bir Azure uç noktası olarak eklenir. Aşağıdaki kod her ön uç web uygulamasına bir başvuru getirir. Ardından her uygulamayı TargetResourceId parametresi aracılığıyla Traffic Manager uç noktası olarak ekler.

$webapp1 = Get-AzWebApp -Name webfrontend1
Add-AzTrafficManagerEndpointConfig –EndpointName webfrontend1 –TrafficManagerProfile $profile –Type AzureEndpoints -TargetResourceId $webapp1.Id –EndpointStatus Enabled –Weight 10

$webapp2 = Get-AzWebApp -Name webfrontend2
Add-AzTrafficManagerEndpointConfig –EndpointName webfrontend2 –TrafficManagerProfile $profile –Type AzureEndpoints -TargetResourceId $webapp2.Id –EndpointStatus Enabled –Weight 10

$webapp3 = Get-AzWebApp -Name webfrontend3
Add-AzTrafficManagerEndpointConfig –EndpointName webfrontend3 –TrafficManagerProfile $profile –Type AzureEndpoints -TargetResourceId $webapp3.Id –EndpointStatus Enabled –Weight 10

Set-AzTrafficManagerProfile –TrafficManagerProfile $profile

Her bir uygulama örneği için Add-AzureTrafficManagerEndpointConfig çağrısının nasıl olduğuna dikkat edin. Her PowerShell komutundaki TargetResourceId parametresi, dağıtılan üç uygulama örneğinden birine başvurur. Traffic Manager profili, yükü profile kayıtlı üç uç noktaya da yayar.

Üç uç noktanın tümü Weight parametresi için aynı değeri (10) kullanır. Bu durum Traffic Manager'ın müşteri isteklerinin üç uygulama örneğine de nispeten eşit bir şekilde yayılmasına neden olur.

Uygulamanın Custom Domain Traffic Manager Etki Alanına yönlendirme

Gerekli son adım, uygulamanın özel etki alanını Traffic Manager etki alanına yönlendirmektir. Örnek uygulama için öğesinin üzerine scalable-ase-demo.trafficmanager.netgelinwww.asabuludemo.com. Bu adımı, özel etki alanını yöneten etki alanı kayıt şirketiyle tamamlayın.

Kayıt şirketinizin etki alanı yönetim araçlarını kullanarak, Traffic Manager etki alanındaki özel etki alanını işaret eden bir CNAME kaydı oluşturulması gerekir. Aşağıdaki resimde bu CNAME yapılandırmasının nasıl göründüğüne ilişkin bir örnek gösterilmektedir:

DNS'de CNAME kaydını yapılandırma işleminin ekran görüntüsü.

Bu konuda ele alınmasa da, her bir uygulama örneğinde de özel etki alanının kayıtlı olması gerektiğini unutmayın. Aksi takdirde, bir istek bir uygulama örneğine yaparsa ve uygulama özel etki alanını uygulamaya kaydettirmezse istek başarısız olur.

Bu örnekte, özel etki alanı şeklindedir www.asabuludemo.comve her uygulama örneğinde kendisiyle ilişkilendirilmiş özel etki alanı vardır.

App Service özel etki alanı ayarının ekran görüntüsü.

Özel etki alanını Azure App Service uygulamalara kaydetmenin özeti için bkz. özel etki alanlarını kaydetme.

Dağıtılmış Topolojiyi Deneme

Traffic Manager ve DNS yapılandırmasının sonucu, isteklerin www.asabuludemo.com aşağıdaki sırayla akmasıdır:

  1. Bir tarayıcı veya cihaz için DNS araması yapar www.asabuludemo.com
  2. Etki alanı kayıt şirketindeki CNAME girişi, DNS aramasının Azure Traffic Manager'a yeniden yönlendirilmesine neden olur.
  3. Azure Traffic Manager DNS sunucularından birinde scalable-ase-demo.trafficmanager.net için DNS araması yapılır.
  4. TrafficRoutingMethod parametresinde daha önce belirtilen yük dengeleme ilkesine bağlı olarak, Traffic Manager yapılandırılan uç noktalardan birini seçer. Ardından bu uç noktanın FQDN'sini tarayıcıya veya cihaza döndürür.
  5. Uç noktanın FQDN'si bir App Service Ortamı üzerinde çalışan bir uygulama örneğinin Url'si olduğundan, tarayıcı veya cihaz bir Microsoft Azure DNS sunucusundan FQDN'yi bir IP adresine çözümlemesini ister.
  6. Tarayıcı veya cihaz, HTTP/S isteğini IP adresine gönderir.
  7. İstek, App Service Ortamlarından birinde çalışan uygulama örneklerinden birine ulaşır.

Aşağıdaki konsol resmi, örnek uygulamanın özel etki alanı için bir DNS araması gösterir. Üç örnek App Service Ortamlarından birinde (bu örnekte, üç App Service Ortamın ikincisinde) çalışan bir uygulama örneğine başarıyla çözümür:

DNS arama sonucunun ekran görüntüsü.

PowerShell Azure Resource Manager Traffic Manager desteğiyle ilgili belgeler.

Not

Azure hesabı için kaydolmadan önce Azure App Service’i kullanmaya başlamak isterseniz, App Service’de hemen kısa süreli bir başlangıç web uygulaması oluşturabileceğiniz App Service’i Deneyin sayfasına gidin. Kredi kartı ve taahhüt gerekmez.