Udostępnij za pośrednictwem


Przepływ pracy klasycznej architektury maszyny wirtualnej platformy Microsoft Azure

Ważne

Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla wszystkich klientów od 1 września 2024 r. Wszystkie istniejące uruchomione wdrożenia zostaną zatrzymane i zamknięte przez firmę Microsoft, a dane zostaną trwale utracone od października 2024 r. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager w usługach Azure Cloud Services (wsparcie dodatkowe).

Ten artykuł zawiera omówienie procesów przepływu pracy występujących podczas wdrażania lub aktualizowania zasobu platformy Azure, takiego jak maszyna wirtualna.

Uwaga

Platforma Azure oferuje dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: model wdrażania przy użyciu usługi Azure Resource Manager i model klasyczny. Ten artykuł dotyczy klasycznego modelu wdrożenia.

Na poniższym diagramie przedstawiono architekturę zasobów platformy Azure.

<alt Obraz przedstawiający przepływ pracy platformy Azure>

Podstawy przepływu pracy

A. RDFE / FFE to ścieżka komunikacji od użytkownika do sieci szkieletowej. RdFE (RedDog Front End) to publicznie uwidoczniony interfejs API, który jest frontonem portalu zarządzania i klasycznym interfejsem API modelu wdrażania, takim jak Visual Studio, Azure MMC itd. Wszystkie żądania od użytkownika przechodzą przez rdFE. FFE (fronton sieci szkieletowej) to warstwa, która tłumaczy żądania z rdFE na polecenia sieci szkieletowej. Wszystkie żądania z rdFE przechodzą przez FFE, aby dotrzeć do kontrolerów sieci szkieletowej.

B. Kontroler sieci szkieletowej jest odpowiedzialny za utrzymywanie i monitorowanie wszystkich zasobów w centrum danych. Komunikuje się z agentami hosta sieci szkieletowej w systemie operacyjnym sieci szkieletowej wysyłającym informacje, takie jak wersja systemu operacyjnego gościa, pakiet usługi, konfiguracja usługi i stan usługi.

C. Agent hosta działa w systemie operacyjnym hosta i jest odpowiedzialny za skonfigurowanie systemu operacyjnego gościa. Obsługuje również komunikację z agentem gościa (WindowsAzureGuestAgent) w celu zaktualizowania roli w kierunku zamierzonego stanu celu i przeprowadzania kontroli pulsu z agentem gościa. Jeśli agent hosta nie otrzyma odpowiedzi pulsu przez 10 minut, agent hosta ponownie uruchomi system operacyjny gościa.

C2. Aplikacja WaAppAgent jest odpowiedzialna za instalowanie, konfigurowanie i aktualizowanie WindowsAzureGuestAgent.exe.

D. WindowsAzureGuestAgent jest odpowiedzialny za następujące zadania:

  • Konfigurowanie systemu operacyjnego gościa, w tym zapory, list ACL, zasobów LocalStorage, pakietu usługi i konfiguracji oraz certyfikatów.
  • Konfigurowanie identyfikatora SID dla konta użytkownika, w ramach którego działa rola.
  • Komunikowanie stanu roli z siecią szkieletową.
  • Uruchamianie narzędzia WaHostBootstrapper i monitorowanie go w celu upewnienia się, że rola jest w stanie celu.

E. Aplikacja WaHostBootstrapper jest odpowiedzialna za:

  • Odczytywanie konfiguracji roli i uruchamianie wszystkich odpowiednich zadań i procesów w celu skonfigurowania i uruchomienia roli.
  • Monitorowanie wszystkich procesów podrzędnych.
  • Podniesienie zdarzenia StatusCheck w procesie hosta roli.

F. Narzędzie IISConfigurator jest uruchamiane, jeśli rola jest skonfigurowana jako pełna rola sieci Web usług IIS. Odpowiada za:

  • Uruchamianie standardowych usług IIS
  • Konfigurowanie modułu ponownego zapisywania w konfiguracji internetowej
  • Konfigurowanie puli aplikacji dla skonfigurowanej roli w modelu usługi
  • Konfigurowanie rejestrowania usług IIS w celu wskazania folderu DiagnosticStore LocalStorage
  • Konfigurowanie uprawnień i list ACL
  • Witryna internetowa znajduje się w folderze %roleroot%:\sitesroot\0, a pula aplikacji wskazuje tę lokalizację do uruchamiania usług IIS.

