כיצד מודל אירוח ליבות Asp.Net משמש ביישומי אינטרנט?



ליבת Asp.net יש שיפור משמעותי לדגם האירוח. בגירסאות הקודמות היה צפוי לארח את יישומי האינטרנט Asp.net Core דרך שרתי רשת פרוקסי כמו IIS בחלונות, אפאצ'י או NGINX. עם זאת, ליבת Asp.net החדשה 2.2 מאפשרת לארח ישירות את יישום Asp.net במערכת Windows בתוך IIS ללא דרישות השרת החיצוני. לפיכך, זה מגדיל את התפוקה באמצעות מנגנון אירוח פשוט בתהליך.

אירוח מודלים ב- ASP.NET Core

ASP.NET היא טכנולוגיה מ- Microsoft המאפשרת לך ליצור דפים דינמיים בצד שרת האינטרנט.

אירוח ASP.NET משולב במלואו עם תוכנה מבוססת Windows כמו גם עם מערכת ההפעלה עצמה. טכנולוגיה זו נחשבת די בטוחה ואמינה, כמו גם קלה לשימוש. הוא משמש בעיקר לפיתוח מוצרים בתוך האפליקציה.

דגמי אירוח ב- ASP.NET Core הם משני סוגים, כלומר אירוח בתהליך ואירוח מחוץ לתהליך. לפני ASP.Net Core 2.2 היה רק ​​מודל אירוח אחד, שהוא אירוח מחוץ לתהליך, אך עקב הביצועים, מוצג מודל אירוח בתהליך בגירסאות Core 2.2 של Asp.net.

הצגת מודל אירוח בתהליך ב Asp.net Core

הגרסאות הקודמות של ASP.NET Core דרשו מאחת לארח את היישום ב- IIS באמצעות מודל אירוח מחוץ לתהליך המקיים באמצעות IIS. בקשות שנפגעו ב- IIS או IIS Express מועברות ליישום האינטרנט ASP.NET Core הפועל בתוך שרת האינטרנט Kestrel. עם זאת, עם האירוח החדש בתהליך, שרת אחד בלבד משמש לאירוח כמו IIS, Nginx או Linux. המשמעות היא שבמקום להעביר בקשות ל- Kestrel, יישום חדש של שרת אינטרנט (IISHttpServer) מתארח ישירות בתוך מאגר היישומים של IIS, שישרת את הבקשה. באמצעות ASP.NET Core 3.1, מודל אירוח בתהליך משמש כמודל ברירת מחדל בכל פעם שאתה מפתח יישום חדש באמצעות תבנית קיימת.

ככל הנראה, לדגם אירוח זה יש תפוקה ושיפור ביצועים גבוהים בהשוואה לדגם האירוח מחוץ לתהליך.

דגם אירוח מחוץ לתהליך

בדגמי אירוח מחוץ לתהליך, אתה יכול להשתמש בשרת Kestrel ישירות כבקשת משתמש הפונה לשרת או שאתה יכול לפרוס את היישום ל- IIS אשר ישמש כשרת proxy וישלח בקשות לשרת Kestrel הפנימי. במודל אירוח מסוג זה, עומדות בפניכם שתי אפשרויות לאירוח, כלומר באמצעות Kestrel ושרת פרוקסי:

1. שימוש בקסטרל

בכך, Kestrel עצמה משמשת כשרת קצה אשר מבקש ישירות את שרת המשתמש, מה שאומר שאפשר להשתמש רק בשרת Kestrel ליישום.

2. שימוש בשרת פרוקסי

בגלל המגבלות של שרת Kestrel, אי אפשר להשתמש בזה בכל היישומים. במקרים כאלה צריך להשתמש בשרתים חזקים כמו IIS, Apache או NGINX. כך, במצב זה, שרת זה משמש כשרת פרוקסי רזרבה שיפנה כל בקשה לנתק Kestrel הפנימי בו היישום פועל. כאן פועלים שני שרתים כמו IIS ו- Kestrel.

מודל אירוח זה הוא מודל ברירת מחדל עבור כל היישומים שהוטמעו קודם לכן בגרסת NET Core 2.2. אחת המגבלות בשימוש בסוג זה כגון איטיות ביצועים.

מחשבות אחרונות:

בהתאם לעובדות, מרבית חברות פיתוח האתרים ASP.Net בהחלט מעוניינות להשתמש במודל האירוח בתהליך. מכיוון שהיא צורכת פחות משאבים ומספקת ביצועים טובים. מכיוון שהוא אינו זקוק לתהליך נוסף עבור קסטרל והוא גם נמנע מתקשורת נוספת בין ה- IIS לקסטרל. עם זאת, ישנם מקרים שבהם תרצה לבחור אירוח מחוץ לתהליך, למשל במקרה של אירוח של אותה יישום אינטרנט בחלונות ובלינוקס. כשמדברים על אירוח היישום בפלטפורמות אחרות, Kestrel הוא המנגנון העיקרי המשמש לטיפול בבקשות HTTP בכל הפלטפורמות.

עם זאת, הפעלת In-Process ב- IIS היא הדרך הטובה ביותר אלא אם כן יש לך דרישה מאוד ספציפית לקסטרל.

קרדיט תמונה ראשית: צילום פרזד נאסיפי ב- Unsplash




הערות (0)

השאר תגובה