אחרי שבודקים ומאמתים את הסביבה הירוקה, מתחילים מעבר כדי להפוך את הסביבה הירוקה לסביבת הייצור החדשה לקריאה וכתיבה.
לפני שמתחילים
לפני שמתחילים בהעברה, צריך לוודא שיש לכם את ההרשאות הנדרשות ושהפריסה מוכנה להעברה.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות להפעלה של מעבר לגיבוי, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM הבא בפרויקט:
- Cloud SQL Admin (
roles/cloudsql.admin)
אם משתמשים בתפקידים בהתאמה אישית, צריך לוודא שיש לכם את ההרשאות הבאות:
cloudsql.blueGreenDeployments.switchovercloudsql.blueGreenDeployments.getcloudsql.instances.switchovercloudsql.operations.get
במאמר תפקידים והרשאות מוסבר בהרחבה על תפקידים והרשאות ב-IAM ב-Cloud SQL.
אימות לפני מעבר
לפני שמתחילים בהעברה, צריך לוודא שהתנאים הבאים מתקיימים:
- מצב הפריסה: הפריסה צריכה להיות במצב
SWITCHOVER_READY. - אימות עומס העבודה: משלימים את כל הבדיקות והאימות במופע הירוק של סביבת הבדיקה.
- השהיית שכפול נמוכה: חשוב לוודא שהשהיית השכפול בין הכחול לירוק היא מינימלית כדי לקצר את זמן המעבר.
איך מתבצעת ההעברה
כשמתחילים מעבר לגיבוי, Cloud SQL מבצע את הרצף האוטומטי הבא:
- אימות לפני המעבר: לפני פעולת המעבר, Cloud SQL מאמת שהשכפול לא נפגם ומבצע סדרה של בדיקות הגדרה כדי לוודא שהפריסה מוכנה.
- ביצוע של תהליך העבודה של המעבר: במהלך הביצוע של תהליך העבודה, Cloud SQL מכין את המכונות למעבר. אם השהיית השכפול גבוהה מדי או אם טרנזקציה פעילה חוסמת את המעבר החד למערכת אחרת (cutover), פעולת המעבר נכשלת וסביבת הייצור הכחולה שלכם נשארת אונליין.
- הפניה אוטומטית של תנועה: Cloud SQL מחליף את נקודות הקצה של החיבור בין המכונות הכחולה והירוקה.
- המרת תפקיד: המופע הירוק הופך למופע פעיל של קריאה וכתיבה בסביבת הייצור, והמופע הכחול הופך למופע עצמאי של קריאה וכתיבה.
במהלך המעבר, החיבורים לאפליקציה נקטעים לזמן קצר (בדרך כלל לשניות) לפני שהם מתחברים מחדש באופן אוטומטי למופע הייצור המשודרג. זמן ההשבתה של המעבר משתנה בהתאם למהדורת Cloud SQL:
- מהדורת Cloud SQL Enterprise Plus: זמן ההשבתה של המעבר הוא בדרך כלל פחות משנייה.
- מהדורת Cloud SQL Enterprise: זמן ההשבתה של המעבר הוא בדרך כלל פחות מ-60 שניות, בהתאם לעומס העבודה ולזמן האחזור של השכפול. לא נדרשים שינויים בהגדרות האפליקציה או במחרוזת החיבור.
מצבים במחזור החיים של המעבר
לפני, במהלך ואחרי מעבר הגיבוי לשלב פעיל, הפריסה עוברת בין המצבים הבאים בשדה התגובה state:
-
SWITCHOVER_READY: השכפול הלוגי מכחול לירוק תקין והפריסה מוכנה למעבר. הסטטוסSWITCHOVER_READYתלוי רק בכך שהשכפול תקין. Cloud SQL לא מעריך את זמן ההשהיה של השכפול כשהסטטוס הזה מוגדר. -
SWITCHOVER_NOT_READY: הפריסה הוקצתה, אבל אי אפשר להתחיל את המעבר. המצב הזה קורה אם השכפול הלוגי מקולקל, מושהה או הופסק, או אם אירעה שגיאת צומת בסיסית. Cloud SQL לא מעריך את זמן ההשהיה של השכפול כשהסטטוס הזה מוגדר. צריך לבדוק אתerrorDetailולפתור את השגיאה לפני שמנסים לבצע מעבר. -
SWITCHOVER_IN_PROGRESS: פקודת המעבר מופעלת באופן פעיל. Cloud SQL מחליף את נקודות הקצה של החיבור וממיר את הירוק למופע קריאה וכתיבה של הייצור. -
SWITCHOVER_COMPLETED: המעבר הסתיים בהצלחה. המופע הירוק הוא עכשיו מופע מסד הנתונים הפעיל בסביבת הייצור שמשרת תנועת קריאה וכתיבה, והמופע הכחול נשמר כמופע עצמאי לקריאה וכתיבה עד למחיקת הפריסה.
שיטות מומלצות לפני המעבר
- תזמון במהלך חלונות של תנועה נמוכה: למרות שזמן ההשבתה מינימלי (בדרך כלל בשניות), מומלץ להתחיל את המעבר בתקופות של פעילות כתיבה נמוכה (לדוגמה, בשעות שפל או בחלונות זמן לתחזוקה שבהם שאילתות הכתיבה לשנייה [QPS] הן הנמוכות ביותר). כך אפשר לצמצם את השהיית השכפול ולהפחית את הסיכון לביטול עסקאות.
- מוודאים שאין עיכוב בשכפול: חשוב לוודא שאין עיכוב בשכפול לפני שמתחילים את המעבר. תיאור של פריסת כחול-ירוק לא מציג את השהיית השכפול, ו-Cloud SQL לא בודק את השהיית השכפול לפני פעולת המעבר. עם זאת, במהלך הביצוע של זרימת העבודה, המעבר נכשל אם השהיית השכפול גבוהה מדי. כדי לעקוב אחרי השהיית הרפליקציה, בודקים את המדדים ב-Cloud Monitoring (כמו
replica_lag) או בודקים את סטטוס הרפליקציה ישירות במופע הירוק. מידע נוסף זמין במאמר בנושא השהיית שכפול. - בדיקת עסקאות פעילות: מוודאים שפעולות DDL שפועלות לאורך זמן או כתיבות באצווה הושלמו לפני שמתחילים את המעבר.
התחלת מעבר
מתחילים את פעולת המעבר באמצעות מסוף Google Cloud , ה-CLI של gcloud או Cloud SQL Admin API:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- בכרטיס Blue Green Deployment Status (סטטוס הפריסה של Blue Green), לוחצים על Details (פרטים) כדי לפתוח את הדף Deployment overview (סקירה כללית של הפריסה).
- לוחצים על Switchover deployment (פריסת מעבר).
- בתיבת הדו-שיח Instance Setting Differences (הבדלים בהגדרות המופע), בודקים את ההבדלים בהגדרות בין מופעי המקור והיעד, ואז לוחצים על Continue (המשך) כדי להתחיל את המעבר.
gcloud
מריצים את הפקודה blue-green-deployments switchover:
gcloud beta sql blue-green-deployments switchover DEPLOYMENT_NAME \ --region=REGION \ --async
פעולות המעבר עשויות להימשך כמה דקות. יכול להיות שתוצג הודעה שהפעולה נמשכת יותר זמן מהצפוי. אפשר להתעלם מההודעה הזו או להריץ את הפקודה gcloud sql
operations wait כדי לסגור את ההודעה ולחכות עד שהפעולה תושלם:
gcloud sql operations wait OPERATION_ID
כדי לבדוק את הסטטוס של פעולת המעבר, מריצים את הפקודה gcloud sql
operations describe:
gcloud sql operations describe OPERATION_ID
מחליפים את מה שכתוב בשדות הבאים:
- DEPLOYMENT_NAME: השם של הפריסה שלכם בשיטת blue-green.
- REGION: האזור שבו נוצרה הפריסה. Google Cloud
- OPERATION_ID: המזהה של פעולת המעבר.
REST v1
שליחת בקשת POST לשיטת blueGreenDeployments.switchover:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME:switchover
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: האזור שבו נוצרה הפריסה. Google Cloud
- DEPLOYMENT_NAME: השם של הפריסה שלכם בשיטת blue-green.
REST v1beta4
שליחת בקשת POST לשיטה blueGreenDeployments.switchover:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME:switchover
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: האזור שבו נוצרה הפריסה. Google Cloud
- DEPLOYMENT_NAME: השם של הפריסה שלכם בשיטת blue-green.
מעקב אחרי המעבר
אחרי שההעברה מסתיימת:
- מוודאים שהאפליקציה מתחברת מחדש בהצלחה ושהפעולות במסד הנתונים של הסביבה הפרודקטיבית מתחדשות.
- עוקבים אחרי נפח העברת הנתונים של השאילתות, יומני השגיאות וסטטוס השכפול במופע החדש של הסביבה הפרודקטיבית.
- חשוב להשאיר את המופע העצמאי הכחול ללא שינוי במהלך חלון הזמן הראשוני לאימות אחרי השדרוג. אחרי שמאשרים את היציבות, מוחקים את הפריסה. מידע נוסף זמין במאמר בנושא מחיקת פריסת כחול-ירוק (blue-green deployment).
המאמרים הבאים
- מחיקה של פריסת כחול-ירוק (blue-green deployment) כדי להסיר את המטא-נתונים של הפריסה ולמחוק את מופע ה-blue הקודם.
- איך עוקבים אחרי מופעים
- מידע נוסף על גיבוי ושחזור