Osvědčené postupy pro službu Aplikace Azure

Tento článek shrnuje osvědčené postupy pro používání služby Aplikace Azure Service.

Společné umístění blízko k sobě

Řešení služby Aplikace Azure se skládá z webové aplikace a databáze nebo účtu úložiště pro uchovávání obsahu nebo dat. Pokud jsou tyto prostředky v různých oblastech, může mít situace následující účinky:

  • Zvýšená latence komunikace mezi prostředky
  • Peněžní poplatky za odchozí přenos dat mezi oblastmi, jak je uvedeno na stránce s cenami Azure

Colocation je nejvhodnější pro prostředky Azure, které tvoří řešení. Když vytváříte prostředky, ujistěte se, že jsou ve stejné oblasti Azure, pokud nemáte konkrétní obchodní nebo návrhové důvody, proč ne. Aplikaci služby App Service můžete přesunout do stejné oblasti jako databázi pomocí funkce klonování služby App Service, která je dostupná v plánech služby App Service Premium.

Připnutí certifikátu

Připnutí certifikátu je postup, ve kterém aplikace umožňuje pouze určitý seznam přijatelných certifikačních autorit (CA), veřejných klíčů, kryptografických otisků nebo jakékoli části hierarchie certifikátů.

Aplikace by nikdy neměly mít pevnou závislost nebo připnout na výchozí certifikát TLS se zástupným znakem (*.azurewebsites.net). App Service je platforma jako služba (PaaS), takže tento certifikát je možné kdykoliv obměňovat. Pokud služba otočí výchozí certifikát TLS se zástupným znakem, aplikace připnuté certifikáty přeruší připojení aplikací, které jsou pevně zakódované na konkrétní sadu atributů certifikátu. Periodičnost, se kterou se certifikát obměňuje, také není zaručená, protože frekvence otáčení se může kdykoli změnit.

Aplikace, které spoléhají na připnutí certifikátu, by také neměly mít pevnou závislost na spravovaném certifikátu služby App Service. Spravované certifikáty služby App Service je možné kdykoli otočit, což vede k podobným problémům u aplikací, které spoléhají na stabilní vlastnosti certifikátu. Osvědčeným postupem je poskytnout vlastní certifikát TLS pro aplikace, které spoléhají na připnutí certifikátu.

Pokud vaše aplikace potřebuje spoléhat na chování připnutí certifikátu, doporučujeme přidat do webové aplikace vlastní doménu a zadat vlastní certifikát TLS pro doménu. Aplikace pak může spoléhat na vlastní certifikát TLS pro připnutí certifikátu.

Prostředky paměti

Pokud doporučení monitorování nebo služby naznačují, že aplikace spotřebovává více paměti, než jste čekali, zvažte funkci automatického opravy služby App Service. Automatické opravy můžete nakonfigurovat pomocí web.config.

Jednou z možností funkce automatického opravy je provádění vlastních akcí na základě prahové hodnoty paměti. Akce se liší od e-mailových oznámení po šetření prostřednictvím výpisu paměti až po zmírnění rizika na místě recyklací pracovního procesu.

Prostředky procesoru

Pokud doporučení monitorování nebo služby naznačují, že aplikace spotřebovává více procesoru, než jste čekali, nebo dochází k opakovaným špičkám využití procesoru, zvažte vertikální navýšení kapacity nebo horizontální navýšení kapacity plánu služby App Service. Pokud je vaše aplikace stavová, vertikální navýšení kapacity je jedinou možností. Pokud je vaše aplikace bezstavová, horizontální navýšení kapacity vám dává větší flexibilitu a větší potenciál škálování.

Další informace o možnostech škálování a automatického škálování služby App Service najdete v tématu Vertikální navýšení kapacity aplikace ve službě Aplikace Azure Service.

Prostředky soketů

Běžným důvodem vyčerpání odchozích připojení TCP je použití klientských knihoven, které nepoužívají připojení TCP nebo nepoužívají protokol vyšší úrovně, například protokol HTTP keep-alive.

Projděte si dokumentaci ke každé knihovně, na kterou odkazují aplikace v plánu služby App Service. Ujistěte se, že jsou knihovny nakonfigurované nebo přístupné v kódu pro efektivní opakované použití odchozích připojení. Pokud chcete zabránit úniku připojení, postupujte také podle pokynů k dokumentaci ke knihovně pro správné vytvoření a uvolnění nebo vyčištění. I když probíhá šetření v klientských knihovnách, můžete zmírnit dopad horizontálním navýšením kapacity na více instancí.

Node.js a odchozí požadavky HTTP

Při práci s Node.js a mnoha odchozími požadavky HTTP je práce s udržováním protokolu HTTP důležitá. Balíček agentkeepalivenpm můžete použít k usnadnění v kódu.

Vždy zpracovat http odpověď, i když v obslužné rutině nic neděláte. Pokud odpověď nezpracujete správně, vaše aplikace se nakonec zasekne, protože nejsou k dispozici žádné další sokety.

Tady je příklad zpracování odpovědi při práci s balíčkem httphttps :

const request = https.request(options, function(response) {
    response.on('data', function() { /* do nothing */ });
});

