סקירה כללית על מיגרציה

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

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

השוואה בין מאזני עומסים קלאסיים של אפליקציות (ALB) לבין מאזני עומסים גלובליים חיצוניים של אפליקציות (ALB)

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

הבדלים בתכונות

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

הבדלים במישור הנתונים

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

אירוע תגובה של מאזן עומסים קלאסי של אפליקציות (ALB) תגובה של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
קודי סטטוס/שגיאה
כל הקצוות העורפיים לא תקינים החזרת HTTP 502 הפונקציה מחזירה HTTP 503
הבקשה משתמשת בהצפנת SSL אסורה החזרת HTTP 502 הפונקציה מחזירה HTTP 503
איפוס מוקדם של חיבור במעלה הזרם על ידי ה-Backend החזרת HTTP 502 הפונקציה מחזירה HTTP 503
שדרוג החיבור נכשל (לדוגמה, במהלך שדרוג ל-Websockets) הפונקציה מחזירה HTTP 400 החזרת HTTP 403
הכותרת גדולה מדי התגובה היא HTTP 413 הפונקציה מחזירה HTTP 431
מכסות ומגבלות
הגדרת מפת URL יש הבדלים משמעותיים במגבלות ההגדרה של מפת URL בין שני מאזני העומסים. פרטים נוספים זמינים במאמר בנושא מכסות: מיפוי כתובות URL.
Header handling
הבקשה משתמשת בשיטת HTTP מותאמת אישית ללא גוף הוספת הכותרת Transfer Encoding: Chunked לבקשה שנשלחה לשרת העורפי הוספת הכותרת Content-Length: 0 לבקשה שנשלחת לשרת העורפי
הפורמט של הכותרת X-Forwarded-For שנוספת לבקשות שנשלחות אל ה-backend משתמשים בתו המפריד ', ' בין כתובות ה-IP הפרדה בין כתובות ה-IP באמצעות התו המפריד ',' (ללא רווח אחרי הפסיק)
שימור גודל האותיות בכותרת הרישיות של הכותרת נשמרת כל מפתחות הכותרות מומרים לאותיות קטנות
כותרות חוזרות עם אותו שם מותר אפשר לשלב כותרות חוזרות בכותרת אחת, כשהערכים מתווספים לפי הסדר ומופרדים בפסיקים, כפי שמאפשר RFC 7230.
(HTTP/1.1 בלבד) שם כותרת לא תקין (לדוגמה, תווים לא נתמכים בכותרת) מותר (ל-HTTP/1.1) הפונקציה מחזירה HTTP 502 (עבור HTTP/1.1)
(HTTP/1.1 בלבד) כותרת Content-Length חוזרת (אבל זהה) בבקשה מותר (ל-HTTP/1.1) הפונקציה מחזירה HTTP 502 (עבור HTTP/1.1)
(HTTP/1.1 בלבד) כמה מארחים בכותרת כשמוסיפים 2 מארחים או יותר, והמארח הראשון תקין, הכותרת מתקבלת אם מוסיפים 2 מארחים או יותר, ואחד מהם לא תקין, מאזן העומסים מחזיר את השגיאה HTTP 502.
(רק ב-HTTP/1.1) Connection: Keep-Alive header הוספת Keep-Alive header לבקשות שנשלחות לשרת העורפי כברירת מחדל לא מוסיף את הכותרת הזו כברירת מחדל
טיפול בבקשות
לוכסנים הפוכים בבקשה כתובת ה-URL לא השתנתה הופך לקו נטוי
מיזוג של קווים אלכסוניים כפולים בבקשה העליות לא אוחדו מיזוג של קווים אלכסוניים
‫`#` בנתיב הבקשה מותר הפונקציה מחזירה HTTP 400
(HTTP/1.1 בלבד) תווים לא חוקיים בנתיב הבקשה (לדוגמה, ‎`\\x7f\\x7f`) מותר (ל-HTTP/1.1) הפונקציה מחזירה HTTP 502 (עבור HTTP/1.1)
חלוקת התנועה (הגדרת מפת URL)
בקשת הלקוח כוללת מספר לניוד המערכת מתעלמת ממספר היציאה גם אם הגדרתם מארחים עם יציאות במפת URL. רק שם המארח נלקח בחשבון. לדוגמה, בקשות ל-example.com:5000 מותאמות לשירות הקצה העורפי של example.com. גם שם המארח וגם מספר היציאה נלקחים בחשבון. לדוגמה, בקשות ל-example.com:5000 מותאמות לשירות הקצה העורפי של example.com:5000. אם אין התאמה, המערכת משתמשת בשירות לקצה העורפי שמוגדר כברירת מחדל.

