מופעים הם יחידות החישוב שבהן App Engine משתמש כדי לשנות את גודל האפליקציה באופן אוטומטי. בכל רגע נתון, האפליקציה יכולה לפעול במופע אחד או בכמה מופעים, והבקשות מתחלקות בין כולם.
המופעים עם שינוי גודל ידני אמורים לפעול ללא הגבלת זמן, אבל אין ערובה לזמינות כי המופעים יכולים להיסגר מוקדם בגלל כשלים או להיות מופעלים מחדש לצורך עדכונים. יכולות להיות תקלות בחומרה או בתוכנה שיגרמו לסיום מוקדם או להפעלה מחדש לעיתים קרובות, ללא אזהרה מוקדמת, ויכול להיות שיעבור זמן רב עד שהן ייפתרו.
יכול להיות שכל המכונות הגמישות יופעלו מחדש על בסיס שבועי אם יש עדכונים זמינים. לוח הזמנים הזה לא מובטח. במהלך הפעלה מחדש, עדכונים קריטיים שתואמים לאחור נפרסים באופן אוטומטי למערכת ההפעלה הבסיסית. התמונה של האפליקציה תישאר ללא שינוי גם אחרי הפעלה מחדש.
בדיקת תקינות
App Engine שולח בקשות תקופתיות לבדיקת תקינות כדי לוודא שמופע פועל, וכדי לבדוק שהוא הופעל במלואו ומוכן לקבל בקשות נכנסות. כברירת מחדל, בדיקות התקינות האלה מופעלות והן נקראות בדיקות תקינות מפוצלות. מופע שמקבל בדיקת תקינות חייב להשיב לבדיקה בתוך מרווח זמן מוגדר.
אם אתם צריכים להרחיב את התנהגות ברירת המחדל של בדיקות תקינות מפוצלות באפליקציה שלכם, אתם יכולים להתאים אישית את הקובץ app.yaml כדי להגדיר שני סוגים של בדיקות תקינות:
- בדיקות מצב פעילות (liveness) מזהות שמופע VM והקונטיינר שלו פועלים. כאשר מופע VM נכשל בבדיקת מצב הפעילות (liveness), המופע מופעל מחדש באופן אוטומטי. בדיקות מצב פעילות (liveness) יכולות להיכשל בגלל ערכי הסף ומרווחי הזמן שהוגדרו, או בגלל קריסת המאגר.
- בדיקות מוכנות מזהות שמכונה וירטואלית מוכנה לקבל בקשות נכנסות. אם מופע של מכונה וירטואלית נכשל בבדיקת המוכנות, זה אומר שהמופע לא סיים את ההפעלה שלו והוא לא מוכן לקבל בקשות. אם המכונה הווירטואלית עוברת את בדיקת המוכנות ומסיימת את ההפעלה, היא מתווספת למאגר המכונות הווירטואליות הזמינות.
מידע נוסף על התנהגויות של בדיקות תקינות מפוצלות זמין במדריך מעבר לבדיקות תקינות מפוצלות.
במהלך בדיקות התקינות האלה, היומנים של App Engine יכולים להראות שהמכונה נמצאת באחד מהמצבים הבאים:
- ללא שגיאות. המופע קיבל את הבקשות לבדיקת תקינות ומעבד את הבקשות. סטטוס תקין מציין שבמופע יש יותר מ-820MB של נפח אחסון פנוי בדיסק, והוא אמור להגיב לבדיקת תקינות עם קוד סטטוס של HTTP
200. - לא בריאה. המופע דחה את הבקשות לבדיקת תקינות ולא הגיב למספר מסוים של בקשות רצופות לבדיקת תקינות. מערכת App Engine ממשיכה לשלוח בקשות לבדיקת תקינות, ומפעילה מחדש את המופע אם מופע לא תקין ממשיך להיכשל בתגובה למספר מוגדר מראש של בדיקות תקינות רצופות.
- Lameduck. המכונה מתוזמנת לכיבוי או להפעלה מחדש.
במהלך כיבוי, המופע מסיים את הבקשות הפעילות ומסרב לבקשות חדשות. האפליקציה מחזירה קוד
503כדי לציין שהמופע לא יכול לטפל בבקשות. לפני שמכבים או מפעילים מחדש את המופע, לסקריפט הכיבוי יש פרק זמן מוגבל לפעולה, ואי אפשר להגדיר אותו לקצר או ארוך יותר. - App Lameduck. המכונה מתכוננת לטפל בתנועה באתר. האפליקציה מחזירה קוד
503כדי לציין שהמופע לא יכול לטפל בבקשות. כשמכונה וירטואלית מסיימת את האתחול ומוכנה לטפל בתנועה, היא הופכת לזמינה ומעבדת בקשות. אם מופע של מכונה וירטואלית לא מופעל בזמן, המופע משתנה למצב לא תקין ומוסר.
ההתנהגויות של lameduck ו-app lameduck הן חלק מתהליך רגיל שמופע של מכונה וירטואלית עובר.
מעקב אחרי השימוש במשאבים
בדף Instances במסוףGoogle Cloud אפשר לראות את הביצועים של המופעים. אפשר לראות את השימוש בזיכרון ובמעבד של כל מופע, את זמן הפעולה הרציפה, את מספר הבקשות ונתונים סטטיסטיים אחרים. אפשר גם להפעיל ידנית את תהליך ההשבתה של כל מופע.
פרוטוקול NTP עם הסביבה הגמישה של App Engine
בסביבה הגמישה של App Engine יש שירותים של פרוטוקול זמן ברשת (NTP) שמשתמשים בשרתי NTP של Google. עם זאת, אי אפשר לערוך את שירותי ה-NTP בסביבה הגמישה.
מיקום המכונה
המיקום של המופעים נקבע אוטומטית לפי האזור הגיאוגרפי בהתאם להגדרות הפרויקט.
שינוי גודל המכונה
בזמן שאפליקציה פועלת, בקשות נכנסות מנותבות למופע קיים או למופע חדש של השירות או הגרסה המתאימים. לכל גרסה פעילה צריכה להיות לפחות מופע אחד שפועל, וסוג ההרחבה של שירות או גרסה קובע איך נוצרים מופעים נוספים.
אתם מציינים את סוג ההתאמה לגודל בקובץ app.yaml של האפליקציה.
כברירת מחדל, האפליקציה משתמשת בהתאמה אוטומטית לעומס (automatic scaling), כלומר App Engine ינהל את מספר המכונות הווירטואליות במצב בלי פעילות.
- התאמה אוטומטית לעומס
- התאמה אוטומטית לעומס יוצרת מופעים על סמך קצב הבקשות, זמני האחזור של התגובות ומדדים אחרים של האפליקציה. אפשר לציין ערכי סף לכל אחד מהמדדים האלה, וגם מספר מינימלי של מופעים שימשיכו לפעול בכל רגע נתון, על ידי הגדרת הרכיב
automatic_scaling.
- שינוי גודל ידני
- בשינוי גודל ידני מציינים את מספר המופעים שפועלים באופן רציף, ללא קשר לרמת העומס. כך אפשר לבצע משימות כמו הפעלות מורכבות ואפליקציות שמסתמכות על מצב הזיכרון לאורך זמן.
ניהול שירותים
בהתאם לסוג ההתאמה לגודל של המופע, אתם יכולים לנהל שירותים וגרסאות במסוף Google Cloud או ב-Google Cloud CLI.
הפסקת גרסה
כל גרסה ב-App Engine פועלת במופע אחד או יותר, בהתאם לכמות התנועה שהגדרתם שהיא תטפל בה.
כדי לקבל הוראות לשימוש בכלי הרצוי, לוחצים על הכרטיסייה הרלוונטית:
המסוף
כדי להפסיק או להשבית גרסה של השירות:
נכנסים לדף Versions של App Engine במסוף Google Cloud :
בוחרים גרסה מהטבלה ולוחצים על הפסקה.
gcloud
מריצים את הפקודה הבאה:
gcloud app versions stop --service=SERVICE VERSION
מחליפים את:
- SERVICE בשם של השירות.
- VERSION בשם הגרסה של השירות.
מחק שירות
אפשר להגדיר כל שירות כך שישתמש בזמני ריצה שונים ויפעל עם הגדרות ביצועים שונות. אי אפשר למחוק את שירות ברירת המחדל. אם מוחקים שירות, נמחקות גם כל הגרסאות הנלוות שלו בפרויקט.
כדי לקבל הוראות לשימוש בכלי הרצוי, לוחצים על הכרטיסייה הרלוונטית:
המסוף
כדי למחוק שירות:
נכנסים לדף Services של App Engine במסוף Google Cloud :
בוחרים שירות מהטבלה ולוחצים על מחיקה.
gcloud
מריצים את הפקודה הבאה:
gcloud app services delete SERVICE
מחליפים את:
- SERVICE בשם של השירות.