Bagikan melalui


Fitur Layanan Aktivasi Proses Windows (WAS)

oleh Thomas Deml

Layanan Aktivasi Proses Windows (WAS) IIS 7 adalah komponen utama yang menyediakan model proses dan fitur konfigurasi ke Aplikasi Web dan Layanan Web. Tugas utama WAS adalah mengelola Kumpulan Aplikasi. Kumpulan Aplikasi adalah kontainer konfigurasi yang mewakili lingkungan hosting untuk grup URL.

Saat klien HTTP meminta URL HTTP.SYS memetakan permintaan ke antrean permintaan Kumpulan Aplikasi. Proses pekerja untuk antrean permintaan Kumpulan Aplikasi diluaskan oleh WAS dan proses pekerja menjalankan kode yang diperlukan untuk mengirim respons. Salah satu tugas utama WAS adalah mengelola proses pekerja yang diluncurkannya, yaitu WAS memantau kesehatan mereka, mendaur ulang jika perlu dan memastikan tidak ada yang menggunakan lebih banyak sumber daya daripada yang ditentukan dalam konfigurasi AppPool yang sesuai. WAS juga merupakan arbiter dan kolektor untuk run-time dan data status, misalnya penghitung kinerja, situs dan status Kumpulan Aplikasi.

Diagram Arsitektur

IIS 7.0 ArsitekturArsitektur

Fitur Model Proses

Mendukung 10000 atau lebih situs web yang akan dihosting di komputer fisik yang sama adalah persyaratan inti untuk lingkungan hosting massal saat ini. Kode yang berjalan di situs web ini biasanya tidak diuji dengan baik, jika sama sekali. Untuk mendukung persyaratan ini WAS perlu menyediakan model proses yang kuat dan manajemen sumber daya yang efisien.

Manajemen Sumber Daya yang Efisien

Aktivasi Sesuai Permintaan

Sumber daya seperti RAM dan CPU langka dalam skenario multi-penyewa. WAS akan memulai proses pekerja IIS hanya setelah permintaan untuk situs web atau aplikasi web tertentu tiba.

Batas waktu diam

Karena sumber daya biasanya langka WAS dapat mematikan aplikasi web berdasarkan batas waktu diam yang dapat dikonfigurasi.

Pemantauan Kesehatan

Untuk memastikan kesehatan mereka WAS memantau proses pekerja yang diluncurkannya. Pesan kesehatan dikirim secara berkala ke setiap proses pekerja yang sedang berjalan. Jika proses pekerja tidak merespons dalam interval waktu yang dapat dikonfigurasi, proses pekerja akan didaur ulang atau dimatikan. Dengan cara ini kebuntuan yang tidak terdeteksi dalam proses pekerja diperbaiki secara otomatis dengan memulai ulang proses pekerja.

Batas Startup

Bagian dari fitur Rapid-Fail Protection adalah batas Startup. Jika proses pekerja tidak melaporkan kembali ke WAS dalam batas startup yang dapat dikonfigurasi, proses tersebut akan dimatikan dan penghitung Perlindungan Cepat-Gagal ditingkatkan. Kumpulan Aplikasi dihentikan, yaitu memulai ulang proses pekerja tidak akan dicoba lagi, jika penghitung Perlindungan Cepat-Gagal mencapai batas yang dapat dikonfigurasi dalam batas waktu yang dapat dikonfigurasi. Ini mencegah skenario di mana proses pekerja macet atau crash selama startup.

Batas Matikan

Proses pekerja juga harus dimatikan dalam batas yang dapat dikonfigurasi. Jika pematian tidak terjadi saat ini proses pekerja dihentikan oleh WAS. Ini mencegah penggunaan berlebih sumber daya karena proses tergantung pada fase shut-down mereka. Pengaturan matikan tambahan memungkinkan executable dimulai (misalnya debugger) ketika pematian tidak selesai dalam waktu yang dialokasikan.

Afinitas CPU

Pengaturan konfigurasi memungkinkan WAS untuk memulai proses pekerja yang diafinisisikan ke satu atau beberapa CPU. Ini mencegah penyewa mengganggu satu sama lain jika mereka berbagi komputer fisik yang sama.