G. Model ról definiuje zadania uruchamiania, a program WaHostBootstrapper uruchamia je. Zadania uruchamiania można skonfigurować do uruchamiania w tle asynchronicznie, a program uruchamiacy hosta uruchamia zadanie uruchamiania, a następnie przechodzi do innych zadań uruchamiania. Zadania uruchamiania można również skonfigurować do uruchamiania w trybie prostym (domyślnym). W trybie prostym program uruchamiający hosta czeka na zakończenie działania zadania uruchamiania i zwraca kod zakończenia powodzenia (0) przed kontynuowaniem następnego zadania uruchamiania.

H. Te zadania są częścią zestawu SDK i są definiowane jako wtyczki w definicji usługi roli (csdef). Po rozwinięciu zadań uruchamiania agent DiagnosticsAgent i RemoteAccessAgent są unikatowe, ponieważ każdy z nich definiuje dwa zadania uruchamiania, jedną zwykłą i jedną, która ma /blockStartup parametr. Normalne zadanie uruchamiania jest definiowane jako zadanie uruchamiania w tle, aby można je było uruchamiać w tle, gdy sama rola jest uruchomiona. Zadanie uruchamiania /blockStartup jest zdefiniowane jako proste zadanie uruchamiania, aby program WaHostBootstrapper czekał na zakończenie przed kontynuowaniem. Zadanie /blockStartup czeka na ukończenie inicjowania zwykłego zadania, a następnie kończy działanie i zezwala programowi uruchamiania hosta na kontynuowanie. Ten proces jest wykonywany, aby można było skonfigurować diagnostykę i dostęp RDP przed rozpoczęciem procesów roli, co odbywa się za pomocą zadania /blockStartup. Ten proces umożliwia również diagnostykę i dostęp RDP do kontynuowania działania po zakończeniu zadań uruchamiania przez program uruchamiający hosta, który odbywa się za pomocą zadania Normalne.

I. WaWorkerHost to standardowy proces hosta dla normalnych ról procesów roboczych. Ten proces hosta hostuje wszystkie biblioteki DLL roli i kod punktu wejścia, takie jak OnStart i Run.

J. WaIISHost to proces hosta kodu punktu wejścia roli dla ról sieci Web korzystających z pełnych usług IIS. Ten proces ładuje pierwszą bibliotekę DLL, która używa klasy RoleEntryPoint i wykonuje kod z tej klasy (OnStart, Run, OnStop). W tym procesie są wywoływane wszystkie zdarzenia roleEnvironment (takie jak StatusCheck i Changed), które są tworzone w klasie RoleEntryPoint.

K. W3WP to standardowy proces roboczy usług IIS używany, jeśli rola jest skonfigurowana do korzystania z pełnych usług IIS. Ten proces uruchamia pulę aplikacji skonfigurowaną z poziomu narzędzia IISConfigurator. Wszystkie zdarzenia roleEnvironment (takie jak StatusCheck i Changed), które zostały utworzone w tym miejscu, są wywoływane w tym procesie. Zdarzenia RoleEnvironment są uruchamiane w obu lokalizacjach (WaISHost i w3wp.exe), jeśli subskrybujesz zdarzenia w obu procesach.

