Bagaimana Model Hosting Inti Asp.Net Digunakan dalam Aplikasi Web?

Inti Asp.net memiliki peningkatan signifikan pada model hosting. Diharapkan pada versi sebelumnya untuk meng-host aplikasi web Asp.net Core melalui server web proxy seperti IIS pada Windows, Apache atau NGINX. Namun, inti Asp.net 2.2 baru memungkinkan langsung hosting aplikasi Asp.net di Windows dalam IIS tanpa persyaratan server eksternal. Dengan demikian, ini meningkatkan throughput menggunakan mekanisme hosting In-Process sederhana.

Hosting Model dalam ASP.NET Core

ASP.NET adalah teknologi dari Microsoft yang memungkinkan Anda membuat halaman dinamis di sisi server web.

Hosting ASP.NET sepenuhnya terintegrasi dengan perangkat lunak berbasis Windows serta dengan sistem operasi itu sendiri. Teknologi ini dianggap cukup aman dan dapat diandalkan, serta mudah digunakan. Ini terutama digunakan untuk pengembangan produk dalam aplikasi.

Model hosting dalam ASP.NET Core terdiri dari dua jenis, yaitu Hosting In-process dan Hosting Out-of-process. Sebelum ASP.Net Core 2.2 hanya ada satu model hosting, yang merupakan hosting Out-of-proses tetapi karena kinerja, In-Process Hosting Model dalam versi Asp.net core 2.2 diperkenalkan.

Pengenalan Model Hosting Dalam Proses di Asp.net Core

Versi ASP.NET Core sebelumnya mengharuskan seseorang untuk meng-host aplikasi di IIS menggunakan model hosting Out-of-Process yang proksi melalui IIS. Permintaan yang mengenai IIS atau IIS Express diteruskan ke aplikasi web ASP.NET Core yang berjalan di dalam Kestrel Web Server. Namun, dengan hosting Dalam-proses yang baru, hanya satu server yang digunakan untuk hosting seperti IIS, Nginx atau Linux. Ini berarti bahwa alih-alih meneruskan permintaan ke Kestrel, implementasi Server Web baru (IISHttpServer) di-host langsung di dalam Kumpulan Aplikasi IIS, yang akan melayani permintaan. Dengan ASP.NET Core 3.1, model hosting dalam proses digunakan sebagai model default setiap kali Anda mengembangkan aplikasi baru menggunakan templat yang sudah ada.

Tampaknya, model hosting ini memiliki banyak throughput dan peningkatan kinerja dibandingkan dengan model hosting Out-Of-Process.

Model Hosting Keluar Proses

Dalam model hosting yang tidak sesuai proses, Anda dapat menggunakan server Kestrel secara langsung sebagai server yang menghadap permintaan pengguna atau Anda dapat menggunakan aplikasi ke dalam IIS yang akan bertindak sebagai server proxy dan mengirimkan permintaan ke server internal Kestrel. Dalam model hosting semacam ini, Anda memiliki dua opsi untuk hosting yaitu menggunakan Kestrel dan Proxy Server:

1. Menggunakan Kestrel

Dalam hal ini, Kestrel sendiri bertindak sebagai server tepi yang secara langsung meminta server pengguna yang berarti bahwa seseorang hanya dapat menggunakan server Kestrel untuk aplikasi tersebut.

2. Menggunakan Server Proxy

Karena keterbatasan server Kestrel, seseorang tidak dapat menggunakan ini di semua aplikasi. Dalam kasus seperti itu, seseorang harus menggunakan server yang kuat seperti IIS, Apache atau NGINX. Jadi, dalam situasi ini, server ini bertindak sebagai server proxy cadangan yang akan mengalihkan setiap permintaan ke server Kestrel internal tempat aplikasi berjalan. Di sini, dua server seperti IIS dan Kestrel sedang berjalan.

Model hosting ini adalah model default untuk semua aplikasi yang diimplementasikan sebelumnya .NET Core 2.2 versi. Salah satu batasan menggunakan jenis ini seperti lambatnya kinerja.

Pikiran terakhir:

Sesuai fakta, sebagian besar  Perusahaan pengembangan web ASP.Net   tentu ingin menggunakan model hosting In-Process. Karena mengkonsumsi lebih sedikit sumber daya dan memberikan kinerja yang baik. Karena tidak memerlukan proses tambahan untuk Kestrel dan juga menghindari komunikasi ekstra antara IIS dan Kestrel. Namun, ada beberapa kasus di mana seseorang mungkin ingin memilih hosting Out-Of-Process seperti dalam kasus hosting dari aplikasi web yang sama di Windows dan di Linux. Ketika berbicara tentang hosting aplikasi pada platform lain, Kestrel adalah mekanisme utama yang digunakan untuk menangani permintaan HTTP di semua platform.

Namun, menjalankan In-Process pada IIS adalah cara terbaik kecuali Anda memiliki persyaratan yang sangat spesifik untuk Kestrel.

Kredit gambar utama: Foto oleh Farzad Nazifi di Unsplash




Komentar (0)

Tinggalkan komentar