Profil Pengguna

WAS dapat memulai proses pekerja dengan atau tanpa memuat profil pengguna.

Keamanan

Identitas Kumpulan Aplikasi

Proses pekerja IIS dapat berjalan sebagai akun kustom, akun bawaan (LocalService, LocalSystem, NetworkService), atau identitas kumpulan aplikasi (default). Menggunakan identitas kumpulan aplikasi disarankan karena tidak memerlukan manajemen kata sandi dan identitas kumpulan aplikasi yang sudah mematuhi prinsip hak istimewa paling sedikit. Akun bawaan juga tidak memerlukan manajemen kata sandi. Jika identitas pengguna kustom digunakan, kata sandi akan dienkripsi secara otomatis. Pengaturan konfigurasi dapat direplikasi ke beberapa komputer dengan berbagi kunci enkripsi konfigurasi di seluruh komputer.

Fitur Objek Pekerjaan

Objek pekerjaan memungkinkan administrator membatasi proses pekerja ke batas CPU tertentu. Tindakan yang dapat dikonfigurasi diambil jika batas CPU ini terlampaui. Objek pekerjaan juga akan memastikan bahwa proses yang dihasilkan oleh proses pekerja dihentikan.

Isolasi dan Keamanan Konfigurasi

Sebelum WAS memulai Kumpulan Aplikasi dan proses pekerjanya, ia menghasilkan file konfigurasi unik untuk Kumpulan Aplikasi ini. Kumpulan Aplikasi juga memiliki pengaturan konfigurasi untuk menjalankan Kumpulan Aplikasi di bawah identitas unik. Isolasi dapat dicapai meskipun identitas yang sama digunakan. WAS membuat Pengidentifikasi Keamanan (SID) unik untuk setiap Kumpulan Aplikasi. File konfigurasi Kumpulan Aplikasi kemudian diamankan dengan SID unik ini. Ini memastikan bahwa file konfigurasi Kumpulan Aplikasi hanya dapat dibaca oleh Administrator dan Kumpulan Aplikasi itu sendiri. Bahkan izin file dapat dikonfigurasi menggunakan SID unik ini.

Diagnostik dan Pemantauan

Pencatatan Aktivitas

Peristiwa mengenai konfigurasi, daur ulang, pengaktifan, atau penonaktifan proses pekerja yang tidak valid dilaporkan ke Eventlog Sistem.

Permintaan yang Sedang Dijalankan

WAS mengekspos antarmuka kontrol run-time dan status yang memungkinkan skrip dan alat untuk mengkueri permintaan yang saat ini dijalankan dari proses pekerja tertentu. Ini berguna untuk menemukan permintaan yang macet atau permintaan yang membutuhkan waktu sangat lama untuk diselesaikan.

Penghitung Kinerja

Semua penghitung kinerja IIS disalurkan melalui WAS. WAS mengumpulkan penghitung kinerja ini karena penghitung IIS berbasis situs dan aplikasi web dapat hidup di Kumpulan Aplikasi yang berbeda.

Mendaur ulang

Daur ulang memungkinkan refresh proses pekerja tanpa kehilangan satu permintaan karena waktu henti. Ini dilakukan melalui fitur yang disebut "daur ulang tumpang tindih".

Daur Ulang Tumpang Tindih

WAS melakukan ini dengan menelurkan proses pekerja baru sejajar dengan yang lama yang masih menangani permintaan. Setelah proses pekerja baru habis, proses tersebut mulai mengambil permintaan dari antrean permintaan sementara proses pekerja lama diinstruksikan oleh WAS untuk berhenti mengambil permintaan. Setelah proses pekerja lama selesai, semua permintaan yang dijalankan akan dimatikan. Fitur ini disebut "daur ulang yang tumpang tindih". Ini memastikan bahwa tidak ada permintaan yang hilang selama daur ulang.

Konfigurasi Daur Ulang

Parameter daur ulang dapat dikonfigurasi dalam sistem konfigurasi IIS.

Daur Ulang Terjadwal

