גוגל הודיעה ב־4 בנובמבר על זמינות כללית של מודל גרסאות חדש לממשק הניהול של Compute Engine. במקום להסתמך רק על ערוצים ותיקים כמו v1, אפשר לבחור גרסת ממשק המזוהה בתאריך ולהחליט מתי לאמץ את השינויים שלה. עבור עסק שמפעיל אוטומציה בענן, המשמעות אינה שכל השרתים צריכים לעבור שינוי מיד, אלא שנוספת דרך לנהל את החוזה שבין תוכנת הניהול לבין השירות.

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

מה משתנה בחוזה מול השירות

במודל הוותיק גוגל מפעילה ערוצים ארוכי־חיים של v1, בטא ואלפא, המקבלים עדכונים לאורך הזמן. במודל החדש גרסאות הממשק מזוהות בתאריך, והן מאפשרות לקבוע איזו גרסה תשרת את הבקשה. גרסת הפתיחה היציבה היא 2026-09-01. לצדה מוצגת גרסת תצוגה מקדימה בשם 2026-10-01-preview. התאריך בשם הגרסה אינו תאריך יצירת השרת של הלקוח או תאריך החשבונית שלו.

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

יציבה ותצוגה מקדימה אינן אותו מסלול

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

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

מה קורה למי שלא בוחר גרסה

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

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

אותה כתובת בסיס, בחירת גרסה מפורשת

לפי התיעוד, בקשות ישירות יכולות לבחור גרסה באמצעות כותרת HTTP בשם X-Goog-Api-Version או פרמטר שאילתה בשם $apiVersion. כתובת הבסיס ממשיכה לכלול את הנתיב compute/v1, ולכן לא נכון לחפש בהכרח את התאריך בתוך כתובת כל משאב. שני אמצעי הבחירה הם דרכים למסור לשירות את הגרסה המבוקשת; אין בכתבה המלצה לשנות כתובות של משאבים קיימים באופן ידני.

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

עדכון ספרייה עשוי לבחור גרסה חדשה

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

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

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

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

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

שגיאה מובנית במקום חיפוש בטקסט

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

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

קבלת הבקשה אינה סיום הפעולה

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

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

בדיקת בקשה אינה יצירת שרת

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

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

אולי יעניין אותך גם

אלפבית מגייסת 6 מיליארד יורו באג"חכ-7 דקות קריאה · נפתלי כהןחייבים ביטוח חיים למשכנתא? לא חייבים לקנות מהבנקכ-7 דקות קריאה · מוישי גנץהנתונים בענן שלכם. מי אחראי על השאר?כ-7 דקות קריאה · נפתלי כהןדוח הענן נראה זול יותר? בדקו קודם את המסנןכ-7 דקות קריאה · שלומי סגל

אוהבים את התוכן? רוצים להתעדכן כשעולה תוכן חדש?

מצאתם טעות או תוכן לא ראוי? דווחו לנו >>

→ חזרה לעמוד הבית