Pokud aplikaci App Service spouštíte na počítači s Linuxem, který má více jader, dalším osvědčeným postupem je spustit několik procesů Node.js ke spuštění více procesů Node.js. Můžete to udělat zadáním spouštěcího příkazu do kontejneru.

Pomocí tohoto příkazu můžete například spustit čtyři instance:

pm2 start /home/site/wwwroot/app.js --no-daemon -i 4

Zálohování aplikací

Zálohy se obvykle spouštějí podle plánu a vyžadují přístup k úložišti (pro výstup zálohovaných souborů) a databází (pro kopírování a čtení obsahu, který se má zahrnout do zálohy). Výsledkem selhání přístupu k některému z těchto prostředků je konzistentní selhání zálohování.

Dvěma nejběžnějšími důvody selhání zálohování aplikací jsou neplatná nastavení úložiště a neplatná konfigurace databáze. K těmto selháním obvykle dochází po změnách prostředků úložiště nebo databáze nebo po změnách přihlašovacích údajů pro přístup k těmto prostředkům. Například přihlašovací údaje mohou být aktualizovány pro databázi, kterou jste vybrali v nastavení zálohování.

Pokud dojde k selhání zálohování, projděte si nejnovější výsledky a zjistěte, k jakému typu selhání dochází. V případě selhání přístupu k úložišti zkontrolujte a aktualizujte nastavení úložiště v konfiguraci zálohování. V případě selhání přístupu k databázi zkontrolujte a aktualizujte připojovací řetězec v rámci nastavení aplikace. Pak pokračujte aktualizací konfigurace zálohování tak, aby správně zahrnovala požadované databáze.

Další informace o zálohách aplikací najdete v tématu Zálohování a obnovení aplikace ve službě Aplikace Azure Service.

Aplikace Node.js

Výchozí konfigurace služby Aplikace Azure pro aplikace Node.js je určená tak, aby co nejlépe vyhovovala potřebám nejběžnějších aplikací. Pokud chcete přizpůsobit výchozí konfiguraci aplikace Node.js, abyste zlepšili výkon nebo optimalizovali využití prostředků pro procesor, paměť nebo síťové prostředky, přečtěte si osvědčené postupy a průvodce odstraňováním potíží pro aplikace Node ve službě Aplikace Azure Service. Tento článek popisuje nastavení modulu iisnode, které možná budete muset nakonfigurovat pro aplikaci Node.js. Vysvětluje také, jak řešit scénáře nebo problémy s vaší aplikací.

Zařízení IoT

Prostředí můžete vylepšit, když používáte zařízení IoT (Internet věcí), která jsou připojená ke službě App Service.

Jedním z běžných postupů u zařízení IoT je připnutí certifikátu. Abyste se vyhnuli nečekaným výpadkům kvůli změnám spravovaných certifikátů služby, nikdy byste neměli připínat certifikáty na výchozí *.azurewebsites.net certifikát ani na spravovaný certifikát služby App Service. Pokud váš systém potřebuje spoléhat na chování připnutí certifikátu, doporučujeme přidat do webové aplikace vlastní doménu a zadat vlastní certifikát TLS pro doménu. Aplikace pak může spoléhat na vlastní certifikát TLS pro připnutí certifikátu. Další informace najdete v části připnutí certifikátu tohoto článku.

Pokud chcete zvýšit odolnost prostředí, nespoléhejte na jediný koncový bod pro všechna vaše zařízení. Hostování webových aplikací alespoň ve dvou oblastech, abyste se vyhnuli jedinému bodu selhání, a buďte připraveni k převzetí služeb při selhání provozu.

Ve službě App Service můžete do více webových aplikací přidat stejné vlastní domény, pokud jsou tyto webové aplikace hostované v různých oblastech. Tato funkce zajišťuje, že pokud potřebujete připnout certifikáty, můžete také připnout vlastní certifikát TLS, který jste zadali.

Další možností je použít nástroj pro vyrovnávání zatížení před webovými aplikacemi, jako je Azure Front Door nebo Azure Traffic Manager, abyste zajistili vysokou dostupnost webových aplikací. Další informace najdete v tématu Rychlý start: Vytvoření instance služby Front Door pro vysoce dostupnou globální webovou aplikaci nebo řízení provozu služby Aplikace Azure pomocí Azure Traffic Manageru.

Další kroky

Pokud chcete získat užitečné osvědčené postupy specifické pro váš prostředek, použijte diagnostiku služby App Service:

  1. Přejděte na webovou aplikaci na webu Azure Portal.
  2. Otevřete diagnostiku služby App Service výběrem možnosti Diagnostika a řešení problémů v levém podokně.
  3. Vyberte dlaždici Osvědčené postupy .
  4. Vyberte osvědčené postupy pro dostupnost a výkon nebo osvědčené postupy pro optimální konfiguraci , abyste zobrazili aktuální stav vaší aplikace v souvislosti s těmito osvědčenými postupy.

Pomocí tohoto odkazu můžete také přímo otevřít diagnostiku služby App Service pro váš prostředek: https://portal.azure.com/?websitesextension_ext=asd.featurePath%3Ddetectors%2FParentAvailabilityAndPerformance#@microsoft.onmicrosoft.com/resource/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/troubleshoot.