Pelanggan mungkin ingin mendaur ulang aplikasi mereka berdasarkan jadwal reguler. Melalui daur ulang pengaturan konfigurasi dapat dijadwalkan secara berkala, misalnya setiap 4 jam, setiap hari pada pukul 01.00, dll.

Daur Ulang berdasarkan Konsumsi Memori

Aplikasi mungkin membocorkan memori dari waktu ke waktu. WAS dapat memantau konsumsi memori setiap proses pekerja untuk memastikan bahwa tidak ada proses pekerja yang menggunakan lebih dari batas yang telah dikonfigurasi sebelumnya. Mencapai ambang memori virtual atau privat yang dikonfigurasi akan memicu daur ulang proses pekerja.

Daur Ulang Berdasarkan Jumlah Permintaan

Daur ulang juga dapat dikonfigurasi berdasarkan jumlah permintaan yang ditangani proses pekerja tertentu.

Daur Ulang Kustom

Kode kustom dapat mengkustomisasi statistik kesehatan dan memicu daur ulang melalui panggilan API ke RUN-time WAS dan API status.

Proses Yatim Piatu

Beberapa kesalahan hanya terjadi di lingkungan produksi. Proses membunuh pekerja memastikan waktu aktif tetapi pemecahan masalah kesalahan ini menjadi sulit, misalnya jika proses pekerja yang gagal perlu di-debug. Fitur proses yatim piatu dalam WAS memungkinkan proses pekerja didaur ulang tanpa membunuh proses pekerja yang gagal. Sekarang debugger dapat dilampirkan ke dalamnya. Pengaturan proses tanpa induk tambahan memungkinkan eksekusi proses (misalnya debugger) jika yatim piatu terjadi.

Manajemen Status Kumpulan Aplikasi

Kumpulan Aplikasi dapat dihentikan, didaur ulang, atau dimulai melalui API yang tersedia untuk umum, misalnya jika aplikasi harus diambil secara offline atau jika daur ulang harus dilakukan berdasarkan parameter yang berbeda dari apa yang dapat dikonfigurasi dalam file applicationhost.config.

Fitur WAS Tambahan

Fitur Load-Balancer

HTTP.SYS masih mendengarkan di jaringan dan akan mengembalikan pesan kesalahan HTTP 500 jika permintaan tidak diambil oleh Kumpulan Aplikasi. Ini adalah masalah karena untuk Load Balancer Level 5 (TCP/IP) kesalahan HTTP 500 terlihat seperti koneksi TCP/IP yang valid. Pengaturan konfigurasi WAS dapat mengaktifkan HTTP.SYS untuk menolak koneksi alih-alih mengirim respons HTTP.

WAS dapat dikonfigurasi untuk memulai proses pekerja dengan pengaturan berikut:

Dukungan WoW64

WAS dapat memulai proses pekerja 32-Bit atau 64-Bit.

.NET Framework Pramuat

WAS dapat dikonfigurasi untuk memuat versi .NET Framework tertentu. Ini dapat membuat pemecahan masalah konflik versi jauh lebih mudah.

Web Gardens

Web Garden adalah istilah untuk Kumpulan Aplikasi yang berjalan dengan beberapa proses pekerja. Permintaan didistribusikan di antara instans proses pekerja ini menggunakan mekanisme round-robin.

Dukungan Multi Protokol WAS

WAS tidak hanya menghosting tumpukan HTTP. Ini juga dapat menghosting protokol lain melalui Listen Adapter dan Worker Process Framework. Layanan WCF memanfaatkan dukungan Multi-Protokol WAS. Protokol WCF dilengkapi dengan Listener mereka sendiri (misalnya NET. TCP, NET. MSMQ atau NET. Pendengar PIPA). Listener ini terhubung ke WAS menggunakan Listener Adapter Interfaces WAS menyediakan.

Protokol aplikasi yang memanfaatkan infrastruktur ini dapat menghosting kode aplikasi kustom di Domain Aplikasi .NET yang sama dengan aplikasi ASP.NET reguler. Mereka juga dapat memanfaatkan layanan independen protokol yang disediakan lingkungan hosting ASP.NET, misalnya kompilasi sesuai permintaan, dukungan konfigurasi, dll.