Pracovní postup klasické architektury virtuálních počítačů s Windows Azure

Důležité

Cloud Services (classic) je teď pro nové zákazníky zastaralý a bude vyřazen 31. srpna 2024 pro všechny zákazníky. Nová nasazení by měla používat nový model nasazení Azure Resource Manager založený na Azure Cloud Services (rozšířená podpora).

Tento článek obsahuje přehled procesů pracovních postupů, 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 classic. Tento článek se věnuje použití klasického modelu nasazení.

Následující diagram znázorňuje architekturu prostředků Azure.

<alt Obrázek pracovního postupu Azure>

Základy pracovního postupu

A. RDFE / FFE je komunikační cesta mezi uživatelem a prostředky infrastruktury. RDFE (RedDog Front End) je veřejně vystavené rozhraní API, které je front-endem portálu pro správu a rozhraní API pro správu služeb, jako jsou Visual Studio, Azure MMC atd. Všechny požadavky 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 požadavky z RDFE procházejí přes FFE, aby se dostaly do kontrolerů prostředků infrastruktury.

B. Kontroler prostředků infrastruktury zodpovídá za údržbu a monitorování všech prostředků v datacentru. Komunikuje s agenty hostitelů 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 se nachází v hostitelském operačním systému a zodpovídá za nastavení hostovaného operačního systému a komunikaci s agentem hosta (WindowsAzureGuestAgent) za účelem aktualizace role směrem k zamýšlenému cílovému stavu a provádění kontrol prezenčního signálu u agenta hosta. Pokud hostitelský agent neobdrží odpověď prezenčního signálu po dobu 10 minut, hostitelský agent 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í:

  1. Konfigurace hostovaného operačního systému, včetně brány firewall, seznamů ACL, prostředků localStorage, balíčku a konfigurace služby a certifikátů
  2. Nastavení identifikátoru SID pro uživatelský účet, pod kterým se bude role spouštět.
  3. Informování o stavu role do prostředků infrastruktury
  4. Spuštění nástroje WaHostBootstrapper a jeho monitorování, abyste se ujistili, že je role v cílovém stavu.

E. WaHostBootstrapper zodpovídá za:

  1. Čtení konfigurace role a spuštění všech příslušných úloh a procesů pro konfiguraci a spuštění role
  2. Monitoruje všechny podřízené procesy.
  3. Vyvolání události StatusCheck v procesu hostitele role.

F. IISConfigurator se spustí, pokud je tato role nakonfigurovaná jako úplná webová role IIS. Zodpovídá za:

  1. Spuštění standardních služeb IIS
  2. Konfigurace modulu pro přepis ve webové konfiguraci
  3. Nastavení fondu aplikací pro nakonfigurovanou roli v modelu služby
  4. Nastavení protokolování služby IIS tak, aby ukazovalo na složku DiagnosticStore LocalStorage
  5. Konfigurace oprávnění a seznamů ACL
  6. Web se nachází ve složce %roleroot%:\sitesroot\0 a fond aplikací odkazuje na toto umístění pro spuštění služby IIS.

G. Úlohy po spuštění jsou definované modelem rolí a spouštěné WaHostBootstrapperem. Úlohy po spuštění se dají nakonfigurovat tak, aby běžely asynchronně na pozadí, a zaváděcí nástroj hostitele spustí spouštěcí úlohu a pak bude pokračovat na jiné úlohy po spuštění. Úlohy po spuštění lze také nakonfigurovat tak, aby běžely v jednoduchém (výchozím) režimu, ve kterém zaváděcí nástroj hostitele počká na dokončení spouštěcí úlohy a před pokračováním na další úlohu po spuštění vrátí úspěšný (0) ukončovací kód.

H. Tyto úlohy jsou součástí sady SDK a jsou definované jako moduly plug-in v definici služby role (.csdef). Při rozbalení do úloh po spuštění jsou diagnosticsAgent a RemoteAccessAgent jedinečné v tom, že každá z nich definuje dvě úlohy po spuštění, jednu běžnou a jednu, která má parametr /blockStartup . Normální spouštěcí úloha je definována jako úloha spuštění na pozadí, takže může běžet na pozadí, zatímco je spuštěná samotná role. Spouštěcí úloha /blockStartup je definována jako jednoduchá spouštěcí úloha, takže WaHostBootstrapper před pokračováním čeká na jeho ukončení. Úloha /blockStartup počká na dokončení inicializace běžné úlohy, pak se ukončí a umožní zaváděcí nástroji hostitele pokračovat. To se provádí tak, aby bylo možné nakonfigurovat diagnostiku a přístup pomocí protokolu RDP před spuštěním procesů role (to se provádí prostřednictvím úlohy /blockStartup). To také umožňuje, aby diagnostika a přístup RDP běžely i poté, co zaváděcí nástroj hostitele dokončí úlohy po spuštění (to se provádí prostřednictvím úlohy Normal).

