Klasszikus Microsoft Azure virtuálisgép-architektúra munkafolyamata
Fontos
A Cloud Services (klasszikus) 2024. szeptember 1-étől minden ügyfél számára elavult. A Microsoft leállítja és leállítja a meglévő üzemelő példányokat, és 2024 októberétől folyamatosan elvesznek az adatok. Az új üzemelő példányoknak az Azure Cloud Services új Azure Resource Manager-alapú üzemi modelljét (kiterjesztett támogatás) kell használniuk.
Ez a cikk áttekintést nyújt az Azure-erőforrások, például virtuális gépek üzembe helyezésekor vagy frissítésekor előforduló munkafolyamatokról.
Feljegyzés
Az Azure két különböző üzembe helyezési modellel rendelkezik az erőforrások létrehozásához és használatához: Resource Manager és klasszikus. Ez a cikk a klasszikus üzembehelyezési modellt ismerteti.
Az alábbi ábra az Azure-erőforrások architektúráját mutatja be.
A munkafolyamat alapjai
V. Az RDFE/FFE a felhasználó és a háló közötti kommunikációs útvonal. Az RDFE (RedDog Front End) a felügyeleti portál és a klasszikus üzemi modell API előtere, például a Visual Studio, az Azure MMC stb. A felhasználótól érkező összes kérés az RDFE-ben keresztül megy keresztül. Az FFE (Fabric Front End) az a réteg, amely az RDFE-ből érkező kéréseket hálóparancsokká fordítja le. Az RDFE minden kérése az FFE-n keresztül éri el a hálóvezérlőket.
B. A hálóvezérlő felelős az adatközpont összes erőforrásának karbantartásáért és monitorozásáért. Kommunikál a háló operációs rendszerének hálógazdaügynökeivel, és olyan információkat küld, mint a vendég operációs rendszer verziója, a szolgáltatáscsomag, a szolgáltatáskonfiguráció és a szolgáltatás állapota.
C. A gazdagépügynök a gazdagép operációs rendszerén található, és a vendég operációs rendszer beállításáért felelős. Kezeli a vendégügynökkel (WindowsAzureGuestAgent) folytatott kommunikációt is, hogy frissítse a szerepkört a kívánt célállapot felé, és szívverés-ellenőrzéseket végez a vendégügynökkel. Ha a gazdagépügynök 10 percig nem kap szívverési választ, a gazdagépügynök újraindítja a vendég operációs rendszert.
C2. A WaAppAgent feladata a WindowsAzureGuestAgent.exe telepítése, konfigurálása és frissítése.
D. A WindowsAzureGuestAgent a következő feladatokért felelős:
- A vendég operációs rendszer konfigurálása, beleértve a tűzfalat, az ACL-eket, a LocalStorage-erőforrásokat, a szolgáltatáscsomagot és a konfigurációt, valamint a tanúsítványokat.
- A szerepkör által futtatott felhasználói fiók biztonsági azonosítójának beállítása.
- A szerepkör állapotának kommunikálása a hálóval.
- A WaHostBootstrapper indítása és figyelése annak ellenőrzéséhez, hogy a szerepkör célállapotban van-e.
E. A WaHostBootstrapper a következő feladatokért felelős:
- Olvassa el a szerepkör-konfigurációt, és indítsa el az összes megfelelő feladatot és folyamatot a szerepkör konfigurálásához és futtatásához.
- Az összes gyermekfolyamat figyelése.
- A StatusCheck esemény növelése a szerepkör-gazdagép folyamatában.
F. Az IISConfigurator akkor fut, ha a szerepkör teljes IIS webes szerepkörként van konfigurálva. Az alábbiakért felelős:
- A standard IIS-szolgáltatások indítása
- Az átírási modul konfigurálása a webes konfigurációban
- Az AppPool beállítása a szolgáltatásmodellben konfigurált szerepkörhöz
- Az IIS-naplózás beállítása a DiagnosticStore LocalStorage mappára mutatva
- Engedélyek és ACL-ek konfigurálása
- A webhely a következő helyen található: %roleroot%:\sitesroot\0, és az AppPool erre a helyre mutat az IIS futtatásához.
G. A szerepkörmodell határozza meg az indítási feladatokat, és a WaHostBootstrapper elindítja őket. Az indítási feladatok konfigurálhatók úgy, hogy a háttérben aszinkron módon fussanak, és a gazdagép bootstrappere elindítja az indítási feladatot, majd továbblép a többi indítási feladatra. Az indítási feladatok úgy is konfigurálhatók, hogy egyszerű (alapértelmezett) módban fussanak. Egyszerű módban a gazdagép bootstrappere megvárja, amíg az indítási feladat befejeződik, és sikeres (0) kilépési kódot ad vissza, mielőtt továbblép a következő indítási feladatra.
H. Ezek a feladatok az SDK részét képezik, és beépülő modulokként vannak definiálva a szerepkör szolgáltatásdefiníciójában (.csdef). Az indítási feladatokra bontva a DiagnosticsAgent és a RemoteAccessAgent egyedi, mivel mindegyik két indítási feladatot határoz meg, egy normált és egy olyant, amely /blockStartup paraméterrel rendelkezik. A normál indítási feladat háttérbeli indítási feladatként van definiálva, hogy a háttérben fusson, miközben maga a szerepkör fut. A /blockStartup indítási feladat egyszerű indítási feladatként van definiálva, így a WaHostBootstrapper a folytatás előtt megvárja a kilépést. A /blockStartup tevékenység megvárja, amíg a normál tevékenység befejezi az inicializálást, majd kilép, és engedélyezi a gazdagép rendszerindítójának folytatását. Ez a folyamat úgy történik, hogy a diagnosztika és az RDP-hozzáférés konfigurálható legyen a szerepkörfolyamatok megkezdése előtt, ami a /blockStartup feladaton keresztül történik. Ez a folyamat azt is lehetővé teszi, hogy a diagnosztika és az RDP-hozzáférés folytatódjon, miután a gazdagép bootstrappere befejezte az indítási feladatokat, amely a Normál feladaton keresztül történik.
Én. A WaWorkerHost a normál feldolgozói szerepkörök szokásos gazdafolyamata. Ez a gazdagépfolyamat tárolja a szerepkör összes DLL-jét és belépési pont kódját, például az OnStart és a Run kódot.
J. A WaIISHost a teljes IIS-t használó webes szerepkörök szerepkör-belépési pontkódjának gazdafolyamata. Ez a folyamat betölti az első DLL-t, amely a RoleEntryPoint osztályt használja, és végrehajtja a kódot ebből az osztályból (OnStart, Run, OnStop). Ebben a folyamatban a RoleEntryPoint osztályban létrehozott összes RoleEnvironment esemény (például StatusCheck és Changed) létrejön.
K. A W3WP a szabványos IIS-feldolgozói folyamat, amelyet akkor használnak, ha a szerepkör a Teljes IIS használatára van konfigurálva. Ez a folyamat az IISConfiguratorból konfigurált AppPoolt futtatja. Ebben a folyamatban minden itt létrehozott RoleEnvironment esemény (például StatusCheck és Changed) létrejön. A RoleEnvironment események mindkét helyen (WaIISHost és w3wp.exe) aktiválódik, ha mindkét folyamat eseményeire feliratkozik.
Munkafolyamat-folyamatok
- A felhasználó kérést intéz, például feltölti a ".cspkg" és a ".cscfg" fájlokat, és közli egy erőforrással, hogy állítsa le vagy módosítsa a konfigurációt, és így tovább. A kérések az Azure Portalon vagy a klasszikus üzemi modell API-t használó eszközökkel, például a Visual Studio Publish szolgáltatással adhatók meg. Ez a kérés az RDFE-hez kerül, hogy elvégezhesse az előfizetéssel kapcsolatos összes munkát, majd közölje a kérést az FFE-vel. A munkafolyamat többi lépése egy új csomag üzembe helyezése és elindítása.
- Az FFE megkeresi a megfelelő gépkészletet (az ügyfélbemenet alapján, például affinitási csoport vagy földrajzi hely, valamint a hálóból származó bemenet, például a gép rendelkezésre állása alapján), és kommunikál az adott gépkészlet főháló-vezérlőjével.
- A hálóvezérlő megkeres egy gazdagépet, amely rendelkezik elérhető processzormagokkal (vagy elindít egy új gazdagépet). A szolgáltatáscsomagot és a konfigurációt a rendszer átmásolja a gazdagépre, és a hálóvezérlő kommunikál a gazdagép operációs rendszer gazdagépügynökével a csomag üzembe helyezéséhez (dip-k, portok, vendég operációs rendszer stb.).
- A gazdaügynök elindítja a vendég operációs rendszert, és kommunikál a vendégügynökkel (WindowsAzureGuestAgent). A gazdagép szívveréseket küld a vendégnek, hogy meggyőződjön arról, hogy a szerepkör a célállapotán dolgozik.
- A WindowsAzureGuestAgent beállítja a vendég operációs rendszert (tűzfal, ACL-ek, LocalStorage stb.), átmásol egy új XML-konfigurációs fájlt a c:\Config fájlba, majd elindítja a WaHostBootstrapper folyamatot.
- Teljes IIS-webes szerepkörök esetén a WaHostBootstrapper elindítja az IISConfiguratort, és közli vele, hogy törölje a webes szerepkör meglévő AppPooljait az IIS-ből.
- A WaHostBootstrapper beolvassa az indítási feladatokat az E:\RoleModel.xml fájlból, és megkezdi az indítási feladatok végrehajtását. A WaHostBootstrapper megvárja, amíg az összes egyszerű indítási feladat befejeződik, és sikeres üzenetet ad vissza.
- Teljes IIS-webszerepkörök esetén a WaHostBootstrapper tájékoztatja az IISConfiguratort, hogy konfigurálja az IIS AppPoolt,
<index>
és a webhelyetE:\Sitesroot\<index>
a szolgáltatáshoz definiált elemek számához<Sites>
egy nulla alapú indexre alakítja. - A WaHostBootstrapper a szerepkör típusától függően elindítja a gazdagépfolyamatot:
- Feldolgozói szerepkör: WaWorkerHost.exe elindult. A WaHostBootstrapper végrehajtja az OnStart() metódust. A visszatérés után a WaHostBootstrapper elkezdi végrehajtani a Run() metódust, majd egyidejűleg Készként jelöli meg a szerepkört, és a terheléselosztó forgatásába helyezi (ha inputEndpointok vannak definiálva). A WaHostBootsrapper ezután a szerepkör állapotának ellenőrzésére szolgál.
- Teljes IIS-webszerepkör: az aIISHost elindult. A WaHostBootstrapper végrehajtja az OnStart() metódust. A visszatérés után elkezdi végrehajtani a Run() metódust, majd egyidejűleg készként jelöli meg a szerepkört, és a terheléselosztó forgatásába helyezi. A WaHostBootsrapper ezután a szerepkör állapotának ellenőrzésére szolgál.
- A teljes IIS webes szerepkörhöz érkező webes kérések aktiválják az IIS-t a W3WP folyamat elindításához és a kérés kiszolgálásához, ugyanúgy, mint egy helyszíni IIS-környezetben.
Naplófájlok helyei
WindowsAzureGuestAgent
- C:\Logs\AppAgentRuntime.Log.
Ez a napló a szolgáltatás módosításait tartalmazza, beleértve az indításokat, a leállításokat és az új konfigurációkat. Ha a szolgáltatás nem változik, nagy időhiányra számíthat ebben a naplófájlban. - C:\Logs\WaAppAgent.Log.
Ez a napló állapotfrissítéseket és szívverési értesítéseket tartalmaz, és 2–3 másodpercenként frissül. Ez a napló egy korábbi nézetet tartalmaz a példány állapotáról, és jelzi, hogy mikor nem volt kész állapotban a példány.
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-naplók
C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1
Windows-eseménynaplók
D:\Windows\System32\Winevt\Logs