Share via


Werkstroom van klassieke Vm-architectuur van Windows Azure

Belangrijk

Cloud Services (klassiek) is nu afgeschaft voor nieuwe klanten en wordt op 31 augustus 2024 voor alle klanten buiten gebruik gesteld. Nieuwe implementaties moeten gebruikmaken van het nieuwe op Azure Resource Manager gebaseerde implementatiemodel Azure Cloud Services (uitgebreide ondersteuning).

Dit artikel bevat een overzicht van de werkstroomprocessen die worden uitgevoerd wanneer u een Azure-resource, zoals een virtuele machine, implementeert of bijwerkt.

Notitie

Azure heeft twee verschillende implementatiemodellen voor het maken en werken met resources: Resource Manager en klassiek. Dit artikel gaat over het gebruik van het klassieke implementatiemodel.

In het volgende diagram ziet u de architectuur van Azure-resources.

<alt De afbeelding over De Azure-werkstroom>

Basisbeginselen van werkstroom

A. RDFE/FFE is het communicatiepad van de gebruiker naar de infrastructuur. RDFE (RedDog Front End) is de openbaar beschikbaar gemaakte API die de front-end is voor de beheerportal en de servicebeheer-API, zoals Visual Studio, Azure MMC, enzovoort. Alle aanvragen van de gebruiker gaan via RDFE. FFE (Fabric Front End) is de laag die aanvragen van RDFE vertaalt naar infrastructuuropdrachten. Alle aanvragen van RDFE gaan via de FFE om de infrastructuurcontrollers te bereiken.

B. De infrastructuurcontroller is verantwoordelijk voor het onderhouden en bewaken van alle resources in het datacenter. Het communiceert met infrastructuurhostagents in het fabric-besturingssysteem en verzendt informatie zoals de versie van het gastbesturingssystem, het servicepakket, de serviceconfiguratie en de servicestatus.

C. De hostagent bevindt zich in het hostbesturingssysteem en is verantwoordelijk voor het instellen van het gastbesturingssysteem en de communicatie met gastagent (WindowsAzureGuestAgent) om de rol bij te werken naar een beoogde doelstatus en heartbeatcontroles uit te voeren met de gastagent. Als hostagent gedurende tien minuten geen heartbeat-antwoord ontvangt, start hostagent het gastbesturingssysteem opnieuw op.

C2. WaAppAgent is verantwoordelijk voor het installeren, configureren en bijwerken van WindowsAzureGuestAgent.exe.

D. WindowsAzureGuestAgent is verantwoordelijk voor het volgende:

  1. Het gastbesturingssystemen configureren, inclusief firewall, ACL's, LocalStorage-resources, servicepakket en configuratie en certificaten.
  2. De SID instellen voor het gebruikersaccount waaronder de rol wordt uitgevoerd.
  3. De rolstatus doorgeven aan de infrastructuur.
  4. Start WaHostBootstrapper en controleer deze om ervoor te zorgen dat de rol de doelstatus heeft.

E. WaHostBootstrapper is verantwoordelijk voor:

  1. Lees de rolconfiguratie en start alle juiste taken en processen om de rol te configureren en uit te voeren.
  2. Alle onderliggende processen bewaken.
  3. De gebeurtenis StatusCheck op het rolhostproces verhogen.

F. IISConfigurator wordt uitgevoerd als de rol is geconfigureerd als een volledige IIS-webrol. Het is verantwoordelijk voor:

  1. De standaard IIS-services starten
  2. De herschrijfmodule configureren in de webconfiguratie
  3. De AppPool instellen voor de geconfigureerde rol in het servicemodel
  4. IIS-logboekregistratie instellen om te verwijzen naar de map DiagnosticStore LocalStorage
  5. Machtigingen en ACL's configureren
  6. De website bevindt zich in %roleroot%:\sitesroot\0 en de AppPool verwijst naar deze locatie om IIS uit te voeren.

G. Opstarttaken worden gedefinieerd door het rolmodel en gestart door WaHostBootstrapper. Opstarttaken kunnen worden geconfigureerd om asynchroon op de achtergrond te worden uitgevoerd. De opstarttaak van de host start de opstarttaak en gaat vervolgens verder met andere opstarttaken. Opstarttaken kunnen ook worden geconfigureerd om te worden uitgevoerd in de eenvoudige modus (standaard), waarin de host bootstrapper wacht tot de opstarttaak is voltooid en een geslaagde afsluitcode (0) retourneert voordat de volgende opstarttaak wordt uitgevoerd.

H. Deze taken maken deel uit van de SDK en worden gedefinieerd als invoegtoepassingen in de servicedefinitie van de rol (.csdef). Wanneer deze worden uitgebreid naar opstarttaken, zijn DiagnosticsAgent en RemoteAccessAgent uniek omdat ze elk twee opstarttaken definiëren, één reguliere en een met de parameter /blockStartup . De normale opstarttaak wordt gedefinieerd als een opstarttaak op de achtergrond, zodat deze op de achtergrond kan worden uitgevoerd terwijl de rol zelf wordt uitgevoerd. De opstarttaak /blockStartup wordt gedefinieerd als een eenvoudige opstarttaak, zodat WaHostBootstrapper wacht tot deze wordt afgesloten voordat u doorgaat. De taak /blockStartup wacht tot de normale taak is geïnitialiseerd en vervolgens wordt afgesloten en de hostbootstrapper kan doorgaan. Dit wordt gedaan zodat diagnostische gegevens en RDP-toegang kunnen worden geconfigureerd voordat de rolprocessen worden gestart (dit wordt gedaan via de taak /blockStartup). Hierdoor kunnen ook diagnostische gegevens en RDP-toegang worden uitgevoerd nadat de host bootstrapper de opstarttaken heeft voltooid (dit wordt gedaan via de taak Normaal).

