Przepływ pracy klasycznej architektury maszyny wirtualnej platformy Windows Azure

Ważne

Cloud Services (wersja klasyczna) jest teraz przestarzała dla nowych klientów i zostanie wycofana 31 sierpnia 2024 r. dla wszystkich klientów. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager 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 ma dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: Resource Manager i model klasyczny. Ten artykuł dotyczy klasycznego modelu wdrożenia.

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

<alt Obraz dotyczący przepływu 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 interfejsem API zarządzania usługami, 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 uzyskać dostęp do kontrolerów sieci szkieletowej.

B. Kontroler sieci szkieletowej jest odpowiedzialny za utrzymanie 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 i komunikowanie się 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. Usługa WaAppAgent jest odpowiedzialna za instalowanie, konfigurowanie i aktualizowanie WindowsAzureGuestAgent.exe.

D. Usługa WindowsAzureGuestAgent jest odpowiedzialna za następujące kwestie:

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

E. WaHostBootstrapper jest odpowiedzialny za:

  1. Odczytywanie konfiguracji roli i uruchamianie wszystkich odpowiednich zadań i procesów w celu skonfigurowania i uruchomienia roli.
  2. Monitorowanie wszystkich procesów podrzędnych.
  3. Podnoszenie 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:

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

G. Zadania uruchamiania są definiowane przez model ról i uruchamiane przez narzędzie WaHostBootstrapper. Zadania uruchamiania można skonfigurować do uruchamiania w tle asynchronicznie, a program inicjowania hosta uruchomi zadanie uruchamiania, a następnie przejdzie do innych zadań uruchamiania. Zadania uruchamiania można również skonfigurować do uruchamiania w trybie prostym (domyślnym), w którym program inicjjący hosta będzie czekał na zakończenie działania zadania uruchamiania i zwraca kod zakończenia powodzenia (0) przed przejściem do 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 w tym, że każdy 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 uruchomić w tle, gdy sama rola jest uruchomiona. Zadanie uruchamiania /blockStartup jest definiowane jako proste zadanie uruchamiania, aby program WaHostBootstrapper czekał na zakończenie przed kontynuowaniem. Zadanie /blockStartup czeka na zakończenie inicjowania zwykłego zadania, a następnie kończy działanie i zezwala programowi inicjującemu hosta na kontynuowanie. Jest to wykonywane tak, aby można było skonfigurować diagnostykę i dostęp RDP przed rozpoczęciem procesów roli (odbywa się to za pośrednictwem zadania /blockStartup). Umożliwia to również diagnostykę i dostęp RDP do kontynuowania działania po zakończeniu zadań uruchamiania hosta (odbywa się to za pomocą zadania Normalne).

Ja. 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, który jest używany, jeśli rola jest skonfigurowana do korzystania z pełnych usług IIS. Spowoduje to uruchomienie puli aplikacji skonfigurowanej z poziomu narzędzia IISConfigurator. Wszystkie zdarzenia roleEnvironment (takie jak StatusCheck i Changed), które są tutaj tworzone, są wywoływane w tym procesie. Należy pamiętać, że zdarzenia RoleEnvironment będą wyzwalane w obu lokalizacjach (WaIISHost 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. Można to zrobić za pomocą Azure Portal lub narzędzia korzystającego z interfejsu API zarządzania usługami, 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 nowego hosta). 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 E:\RoleModel.xml i rozpoczyna wykonywanie zadań uruchamiania. WaHostBootstrapper czeka na zakończenie wszystkich prostych zadań uruchamiania i zwrócenie komunikatu "powodzenie".
  8. W przypadku pełnych ról sieci Web usług IIS narzędzie WaHostBootstrapper informuje narzędzie IISConfigurator o skonfigurowaniu puli aplikacji usług IIS i wskazuje witrynę na E:\Sitesroot\<index>, gdzie <index> jest indeksem zerowym do liczby elementów zdefiniowanych <Sites> dla usługi.
  9. WaHostBootstrapper uruchomi proces hosta w zależności od typu roli:
    1. Rola procesu roboczego: WaWorkerHost.exe jest uruchomiona. WaHostBootstrapper wykonuje metodę OnStart(). Po jej 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 w pętlę sprawdzania stanu roli.
    2. Pełna rola sieci Web usług IIS: aIISHost jest uruchomiona. WaHostBootstrapper wykonuje metodę OnStart(). Po jej powrocie rozpoczyna się wykonywanie metody Run(), a następnie jednocześnie oznacza rolę jako Gotowe i umieszcza ją w rotacji modułu równoważenia obciążenia. WaHostBootsrapper następnie przechodzi w pętlę sprawdzania stanu roli.
  10. Przychodzące żądania internetowe do pełnej roli sieci Web usług IIS wyzwalają usługi IIS w celu uruchomienia procesu W3WP i obsługi żądania, 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 uruchomienia, zatrzymania 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 widok historyczny 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

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