תאריך פרסום: 3 באפריל 2025
כשמגיע הזמן להשיק תכונה חדשה ב-Chrome, אנחנו מבצעים בדיקות רבות כדי לוודא שהתכונה פועלת, עומדת בדרישות ותהיה אמינה. אחד מהמאזנים האלה הוא ניסויים של Finch. אל תתנו לחלק 'ניסוי' בשם להטעות אתכם לחשוב שהתכונה לא בטוחה. זה בדיוק ההפך. השקות של Finch עוזרות לנו להוסיף תכונות שעלולות לגרום לבעיות תאימות בצורה בטוחה, כי הן מאפשרות לנו להשבית במהירות תכונה אם נתקלים בבעיות בלתי צפויות. במאמר הזה נסביר איך ולמה אנחנו משתמשים ב-Finch להשקות של תכונות מסוימות ב-Chrome.
באופן כללי, כדי להפעיל תכונה ב-Chrome, צריך פשוט להחליף את המצב של משתנה בוליאני מ'מושבת' ל'מופעל' ב-Chrome. כשתכונה חדשה 'מושקת', פירוש הדבר הוא שברירת המחדל של המשתנה הבוליאני הזה משתנה ל'מופעל' לכל המשתמשים. יש כמה דרכים לעשות זאת:
- הפעלת התכונה 'בקוד': המשמעות היא שבקובץ ההפעלה של Chrome עצמו יש הגדרה שמופעלת כברירת מחדל.
- הפעלת התכונה 'על ידי ניסוי במקור': מערכת הניסויים במקור היא דרך שבה אתר מסוים יכול לצרף את כל משתמשי Chrome לניסוי, שמפעיל תכונה מסוימת באתר הזה בלבד.
- הפעלת התכונה 'באמצעות Finch': Chrome מאחזר מדי פעם קובץ תצורה משרת, והקובץ הזה יכול להכיל הוראות להפעלה או להשבתה של תכונה.
- מתג חירום של Finch: ההפך מהפעלת האפשרות 'שימוש ב-Finch'. במקרה כזה, התכונה מופעלת "בקוד" אבל לאחר מכן מושבתת באמצעות מערכת Finch, בדרך כלל בגלל בעיות שזוהו אחרי ההשקה.
תרחישים לדוגמה ב-Finch
הנושא של הפוסט הזה הוא Finch, לכן לא נרחיב על הפעלה 'בקוד' או על 'גרסת טרום-השקה לאתר המקור'. אבל ל-Finch יש כמה תרחישי שימוש מעניינים.
בדיקה בקבוצה קטנה של משתמשים (בדיקת A/B)
לרוב משתמשים ב-Finch כדי לבצע בדיקת A/B של תכונה או אופטימיזציה. במקרה כזה, התכונה מופעלת אצל אחוז קטן של משתמשים כדי שניתן יהיה לאסוף נתונים לגבי ההבדל בביצועים, בהתנהגות או בשימוש כשהתכונה מופעלת לעומת כשהיא מושבתת.
דוגמה לבדיקת A/B היא ההשקה של פענוח תמונות ספקולטיבי. מדובר בשיפור בביצועים שלא אמור להיות מורגש למפתחים או למשתמשים, מלבד העובדה שדפים נטענים מהר יותר ב-Chrome. אבל כדי לוודא שלא קרה משהו לא צפוי, וגם כדי שנוכל למדוד במדויק את ההשפעה על הביצועים, השתמשנו ב-Finch כדי לבצע בדיקת A/B.
השבתת תכונה בעייתית
מטעמי בטיחות המוצר וחוויית המשתמש, מערכת Finch יכולה להשתמש ב-Chrome כדי להשבית מרחוק תכונות בעייתיות שהופעלו 'בקוד'. לדוגמה, אם תכונה מסוימת הופעלה כברירת מחדל, אבל הבעיות הופיעו רק אחרי ש-Chrome הגיע למצב יציב, אנחנו צריכים דרך להשבית את התכונה במהירות כדי להחזיר את המשתמשים והעסקים למצב בטוח. יכול להיות שנצטרך לעשות זאת אם יש באגים שלא התגלו בתכונה, או אם תכונה מסוימת גורמת לשיבושים באתרים קיימים מסיבות בלתי צפויות.
הפעלה של תכונות מסוכנות בדרך בטוחה יותר
ברוב התכונות שאנחנו משיקים ב-Chrome, אין סיכון רב כי אנחנו יכולים לבדוק ולאמת שהקוד החדש פועל בכל האתרים.
עם זאת, לפעמים השקת תכונות יכולה להיות מסוכנת למדי בגלל בעיות תאימות לא ידועות או אינטראקציות מסובכות אחרות. במקרה כזה, אפשר להשתמש במערכת Finch כדי להפעיל את התכונה בפועל, במקום להשאיר אותה בחזרה כמתג חירום.
לדוגמה, 'הרפיה' בניתוח HTML הייתה שינוי שקשור לתכונה החדשה של תפריט בחירה שניתן להתאמה אישית, שמאפשרת להציב יותר תוכן בתוך רכיב <select>
מבעבר. מכיוון שיכול להיות שהשינוי הזה יגרום לתקלות באתרים קיימים, היינו צריכים להשיק אותו בזהירות.
הפעלת תכונות באמצעות Finch יכולה להיות בטוחה יותר מאשר להשתמש ב-Finch כדי להסיר אותן, כי Finch לא מגיע ל-100% מהמשתמשים מסיבות שונות. לדוגמה, למשתמשים מסוימים בארגון יש מדיניות שאוסרת על הגדרת Finch לחלוטין. המשתמשים האלה ימשיכו להיות בסיכון במקרה שתכונת מסוימת מופעלת בקוד, ולאחר מכן מתבצעת הפעלה מחדש באמצעות Finch, כי המשתמשים האלה לא יקבלו את ההגדרה של Finch והתכונה תמשיך לפעול אצלם. במקום זאת, אנחנו מפעילים את התכונה באמצעות Finch, כדי שנוכל להבטיח את היכולת להשבית אותה לכל המשתמשים במקרה חירום.
איך בודקים אם אתם נכללים בניסוי של Finch?
קשה למשתמשים לעשות זאת ישירות. הדרך המומלצת היא לפנות למהנדס של Chrome (בדרך כלל בהקשר של באג ב-Chromium) ולשלוח לו את 'רשימת הווריאציות'. זוהי רשימה של גרסאות קוד מיוחדות של כל ההגדרות של Finch בדפדפן נתון. אפשר לאחזר אותה בקלות:
- נווט אל
chrome://version
. - מעתיקים את כל רשימת הטקסט (כן, היא יכולה להיות ארוכה למדי) שמופיעה לצד 'וריאנטים פעילים'.
- מדביקים את הטקסט הזה בקובץ טקסט (לדוגמה,
variations.txt
) ומצרפים אותו לדיווח על באג.
בעזרת רשימת הווריאציות הזו, מהנדסי Chrome יכולים לפענח את הרשימה ולראות אילו תכונות מופעלות או מושבתות בדפדפן שלכם.
מה קורה כשהניסוי של Finch מגיע ל-100% והוא מוכן לפעולה?
אחרי שאנחנו משוכנעים שהניסוי שלנו "מוצלח", והתכונה הנדונה לא מסכנת את המפתחים או המשתמשים, אנחנו תמיד מפעילים את התכונה "בקוד". בשלב הזה, אפשר להגדיר תאריך סיום להגדרות של Finch כדי שהן יפסיקו להשפיע על הדפדפנים אחרי הגרסה שבה התכונה הופעלה בקוד.