Alur kerja Windows Azure VM Architecture (klasik)

Penting

Cloud Services (klasik) sekarang tidak lagi digunakan untuk pelanggan baru dan akan dihentikan untuk semua pelanggan pada 31 Agustus 2024. Penyebaran baru sebaiknya menggunakan Azure Resource Manager yang baru berdasarkan model penyebaran Azure Cloud Services (dukungan tambahan) .

Artikel ini menyediakan gambaran umum proses alur kerja yang terjadi saat Anda menerapkan atau memperbarui sumber daya Azure seperti komputer virtual.

Catatan

Azure memiliki dua model penyebaran yang berbeda untuk membuat dan bekerja dengan sumber daya: Resource Manager dan klasik. Artikel ini membahas tentang menggunakan model penyebaran klasik.

Diagram berikut menyajikan arsitektur sumber daya Azure.

<alt Gambar tentang alur kerja Azure>

Dasar-dasar alur kerja

A. RDFE / FFE adalah jalur komunikasi dari pengguna ke fabrik. RDFE (RedDog Front End) adalah API yang diekspos secara publik yang merupakan front-end Portal Manajemen dan API Manajemen Layanan seperti Visual Studio, Azure MMC, dan sebagainya. Semua permintaan dari pengguna melalui RDFE. FFE (Fabric Front End) adalah lapisan yang menerjemahkan permintaan dari RDFE ke dalam perintah fabrik. Semua permintaan dari RDFE melalui FFE untuk mencapai pengontrol fabrik.

B. Pengontrol fabrik bertanggung jawab untuk memelihara dan memantau semua sumber daya di pusat data. Pengontrol fabrik tersebut berkomunikasi dengan agen host fabrik pada OS fabrik mengirimkan informasi seperti versi OS Tamu, paket layanan, konfigurasi layanan, dan status layanan.

C. Agen Host tinggal di OS Host dan bertanggung jawab untuk mengatur OS Tamu dan berkomunikasi dengan Agen Tamu (WindowsAzureGuestAgent) untuk memperbarui peran menuju status tujuan yang dimaksudkan dan melakukan pemeriksaan detak jantung dengan agen Tamu. Jika Agen Host tidak menerima respons detak heartbeat selama 10 menit, Agen Host menghidupkan ulang OS Tamu.

C2. WaAppAgent bertanggung jawab untuk menginstal, mengonfigurasi, dan memperbarui WindowsAzureGuestAgent.exe.

D. WindowsAzureGuestAgent bertanggung jawab atas hal-hal berikut:

  1. Mengonfigurasi OS Tamu termasuk firewall, ACL, sumber daya LocalStorage, paket dan konfigurasi layanan, dan sertifikat.
  2. Mengatur SID untuk akun pengguna yang perannya akan dijalankan.
  3. Mengkomunikasikan status peran ke fabrik.
  4. Memulai WaHostBootstrapper dan memantaunya untuk memastikan bahwa peran tersebut dalam status tujuan.

E. WaHostBootstrapper bertanggung jawab untuk:

  1. Membaca konfigurasi peran, dan memulai semua tugas dan proses yang sesuai untuk mengonfigurasi dan menjalankan peran.
  2. Memantau semua proses anaknya.
  3. Menaikkan peristiwa StatusCheck pada proses host peran.

F. IISConfigurator berjalan jika peran dikonfigurasi sebagai peran web IIS Penuh. Ini bertanggung jawab untuk:

  1. Memulai layanan IIS standar
  2. Mengonfigurasi modul penulisan ulang dalam konfigurasi web
  3. Menyiapkan AppPool untuk peran yang dikonfigurasi dalam model layanan
  4. Menyiapkan pembuatan log IIS untuk mengarahkan ke folder DiagnosticStore LocalStorage
  5. Mengonfigurasi izin dan ACL
  6. Situs web berada di %roleroot%:\sitesroot\0, dan AppPool mengarah ke lokasi ini untuk menjalankan IIS.

G. Tugas start up ditentukan oleh model peran dan dimulai oleh WaHostBootstrapper. Tugas startup dapat dikonfigurasi untuk berjalan di latar belakang secara asinkron, dan bootstrapper host akan memulai tugas startup, lalu melanjutkan ke tugas startup lainnya. Tugas permulaan juga dapat dikonfigurasi untuk dijalankan dalam mode Sederhan (default) di mana bootstrapper host akan menunggu tugas startup selesai berjalan dan mengembalikan kode keluar berhasil (0) sebelum melanjutkan ke tugas startup berikutnya.

H. Tugas-tugas ini adalah bagian dari SDK dan didefinisikan sebagai plugin dalam definisi layanan peran (.csdef). Ketika diperluas ke tugas startup, DiagnosticsAgent dan RemoteAccessAgent unik karena mereka masing-masing mendefinisikan dua tugas startup, satu reguler dan satu yang memiliki parameter /blockStartup. Tugas startup normal didefinisikan sebagai tugas startup Latar Belakang sehingga dapat berjalan di latar belakang saat peran itu sendiri sedang berjalan. Tugas startup /blockStartup didefinisikan sebagai tugas startup Sederhana sehingga WaHostBootstrapper menunggunya keluar sebelum melanjutkan. Tugas /blockStartup menunggu tugas reguler selesai menginisialisasi, lalu keluar dan memungkinkan bootstrapper host untuk melanjutkan. Hal ini dilakukan agar akses diagnostik dan RDP dapat dikonfigurasi sebelum proses peran dimulai (ini dilakukan melalui tugas /blockStartup). Ini juga memungkinkan akses diagnostik dan RDP untuk terus berjalan setelah bootstrapper host menyelesaikan tugas startup (ini dilakukan melalui tugas Normal).