בגלל הבדלים בארכיטקטורה, כשעוברים למאזן עומסים חיצוני גלובלי של אפליקציות (ALB), יכול להיות שתראו עלייה במספר החיבורים לבק-אנד, במיוחד כשמשתמשים בפרוטוקול HTTP/1.1. הדבר עלול להוביל לצריכת זיכרון מוגברת במופעי ה-Backend. עוקבים אחרי השימוש במשאבים של ה-Backend במהלך ההעברה ואחריה.

מידע נוסף על ההבדלים ועל התכונות הנתמכות זמין במאמרים השוואה בין תכונות של מאזני עומסים וסקירה כללית על מאזן עומסים של אפליקציות.

מעבר ממאזן עומסים קלאסי של אפליקציות למאזן עומסים גלובלי חיצוני של אפליקציות

כדי לבצע מיגרציה למאזן עומסים גלובלי חיצוני של אפליקציות (ALB), צריך לשנות את סכמת איזון העומסים של משאבי איזון העומסים – במיוחד את שירותי הקצה העורפי ואת כללי ההעברה – מ-EXTERNAL ל-EXTERNAL_MANAGED. כדי לעשות זאת, מבצעים סדרה של שלבי העברה שבהם אפשר לבדוק חלקים מתנועת הרשת באמצעות תוכנית איזון העומסים החדשה לפני שמשלימים את ההעברה. במהלך העברת המשאבים, אתם קובעים את אחוז הבקשות שיישלחו לתשתית של מאזן העומסים הקלאסי של אפליקציות או לתשתית של מאזן העומסים הגלובלי החיצוני של אפליקציות.

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

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

בתרשים הקודם, חשוב לשים לב לנקודות הבאות:

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

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

  1. מעבירים את כל השירותים לקצה העורפי שמצורפים לכללי ההעברה של מאזן העומסים.

  2. מעבירים את כל קטגוריות הקצה העורפי שמצורפות לכללי ההעברה של מאזן העומסים. אתם עושים את זה ברמת כלל ההעברה כי לקטגוריות של בק-אנד אין סכימות של איזון עומסים.

  3. מעבירים את כללי ההעברה של מאזן העומסים.

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

מצבי העברה

כדי להעביר משאבים, צריך להגדיר אותם למצבים שונים לפני שמשנים את תוכנית איזון העומסים שלהם ל-EXTERNAL_MANAGED.

  1. PREPARE: מגדירים משאב למצב הזה כדי להכין אותו להעברה.
  2. TEST_BY_PERCENTAGE: כדי לבדוק משאב מוכן, מגדירים את המשאב למצב הזה כדי לשלוח אחוז מסוים מהתנועה ברשת. השלב הזה הוא אופציונלי.
  3. TEST_ALL_TRAFFIC: מגדירים משאב למצב הזה כדי לשלוח את כל תעבורת הרשת למשאב דרך התשתית של מאזן העומסים הגלובלי החיצוני של אפליקציות (ALB) במקום דרך התשתית של מאזן העומסים הקלאסי של אפליקציות (ALB).

תהליך ההעברה

