Arbetsflöde för Microsoft Azures klassiska arkitektur för virtuell dator (VM)
Viktigt!
Cloud Services (klassisk) är nu inaktuellt för alla kunder från och med den 1 september 2024. Alla befintliga distributioner som körs stoppas och stängs av av Microsoft och data kommer att förloras kontinuerligt från och med oktober 2024. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).
Den här artikeln innehåller en översikt över de arbetsflödesprocesser som inträffar när du distribuerar eller uppdaterar en Azure-resurs, till exempel en virtuell dator.
Kommentar
Azure har två olika distributionsmodeller för att skapa och arbeta med resurser: Resource Manager och klassisk. Den här artikeln beskriver den klassiska distributionsmodellen.
I följande diagram visas arkitekturen för Azure-resurser.
Grunderna i arbetsflödet
S. RDFE/FFE är kommunikationssökvägen från användaren till infrastrukturresursen. RDFE (RedDog Front End) är det offentligt exponerade API:et som är klientdelen till hanteringsportalen och det klassiska distributionsmodell-API:et, till exempel Visual Studio, Azure MMC och så vidare. Alla begäranden från användaren går via RDFE. FFE (Fabric Front End) är det lager som översätter begäranden från RDFE till infrastrukturkommandon. Alla begäranden från RDFE går igenom FFE för att nå infrastrukturkontrollanterna.
B. Infrastrukturkontrollanten ansvarar för att underhålla och övervaka alla resurser i datacentret. Den kommunicerar med infrastrukturvärdagenter på infrastrukturoperativsystemet som skickar information, till exempel gästoperativsystemversion, tjänstpaket, tjänstkonfiguration och tjänsttillstånd.
C. Värdagenten finns i värdoperativsystemet och ansvarar för att konfigurera gästoperativsystem. Den hanterar även kommunikation med gästagenten (WindowsAzureGuestAgent) för att uppdatera rollen mot ett avsett måltillstånd och utföra pulsslagskontroller med gästagenten. Om värdagenten inte får pulsslagssvar på 10 minuter startar värdagenten om gästoperativsystemet.
C2. WaAppAgent ansvarar för att installera, konfigurera och uppdatera WindowsAzureGuestAgent.exe.
D. WindowsAzureGuestAgent ansvarar för följande uppgifter:
- Konfigurera gästoperativsystemet, inklusive brandvägg, ACL:er, LocalStorage-resurser, tjänstpaket och konfiguration samt certifikat.
- Konfigurera SID för användarkontot som rollen körs under.
- Kommunicera rollstatusen till infrastrukturresursen.
- Starta WaHostBootstrapper och övervaka den för att se till att rollen är i måltillstånd.
E. WaHostBootstrapper ansvarar för:
- Läsa rollkonfigurationen och starta alla lämpliga uppgifter och processer för att konfigurera och köra rollen.
- Övervaka alla underordnade processer.
- Höjning av StatusCheck-händelsen i rollvärdprocessen.
F. IISConfigurator körs om rollen är konfigurerad som en fullständig IIS-webbroll. Det är ansvarigt för:
- Starta standard-IIS-tjänsterna
- Konfigurera omskrivningsmodulen i webbkonfigurationen
- Konfigurera AppPool för den konfigurerade rollen i tjänstmodellen
- Konfigurera IIS-loggning så att den pekar på mappen DiagnosticStore LocalStorage
- Konfigurera behörigheter och ACL:er
- Webbplatsen finns i %roleroot%:\sitesroot\0, och AppPool pekar på den här platsen för att köra IIS.
G. Förebilden definierar startuppgifter och WaHostBootstrapper startar dem. Startuppgifter kan konfigureras att köras i bakgrunden asynkront, och värdstöveln startar startuppgiften och fortsätter sedan med andra startuppgifter. Startuppgifter kan också konfigureras att köras i enkelt läge (standard). I enkelt läge väntar värdens bootstrapper på att startuppgiften ska slutföras och returnera en lyckad (0) slutkod innan du fortsätter till nästa startuppgift.
H. Dessa uppgifter är en del av SDK:t och definieras som plugin-program i rollens tjänstdefinition (.csdef). När de expanderas till startuppgifter är DiagnosticsAgent och RemoteAccessAgent unika eftersom de definierar två startuppgifter, en vanlig och en som har en /blockStartup-parameter . Den normala startaktiviteten definieras som en startaktivitet i bakgrunden så att den kan köras i bakgrunden medan själva rollen körs. Startaktiviteten /blockStartup definieras som en enkel startuppgift så att WaHostBootstrapper väntar på att den ska avslutas innan den fortsätter. / blockStart-aktiviteten väntar på att den vanliga aktiviteten ska slutföra initieringen och avslutas och låter värdstöveln fortsätta. Den här processen görs så att diagnostik och RDP-åtkomst kan konfigureras innan rollprocesserna startar, vilket görs via /blockStartup-uppgiften. Den här processen gör det också möjligt för diagnostik och RDP-åtkomst att fortsätta köras när värdstöveln har slutfört startuppgifterna, vilket görs via aktiviteten Normal.
Jag. WaWorkerHost är standardvärdprocessen för normala arbetsroller. Den här värdprocessen är värd för alla rollens DLL:er och startpunktskod, till exempel OnStart och Run.
J. WaIISHost är värdprocessen för rollinmatningspunktskod för webbroller som använder fullständig IIS. Den här processen läser in den första DLL som hittas som använder klassen RoleEntryPoint och kör koden från den här klassen (OnStart, Run, OnStop). Alla RoleEnvironment-händelser (till exempel StatusCheck och Changed) som skapas i klassen RoleEntryPoint genereras i den här processen.
K. W3WP är den standardprocess för IIS-arbetare som används om rollen är konfigurerad att använda fullständig IIS. Den här processen kör apppoolen som konfigurerats från IISConfigurator. Alla RoleEnvironment-händelser (till exempel StatusCheck och Ändrad) som skapas här genereras i den här processen. RoleEnvironment-händelser utlöses på båda platserna (WaIISHost och w3wp.exe) om du prenumererar på händelser i båda processerna.
Arbetsflödesprocesser
- En användare gör en begäran, till exempel att ladda upp ".cspkg" och ".cscfg"-filer, uppmana en resurs att stoppa eller göra en konfigurationsändring och så vidare. Begäranden kan göras via Azure Portal eller verktyg som använder det klassiska distributionsmodell-API:et, till exempel visual studiopubliceringsfunktionen. Den här begäran går till RDFE för att utföra allt prenumerationsrelaterat arbete och sedan kommunicera begäran till FFE. Resten av dessa arbetsflödessteg är att distribuera ett nytt paket och starta det.
- FFE hittar rätt datorpool (baserat på kundindata, till exempel tillhörighetsgrupp eller geografisk plats plus indata från infrastrukturresurserna, till exempel maskintillgänglighet) och kommunicerar med huvudinfrastrukturstyrenheten i den datorpoolen.
- Infrastrukturkontrollanten hittar en värd som har tillgängliga CPU-kärnor (eller snurrar upp en ny värd). Tjänstpaketet och konfigurationen kopieras till värden och infrastrukturkontrollanten kommunicerar med värdagenten på värdoperativsystemet för att distribuera paketet (konfigurera DIP:er, portar, gästoperativsystem och så vidare).
- Värdagenten startar gästoperativsystemet och kommunicerar med gästagenten (WindowsAzureGuestAgent). Värden skickar pulsslag till gästen för att se till att rollen arbetar mot måltillståndet.
- WindowsAzureGuestAgent konfigurerar gästoperativsystemet (brandvägg, ACL:er, LocalStorage och så vidare), kopierar en ny XML-konfigurationsfil till c:\Config och startar sedan WaHostBootstrapper-processen.
- För fullständiga IIS-webbroller startar WaHostBootstrapper IISConfigurator och uppmanar den att ta bort alla befintliga AppPools för webbrollen från IIS.
- WaHostBootstrapper läser startuppgifterna från E:\RoleModel.xml och börjar köra startuppgifter. WaHostBootstrapper väntar tills alla enkla startuppgifter har slutförts och returnerar ett meddelande om att åtgärden lyckades.
- För fullständiga IIS-webbroller säger WaHostBootstrapper till IISConfigurator att konfigurera IIS AppPool och pekar webbplatsen på
E:\Sitesroot\<index>
, där<index>
är ett nollbaserat index i antalet<Sites>
element som definierats för tjänsten. - WaHostBootstrapper startar värdprocessen beroende på rolltyp:
- Arbetsroll: WaWorkerHost.exe startas. WaHostBootstrapper kör metoden OnStart(). När den har returnerats börjar WaHostBootstrapper köra metoden Run() och markerar sedan rollen som Klar samtidigt och placerar den i lastbalanserarens rotation (om InputEndpoints definieras). WaHostBootsrapper går sedan in i en loop för att kontrollera rollstatusen.
- Fullständig IIS-webbroll: aIISHost startas. WaHostBootstrapper kör metoden OnStart(). När den har returnerats börjar den köra metoden Run() och markerar sedan rollen samtidigt som Klar och placerar den i lastbalanserarens rotation. WaHostBootsrapper går sedan in i en loop för att kontrollera rollstatusen.
- Inkommande webbbegäranden till en fullständig IIS-webbroll utlöser IIS för att starta W3WP-processen och hantera begäran, på samma sätt som i en lokal IIS-miljö.
Loggfilsplatser
WindowsAzureGuestAgent
- C:\Logs\AppAgentRuntime.Log.
Den här loggen innehåller ändringar i tjänsten, inklusive starter, stopp och nya konfigurationer. Om tjänsten inte ändras kan du förvänta dig att se stora tidsluckor i loggfilen. - C:\Logs\WaAppAgent.Log.
Den här loggen innehåller statusuppdateringar och pulsslagsmeddelanden och uppdateras var 2–3:e sekund. Den här loggen innehåller en historisk vy över instansens status och anger när instansen inte var i tillståndet Klar.
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-loggar
C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1
Windows-händelseloggar
D:\Windows\System32\Winevt\Logs