מידע על סביבות

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

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

מידע על סביבות ומארחים וירטואליים

‫Apigee hybrid משתמש בשערי כניסה של Istio כדי לטפל בתעבורת API נכנסת. גם שירותי MART וגם שירותי זמן הריצה מוגדרים עם שערי כניסה של Istio כדי לנהל את החיבורים שלהם שנחשפים מחוץ לאשכול. המשמעות היא, למשל, שכל בקשות ה-HTTP וה-HTTPS ל-proxy ל-API מטופלות קודם על ידי שער כניסה של Istio.

בסביבה היברידית, יוצרים סביבה אחת או יותר ומקצים לכל סביבה כינוי מארח. כתובת האימייל החלופית של המארח היא שם DNS. תנועה נכנסת לשם ה-DNS הזה מנותבת על ידי ה-ingress לאותה סביבה. באופן פנימי, כל סביבה מוקצית ל מעבד הודעות אחד בלבד, שמבצע את העבודה של עיבוד בקשות לשרת proxy, החלת מדיניות וניתוב תנועה אל שירותי היעד וממנו. לכן, הכינוי של המארח קובע איזה מעבד הודעות יקבל בקשה נכנסת מסוימת.

בדוגמה הבאה של קוד ההגדרה מוגדרות כמה סביבות. (הגדרות כאלה שייכות לקובץ הביטולים). שימו לב שהסביבות dev1 ו-prod1 כוללות כינויי מארח שונים:

envs:
  - name: dev1
    hostAlias: "apitest.mydomain.net"
    ...

  - name: prod1
    hostAlias: "apiprod.mydomain.net"
    ...

נניח ששרת proxy עם נתיב בסיסי /foo1 נפרס בסביבה dev1. אפשר לקרוא לשרת ה-proxy כך:

curl -k https://apitest.mydomain.net/foo1

כשהשיחה הזו מגיעה ל-ingress, הוא יודע לשלוח אותה למעבד ההודעות שמשויך לסביבת dev1, שמטפל בבקשה.

באופן דומה, אם foo1 נפרס גם בסביבת prod1, אפשר לשלוח בקשת proxy כזו לכינוי המארח apiprod.mydomain.net:

curl -k https://apiprod.mydomain.net/foo1

השיחה מנותבת על ידי ה-ingress אל ה-MP שמשויך למארח הזה.

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

סביבות יכולות לשתף את אותו כינוי מארח

‫Apigee Hybrid מאפשר ליצור כמה סביבות שאפשר לנהל אותן איך שרוצים. לדוגמה, אפשר ליצור כמה סביבות פיתוח, dev1, dev2, dev3 וכו', ולמפות לכל אחת מהן כינוי מארח יחיד. בנוסף, אפשר לפרוס כמה שרתי proxy בכל סביבה.

אנטי-תבנית: פריסה של כל שרתי ה-proxy בסביבה היברידית אחת.

שיטה מומלצת: כדאי ליצור כמה סביבות ולפרוס מספר מוגבל של שרתי proxy בכל אחת מהן. הטכניקה לניהול האופן שבו שיחות פרוקסי מנותבות בסביבה היברידית לסביבה הנכונה שמשתפת כינוי מארח נקראת ניתוב נתיב בסיסי.

לדוגמה, בהגדרה הבאה, הסביבות dev1 ו-dev2 חולקות את אותו כינוי מארח:

envs:
  - name: dev1
    hostAlias: "apitest.mydomain.net"
    ...
  - name: dev2
    hostAlias: "apitest.mydomain.net"
    ...

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

הגבלת מספר הפריסות של שרת ה-proxy

בסביבה היברידית, הרבה סביבות יכולות לחלוק את אותו מארח וירטואלי, ולכן צריך לחשוב היטב איך לנהל את פריסות ה-proxy בכל סביבה נתונה. בסביבה היברידית, מומלץ ליצור כמה סביבות ולפרוס מספר מוגבל של שרתי proxy בכל אחת מהן.

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

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

הפניה להגדרת הסביבה

רשימה מלאה של רכיבי הגדרת הסביבה מופיעה בenvs במאמר חומר עזר בנושא מאפייני הגדרה.

עבודה עם סביבות

מידע נוסף על הגדרות זמין בנושאים הבאים: