Udostępnij przez


Proces klasycznej architektury maszyn wirtualnych 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 infrastruktury. 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 (warstwa przodująca sieci szkieletowej) to warstwa, która tłumaczy żądania z RDFE na polecenia dla sieci szkieletowej. Wszystkie żądania z RDFE przechodzą przez FFE, aby dotrzeć do kontrolerów sieci.

B. Kontroler zasobów 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 sieciowej, list kontroli dostępu (ACL), lokalnych zasobów pamięci, konfiguracji pakietu usług 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, aby upewnić się, że rola osiąga stan docelowy.

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.
  • Wywołanie zdarzenia StatusCheck w procesie hosta roli.

F. IISConfigurator uruchamiany jest, jeśli rola jest skonfigurowana jako rola sieci Web w pełnym 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 w IIS w celu skierowania do folderu DiagnosticStore LocalStorage
  • Konfigurowanie uprawnień i list kontroli dostępu (ACL)
  • Witryna internetowa znajduje się w folderze %roleroot%:\sitesroot\0, a pula aplikacji wskazuje tę lokalizację do uruchamiania IIS.

G. Wzorzec 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 w zadania uruchamiania DiagnosticsAgent i RemoteAccessAgent są unikatowe, ponieważ każdy z nich definiuje dwa zadania uruchamiania: jedno zwykłe i jedno z parametrem /blockStartup. 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 startowe, aby program WaHostBootstrapper czekał na jego zakończenie przed kontynuowaniem. Zadanie /blockStartup czeka na ukończenie inicjowania zwykłego zadania, a następnie kończy działanie i zezwala programowi rozruchowemu 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. Proces ten umożliwia również diagnostykę i dostęp RDP do kontynuowania działania po zakończeniu przez program uruchamiający hosta zadań uruchamiania, co odbywa się za pomocą zadania Normalne.

I. WaWorkerHost to standardowy proces dla zwykłych ról roboczych. Proces ten zarządza wszystkimi bibliotekami DLL roli oraz kodem punktu startowego, takimi jak metody OnStart i Run.

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

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 są tworzone tutaj, 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 jest kierowane do RDFE, aby wykonać wszystkie czynności związane z subskrypcją, a następnie komunikować to żą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 systemu znajduje hosta, który ma dostępne rdzenie CPU (lub uruchamia nowego hosta). Pakiet usługi i konfiguracja są kopiowane do hosta, a kontroler fabric komunikuje się z agentem hosta na systemie operacyjnym hosta w celu wdrożenia pakietu (konfiguracji adresów IP, portów, systemu operacyjnego gościa itp.).
  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 dla usług IIS program WaHostBootstrapper uruchamia program IISConfigurator i poleca mu usunięcia 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, aż wszystkie proste zadania startowe zakończą się i zostanie zwrócony komunikat o sukcesie.
  8. W przypadku pełnych ról sieci Web usług IIS, WaHostBootstrapper informuje IISConfigurator o skonfigurowaniu puli aplikacji IIS i kieruje witrynę na E:\Sitesroot\<index>, gdzie <index> jest zerowym indeksem w liczbie elementów <Sites> zdefiniowanych dla usługi.
  9. Program WaHostBootstrapper uruchamia proces hosta w zależności od typu roli.
    1. Rola pracownika: WaWorkerHost.exe jest uruchomiony. WaHostBootstrapper wykonuje metodę OnStart(). Po powrocie program WaHostBootstrapper rozpoczyna wykonywanie metody Run(), a następnie jednocześnie oznacza rolę jako gotową i umieszcza ją w rotacji balancera obciążenia (jeśli są zdefiniowane InputEndpoints). WaHostBootsrapper następnie przechodzi do pętli sprawdzania stanu roli.
    2. Pełna rola sieci Web IIS: aIISHost jest uruchomiony. 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 IIS wyzwalają uruchomienie procesu W3WP i obsługę żądania, tak samo jak w lokalnym środowisku 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 log zawiera historyczny przegląd stanu wystąpienia i informuje, kiedy wystąpienie nie było w stanie gotowości.

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

dzienniki usług IIS

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

dzienniki zdarzeń systemu Windows

D:\Windows\System32\Winevt\Logs