Azure Uygulaması Hizmetinde Güvenilirlik
Bu makalede, hem kullanılabilirlik alanlarıyla bölgesel dayanıklılık hem de çok bölgeli dağıtımlarla ilgili bilgileri kapsayan Azure Uygulaması Hizmeti'nde güvenilirlik desteği açıklanmaktadır.
Dayanıklılık, siz ve Microsoft arasında paylaşılan bir sorumluluk olduğundan, makalede gereksinimlerinizi karşılayan dayanıklı bir çözüm oluşturmanın yolları da yer alır.
Azure Uygulaması Hizmeti web uygulamalarını, REST API'leri ve mobil arka uçları barındırmaya yönelik HTTP tabanlı bir hizmettir. Azure Uygulaması Hizmeti, güvenlik, yük dengeleme, otomatik ölçeklendirme ve otomatik yönetim özellikleriyle Microsoft Azure'ın gücünü uygulamanıza ekler. Azure Uygulaması Hizmetinin uygulama iş yükünüzün güvenilirliğini ve dayanıklılığını nasıl artırabileceğini keşfetmek için bkz. App Service neden kullanılır?
Azure Uygulaması Hizmeti dağıttığınızda, uygulama kodunuzu çalıştıran işlem çalışanlarını temsil eden bir App Service planının birden çok örneğini oluşturabilirsiniz. Platform örnekleri farklı hata etki alanlarına dağıtmak için çaba gösterse de, örnekleri otomatik olarak kullanılabilirlik alanlarına yaymaz.
Üretim dağıtımı önerileri
Üretim dağıtımları için şunları yapmalısınız:
- Premium v3 App Service planlarını kullanın.
- App Service planınızın en az üç örnek kullanmasını gerektiren alanlar arası yedekliliği etkinleştirin.
Geçici hatalar
Geçici hatalar, bileşenlerde kısa ve aralıklı hatalardır. Bunlar genellikle bulut gibi dağıtılmış bir ortamda gerçekleşir ve işlemlerin normal bir parçasıdır. Kısa bir süre sonra kendilerini düzeltiyorlar. Uygulamalarınızın genellikle etkilenen istekleri yeniden deneyerek geçici hataları işlemesi önemlidir.
Bulutta barındırılan tüm uygulamalar, bulutta barındırılan API'ler, veritabanları ve diğer bileşenlerle iletişim kurarken Azure'ın geçici hata işleme yönergelerini izlemelidir. Geçici hataları işleme hakkında daha fazla bilgi edinmek için bkz . Geçici hataları teslim etme önerileri.
Microsoft tarafından sağlanan SDK'lar genellikle geçici hataları işlese de, kendi uygulamalarınızı Azure Uygulaması Hizmetinde barındırdığınızdan, aşağıdakilerden emin olarak geçici hatalara neden olmaktan nasıl kaçınabileceğinizi düşünmeniz gerekir:
Planınızın birden çok örneğini dağıtın. Azure Uygulaması Hizmeti, planınızın örneklerinde otomatik güncelleştirmeler ve diğer bakım biçimlerini gerçekleştirir. Bir örnek iyi durumda değilse, hizmet bu örneği otomatik olarak yeni bir iyi durumdaki örnekle değiştirebilir. Değiştirme işlemi sırasında, önceki örneğin kullanılamadığı ve yeni bir örneğin henüz trafiğe hizmet vermek için hazır olmadığı kısa bir süre olabilir. App Service planınızın birden çok örneğini dağıtarak bu davranışın etkisini azaltabilirsiniz.
Dağıtım yuvalarını kullanın. Azure Uygulaması Hizmet dağıtım yuvaları, uygulamalarınızın sıfır kapalı kalma süresi dağıtımlarına olanak tanır. Dağıtımların ve yapılandırma değişikliklerinin kullanıcılarınız üzerindeki etkisini en aza indirmek için dağıtım yuvalarını kullanın. Dağıtım yuvalarını kullanmak, uygulamanızın yeniden başlatılması olasılığını da azaltır ve bu da geçici bir hataya neden olur.
Ölçeği artırmaktan veya küçültmekten kaçının. Bunun yerine, tipik yük altında performans gereksinimlerinizi karşılayan bir katman ve örnek boyutu seçin. Yalnızca trafik hacmindeki değişiklikleri işlemek için örneklerin ölçeğini genişletme. Ölçeği artırmanın ve azaltmanın uygulamanın yeniden başlatılmasını tetikleyebileceğini göz önünde bulundurun.
Kullanılabilirlik alanı desteği
Azure Uygulaması Hizmeti alanlar arası yedekli olarak yapılandırılabilir; bu da kaynaklarınızın birden çok kullanılabilirlik alanına yayıldığı anlamına gelir. Birden çok bölgeye yaymak, üretim iş yüklerinizin dayanıklılık ve güvenilirlik elde etmelerine yardımcı olur. Kullanılabilirlik alanı desteği, App Service planının bir özelliğidir.
Alanlar arası yedekli dağıtımla yayılan örnek, uygulama ölçeği daraltılıp genişletilirken bile aşağıdaki kuralların içinde belirlenir:
- En düşük App Service planı örneği sayısı üç'tür.
- Üçten büyük bir kapasite belirtirseniz ve örnek sayısı üçe bölünebiliyorsa, örnekler eşit olarak yayılır.
- 3*N'nin ötesindeki tüm örnek sayıları kalan bir veya iki bölgeye yayılır.
App Service platformu alanlar arası yedekli bir App Service planı için örnekler ayırdığında, temel alınan Azure sanal makine ölçek kümeleri tarafından sunulan en iyi çalışma alanı dengelemesini kullanır. App Service planı tarafından kullanılan diğer tüm bölgelerde her bölge aynı sayıda VM'ye veya +/- bir VM'ye sahipse bir App Service planı "dengelidir".
Alanlar arası yedekli olarak yapılandırılmamış App Service planları için VM örnekleri kullanılabilirlik alanı hatalarına dayanıklı değildir. Bu kişiler, bu bölgedeki herhangi bir bölgede kesinti sırasında kapalı kalma süresiyle karşılaşabilir.
Gereksinimler
- Premium v2 veya Premium v3 plan türlerini kullanmanız gerekir.
- Kullanılabilirlik alanları yalnızca yeni App Service ayak izinde desteklenir. Desteklenen bölgelerden birini kullanıyor olsanız bile, kaynak grubunuz için kullanılabilirlik alanları desteklenmiyorsa bir hata alırsınız. İş yüklerinizin kullanılabilirlik alanlarını destekleyen bir damgaya sahip olduğundan emin olmak için yeni bir kaynak grubu, App Service planı ve App Service oluşturmanız gerekebilir.
- Planınızın en az üç örneğini dağıtmanız gerekir.
Desteklenen bölgeler
Alanlar arası yedekli App Service planları kullanılabilirlik alanlarını destekleyen herhangi bir bölgeye dağıtılabilir.
App Service Ortamı v3 için hangi bölgelerin kullanılabilirlik alanlarını desteklediğini görmek için bkz. Bölgeler.
Dikkat edilmesi gereken noktalar
Alanlar arası yedekli App Service planında dağıtılan uygulamalar, bölgedeki birden çok bölgede kesinti yaşansa bile çalışmaya ve trafiğe hizmet etmeye devam eder. Ancak App Service planı ölçeklendirme, uygulama oluşturma, uygulama yapılandırması ve uygulama yayımlama gibi çalışma zamanı olmayan davranışlar kullanılabilirlik alanı kesintisi sırasında da etkilenebilir. App Service planları için alanlar arası yedeklilik yalnızca dağıtılan uygulamalar için sürekli çalışma süresi sağlar.
Maliyet
App Service Premium v2 veya Premium v3 planlarını kullanırken, App Service planınızda üç veya daha fazla örneğiniz olduğu sürece kullanılabilirlik alanlarını etkinleştirmenin ek bir maliyeti yoktur. App Service planı SKU'nuza, belirttiğiniz kapasiteye ve otomatik ölçeklendirme ölçütlerinize göre ölçeklendirildiğiniz tüm örneklere göre ücretlendirilirsiniz. Kullanılabilirlik alanlarını etkinleştirir ancak üçten küçük bir kapasite belirtirseniz platform en az üç örnek sayısını zorlar ve bu üç örnek için sizden ücret alır.
App Service Ortamı v3, alanlar arası yedeklilik için belirli bir fiyatlandırma modeline sahiptir. App Service Ortamı v3 fiyatlandırma bilgileri için bkz. Fiyatlandırma.
Kullanılabilirlik alanı desteğini yapılandırma
Alanlar arası yedekliliği kullanmak için desteklenen bir App Service plan türüne geçin.
Yeni bir alanlar arası yedekli Azure Uygulaması Hizmet planı dağıtmak için, planı dağıtırken Alanlar arası yedekli seçeneğini belirleyin.
Alanlar arası yedekli yeni bir Azure Uygulaması Hizmet Ortamı dağıtmak için bkz. App Service Ortamı oluşturma.
Alanlar arası yedeklilik yalnızca yeni bir App Service planı oluşturulurken yapılandırılabilir. Alanlar arası yedekli olmayan mevcut bir App Service planınız varsa, bunu yeni bir alanlar arası yedekli planla değiştirmeniz gerekir. Mevcut bir App Service planını kullanılabilirlik alanlarını kullanacak şekilde dönüştüremezsiniz. Benzer şekilde, mevcut bir App Service planında bölge yedekliliğini devre dışı bırakamazsınız.
Kapasite planlaması ve yönetimi
Kullanılabilirlik alanı hatasına hazırlanmak için, çözümün 1/3 kapasite kaybına dayanadığından ve bölge genelinde kesintiler sırasında performansı düşürmeden çalışmaya devam ettiğinden emin olmak için fazla hizmet kapasitesi sağlamanız gerekir. Platform VM'leri üç bölgeye yaydığından ve en az bir bölgenin hatasını hesaba katmak gerektiğinden, en yüksek iş yükü örneği sayısını bir faktörle çarpın/(zones-1) veya 3/2. Örneğin, tipik tepe iş yükünüz dört örnek gerektiriyorsa altı örnek sağlamalısınız: (2/3 * 6 örnek) = 4 örnek.
Bölgeler arasında trafik yönlendirme
Normal işlemler sırasında, tüm kullanılabilirlik alanlarındaki kullanılabilir App Service planı örnekleriniz arasında trafik yönlendirilir.
Bölge azaltma deneyimi
Algılama ve yanıt: App Service platformu, kullanılabilirlik alanındaki bir hatayı algılamaktan ve yanıtlamaktan sorumludur. Bölge yük devretmesi başlatmak için herhangi bir işlem yapmanız gerekmez.
Etkin istekler: Kullanılabilirlik alanı kullanılamadığında, hatalı kullanılabilirlik alanındaki bir App Service planı örneğine bağlı devam eden tüm istekler sonlandırılır ve yeniden denenmeleri gerekir.
Trafik yeniden yönlendirme: Bir bölge kullanılamadığında, Azure Uygulaması Hizmeti o bölgeden kayıp örnekleri algılar. Yeni değişim örneklerini otomatik olarak bulmaya çalışır. Ardından, gerektiğinde trafiği yeni örneklere yayar.
Otomatik ölçeklendirmeyi yapılandırdıysanız ve daha fazla örneğin gerekli olmasına karar verirse, otomatik ölçeklendirme app service'e daha fazla örnek ekleme isteği de verir.
Not
Otomatik ölçeklendirme davranışı, App Service platform davranışından bağımsızdır. Otomatik ölçeklendirme örneği sayısı belirtiminizin üç katı olması gerekmez.
Önemli
Bölge aşağı senaryosunda ek örneklere yönelik isteklerin başarılı olması garanti edilmez. Kayıp örneklerin geri doldurulması en iyi çaba temelinde gerçekleşir. Kullanılabilirlik alanı kaybolduğunda garantili kapasiteye ihtiyacınız varsa, App Service planlarınızı bir bölgeyi kaybetmeyi hesaba eklemek üzere oluşturup yapılandırmanız gerekir. App Service planınızın kapasitesini fazla sağlayarak bunu yapabilirsiniz.
Yeniden çalışma
Kullanılabilirlik alanı kurtarıldığında, Azure Uygulaması Hizmeti kurtarılan kullanılabilirlik alanında otomatik olarak örnekler oluşturur, diğer kullanılabilirlik alanlarında oluşturulan geçici örnekleri kaldırır ve örnekleriniz arasındaki trafiği normal şekilde yönlendirir.
Bölge hataları için test etme
Azure Uygulaması Hizmet platformu, alanlar arası yedekli App Service planları için trafik yönlendirme, yük devretme ve yeniden çalışma işlemleri yönetir. Bu özellik tam olarak yönetildiği için kullanılabilirlik alanı hata işlemlerini başlatmanız veya doğrulamanız gerekmez.
Çok bölgeli destek
Azure Uygulaması Hizmeti tek bölgeli bir hizmettir. Bölge kullanılamaz duruma gelirse uygulamanız da kullanılamaz.
Alternatif çok bölgeli çözümler
Uygulamanızın tek bölgeli bir hataya karşı daha az duyarlı hale geldiğinden emin olmak için uygulamanızı birden çok bölgeye dağıtmanız gerekir. Bunu yapmak için şunları yapmanız gerekir:
- Uygulamanızı her bölgedeki örneklere dağıtın.
- Yük dengeleme ve yük devretme ilkelerini yapılandırın.
- Son uygulama durumunuzu kurtarabilmeniz için verilerinizi bölgeler arasında çoğaltın.
Bu yaklaşımı gösteren mimariler için bkz:
- Başvuru mimarisi: Yüksek oranda kullanılabilir çok bölgeli web uygulaması.
- Olağanüstü durum kurtarma için çok bölgeli App Service uygulamaları
Çok bölgeli uygulama oluşturan bir öğreticiyi takip etmek için bkz. Öğretici: Azure Uygulaması Hizmetinde yüksek oranda kullanılabilir çok bölgeli uygulama oluşturma.
Bu mimariyi gösteren örnek bir yaklaşım için bkz. App Service Ortamı kullanarak yüksek kullanılabilirlik kurumsal dağıtımı.
Yedekler
Temel katman veya üzerini kullandığınızda, App Service yedekleme ve geri yükleme özelliklerini kullanarak App Service uygulamanızı bir dosyaya yedekleyebilirsiniz. Kodunuzu yeniden dağıtmak zorsa veya durumu diskte depolarsanız bu özellik kullanışlıdır. Ancak çoğu çözüm için App Service yedeklemelerine güvenmemeniz ve bunun yerine dayanıklılık gereksinimlerinizi desteklemek için bu makalede açıklanan diğer yöntemleri kullanmanız gerekir.
Hizmet düzeyi sözleşmesi (SLA)
Azure Uygulaması Hizmeti için hizmet düzeyi sözleşmesi (SLA), hizmetin beklenen kullanılabilirliğini açıklar. Ayrıca bu kullanılabilirlik beklentisine ulaşmak için karşılanması gereken koşulları da açıklar. Bu koşulları anlamak için, Çevrimiçi Hizmetler için Hizmet Düzeyi Sözleşmelerini (SLA) gözden geçirmeniz önemlidir.
Alanlar arası yedekli bir App Service planı dağıttığınızda, SLA'da tanımlanan çalışma süresi yüzdesi artar.