I. WaWorkerHost je standardní hostitelský proces pro normální role pracovního procesu. Tento hostitelský proces hostuje všechny knihovny DLL role a kód vstupního bodu, například OnStart a Run.

J. WaIISHost je hostitelský proces pro kód vstupního bodu role pro webové role, které používají úplnou službu IIS. Tento proces načte první nalezenou 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, který se používá, pokud je role nakonfigurovaná tak, aby používala úplnou službu IIS. Spustí se fond aplikací nakonfigurovaný z IISConfiguratoru. Všechny události RoleEnvironment (například StatusCheck a Changed), které jsou zde vytvořeny, jsou vyvolány v tomto procesu. Všimněte si, že 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ích postupů

  1. Uživatel vytvoří požadavek, například nahraje soubory ".cspkg" a ".cscfg", řekne prostředku, aby zastavil nebo udělal změnu konfigurace atd. Můžete to provést prostřednictvím Azure Portal nebo nástroje, který používá rozhraní API pro správu služeb, jako je například funkce Publikovat v sadě Visual Studio. Tento požadavek se dostane do RDFE, aby udělal veškerou práci související s předplatným a pak ji sdělil FFE. Zbývající kroky pracovního postupu slouží k nasazení nového balíčku a jeho spuštění.
  2. FFE najde správný fond počítačů (na základě vstupu zákazníka, jako je skupina vztahů nebo zeměpisná poloha plus vstup z prostředků infrastruktury, například dostupnost počítače) a komunikuje s hlavním kontrolerem prostředků infrastruktury v daném fondu počítačů.
  3. Kontroler prostředků infrastruktury najde hostitele, který má dostupná jádra procesoru (nebo roztáčí nového hostitele). Balíček služby a konfigurace se zkopírují do hostitele a kontroler prostředků infrastruktury komunikuje s agentem hostitele v hostitelském operačním systému za účelem nasazení balíčku (konfigurace IP adres, portů, hostovaného operačního systému atd.).
  4. Agent hostitele spustí hostovaný operační systém a komunikuje s agentem hosta (WindowsAzureGuestAgent). Hostitel odešle hostovi prezenční signály, aby se ujistil, že role pracuje na svém cílovém stavu.
  5. WindowsAzureGuestAgent nastaví hostovaný operační systém (firewall, seznamy ACL, LocalStorage atd.), zkopíruje nový konfigurační soubor XML do složky c:\Config a pak spustí proces WaHostBootstrapper.
  6. V případě úplných webových rolí služby IIS spustí WaHostBootstrapper nástroj IISConfigurator a řekne mu, aby ze služby IIS odstranil všechny existující fondy aplikací pro webovou roli.
  7. WaHostBootstrapper přečte úlohy po spuštění z E:\RoleModel.xml a spustí úlohy po spuštění. WaHostBootstrapper počká, dokud se nedokončí všechny jednoduché úlohy při spuštění a vrátí zprávu o úspěchu.
  8. Pro úplné webové role iis WaHostBootstrapper sděluje IISConfigurator, aby nakonfigurovat fond aplikací iis, a odkazuje web na E:\Sitesroot\<index>, kde <index> je index založený na nule na počet elementů definovaných <Sites> pro službu.
  9. WaHostBootstrapper spustí hostitelský proces v závislosti na typu role:
    1. Role pracovního procesu: WaWorkerHost.exe je spuštěná. WaHostBootstrapper spustí metodu OnStart(). Jakmile se vrátí, WaHostBootstrapper začne spouštět metodu Run() a pak současně označí roli jako Ready a vloží 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.
    2. Úplná webová role SLUŽBY IIS: Je spuštěný hostitel aIISHost. WaHostBootstrapper spustí metodu OnStart(). Jakmile se vrátí, začne spouštět metodu Run() a pak současně označí roli jako Ready a umístí ji do rotace nástroje pro vyrovnávání zatížení. WaHostBootsrapper pak přejde do smyčky kontroly stavu role.
  10. Příchozí webové požadavky na úplnou webovou roli IIS aktivují službu IIS, která spustí proces W3WP a odešle 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 velké časové mezery v tomto souboru protokolu.
  • C:\Logs\WaAppAgent.Log.
    Tento protokol obsahuje aktualizace stavu a oznámení prezenčních signálů a aktualizuje se každé 2 až 3 sekundy. Tento protokol obsahuje historické zobrazení stavu instance a dozvíte se, 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