Werkstroom van de architectuur van de klassieke virtuele machine (VM) van Microsoft Azure
Belangrijk
Cloud Services (klassiek) is vanaf 1 september 2024 afgeschaft voor alle klanten. Bestaande actieve implementaties worden gestopt en afgesloten door Microsoft en de gegevens gaan vanaf oktober 2024 permanant verloren. 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 plaatsvinden wanneer u een Azure-resource, zoals een virtuele machine, implementeert of bijwerkt.
Notitie
Azure heeft twee verschillende implementatiemodellen voor het maken van en werken met resources: Resource Manager en het klassieke model. Dit artikel gaat over het gebruik van het klassieke implementatiemodel.
In het volgende diagram ziet u de architectuur van Azure-resources.
Basisbeginselen van werkstromen
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 API voor het klassieke implementatiemodel, 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 in 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 fabric-hostagents op het fabric-besturingssysteem dat informatie verzendt, zoals de versie van het gastbesturingssystem, het servicepakket, de serviceconfiguratie en de servicestatus.
C. De hostagent bevindt zich op het host-besturingssysteem en is verantwoordelijk voor het instellen van gastbesturingssystemen. Het verwerkt ook 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 10 minuten geen heartbeat-antwoord ontvangt, wordt het gastbesturingssysteem opnieuw opgestart door de hostagent.
C2. WaAppAgent is verantwoordelijk voor het installeren, configureren en bijwerken van WindowsAzureGuestAgent.exe.
D. WindowsAzureGuestAgent is verantwoordelijk voor de volgende taken:
- Het gastbesturingssystemen configureren, waaronder firewall, ACL's, LocalStorage-resources, servicepakket en configuratie en certificaten.
- De SID instellen voor het gebruikersaccount waaronder de rol wordt uitgevoerd.
- De rolstatus doorgeven aan de infrastructuur.
- WaHostBootstrapper starten en controleren om ervoor te zorgen dat de rol de doelstatus heeft.
E. WaHostBootstrapper is verantwoordelijk voor:
- Lees de rolconfiguratie en start alle juiste taken en processen om de rol te configureren en uit te voeren.
- Alle onderliggende processen bewaken.
- De statuscontrole-gebeurtenis in het rolhostproces verhogen.
F. IISConfigurator wordt uitgevoerd als de rol is geconfigureerd als een volledige IIS-webrol. Het is verantwoordelijk voor:
- De standaard IIS-services starten
- De herschrijfmodule configureren in de webconfiguratie
- De AppPool instellen voor de geconfigureerde rol in het servicemodel
- IIS-logboekregistratie instellen om te verwijzen naar de map LocalStorage DiagnosticStore
- Machtigingen en ACL's configureren
- De website bevindt zich in %roleroot%:\sitesroot\0 en de AppPool verwijst naar deze locatie om IIS uit te voeren.
G. Het rolmodel definieert opstarttaken en WaHostBootstrapper start ze. Opstarttaken kunnen asynchroon worden geconfigureerd om op de achtergrond te worden uitgevoerd en de hostbootstrapper start de opstarttaak en gaat vervolgens verder met andere opstarttaken. Opstarttaken kunnen ook worden geconfigureerd om te worden uitgevoerd in de modus Simple (standaard). In de eenvoudige modus wacht de host bootstrapper totdat de opstarttaak is voltooid en wordt een afsluitcode (0) geretourneerd voordat de volgende opstarttaak wordt voortgezet.
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 de DiagnosticsAgent en RemoteAccessAgent uniek omdat ze elk twee opstarttaken definiëren, één gewone en een met een 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 totdat de normale taak is geïnitialiseerd. Vervolgens wordt de hostbootstrapper afgesloten en kan de hostbootstrapper doorgaan. Dit proces wordt uitgevoerd zodat diagnostische gegevens en RDP-toegang kunnen worden geconfigureerd voordat de rolprocessen worden gestart. Dit wordt gedaan via de taak /blockStartup. Dit proces staat ook diagnostische gegevens en RDP-toegang toe om door te gaan nadat de host bootstrapper de opstarttaken heeft voltooid, die worden uitgevoerd via de taak Normaal.
Ik. WaWorkerHost is het standaardhostproces voor normale werkrollen. Dit hostproces host alle DLL's en toegangspuntcode van de rol, zoals OnStart en Uitvoeren.
J. WaIISHost is het hostproces voor de code van het rolinvoerpunt voor webrollen die gebruikmaken van Volledige IIS. Met dit proces wordt de eerste DLL geladen die wordt gevonden die gebruikmaakt van de klasse RoleEntryPoint en de code uit deze klasse uitvoert (OnStart, Uitvoeren, OnStop). Eventuele RoleEnvironment-gebeurtenissen (zoals StatusCheck en Gewijzigd) 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 gebruik van volledige IIS. Met dit proces wordt de AppPool uitgevoerd die is geconfigureerd vanuit IISConfigurator. Eventuele RoleEnvironment-gebeurtenissen (zoals StatusCheck en Gewijzigd) die hier worden gemaakt, worden in dit proces gegenereerd. RoleEnvironment-gebeurtenissen worden geactiveerd op beide locaties (WaIISHost en w3wp.exe) als u zich abonneert op gebeurtenissen in beide processen.
Workflowprocessen
- Een gebruiker doet een aanvraag, zoals het uploaden van bestanden '.cspkg' en '.cscfg', waarbij een resource wordt verteld dat een configuratie moet worden gestopt of gewijzigd, enzovoort. Aanvragen kunnen worden gedaan via de Azure-portal of hulpprogramma's die gebruikmaken van de API voor het klassieke implementatiemodel, zoals de functie Publiceren van Visual Studio. Deze aanvraag gaat naar RDFE om alle aan het abonnement gerelateerde werkzaamheden uit te voeren en de aanvraag vervolgens aan FFE te communiceren. De rest van deze werkstroomstappen zijn het implementeren van een nieuw pakket en het starten ervan.
- FFE zoekt de juiste machinegroep (op basis van klantinvoer, zoals affiniteitsgroep of geografische locatie plus invoer van de infrastructuur, zoals beschikbaarheid van de machine) en communiceert met de hoofdinfrastructuurcontroller in die machinegroep.
- De infrastructuurcontroller zoekt 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 configureren).
- 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 aan de doelstatus.
- WindowsAzureGuestAgent stelt het gastbesturingssystemen (firewall, ACL's, LocalStorage enzovoort) in, kopieert een nieuw XML-configuratiebestand naar c:\Config en start vervolgens het WaHostBootstrapper-proces.
- Voor volledige IIS-webrollen start WaHostBootstrapper IISConfigurator en laat deze eventuele bestaande AppPools voor de webrol uit IIS verwijderen.
- WaHostBootstrapper leest de opstarttaken uit E:\RoleModel.xml en begint met het uitvoeren van opstarttaken. WaHostBootstrapper wacht totdat alle eenvoudige opstarttaken zijn voltooid en er een bericht wordt geretourneerd.
- Voor volledige IIS-webrollen vertelt WaHostBootstrapper IISConfigurator om de IIS AppPool te configureren en naar de site te
E:\Sitesroot\<index>
verwijzen, waar<index>
is een op nul gebaseerde index in het aantal<Sites>
elementen dat voor de service is gedefinieerd. - WaHostBootstrapper start het hostproces, afhankelijk van het roltype:
- Werkrol: WaWorkerHost.exe wordt gestart. WaHostBootstrapper voert de methode OnStart() uit. Nadat deze is geretourneerd, begint WaHostBootstrapper met het uitvoeren van de methode Run() en markeert vervolgens de rol als Gereed en plaatst deze in de load balancer-draaiing (als InputEndpoints zijn gedefinieerd). WaHostBootsrapper gaat vervolgens in een lus om de rolstatus te controleren.
- Volledige IIS-webrol: aIISHost wordt gestart. WaHostBootstrapper voert de methode OnStart() uit. Nadat deze is geretourneerd, wordt de methode Run() uitgevoerd en wordt de rol vervolgens gemarkeerd als Gereed en wordt deze in de load balancer-draaiing geplaatst. WaHostBootsrapper gaat vervolgens in een lus om de rolstatus te controleren.
- Binnenkomende webaanvragen voor een volledige IIS-webrol activeren IIS om het W3WP-proces te starten en de aanvraag te verwerken, hetzelfde 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 verandert, kunt u verwachten dat er grote tijdsverschillen in dit logboekbestand worden weergegeven. - 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 heeft.
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