במאמר הזה מוסבר איך ליצור ולבצע פריסה של Cloud SQL blue-green כדי לבצע שדרוגים של גרסאות ראשיות או שינויים בהגדרות.
לפני שמתחילים
כדי ליצור פריסת כחול-ירוק (blue-green deployment) ולהכין אותה להשקה, צריך לוודא שיש לכם את התפקידים הנדרשים ושהמכונה של המקור עומדת בדרישות המוקדמות לפריסה.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולהעברה של פריסת blue-green, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- עריכה ב-Cloud SQL (
roles/cloudsql.editor) - Cloud SQL Admin (
roles/cloudsql.admin)
אם משתמשים בתפקידים בהתאמה אישית, צריך לוודא שיש לכם את ההרשאות הבאות:
cloudsql.blueGreenDeployments.createcloudsql.blueGreenDeployments.getcloudsql.instances.getcloudsql.instances.createcloudsql.operations.get
במאמר תפקידים והרשאות מוסבר בהרחבה על תפקידים והרשאות ב-IAM ב-Cloud SQL.
דרישות מוקדמות לגבי מכונה
לפני שיוצרים פריסת כחול-ירוק (blue-green deployment), צריך לוודא שמופע הייצור (הכחול) עומד בדרישות הבאות:
- המנוע של מסד הנתונים והגרסה: המכונה צריכה להריץ את Cloud SQL ל-MySQL בגרסה 5.7, 8.0 או 8.4. גרסה 8.0.18 לא נתמכת. לשדרוגים של גרסאות ראשיות, אפשר לשדרג מגרסה 8.0 לגרסה 8.4.
- רישום ביומן בינארי וגיבויים אוטומטיים: צריך להפעיל רישום ביומן בינארי וגיבויים אוטומטיים במופע הכחול כדי ליצור שכפול לוגי רציף בסביבה הירוקה.
- סטטוס האינסטנס: האינסטנס הכחול צריך להיות במצב
RUNNINGבלי פעולות שמתבצעות או חלונות זמן לתחזוקה שמתנגשים. תכונות שלא נתמכות: מוודאים שהמופע לא משתמש בתכונות שלא נתמכות בפריסות כחול-ירוק (blue-green deployment), כולל התכונות הבאות:
הגרסה העדכנית של התחזוקה: כדי ליצור פריסת כחול-ירוק (blue-green deployment), צריך להפעיל את הגרסה העדכנית של התחזוקה במופע. מידע נוסף זמין במאמר בנושא תחזוקה בשירות עצמי.
ארכיטקטורת הרשת: המכונה שלכם צריכה להשתמש בארכיטקטורת הרשת החדשה. אין תמיכה במופעים שמשתמשים בארכיטקטורת הרשת הישנה.
כשמפעילים יצירת פריסה, Cloud SQL מריץ באופן אוטומטי סדרה של בדיקות מקדימות כדי לוודא שהרפליקציה תואמת ושהדגלים תקינים. לשדרוגים של גרסאות ראשיות, Cloud SQL מפעיל גם את ה-API של בדיקה מוקדמת לשדרוג גרסה ראשית במופע המקור, כדי לוודא שהשדרוג מוכן לפני שממשיכים בתהליך העבודה. אם הבדיקות המקדימות נכשלות, יצירת הפריסה נפסקת ומוחזרת שגיאה בסטטוס הפעולה.
יצירת פריסה כחול-ירוק
אפשר ליצור פריסת כחול-ירוק (blue-green deployment) עם כוונה (Intent) כדי לבצע שדרוג של הגרסה הראשית, או בלי כוונה (Intent) כדי לאחסן נתונים במחסן ביניים (Stage) עדכוני חומרה או עדכונים של דגלים.
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- בקטע הגדרה, לוחצים על יצירת פריסה של blue green.
- בדף Create Blue Green Deployment (יצירת פריסה מסוג Blue Green), בקטע Deployment information (פרטי הפריסה), מזינים שם ייחודי לפריסה בשדה Deployment name (שם הפריסה).
- ברשימה Deployment use case בוחרים באחת מהאפשרויות הבאות:
- אפשרות א' (שדרוג גרסה ראשית): כדי להכין ולבדוק שדרוג של גרסה ראשית במופע הירוק לפני המעבר, בוחרים באפשרות שדרוג גרסה ראשית. ברשימה Target database version (גרסת מסד הנתונים של היעד), בוחרים את גרסת מסד הנתונים של היעד (לדוגמה, MySQL 8.4).
כשיוצרים פריסה עם כוונה, Cloud SQL מריץ אוטומטית את הבדיקה המקדימה לשדרוג הגרסה הראשית כחלק מהפעולה לפני יצירת המכונה הירוקה. לחלופין, מומלץ להריץ את בדיקת ההתאמה לפני שדרוג לגרסה ראשית לפני שיוצרים את הפריסה, כדי לזהות חסימות לשדרוג.
- אפשרות ב' (ברירת מחדל): כדי ליצור סביבת הכנה ירוקה באותה גרסת מסד נתונים כמו מופע המקור כדי לבדוק שינויים בהגדרות או בחומרה, בוחרים באפשרות ברירת מחדל.
- אפשרות א' (שדרוג גרסה ראשית): כדי להכין ולבדוק שדרוג של גרסה ראשית במופע הירוק לפני המעבר, בוחרים באפשרות שדרוג גרסה ראשית. ברשימה Target database version (גרסת מסד הנתונים של היעד), בוחרים את גרסת מסד הנתונים של היעד (לדוגמה, MySQL 8.4).
- לוחצים על יצירה.
gcloud
כדי ליצור פריסת כחול-ירוק (blue-green deployment) באמצעות gcloud, מריצים את הפקודה blue-green-deployments create.
אפשרות א': יצירה עם כוונת רכישה (שדרוג גרסה מרכזית)
כשיוצרים פריסה עם כוונה, Cloud SQL מריץ אוטומטית את הבדיקה המקדימה לשדרוג הגרסה הראשית כחלק מהפעולה לפני יצירת המכונה הירוקה. לחלופין, אפשר להריץ את הבדיקה המקדימה לשדרוג גרסה ראשית במופע הכחול לפני יצירת הפריסה כדי לזהות חסימות לשדרוג.
gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \ --source-instance=SOURCE_INSTANCE_ID \ --target-database-version=TARGET_DATABASE_VERSION \ --region=REGION \ --async
מחליפים את מה שכתוב בשדות הבאים:
- DEPLOYMENT_NAME: שם ייחודי לפריסה.
- SOURCE_INSTANCE_ID: השם של מופע המקור הכחול.
- TARGET_DATABASE_VERSION: גרסת היעד (לדוגמה,
MYSQL_8_4). - REGION: Google Cloud האזור של המכונה הכחולה.
אפשרות ב': יצירה ללא כוונה (חומרה או הגדרה)
כדי להקצות סביבה ירוקה באותה גרסת מסד נתונים כמו המופע הכחול, משמיטים את הדגל --target-database-version:
gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \ --source-instance=SOURCE_INSTANCE_ID \ --region=REGION \ --async
תהליך היצירה של פריסת כחול-ירוק (blue-green deployment) נמשך כמה דקות, במיוחד כשמבצעים שדרוג של הגרסה הראשית. יכול להיות שתופיע הודעה שמציינת שהפעולה נמשכת יותר זמן מהצפוי. אפשר להתעלם מההודעה הזו או להריץ את הפקודה gcloud sql
operations wait כדי לסגור את ההודעה ולחכות שהפעולה תושלם:
gcloud sql operations wait OPERATION_ID
מחליפים את OPERATION_ID במזהה הפעולה שהוחזר על ידי הפקודה או שמוצג בהודעה.
REST v1
כדי ליצור פריסת כחול-ירוק (blue-green deployment) באמצעות Cloud SQL Admin API, שולחים בקשת POST לשיטה blueGreenDeployments.create.
אפשרות א': יצירה עם כוונת רכישה (שדרוג גרסה מרכזית)
כשיוצרים פריסה עם כוונה, Cloud SQL מריץ אוטומטית בדיקה מקדימה לשדרוג הגרסה הראשית כחלק מהפעולה לפני יצירת המכונה הירוקה. לחלופין, אפשר להריץ את הבדיקה המקדימה לשדרוג הגרסה הראשית במופע הכחול לפני יצירת הפריסה, כדי לזהות חסימות לשדרוג.
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID",
"requestedConfig": {
"databaseVersion": "TARGET_DATABASE_VERSION"
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: Google Cloud האזור של המכונה הכחולה.
- DEPLOYMENT_NAME: שם ייחודי לפריסה.
- SOURCE_INSTANCE_ID: השם של מופע המקור הכחול.
- TARGET_DATABASE_VERSION: גרסת מסד הנתונים של היעד (לדוגמה,
MYSQL_8_4).
אפשרות ב': יצירה ללא כוונה (חומרה או הגדרה)
כדי להקצות סביבה ירוקה באותה גרסת מסד נתונים כמו המופע הכחול, משמיטים את השדה requestedConfig:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID"
}
REST v1beta4
כדי ליצור פריסת כחול-ירוק (blue-green deployment) באמצעות Cloud SQL Admin API, שולחים בקשת POST לשיטה blueGreenDeployments.create.
אפשרות א': יצירה עם כוונת רכישה (שדרוג גרסה מרכזית)
כשיוצרים פריסה עם כוונה, Cloud SQL מריץ אוטומטית בדיקה מקדימה לשדרוג הגרסה הראשית כחלק מהפעולה לפני יצירת המכונה הירוקה. לחלופין, אפשר להריץ את הבדיקה המקדימה לשדרוג גרסה ראשית במופע הכחול לפני יצירת הפריסה כדי לזהות חסימות לשדרוג.
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID",
"requestedConfig": {
"databaseVersion": "TARGET_DATABASE_VERSION"
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: Google Cloud האזור של המכונה הכחולה.
- DEPLOYMENT_NAME: שם ייחודי לפריסה.
- SOURCE_INSTANCE_ID: השם של מופע המקור הכחול.
- TARGET_DATABASE_VERSION: גרסת מסד הנתונים של היעד (לדוגמה,
MYSQL_8_4).
אפשרות ב': יצירה ללא כוונה (חומרה או הגדרה)
כדי להקצות סביבה ירוקה באותה גרסת מסד נתונים כמו המופע הכחול, משמיטים את השדה requestedConfig:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID"
}
מעקב אחרי סטטוס הפריסה
היצירה היא פעולה ממושכת (LRO). במהלך ההכנה, Cloud SQL מספק את המכונה הירוקה, משדרג אותה (אם נדרש שדרוג של גרסה ראשית) ומתחיל שכפול לוגי רציף.
כדי לבדוק את ההתקדמות והסטטוס של הפריסה הכחולה-ירוקה:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- מחפשים את הכרטיס Blue Green Deployment Status (סטטוס הפריסה של Blue Green) כדי לראות את סטטוס הפריסה.
- כדי לראות את המשימות המפורטות של הקצאת ההרשאות ואת ההתקדמות שלהן, לוחצים על פרטים כדי לפתוח את הדף סקירה כללית של הפריסה.
gcloud
כדי לבדוק את ההתקדמות והסטטוס של פריסת כחול-ירוק (blue-green deployment) באמצעות gcloud, מריצים את הפקודה blue-green-deployments describe:
gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \ --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- DEPLOYMENT_NAME: השם של פריסת כחול-ירוק (blue-green deployment) שלכם.
- REGION: האזור שבו נוצרה הפריסה. Google Cloud
כדי להמתין לסיום פעולת היצירה, מריצים את הפקודה gcloud sql
operations wait:
gcloud sql operations wait OPERATION_ID
מחליפים את OPERATION_ID במזהה של פעולת היצירה.
REST v1
כדי לבדוק את ההתקדמות והסטטוס של הפריסה הכחולה-ירוקה באמצעות Cloud SQL Admin API, שולחים בקשת GET ל-method blueGreenDeployments.get:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: האזור שבו נוצרה הפריסה. Google Cloud
- DEPLOYMENT_NAME: השם של פריסת כחול-ירוק (blue-green deployment) שלכם.
REST v1beta4
כדי לבדוק את ההתקדמות והסטטוס של הפריסה הכחולה-ירוקה באמצעות Cloud SQL Admin API, שולחים בקשת GET ל-method blueGreenDeployments.get:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: האזור שבו נוצרה הפריסה. Google Cloud
- DEPLOYMENT_NAME: השם של פריסת כחול-ירוק (blue-green deployment) שלכם.
בפלט פקודה או במסוף Google Cloud , עוקבים אחרי השדה state כדי לעקוב אחרי מחזור החיים של ה-Deployment (פריסה):
-
PROVISIONING: המכונה הירוקה נוצרת, משודרגת (אם נדרש) ומקושרת לשכפול לוגי רציף. -
SWITCHOVER_READY: הרפליקציה הראשונית הושלמה והרפליקציה הלוגית הרציפה פעילה. הפריסה מוכנה לאימות, לבדיקה ולמעבר. -
SWITCHOVER_NOT_READY: הפריסה הוקצתה, אבל אי אפשר להתחיל את המעבר (לדוגמה, אם השכפול נכשל או אם דווח על בעיה ב-errorDetail).
מידע נוסף על כל השלבים במחזור החיים של הפריסה זמין במאמר מחזור החיים של הפריסה והמצבים שלה.
צריך להמתין עד שמצב הפריסה ישתנה ל-SWITCHOVER_READY לפני שממשיכים לתאר את הפריסה, לאמת את עומסי העבודה של האפליקציה או להתחיל בהעברה.
המאמרים הבאים
- מתאר ומפרט פריסות כחולות-ירוקות כדי לבדוק את סטטוס הפריסה ולאחזר את פרטי החיבור.
- מעבירים את הפריסה הכחולה-ירוקה כדי להמיר את המופע הירוק למופע פעיל של קריאה וכתיבה בייצור.
- מחיקת פריסה כחול-ירוק כדי לבטל את ההעברה לסביבת הייצור ולהסיר את הסביבה הירוקה.