Azure Uygulaması Hizmeti için en iyi yöntemler
Bu makalede, Azure Uygulaması Hizmetini kullanmaya yönelik en iyi yöntemler özetlemektedir.
Birlikte konumlandırma
Azure Uygulaması Hizmeti çözümü, bir web uygulaması ve içerik veya veri tutmak için bir veritabanı veya depolama hesabından oluşur. Bu kaynaklar farklı bölgelerde olduğunda, durumun aşağıdaki etkileri olabilir:
- Kaynaklar arasındaki iletişimde artan gecikme süresi
- Azure fiyatlandırma sayfasında belirtildiği gibi bölgeler arasında giden veri aktarımı için parasal ücretler
Birlikte bulundurma, çözüm oluşturan Azure kaynakları için en iyisidir. Kaynakları oluştururken, belirli iş veya tasarım nedenleriniz olmadığı sürece bunların aynı Azure bölgesinde olduğundan emin olun. Premium App Service planlarında bulunan App Service kopyalama özelliğini kullanarak bir App Service uygulamasını veritabanınızla aynı bölgeye taşıyabilirsiniz.
Sertifika sabitleme
Sertifika sabitleme, bir uygulamanın yalnızca belirli bir kabul edilebilir sertifika yetkilileri (CA), ortak anahtarlar, parmak izleri veya sertifika hiyerarşisinin herhangi bir bölümüne izin verdiği bir uygulamadır.
Uygulamaların hiçbir zaman sabit bağımlılığı olmamalıdır veya varsayılan joker karakter (*.azurewebsites.net
) TLS sertifikasına sabitlenmemelidir. App Service bir hizmet olarak platformdur (PaaS), bu nedenle bu sertifika istediğiniz zaman döndürülebilir. Hizmet varsayılan joker KARAKTER TLS sertifikasını döndürürse, sertifika sabitlenmiş uygulamalar belirli bir sertifika öznitelikleri kümesine sabit kodlanmış uygulamalar için bağlantıyı kesintiye uğratır ve kesintiye uğratır. Döndürme sıklığı herhangi bir zamanda değişebileceğinden sertifikanın döndürüleceği dönemsellik de garanti değildir.
Sertifika sabitlemeyi kullanan uygulamaların da App Service tarafından yönetilen bir sertifikaya sabit bağımlılığı olmamalıdır. App Service tarafından yönetilen sertifikalar her zaman döndürülebilir ve kararlı sertifika özelliklerine dayanan uygulamalar için benzer sorunlara yol açabilir. Sertifika sabitlemeyi kullanan uygulamalar için özel bir TLS sertifikası sağlamak en iyi yöntemdir.
Uygulamanızın sertifika sabitleme davranışına güvenmesi gerekiyorsa, web uygulamasına özel bir etki alanı eklemenizi ve etki alanı için özel bir TLS sertifikası sağlamanızı öneririz. Uygulama daha sonra sertifika sabitleme için özel TLS sertifikasını kullanabilir.
Bellek kaynakları
İzleme veya hizmet önerileri bir uygulamanın beklediğinizden daha fazla bellek tükettiğine işaret ederken App Service otomatik düzeltme özelliğini göz önünde bulundurun. Otomatik düzeltmeyi web.config kullanarak yapılandırabilirsiniz.
Otomatik düzeltme özelliği için seçeneklerden biri, bellek eşiğine göre özel eylemler gerçekleştirmedir. Eylemler, e-posta bildirimlerinden bellek dökümü aracılığıyla araştırmaya, çalışan işlemini geri dönüştürerek yerinde azaltmaya kadar değişir.
CPU kaynakları
İzleme veya hizmet önerileri bir uygulamanın beklediğinizden daha fazla CPU tükettiğine veya yinelenen CPU artışları yaşadığına işaret ettiğinde, App Service planının ölçeğini artırmayı veya ölçeği genişletmeyi göz önünde bulundurun. Uygulamanız durum bilgisi varsa, tek seçenek ölçeği artırmaktır. Uygulamanız durum bilgisi yoksa ölçeği genişletmek size daha fazla esneklik ve daha yüksek ölçek potansiyeli sağlar.
App Service ölçeklendirme ve otomatik ölçeklendirme seçenekleri hakkında daha fazla bilgi için bkz. Azure Uygulaması Service'te bir uygulamanın ölçeğini artırma.
Yuva kaynakları
Giden TCP bağlantılarının tükenmesinin yaygın nedenlerinden biri, TCP bağlantılarını yeniden kullanmayan veya HTTP etkin tutma gibi daha üst düzey bir protokol kullanmayan istemci kitaplıklarının kullanılmasıdır.
App Service planınızdaki uygulamaların başvurduğunu her kitaplığın belgelerini gözden geçirin. Giden bağlantıların verimli bir şekilde yeniden kullanılması için kodunuzda kitaplıkların yapılandırıldığından veya erişildiğinden emin olun. Ayrıca, bağlantıların sızmasını önlemek için doğru oluşturma ve serbest bırakma veya temizleme için kitaplık belgeleri kılavuzunu izleyin. İstemci kitaplıklarıyla ilgili bu tür araştırmalar devam ederken, ölçeği birden çok örneğe genişleterek etkiyi azaltabilirsiniz.
Node.js ve giden HTTP istekleri
Node.js ve birçok giden HTTP isteğiyle çalışırken HTTP etkin tutma ile ilgilenmek önemlidir. Kodunuzda daha kolay hale getirmek için agentkeepalive npm
paketini kullanabilirsiniz.
İşleyicide http
hiçbir şey yapmasanız bile yanıtı her zaman işleyebilirsiniz. Yanıtı düzgün bir şekilde işlemezseniz, artık kullanılabilir yuva kalmadığından uygulamanız sonunda takılır.
veya https
paketiyle çalışırken yanıtı işleme örneği aşağıda verilmiştihttp
:
const request = https.request(options, function(response) {
response.on('data', function() { /* do nothing */ });
});
App Service uygulamanızı birden çok çekirdeğe sahip bir Linux makinesinde çalıştırıyorsanız, pm2'yi kullanarak uygulamanızı çalıştırmak için birden çok Node.js işlemi başlatmaktır. Kapsayıcınıza bir başlangıç komutu belirterek bunu yapabilirsiniz.
Örneğin, dört örneği başlatmak için şu komutu kullanın:
pm2 start /home/site/wwwroot/app.js --no-daemon -i 4
Uygulama yedekleme
Yedeklemeler genellikle bir zamanlamaya göre çalışır ve depolamaya (yedeklenen dosyaların çıkışı için) ve veritabanlarına (yedeklemeye eklenecek kopyalama ve okuma içeriği için) erişim gerektirir. Bu kaynaklardan herhangi birinin erişememesinin sonucu, tutarlı yedekleme hatasıdır.
Uygulama yedeklemesinin başarısız olmasının en yaygın iki nedeni, geçersiz depolama ayarları ve geçersiz veritabanı yapılandırmasıdır. Bu hatalar genellikle depolama veya veritabanı kaynaklarında yapılan değişikliklerden veya bu kaynaklara erişmek için kimlik bilgilerindeki değişikliklerden sonra oluşur. Örneğin, yedekleme ayarlarında seçtiğiniz veritabanı için kimlik bilgileri güncelleştirilebilir.
Yedekleme hataları gerçekleştiğinde, hangi tür hatanın gerçekleştiğini anlamak için en son sonuçları gözden geçirin. Depolama erişimi hataları için yedekleme yapılandırmanızdaki depolama ayarlarını gözden geçirin ve güncelleştirin. Veritabanı erişim hataları için uygulama ayarlarının bir parçası olarak bağlantı dizesi gözden geçirin ve güncelleştirin. Ardından yedekleme yapılandırmanızı gerekli veritabanlarını düzgün bir şekilde içerecek şekilde güncelleştirmeye devam edin.
Uygulama yedeklemeleri hakkında daha fazla bilgi için bkz. Azure Uygulaması Hizmetinde uygulamanızı yedekleme ve geri yükleme.
Node.js uygulamaları
Node.js uygulamaları için Azure Uygulaması Hizmeti varsayılan yapılandırması, en yaygın uygulamaların gereksinimlerine en uygun şekilde tasarlanmıştır. performansı artırmak veya CPU, bellek veya ağ kaynakları için kaynak kullanımını iyileştirmek üzere Node.js uygulamanızın varsayılan yapılandırmasını kişiselleştirmek istiyorsanız bkz. Azure Uygulaması Hizmetindeki Düğüm uygulamaları için en iyi yöntemler ve sorun giderme kılavuzu. Bu makalede, Node.js uygulamanız için yapılandırmanız gerekebilecek iisnode ayarları açıklanmaktadır. Ayrıca uygulamanızla ilgili senaryoları veya sorunları nasıl giderebilirsiniz?
IoT cihazları
App Service'e bağlı Nesnelerin İnterneti (IoT) cihazlarını çalıştırırken ortamınızı geliştirebilirsiniz.
IoT cihazlarıyla ilgili yaygın uygulamalardan biri sertifika sabitlemedir. Hizmetin yönetilen sertifikalarındaki değişiklikler nedeniyle beklenmeyen kapalı kalma sürelerini önlemek için, sertifikaları hiçbir zaman varsayılan *.azurewebsites.net
sertifikaya veya App Service tarafından yönetilen bir sertifikaya sabitlememelisiniz. Sisteminizin sertifika sabitleme davranışına güvenmesi gerekiyorsa, web uygulamasına özel bir etki alanı eklemenizi ve etki alanı için özel bir TLS sertifikası sağlamanızı öneririz. Uygulama daha sonra sertifika sabitleme için özel TLS sertifikasını kullanabilir. Daha fazla bilgi için bu makalenin sertifika sabitleme bölümüne bakın.
Ortamınızda dayanıklılığı artırmak için tüm cihazlarınız için tek bir uç noktaya güvenmeyin. Tek bir hata noktasını önlemek ve trafik yükünü devretmeye hazır olmak için web uygulamalarınızı en az iki bölgede barındırın.
App Service'te, bu web uygulamaları farklı bölgelerde barındırılıyorsa, aynı özel etki alanlarını birden çok web uygulamasına ekleyebilirsiniz. Bu özellik, sertifikaları sabitlemeniz gerekirse, sağladığınız özel TLS sertifikasına da sabitleyebileceğinizi güvence altına alır.
Diğer bir seçenek de web uygulamalarınızda yüksek kullanılabilirlik sağlamak için Azure Front Door veya Azure Traffic Manager gibi web uygulamalarının önünde yük dengeleyici kullanmaktır. Daha fazla bilgi için bkz. Hızlı Başlangıç: Yüksek oranda kullanılabilir bir genel web uygulaması için Front Door örneği oluşturma veya Azure Traffic Manager ile Azure Uygulaması Hizmeti trafiğini denetleme.
Sonraki adımlar
Kaynağınıza özgü eyleme dönüştürülebilir en iyi yöntemleri almak için App Service tanılamasını kullanın:
- Azure portalında web uygulamanıza gidin.
- Sol bölmedeki Sorunları tanıla ve çöz'e tıklayarak App Service tanılamasını açın.
- En İyi Yöntemler kutucuğunu seçin.
- Bu en iyi yöntemlerle ilgili olarak uygulamanızın geçerli durumunu görüntülemek için Kullanılabilirlik ve Performans için En İyi Yöntemler veya En İyi Yapılandırma için En İyi Yöntemler'i seçin.
Kaynağınız için App Service tanılamalarını doğrudan açmak için de bu bağlantıyı kullanabilirsiniz: https://portal.azure.com/?websitesextension_ext=asd.featurePath%3Ddetectors%2FParentAvailabilityAndPerformance#@microsoft.onmicrosoft.com/resource/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/troubleshoot
.