סביבה מספקת הקשר מבודד או 'ארגז חול' להרצת פרוקסי של ממשקי API. באותו ארגון, אפשר ליצור כמה סביבות. מידע נוסף זמין במאמר מידע על סביבות וקבוצות סביבות.
במהלך התקנה בסיסית, הוספתם סביבה לבדיקה. עם זאת, מומלץ ליצור כמה סביבות ולהציב בכל אחת מהן מספר מוגבל של שרתי proxy.
מידע על סביבות ומארחים וירטואליים
Apigee hybrid משתמש בשערי כניסה של Istio כדי לטפל בתעבורת נתוני API נכנסת. שירותי ה-MART וה-runtime מוגדרים עם שערים נכנסים של Istio כדי לנהל את החיבורים שלהם שנחשפים מחוץ לאשכול. לדוגמה, כל הבקשות מסוג HTTP ו-HTTPS ל-proxy ל-API מטופלות קודם על ידי Istio ingress gateway.
בסביבה היברידית, יוצרים סביבה אחת או יותר ומקצים לכל סביבה כינוי מארח. כתובת האימייל החלופית של המארח היא שם DNS. תנועה נכנסת לשם ה-DNS הזה מנותבת על ידי ה-ingress לאותה סביבה. באופן פנימי, כל סביבה מוקצית ל מעבד הודעות אחד בלבד, שמבצע את העבודה של עיבוד בקשות פרוקסי, החלת מדיניות וניתוב תנועה אל שירותי היעד וממנו. לכן, הכינוי של המארח קובע איזה מעבד הודעות יקבל בקשה נכנסת מסוימת.
בדוגמה הבאה של קוד ההגדרה מוגדרות כמה סביבות. (הגדרות כאלה צריכות להיות בקובץ ההחלפות). שימו לב שהסביבות 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) להפעיל אתחול לבין מספר השרתים הפרוקסי שנפרסו באותו MP. בסביבת Kubernetes עם התאמה אוטומטית לעומס, עלייה בזמן האתחול עלולה להיות בעייתית. ככל שיותר שרתי proxy נפרסים ב-MP, כך ייקח יותר זמן להפעיל את ה-MP אם צריך לשנות את הגודל שלו או ליצור אותו מחדש. |
| שיפור הביצועים | אם יש לכם כמה שרתי proxy שפרוסים בסביבה מסוימת, ואחד מהם מקבל הרבה תנועה ולכן מתבצע בו שינוי גודל אוטומטי לעיתים קרובות, כל שרתי ה-proxy באותה סביבה ישנו את הגודל שלהם יחד איתו. יכול להיות שתהיה בעיה בהשפעה על הביצועים של הרחבת מספר שרתי proxy באמצעות שרת proxy יחיד עם תנועה גבוהה. |
| שכן רועש | אם יש לכם כמה שרתי proxy שפרוסים באותה סביבה, ואחד מהם קורס, כל שרתי ה-proxy בסביבה יושבתו בזמן שה-MPs יופעלו מחדש. הגבלת מספר שרתי ה-proxy שמוצבים בסביבה מסוימת מאפשרת למזער את ההשפעה של קריסת שרת proxy יחיד. |
הפניה להגדרת הסביבה
רשימה מלאה של רכיבי הגדרת הסביבה מופיעה ב-envs בחומר העזר בנושא מאפייני הגדרה.
עבודה עם סביבות
מידע נוסף על הגדרות זמין בנושאים הבאים: