Dela via


Arbetsflöde för klassisk vm-arkitektur i Windows Azure

Viktigt

Cloud Services (klassisk) är nu inaktuell för nya kunder och kommer att dras tillbaka den 31 augusti 2024 för alla kunder. 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.

Anteckning

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.

Följande diagram visar arkitekturen för Azure-resurser.

<alt Bilden om Azure-arbetsflödet>

Grundläggande om arbetsflöde

A. RDFE/FFE är kommunikationssökvägen från användaren till infrastrukturresurserna. RDFE (RedDog Front End) är det offentligt exponerade API:et som är klientdelen till hanteringsportalen och Service Management-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 infrastrukturhanterade värdagenter på infrastrukturoperativsystemet som skickar information, till exempel gästoperativsystemets version, tjänstpaket, tjänstkonfiguration och tjänsttillstånd.

C. Värdagenten finns på värdoperativsystemet och ansvarar för att konfigurera gästoperativsystem och kommunicera med gästagenten (WindowsAzureGuestAgent) för att uppdatera rollen mot ett avsett måltillstånd och gö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:

  1. Konfigurera gästoperativsystemet inklusive brandvägg, ACL:er, LocalStorage-resurser, tjänstpaket och konfiguration samt certifikat.
  2. Konfigurera SID för användarkontot som rollen ska köras under.
  3. Kommunicera rollstatusen till infrastrukturresurserna.
  4. Starta WaHostBootstrapper och övervaka den för att se till att rollen är i måltillstånd.

E. WaHostBootstrapper ansvarar för:

  1. Läsa rollkonfigurationen och starta alla lämpliga uppgifter och processer för att konfigurera och köra rollen.
  2. Övervaka alla underordnade processer.
  3. Höjning av StatusCheck-händelsen i rollvärdprocessen.

F. IISConfigurator körs om rollen är konfigurerad som en fullständig IIS-webbroll. Den ansvarar för:

  1. Starta standard-IIS-tjänsterna
  2. Konfigurera omskrivningsmodulen i webbkonfigurationen
  3. Konfigurera AppPool för den konfigurerade rollen i tjänstmodellen
  4. Konfigurera IIS-loggning så att den pekar på mappen DiagnosticStore LocalStorage
  5. Konfigurera behörigheter och ACL:er
  6. Webbplatsen finns i %roleroot%:\sitesroot\0 och AppPool pekar på den här platsen för att köra IIS.

G. Startuppgifter definieras av förebilden och startas av WaHostBootstrapper. Startuppgifter kan konfigureras så att de körs i bakgrunden asynkront, och värdstövlarna startar startaktiviteten och fortsätter sedan till andra startuppgifter. Startuppgifter kan också konfigureras att köras i enkelt (standardläge) där värdens bootstrapper väntar på att startaktiviteten ska slutföras och returnera en lyckad (0) slutkod innan nästa startaktivitet fortsätter.

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 parametern /blockStartup . 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 startaktivitet så att WaHostBootstrapper väntar på att den ska avslutas innan den fortsätter. Aktiviteten /blockStartup väntar på att den vanliga aktiviteten ska slutföra initieringen och avslutas och låta värdens bootstrapper fortsätta. Detta görs så att diagnostik och RDP-åtkomst kan konfigureras innan rollprocesserna startar (detta görs via /blockStartup-uppgiften). Detta gör också att diagnostik och RDP-åtkomst kan fortsätta köras när värdstöveln har slutfört startuppgifterna (detta görs via normal uppgift).

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 Ändrad) som skapas i klassen RoleEntryPoint aktiveras i den här processen.

K. W3WP är den IIS-standardprocess som används om rollen har konfigurerats för att använda fullständig IIS. Då körs Den AppPool som har konfigurerats från IISConfigurator. Alla RoleEnvironment-händelser (till exempel StatusCheck och Ändrad) som skapas här genereras i den här processen. Observera att 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

  1. 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. Detta kan göras via Azure Portal eller ett verktyg som använder Service Management-API:et, till exempel Visual Studio Publish-funktionen. 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 de här arbetsflödesstegen är att distribuera ett nytt paket och starta det.
  2. 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 huvudinfrastrukturkontrollanten i den datorpoolen.
  3. 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).
  4. 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 sitt måltillstånd.
  5. 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.
  6. För fullständiga IIS-webbroller startar WaHostBootstrapper IISConfigurator och instruerar den att ta bort alla befintliga AppPools för webbrollen från IIS.
  7. 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 returnerat ett meddelande om "lyckad".
  8. För fullständiga IIS-webbroller instruerar WaHostBootstrapper IISConfigurator att konfigurera IIS AppPool och pekar platsen på E:\Sitesroot\<index>, där <index> är ett nollbaserat index i antalet <Sites> element som definierats för tjänsten.
  9. WaHostBootstrapper startar värdprocessen beroende på rolltyp:
    1. 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 samtidigt som Klar och placerar den i lastbalanserarens rotation (om InputEndpoints definieras). WaHostBootsrapper går sedan in i en loop för att kontrollera rollstatusen.
    2. Fullständig IIS-webbroll: aIISHost har startats. 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.
  10. 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 den här 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 visar 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