כדי לעזור להבטיח שאין השבתה, מעבירים משאבים בסדר מסוים מהתשתית של מאזן העומסים הקלאסי של אפליקציות לתשתית של מאזן העומסים החיצוני הגלובלי של אפליקציות, ואז משנים את סכימת איזון העומסים מ-EXTERNAL ל-EXTERNAL_MANAGED כדי לסיים את ההעברה.

  1. מעבירים את השירותים לקצה העורפי של מאזן העומסים.

    חוזרים על השלבים הבאים לכל שירות לקצה העורפי.

    1. מכינים את שירות הקצה העורפי להעברה.

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

    2. אופציונלי: בודקים את שירות הקצה העורפי שהוכן.

      אחרי שהשירות לקצה העורפי נמצא במצב PREPARE, מגדירים את המצב שלו ל-TEST_BY_PERCENTAGE ומגדירים אחוז מתעבורת הרשת של מאזן העומסים הקלאסי של אפליקציות לתשתית של מאזן העומסים הגלובלי החיצוני של אפליקציות.

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

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

    3. שליחת כל תעבורת הנתונים ברשת של מאזן עומסים קלאסי של אפליקציות (ALB) לשירות הקצה העורפי המוכן.

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

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

    4. משנים את סכמת איזון העומסים של שירות הקצה העורפי שהועבר ל-EXTERNAL_MANAGED.

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

  2. מעבירים את קטגוריות הקצה העורפי של מאזן העומסים. אתם עושים את זה ברמת כלל ההעברה כי לקטגוריות של בק-אנד אין סכימות של איזון עומסים.

    חוזרים על השלבים הבאים לכל דלי.

    1. מכינים את קטגוריית הקצה העורפי להעברה.

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

    2. אופציונלי: בודקים את שירות הקצה העורפי שהוכן.

      אחרי שקטגוריית קצה עורפי נמצאת במצב PREPARE, מגדירים את המצב שלה ל-TEST_BY_PERCENTAGE ומגדירים אחוז מתנועה ברשת של מאזן העומסים של אפליקציות (ALB) בגרסה הקלאסית לתשתית של מאזן העומסים החיצוני הגלובלי של האפליקציות (ALB).

    3. שליחת כל תעבורת הרשת של מאזן עומסים קלאסי של אפליקציות (ALB) אל מאגר ה-Backend שהוכן.

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

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

  3. מעבירים את כללי ההעברה.

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

הוראות מפורטות לתהליך מופיעות במאמר העברת משאבים ממאזן עומסים קלאסי של אפליקציות.

בתרשים הבא מוצגים המשאבים של מאזן העומסים של אפליקציות בגרסה הקלאסית במצבי ההעברה השונים.

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

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

שימוש בזיקה לסשן

כשמעבירים שירותי קצה עורפיים של מאזן עומסים קלאסי של אפליקציות (ALB) עם זיקה לסשן (session affinity), חשוב לקחת בחשבון את ההערות הבאות:

  • הגדרת ערך ל-TEST_BY_PERCENTAGE מפנה חלק מהתנועה שמיועדת למאזן העומסים הקלאסי של אפליקציות (ALB) למאזן העומסים הגלובלי החיצוני של אפליקציות (ALB). הפעולה הזו מפריעה לזיקה של כתובת ה-IP של הלקוח. שינוי אחוז ההעברה (לדוגמה, הגדלה ב-10%) יגרום לניתוק של זיקה לסשן לאותו אחוז של כתובות IP של לקוחות (10% בדוגמה הזו), עד שהזיקה תתבסס מחדש בבקשה הבאה.

  • הגדרת ערך ל-TEST_BY_PERCENTAGE מפנה את אחוז התנועה הזה בלי קובץ Cookie זמני למאזן עומסים של אפליקציות (ALB) חיצוני גלובלי. היא גם מפנה את כל התנועה עם קובץ cookie של סשן לצי של מאזני עומסים שיצרו את קובץ ה-cookie.

  • אם מגדירים את הערך של TEST_BY_PERCENTAGE ל-0%, לא מגדירים אותו או מגדירים את שירות לקצה העורפי למצב PREPARE, כל קובצי ה-Cookie הקיימים שמפנים למאזן העומסים החיצוני הגלובלי של אפליקציות הופכים ללא תקפים.

  • שינוי סכמת איזון העומסים של שירות הקצה העורפי ל-EXTERNAL_MANAGED מבטל את התוקף של כל קובצי ה-Cookie שנוצרו על ידי קבוצת מאזני העומסים הקלאסיים של האפליקציות. כך תוכלו להחזיר את התעבורה אם יש בעיה באפליקציה שלכם באמצעות מאזן העומסים הגלובלי החיצוני של האפליקציות. לדוגמה, אם לקוח מציג קובץ Cookie מצי של מאזני עומסים קלאסיים של אפליקציות, אבל סכימת שירות לקצה העורפי היא EXTERNAL_MANAGED, קובץ ה-Cookie של הלקוח לא יכובד. מאזן העומסים הגלובלי החיצוני של אפליקציות מתעלם מקובץ ה-Cookie ויוצר קובץ חדש.

