Apigee Hybrid תומך בשני סוגים של עדכונים. האפשרות הראשונה היא עדכון במקום, שבו אתם מחילים שינוי בהגדרה ומערכת hybrid מתחילה עדכון הדרגתי של Kubernetes. ב-Kubernetes, עדכונים מדורגים מאפשרים לעדכן פריסות ללא השבתה, על ידי עדכון הדרגתי של מופעי Pod במופעים חדשים.
Apigee Hybrid תומך גם בעדכון קנרי או בעדכון בסגנון A/B. בעדכון AB, הגרסה החדשה נפרסת, אבל בהתחלה רק אחוז קטן מתנועת הגולשים מופנה אליה. עם הזמן, האחוז הזה עולה עד שכל התנועה מגיעה לגרסה המתוקנת.
עדכונים במקום
כדי להפעיל עדכון במקום, פשוט משנים את ההגדרות הרצויות בקובץ ההחלפות ומחילים אותו על האשכול. לדוגמה, נניח שרוצים לשנות את הזיכרון הנוכחי runtime
מ-1Gi ל-5Gi:
זו ההגדרה הראשונית:
...
runtime:
replicaCountMin: 2
replicaCountMax: 20
resources:
requests:
cpu: 1000m
memory: 1Gi
...בהגדרה החדשה, הזיכרון משתנה ל-5Gi:
...
runtime:
replicaCountMin: 2
replicaCountMax: 20
resources:
requests:
cpu: 1000m
memory: 5Gi
...כשמחילים את השינוי, הפודים המעודכנים מופעלים ומחליפים את הפודים הקיימים. בגלל התכונה של עדכון בהדרגה (rolling) ב-Kubernetes, הלקוחות לא חווים השבתה.
איך מבצעים עדכון AB
כדי לבצע עדכון AB, משתמשים בתג revision בקובץ ההחלפות.
לדוגמה, נניח שרוצים לשנות את הזיכרון הנוכחי runtime מ-1Gi ל-5Gi:
בהגדרה הנוכחית, הערך של revision הוא blue:
...
revision: blue
...
runtime:
replicaCountMin: 2
replicaCountMax: 20
resources:
requests:
cpu: 1000m
memory: 1Gi
...
במערך ההגדרות החדש, אם משנים את revision ל-green, מציינים שרוצים לבצע עדכון הדרגתי כשהשינוי יוחל. הערך שאתם מגדירים ל-revision לא משנה. אתם יכולים להשתמש בכל מחרוזת שתרצו, כל עוד תשנו אותה מהערך הקודם למשהו אחר.
...
revision: green
...
runtime:
replicaCountMin: 2
replicaCountMax: 20
resources:
requests:
cpu: 1000m
memory: 5Gi
...כשמחילים את השינוי, אחוז קטן מהתנועה מופנה לגרסה החדשה. עם הזמן, יותר תנועה מופנית לגרסה החדשה עד שהיא מגיעה ל-100%. בשלב הזה, הגרסה הישנה נמחקת.
כדי להפעיל השקה של בדיקת A/B, מוסיפים את התג revision אם הוא לא קיים, או משנים את הערך של התג revision אם הוא כבר קיים. לא צריך לבצע שינויים נוספים בקובץ ההחלפות כדי להפעיל השקה של בדיקת A/B.
בטבלה הבאה מפורט לוח הזמנים של השקת AB:
| שלב | אחוז מתנועת הגולשים | זמן המתנה |
|---|---|---|
| 1 | 5% | 60 שניות |
| 2 | 20% | 10 שניות |
| 3 | 100% | 10 שניות |
בגרסה הנוכחית, אי אפשר להגדיר את האחוזים ואת זמני ההמתנה.