I. WaWorkerHost adalah proses host standar untuk peran pekerja normal. Proses host ini meng-hosting semua DLL peran dan kode titik entri, seperti OnStart dan Jalankan.

J. WaIISHost adalah proses host untuk kode titik entri peran untuk peran web yang menggunakan IIS Penuh. Proses ini memuat DLL pertama yang ditemukan yang menggunakan kelas RoleEntryPoint dan menjalankan kode dari kelas ini (OnStart, Jalankan, OnStop). Setiap peristiwa RoleEnvironment (seperti StatusCheck dan Berubah) yang dibuat di kelas RoleEntryPoint dinaikkan dalam proses ini.

K. W3WP adalah proses pekerja IIS standar yang digunakan jika peran dikonfigurasi untuk menggunakan IIS Penuh. Ini menjalankan AppPool yang dikonfigurasi dari IISConfigurator. Setiap peristiwa RoleEnvironment (seperti StatusCheck dan Berubah) yang dibuat di sini dinaikkan dalam proses ini. Perhatikan bahwa peristiwa RoleEnvironment akan diaktifkan di kedua lokasi (WaIISHost dan w3wp.exe) jika Anda berlangganan peristiwa di kedua proses.

Proses alur kerja

  1. Pengguna membuat permintaan, seperti mengunggah file ".cspkg" dan ".cscfg", memberi tahu sumber daya untuk menghentikan atau membuat perubahan konfigurasi, dan seterusnya. Ini dapat dilakukan melalui portal Microsoft Azure atau alat yang menggunakan API Manajemen Layanan, seperti fitur Visual Studio Publish. Permintaan ini masuk ke RDFE untuk melakukan semua pekerjaan terkait langganan lalu mengkomunikasikan permintaan ke FFE. Langkah-langkah alur kerja lainnya adalah menerapkan paket baru dan memulainya.
  2. FFE menemukan kumpulan mesin yang benar (berdasarkan input pelanggan seperti, sebagai kelompok afinitas atau lokasi geografis ditambah input dari fabrik, seperti ketersediaan mesin) dan berkomunikasi dengan pengontrol fabrik master di kumpulan mesin itu.
  3. Pengontrol fabrik menemukan host yang memiliki core CPU yang tersedia (atau memutar host baru). Paket layanan dan konfigurasi disalin ke host, dan pengontrol fabrik berkomunikasi dengan agen host pada OS host untuk menerapkan paket (mengonfigurasi DIP, port, OS tamu, dan sebagainya).
  4. Agen host memulai OS Tamu dan berkomunikasi dengan agen tamu (WindowsAzureGuestAgent). Host mengirimkan heartbeat kepada tamu untuk memastikan bahwa perannya bekerja menuju keadaan tujuannya.
  5. WindowsAzureGuestAgent mengatur OS tamu (firewall, ACL, LocalStorage, dan sebagainya), menyalin file konfigurasi XML baru ke c:\Config, lalu memulai proses WaHostBootstrapper.
  6. Untuk peran web IIS Penuh, WaHostBootstrapper memulai IISConfigurator dan memberitahunya untuk menghapus AppPool yang ada untuk peran web dari IIS.
  7. WaHostBootstrapper membaca tugas Startup dari E:\RoleModel.xml dan mulai menjalankan tugas startup. WaHostBootstrapper menunggu sampai semua tugas startup Sederhana selesai dan mengembalikan pesan "berhasil".
  8. Untuk peran web IIS Penuh, WaHostBootstrapper memberi tahu IISConfigurator untuk mengonfigurasi IIS AppPool dan mengarahkan situs ke E:\Sitesroot\<index>, di mana <index> merupakan indeks berbasis nol ke dalam jumlah elemen <Sites> yang ditentukan untuk layanan.
  9. WaHostBootstrapper akan memulai proses host tergantung pada jenis peran:
    1. Peran Pekerja: WaWorkerHost.exe dimulai. WaHostBootstrapper menjalankan metode OnStart(). Setelah kembali, WaHostBootstrapper mulai menjalankan metode Jalankan(), kemudian secara bersamaan menandai peran sebagai Siap dan memasukkannya ke dalam rotasi penyeimbang beban (jika InputEndpoints ditentukan). WaHostBootsrapper kemudian masuk ke loop memeriksa status peran.
    2. Peran Web IIS Penuh: aIISHost dimulai. WaHostBootstrapper menjalankan metode OnStart(). Setelah kembali, mulai menjalankan metode Jalankan(), dan kemudian secara bersamaan menandai peran sebagai Siap dan memasukkannya ke dalam rotasi load balancer. WaHostBootsrapper kemudian masuk ke loop memeriksa status peran.
  10. Permintaan web yang masuk ke peran web IIS Penuh memicu IIS untuk memulai proses W3WP dan melayani permintaan, sama seperti di lingkungan IIS lokal.

Lokasi File Log

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Log ini berisi perubahan pada layanan termasuk mulai, berhenti, dan konfigurasi baru. Jika layanan tidak berubah, Anda akan melihat celah besar waktu dalam file log ini.
  • C:\Logs\WaAppAgent.Log.
    Log ini berisi pembaruan status dan pemberitahuan heartbeat dan diperbarui setiap 2-3 detik. Log ini berisi tampilan historis status instans dan akan memberi tahu Anda ketika instans tidak dalam status Siap.

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

Log IIS

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

Log Peristiwa Windows

D:\Windows\System32\Winevt\Logs