Procesy przepływu pracy

  1. Użytkownik wysyła żądanie, takie jak przekazywanie plików ".cspkg" i ".cscfg", informowanie zasobu o zatrzymaniu lub wprowadzeniu zmiany konfiguracji itd. Żądania można wysyłać za pośrednictwem witryny Azure Portal lub narzędzi korzystających z klasycznego interfejsu API modelu wdrażania, takiego jak funkcja publikowania programu Visual Studio. To żądanie przechodzi do rdFE, aby wykonać całą pracę związaną z subskrypcją, a następnie przekazać żądanie do FFE. Pozostałe kroki przepływu pracy to wdrożenie nowego pakietu i uruchomienie go.
  2. FFE znajduje poprawną pulę maszyn (na podstawie danych wejściowych klienta, takich jak grupa koligacji lub lokalizacja geograficzna oraz dane wejściowe z sieci szkieletowej, takie jak dostępność maszyny) i komunikuje się z głównym kontrolerem sieci szkieletowej w tej puli maszyn.
  3. Kontroler sieci szkieletowej znajduje hosta, który ma dostępne rdzenie procesora CPU (lub uruchamia nowy host). Pakiet usługi i konfiguracja są kopiowane do hosta, a kontroler sieci szkieletowej komunikuje się z agentem hosta w systemie operacyjnym hosta w celu wdrożenia pakietu (skonfiguruj adresy IP, porty, system operacyjny gościa itd.).
  4. Agent hosta uruchamia system operacyjny gościa i komunikuje się z agentem gościa (WindowsAzureGuestAgent). Host wysyła pulsy do gościa, aby upewnić się, że rola pracuje nad jego stanem celu.
  5. WindowsAzureGuestAgent konfiguruje system operacyjny gościa (zapora, listy ACL, localStorage itd.), kopiuje nowy plik konfiguracji XML do c:\Config, a następnie uruchamia proces WaHostBootstrapper.
  6. W przypadku pełnych ról sieci Web usług IIS program WaHostBootstrapper uruchamia program IISConfigurator i informuje go o usunięciu wszystkich istniejących puli aplikacji dla roli sieci Web z usług IIS.
  7. Narzędzie WaHostBootstrapper odczytuje zadania uruchamiania z folderu E:\RoleModel.xml i rozpoczyna wykonywanie zadań uruchamiania. Narzędzie WaHostBootstrapper czeka na zakończenie wszystkich prostych zadań uruchamiania i zwrócenie komunikatu o powodzeniu.
  8. W przypadku pełnych ról sieci Web usług IIS narzędzie WaHostBootstrapper informuje usługę IISConfigurator, aby skonfigurować pulę aplikacji usług IIS i wskazuje witrynę na E:\Sitesroot\<index>, gdzie <index> jest indeksem opartym na zerze na liczbie elementów zdefiniowanych <Sites> dla usługi.
  9. Program WaHostBootstrapper uruchamia proces hosta w zależności od typu roli:
    1. Rola procesu roboczego: WaWorkerHost.exe jest uruchomiona. WaHostBootstrapper wykonuje metodę OnStart(). Po powrocie program WaHostBootstrapper rozpoczyna wykonywanie metody Run(), a następnie jednocześnie oznacza rolę jako Gotowe i umieszcza ją w rotacji modułu równoważenia obciążenia (jeśli są zdefiniowane punkty InputEndpoint). WaHostBootsrapper następnie przechodzi do pętli sprawdzania stanu roli.
    2. Pełna rola sieci Web usług IIS: aIISHost jest uruchomiona. WaHostBootstrapper wykonuje metodę OnStart(). Po powrocie rozpoczyna wykonywanie metody Run(), a następnie oznacza rolę jako Gotowe i umieszcza ją w rotacji modułu równoważenia obciążenia. WaHostBootsrapper następnie przechodzi do pętli sprawdzania stanu roli.
  10. Przychodzące żądania internetowe do pełnej roli sieci Web usług IIS wyzwalają usługi IIS, aby uruchomić proces W3WP i obsłużyć żądanie, tak samo jak w lokalnym środowisku usług IIS.

Lokalizacje plików dziennika

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Ten dziennik zawiera zmiany w usłudze, w tym uruchamianie, zatrzymywanie i nowe konfiguracje. Jeśli usługa nie ulegnie zmianie, możesz spodziewać się dużych przerw w czasie w tym pliku dziennika.
  • C:\Logs\WaAppAgent.Log.
    Ten dziennik zawiera aktualizacje stanu i powiadomienia pulsu i jest aktualizowany co 2–3 sekundy. Ten dziennik zawiera historyczny widok stanu wystąpienia i informuje, kiedy wystąpienie nie było w stanie Gotowe.

WaHostBootstrapper

C:\Resources\Directory\<deploymentID>.<role>.DiagnosticStore\WaHostBootstrapper.log

WaIISHost

C:\Resources\Directory\<deploymentID>.<role>\WaIISHost.log

Narzędzie IISConfigurator

C:\Resources\Directory\<deploymentID>.<role>\IISConfigurator.log

Dzienniki usług IIS

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

Dzienniki zdarzeń systemu Windows

D:\Windows\System32\Winevt\Logs