Ik. WaWorkerHost is het standaard hostproces voor normale werkrollen. Dit hostproces host alle DLL's en toegangspuntcode van de rol, zoals OnStart en Run.

J. WaIISHost is het hostproces voor de code van het rolinvoerpunt voor webrollen die gebruikmaken van Full IIS. Met dit proces wordt de eerste DLL geladen die wordt gevonden die gebruikmaakt van de klasse RoleEntryPoint en voert de code uit deze klasse uit (OnStart, Run, OnStop). Alle RoleEnvironment-gebeurtenissen (zoals StatusCheck en Changed) die zijn gemaakt in de klasse RoleEntryPoint, worden in dit proces gegenereerd.

K. W3WP is het standaard IIS-werkproces dat wordt gebruikt als de rol is geconfigureerd voor het gebruik van Volledige IIS. Hiermee wordt de AppPool uitgevoerd die is geconfigureerd vanuit IISConfigurator. Alle RoleEnvironment-gebeurtenissen (zoals StatusCheck en Changed) die hier worden gemaakt, worden in dit proces gegenereerd. Houd er rekening mee dat RoleEnvironment-gebeurtenissen op beide locaties (WaIISHost en w3wp.exe) worden geactiveerd als u zich abonneert op gebeurtenissen in beide processen.

Werkstroomprocessen

  1. Een gebruiker doet een aanvraag, zoals het uploaden van bestanden '.cspkg' en '.cscfg', het vertellen van een resource om te stoppen of een configuratiewijziging aan te brengen, enzovoort. Dit kan worden gedaan via de Azure Portal of een hulpprogramma dat gebruikmaakt van de Service Management-API, zoals de publicatiefunctie van Visual Studio. Deze aanvraag gaat naar RDFE om al het abonnementsgerelateerde werk uit te voeren en de aanvraag vervolgens door te geven aan FFE. De rest van deze werkstroomstappen zijn het implementeren van een nieuw pakket en het starten ervan.
  2. FFE vindt de juiste machinegroep (op basis van klantinvoer, zoals affiniteitsgroep of geografische locatie plus invoer van de infrastructuur, zoals de beschikbaarheid van de machine) en communiceert met de hoofdinfrastructuurcontroller in die machinegroep.
  3. De infrastructuurcontroller vindt een host met beschikbare CPU-kernen (of draait een nieuwe host op). Het servicepakket en de configuratie worden gekopieerd naar de host en de infrastructuurcontroller communiceert met de hostagent op het host-besturingssysteem om het pakket te implementeren (DIPs, poorten, gastbesturingssystemen, enzovoort) te configureren.
  4. De hostagent start het gastbesturingssystemen en communiceert met de gastagent (WindowsAzureGuestAgent). De host verzendt heartbeats naar de gast om ervoor te zorgen dat de rol werkt naar de doelstatus.
  5. WindowsAzureGuestAgent stelt het gastbesturingssystemen (firewall, ACL's, LocalStorage, enzovoort) in, kopieert een nieuw XML-configuratiebestand naar c:\Config en start vervolgens het WaHostBootstrapper-proces.
  6. Voor volledige IIS-webrollen start WaHostBootstrapper IISConfigurator en vertelt het dat bestaande AppPools voor de webrol uit IIS moeten worden verwijderd.
  7. WaHostBootstrapper leest de opstarttaken uit E:\RoleModel.xml en begint met het uitvoeren van opstarttaken. WaHostBootstrapper wacht totdat alle eenvoudige opstarttaken zijn voltooid en het bericht 'geslaagd' is geretourneerd.
  8. Voor volledige IIS-webrollen vertelt WaHostBootstrapper IISConfigurator om de IIS AppPool te configureren en verwijst de site naar E:\Sitesroot\<index>, waarbij <index> een op nul gebaseerde index is in het aantal <Sites> elementen dat voor de service is gedefinieerd.
  9. WaHostBootstrapper start het hostproces, afhankelijk van het roltype:
    1. Werkrol: WaWorkerHost.exe wordt gestart. WaHostBootstrapper voert de methode OnStart() uit. Nadat deze is geretourneerd, begint WaHostBootstrapper met het uitvoeren van de methode Run(). Vervolgens wordt de rol tegelijkertijd gemarkeerd als Gereed en wordt deze in de load balancer-rotatie geplaatst (als InputEndpoints zijn gedefinieerd). WaHostBootsrapper gaat vervolgens in een lus van het controleren van de rolstatus.
    2. Volledige IIS-webrol: aIISHost wordt gestart. WaHostBootstrapper voert de methode OnStart() uit. Nadat deze is geretourneerd, wordt de run()-methode uitgevoerd. Vervolgens wordt de rol gemarkeerd als Gereed en wordt deze in de load balancer-rotatie geplaatst. WaHostBootsrapper gaat vervolgens in een lus van het controleren van de rolstatus.
  10. Inkomende webaanvragen naar een volledige IIS-webrol activeert IIS om het W3WP-proces te starten en de aanvraag te verwerken, net als in een on-premises IIS-omgeving.

Locaties van logboekbestanden

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Dit logboek bevat wijzigingen in de service, waaronder starten, stoppen en nieuwe configuraties. Als de service niet wordt gewijzigd, ziet u grote tijdsverschillen in dit logboekbestand.
  • C:\Logs\WaAppAgent.Log.
    Dit logboek bevat statusupdates en heartbeatmeldingen en wordt elke 2-3 seconden bijgewerkt. Dit logboek bevat een historische weergave van de status van het exemplaar en geeft aan wanneer het exemplaar niet de status Gereed had.

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

IIS-logboeken

C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1

Windows-gebeurtenislogboeken

D:\Windows\System32\Winevt\Logs