CreateYourVPN Academy
קורס: איך זה עובד

נתיבים ואיזון עומסים

מהו נתיב ב-CreateYourVPN, איך יוצרים אחד תוך דקה, למה נתיבים ריקים שימושיים, וכיצד המערכת מחלקת משתמשים בין שרתים.

נתיב הוא הגשר בין התשתית שלכם לבין מה שהמשתמש רואה. אתם מנהלים שרתים וinbounds, בעוד שהמשתמש רואה רשימה קצרה של "שרתים" באפליקציה שלו — וכל פריט ברשימה הזו הוא למעשה נתיב.

נתיב = שורה אחת באפליקציית המשתמש

נתיב הוא קבוצה של inbounds תחת שם אחד במנוי של הלקוח. הכלל פשוט:

נתיב לא ריק אחד = פריט אחד ברשימת השרתים של המשתמש.

נתיב יכול להכיל inbound בודד — או עשרה כאלה, על שרתים שונים. המשתמש לעולם לא רואה את זה: הוא בוחר "🇺🇸 USA", ועל איזה שרת ספציפי הוא ינחת מוחלט על ידי מאזן העומסים — עוד על כך בהמשך.

מה שהמשתמש רואה בפועל הוא השם של ה-inbound שנבחר: תנו ל-inbounds שלכם שמות ברורים ("🇺🇸 New York", "🇺🇸 Dallas") וזה בדיוק מה שהמשתמש יראה.

כשאתם מחברים את השרת הראשון שלכם, המערכת יוצרת באופן עצמאי נתיב ברירת מחדל ומכניסה אליו את ה-inbound הראשון — לכן הכול עובד מיד, בלי שום הגדרה. נתיבים נכנסים לתמונה כשרוצים יותר: כמה מדינות, נתיב "streaming" ייעודי, וכן הלאה.

יצירת נתיב

בעמוד הקלאסטר, בסקשן "נתיבים", לחצו על "נתיב חדש". לאשף שלושה חלקים:

  1. כיצד הלקוחות רואים את הנתיב הזה — השם (למשל 🇺🇸 USA) ודגל. זהו "השלט" של הנתיב.
  2. אלגוריתם איזון עומסים — "הכי פחות עמוס לפי תעבורה" (ברירת המחדל) או "Round-robin". ההבדל מוסבר בהמשך.
  3. Inbounds במאגר — אילו inbounds שייכים לנתיב. הסקשן הזה אופציונלי: אפשר ליצור נתיב ריק ולמלא אותו מאוחר יותר בגרירה.

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

דיאגרמת הטופולוגיה: נתיבים במבט אחד

בעמוד הקלאסטר, נתיבים מוצגים בדיאגרמה חיה: שרתים עם ה-inbounds שלהם בצד שמאל, תיבות נתיבים בצד ימין. אפשר לגרור inbounds עם העכבר: תפסו inbound, שחררו אותו לתוך נתיב אחר — סיימתם. יש גם אזור "לא משויך" — שחררו לשם inbound כדי לנתק אותו מכל הנתיבים.

גם את תיבות הנתיבים עצמן אפשר לסדר מחדש (באמצעות ידית הגרירה או החצים) — זה סידור ויזואלי בלבד, לנוחיותכם.

נתיבים ריקים

נתיב בלי אף inbound מצויר עם מסגרת מקווקוות ואין לו "צינור" לצומת החלוקה — רמז לכך שמשתמשים לא יכולים לראות אותו. נתיבים ריקים משמשים כשומרי מקום נוחים: צרו "🇯🇵 Japan" מראש, וכשמופיע שרת יפני, גררו לתוכו inbound — הנתיב קם לתחייה.

המצב ההפוך גם הוא מודגש: אם יש לכם inbounds מחוץ לכל נתיב, הפאנל מזהיר אתכם — "inbound(s) אינם בשום נתיב — לקוחות עדיין לא יכולים לראות אותם".

איזון עומסים: מי נוחת על איזה שרת

כשמשתמש מבקש חיבור, עבור כל נתיב המערכת בוחרת inbound אחד מהמאגר — בזמן אמת, על סמך מדדי שרת עדכניים (אותם המדדים משיעור 3). ישנם שני אלגוריתמים:

"הכי פחות עמוס לפי תעבורה" (ברירת המחדל)

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

המערכת מעריכה את קיבולת הערוץ בעצמה — מתוך שיאי התעבורה האמיתית שנצפו (שיא "מתקרר" בהדרגה אם השרת לא היה עמוס זמן מה).

"Round-robin"

כלל פשוט: משתמש חדש הולך לשרת עם הכי מעט אנשים כרגע — בהתאמה למקדם של השרת. המקדם הוא משקל: שרת עם מקדם 2.0 נחשב כ"פי שניים מרווח" ויקבל בערך פי שניים משתמשים לעומת שכן עם מקדם 1.0. כך אפשר לטעון בהגינות מכונות בגדלים שונים.

אם לשרת מסוים במאגר עדיין אין הערכת קיבולת (למשל, השרת חדש לגמרי ולא ראה שיאי תעבורה), הנתיב עובר בחזרה בצורה חלקה ל-round-robin — כך שההחלטות תמיד מתקבלות על סמך הנתונים שבאמת קיימים.

מתי מתבצע איזון מחדש

כל הזמן — ובאופן אוטומטי. בחירת השרת מחושבת מחדש בכל בקשה על סמך מדדים עדכניים: אם העומס משתנה, משתמשים חדשים מתחילים לנחות על שרתים פנויים יותר. יחד עם זאת, המערכת משתדלת לשמור על אותה בחירה עבור משתמש נתון כשהתנאים שווים, כדי שה"שרת" שלו לא יקפוץ הלוך ושוב.

ורשת ביטחון נוספת: שרתים שהניטור מזהה כלא זמינים מוחרגים מהבחירה — עוד על כך בשיעור 7.

עיקרי הדברים

  • נתיב הוא ה"שלט" של קבוצת inbounds; נתיב לא ריק = שורה באפליקציית המשתמש.
  • inbound אחד שייך לנתיב אחד בלבד. inbound מחוץ לכל נתיב אינו נראה ללקוחות.
  • נתיבים ריקים הם שומר מקום לגמרי תקין: תיבה מקווקוות, מוסתרת מהמשתמשים.
  • שני אלגוריתמים: לפי רוחב פס פנוי (חכם, ברירת המחדל) וround-robin עם משקלים.
  • האיזון חי: מחושב מחדש בכל חיבור על סמך מדדים נוכחיים.

בשיעור הבא

On this page