Pracovní postup architektury klasického virtuálního počítače Microsoft Azure
Důležité
Od 1. září 2024 je služba Cloud Services (Classic) pro všechny zákazníky zastaralá. Microsoft zastaví a vypne všechna stávající spuštěná nasazení a data budou od října 2024 trvale ztracena. Nová nasazení by měla používat nový model nasazení založený na Azure Resource Manageru na Azure Cloud Services (rozšířená podpora).
Tento článek obsahuje přehled procesů pracovního postupu, ke kterým dochází při nasazení nebo aktualizaci prostředku Azure, jako je virtuální počítač.
Poznámka:
Azure má dva různé modely nasazení pro vytváření prostředků a práci s nimi: Resource Manager a klasický model. Tento článek se věnuje použití klasického modelu nasazení.
Následující diagram znázorňuje architekturu prostředků Azure.
Základy pracovních postupů
A. RDFE / FFE je komunikační cesta od uživatele k prostředkům infrastruktury. RDFE (RedDog Front End) je veřejně zveřejněné rozhraní API, které je front-endem portálu pro správu a rozhraní API klasického modelu nasazení, jako je Visual Studio, Azure MMC atd. Všechny žádosti od uživatele procházejí RDFE. FFE (Fabric Front End) je vrstva, která překládá požadavky z RDFE na příkazy prostředků infrastruktury. Všechny žádosti z RDFE procházejí FFE, aby se dostaly na kontrolery prostředků infrastruktury.
B. Kontroler prostředků infrastruktury zodpovídá za údržbu a monitorování všech prostředků v datovém centru. Komunikuje s agenty hostitele prostředků infrastruktury v operačním systému infrastruktury a odesílá informace, jako je verze hostovaného operačního systému, balíček služby, konfigurace služby a stav služby.
C. Agent hostitele žije v operačním systému hostitele a zodpovídá za nastavení hostovaného operačního systému. Zpracovává také komunikaci s agentem hosta (WindowsAzureGuestAgent) a aktualizuje roli směrem k zamýšlenému cílovému stavu a provádí kontroly prezenčního signálu s agentem hosta. Pokud hostitelský agent neobdrží odpověď prezenčních signálů po dobu 10 minut, agent hostitele restartuje hostovaný operační systém.
C2. WaAppAgent zodpovídá za instalaci, konfiguraci a aktualizaci WindowsAzureGuestAgent.exe.
D. WindowsAzureGuestAgent zodpovídá za následující úlohy:
- Konfigurace hostovaného operačního systému, včetně brány firewall, seznamů ACL, prostředků LocalStorage, balíčku služby a konfigurace a certifikátů.
- Nastavení identifikátoru SID pro uživatelský účet, pod kterým se role spouští.
- Komunikace stavu role s prostředky infrastruktury
- Spuštění nástroje WaHostBootstrapper a jeho monitorování, abyste měli jistotu, že je role ve stavu cíle.
E. WaHostBootstrapper zodpovídá za:
- Čtení konfigurace role a spuštění všech příslušných úloh a procesů pro konfiguraci a spuštění role.
- Monitorování všech podřízených procesů
- Vyvolání události StatusCheck v procesu hostitele role.
F Služba IISConfigurator se spustí, pokud je role nakonfigurovaná jako úplná webová role IIS. Zodpovídá za:
- Spuštění standardních služeb IIS
- Konfigurace modulu pro přepsání ve webové konfiguraci
- Nastavení Fondu aplikací pro nakonfigurovanou roli v modelu služby
- Nastavení protokolování služby IIS tak, aby odkazovat na složku LocalStorage diagnostického úložiště
- Konfigurace oprávnění a seznamů ACL
- Web se nachází v umístění %roleroot%:\sitesroot\0 a Fond aplikací odkazuje na toto umístění pro spuštění služby IIS.
G. Model role definuje spouštěcí úlohy a WaHostBootstrapper je spustí. Úlohy po spuštění je možné nakonfigurovat tak, aby běžely na pozadí asynchronně, a spouštěcí nástroj hostitele spustí spouštěcí úlohu a pak pokračuje k dalším úlohách po spuštění. Úlohy po spuštění je také možné nakonfigurovat tak, aby běžely v jednoduchém (výchozím) režimu. V jednoduchém režimu host bootstrapper čeká na dokončení spuštění úlohy spuštění a vrátí ukončovací kód úspěchu (0) před pokračováním na další spouštěcí úlohu.
H. Tyto úlohy jsou součástí sady SDK a jsou definovány jako moduly plug-in v definici služby role (.csdef). Při rozbalení úloh po spuštění jsou diagnosticsAgent a RemoteAccessAgent jedinečné v tom, že každá definuje dvě spouštěcí úlohy, jednu běžnou a druhou, která má parametr /blockStartup. Normální spouštěcí úloha je definována jako spouštěcí úloha na pozadí, aby ji bylo možné spustit na pozadí, zatímco samotná role běží. Spouštěcí úloha /blockStartup je definována jako jednoduchá spouštěcí úloha, aby WaHostBootstrapper čekala na ukončení, než bude pokračovat. Úloha /blockStartup čeká na dokončení inicializace běžné úlohy a pak ukončí a povolí spuštění hostitele pokračovat. Tento proces se provádí tak, aby bylo možné před spuštěním procesů role nakonfigurovat diagnostiku a přístup RDP, což se provádí prostřednictvím úlohy /blockStartup. Tento proces také umožňuje, aby diagnostika a přístup RDP pokračovaly po dokončení spouštěcích úloh hostitele, které se provádějí prostřednictvím normální úlohy.
Já. WaWorkerHost je standardní hostitelský proces pro normální role pracovního procesu. Tento hostitelský proces hostuje všechny knihovny DLL a kód vstupního bodu role, například OnStart a Run.
J. WaIISHost je proces hostitele pro kód vstupního bodu role pro webové role, které používají úplnou službu IIS. Tento proces načte první knihovnu DLL, která používá třídu RoleEntryPoint a spustí kód z této třídy (OnStart, Run, OnStop). Všechny Události RoleEnvironment (například StatusCheck a Changed), které jsou vytvořeny ve třídě RoleEntryPoint jsou vyvolány v tomto procesu.
K. W3WP je standardní pracovní proces služby IIS používaný v případě, že je role nakonfigurovaná tak, aby používala úplnou službu IIS. Tento proces spustí Fond aplikací nakonfigurovaný z nástroje IISConfigurator. Všechny události RoleEnvironment (například StatusCheck a Changed), které jsou zde vytvořeny, jsou vyvolány v tomto procesu. Události RoleEnvironment se aktivují v obou umístěních (WaIISHost a w3wp.exe), pokud se přihlásíte k odběru událostí v obou procesech.
Procesy pracovního postupu
- Uživatel vytvoří požadavek, například nahrání souborů .cspkg a .cscfg, aby prostředek zastavil nebo udělal změnu konfigurace atd. Požadavky je možné provádět prostřednictvím webu Azure Portal nebo nástrojů, které používají rozhraní API modelu nasazení Classic, jako je například funkce Publikovat v sadě Visual Studio. Tato žádost přejde do RDFE, aby udělala veškerou práci související s předplatným a pak žádost sdělí FFE. Zbývající kroky pracovního postupu slouží k nasazení nového balíčku a jeho spuštění.
- FFE najde správný fond počítačů (na základě vstupu zákazníka, jako je skupina vztahů nebo zeměpisné umístění plus vstup z prostředků infrastruktury, například dostupnost počítače) a komunikuje s hlavním kontrolerem prostředků infrastruktury v tomto fondu počítačů.
- Kontroler prostředků infrastruktury najde hostitele, který má dostupná jádra procesoru (nebo ho ztěžuje). Balíček služby a konfigurace se zkopírují do hostitele a kontroler prostředků infrastruktury komunikuje s hostitelským agentem v hostitelském operačním systému pro nasazení balíčku (konfigurace zprostředkovatelů dat, portů, hostovaného operačního systému atd.).
- Agent hostitele spustí hostovaný operační systém a komunikuje s agentem hosta (WindowsAzureGuestAgent). Hostitel odešle hostu prezenčních signálů, aby se ujistil, že role pracuje na svém cílovém stavu.
- WindowsAzureGuestAgent nastaví hostovaný operační systém (brána firewall, seznamy ACL, localStorage atd.), zkopíruje nový konfigurační soubor XML do složky c:\Config a pak spustí proces WaHostBootstrapper.
- V případě úplných webových rolí služby IIS spustí WaHostBootstrapper službu IISConfigurator a řekne mu, aby odstranil všechny existující fondy aplikací pro webovou roli ze služby IIS.
- WaHostBootstrapper přečte úlohy po spuštění z E:\RoleModel.xml a začne s prováděním spouštěcích úloh. WaHostBootstrapper čeká, dokud se nedokončí všechny jednoduché spouštěcí úlohy a nevrátí zprávu o úspěchu.
- V případě úplných webových rolí služby IIS waHostBootstrapper informuje službu IISConfigurator, aby nakonfigurovali Fond aplikací služby IIS a odkazovali na web
E:\Sitesroot\<index>
, kde<index>
je index založený na nule na počet prvků definovaných<Sites>
pro službu. - WaHostBootstrapper spustí proces hostitele v závislosti na typu role:
- Role pracovního procesu: WaWorkerHost.exe je spuštěna. WaHostBootstrapper spustí metodu OnStart(). Jakmile se vrátí, WaHostBootstrapper začne spouštět Metodu Run() a pak současně označí roli jako Připraveno a umístí ji do rotace nástroje pro vyrovnávání zatížení (pokud jsou definovány InputEndpoints). WaHostBootsrapper pak přejde do smyčky kontroly stavu role.
- Úplná webová role iis: aIISHost je spuštěna. WaHostBootstrapper spustí metodu OnStart(). Jakmile se vrátí, začne spouštět metodu Run() a pak současně označí roli jako připravenou a umístí ji do rotace nástroje pro vyrovnávání zatížení. WaHostBootsrapper pak přejde do smyčky kontroly stavu role.
- Příchozí webové požadavky na úplnou webovou roli IIS aktivují službu IIS, aby spustila proces W3WP a zobrazila požadavek, stejně jako v místním prostředí SLUŽBY IIS.
Umístění souborů protokolu
WindowsAzureGuestAgent
- C:\Logs\AppAgentRuntime.Log.
Tento protokol obsahuje změny služby, včetně spuštění, zastavení a nových konfigurací. Pokud se služba nezmění, můžete očekávat, že v tomto souboru protokolu uvidíte velké mezery času. - C:\Logs\WaAppAgent.Log.
Tento protokol obsahuje aktualizace stavu a oznámení prezenčních signálů a aktualizuje se každých 2 až 3 sekundy. Tento protokol obsahuje historické zobrazení stavu instance a informuje vás, kdy instance nebyla ve stavu Připraveno.
WaHostBootstrapper
C:\Resources\Directory\<deploymentID>.<role>.DiagnosticStore\WaHostBootstrapper.log
WaIISHost
C:\Resources\Directory\<deploymentID>.<role>\WaIISHost.log
IisConfigurator
C:\Resources\Directory\<deploymentID>.<role>\IISConfigurator.log
Protokoly IIS
C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1
Protokoly událostí Systému Windows
D:\Windows\System32\Winevt\Logs