החזרה למצב הקודם של משאבים שהועברו

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

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

כדי לבטל את השינויים במשאבים, פועלים לפי השלבים הבאים:

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

    שינוי תוכנית איזון העומסים של כללי ההעברה מ-EXTERNAL_MANAGED ל-EXTERNAL.

  3. מחזירים את ה-backend buckets למצב קודם.

    1. מגדירים את מצב ההעברה של בקטעי הקצה העורפי ל-TEST_ALL_TRAFFIC ומחכים זמן מה (בערך שש דקות).
    2. אופציונלי: כדי להקטין את נפח התנועה, מגדירים את מצב ההעברה של מאגרי המידע בעורף הדף ל-TEST_BY_PERCENTAGE ומגדירים אחוז מהתנועה.
    3. מגדירים את מצב ההעברה של בקטים בקצה העורפי ל-PREPARE.
    4. החזרת בקטות של קצה עורפי למצב שבו הן היו לפני ההעברה.
  4. מחזירים את השירותים לקצה העורפי לגרסה קודמת.

    1. מגדירים את מצב ההעברה של שירותי הקצה העורפי ל-TEST_ALL_TRAFFIC וממתינים זמן מה (כ-6 דקות).
    2. אופציונלי: כדי להקטין את נפח התנועה, מגדירים את מצב ההעברה של שירותי ה-Backend ל-TEST_BY_PERCENTAGE ומגדירים אחוז מהתנועה.
    3. מגדירים את מצב המיגרציה של שירותי הקצה העורפי ל-PREPARE.
    4. החזרת שירותי הקצה העורפי למצב שבו הם היו לפני ההעברה.

הסבר מפורט על התהליך מופיע במאמר החזרה של משאבים שהועברו אל מאזן עומסים קלאסי של אפליקציות (ALB).

מעקב אחרי תהליך ההעברה

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

  • לוחות הבקרה של רישום ביומן ומעקב אחרי מאזן עומסים גלובלי חיצוני של אפליקציות (ALB). מידע נוסף זמין במאמר רישום ביומן ומעקב אחרי מאזן עומסים של אפליקציות (ALB) חיצוני ברמה הגלובלית.

  • הערכים של כותרות הבקשה והתגובה הבאות של HTTP:

    • X-External-Managed-Migration-Scheme-Override: כותרת הבקשה הזו מכוונת את הבקשה על סמך הערך שלה. אם ערך הכותרת הוא EXTERNAL, הבקשה מופנית לתשתית של מאזן עומסים קלאסי של אפליקציות (ALB). אם הערך הוא EXTERNAL_MANAGED, הבקשה מנותבת דרך התשתית של מאזן עומסים של אפליקציות (ALB) גלובלי חיצוני.

      משתמשים בכותרת הזו כדי להפנות בקשה לצי מסוים של מאזני עומסים.

    • X-External-Managed-Migration-Selected-Scheme: כותרת הבקשה והתגובה הזו מודיעה לשרת העורפי וללקוח על סכמת איזון העומסים ששימשה לניתוב הבקשה. הכותרת מוחזרת ללקוח ומועברת לקצה העורפי של הלקוח.

      אם הבקשה מנותבת דרך התשתית של מאזן העומסים הקלאסי של אפליקציות, הערך שלה הוא EXTERNAL. אם הבקשה מנותבת דרך התשתית של מאזן עומסים גלובלי חיצוני של אפליקציות, הערך שלה הוא EXTERNAL_MANAGED.

המאמרים הבאים