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

איור 1. AlloyDB Omni עם גיבויים ואפשרויות זמינות גבוהה (HA) בין אזורים.
כפי שמוצג באיור 1, שכפול סינכרוני של סטרימינג לשכפולים מקומיים (באותו אזור) מספק זמינות גבוהה, בעוד ששכפול אסינכרוני של סטרימינג לשכפול מרוחק שממוקם באזור גאוגרפי אחר מספק הגנה מפני תוכנית התאוששות מאסון אזורית. בכל ההגדרה, רק המופע הראשי יכול לבצע פעולות קריאה וכתיבה, בעוד שהעותקים האחרים יכולים להציג שאילתות קריאה.
כדאי להגדיר את הרפליקציה מהרפליקות הראשיות לרפליקות באותו אזור במצב סינכרוני, ואת הרפליקציה לרפליקות באזורים שונים במצב אסינכרוני, כדי שההשהיה לא תשפיע על ביצועי הכתיבה הראשיים. במקרה של כשל אזורי, ההגדרה הזו עלולה להוביל ל-RPO שגדול מאפס. עם זאת, ההגדרה הזו מאפשרת RTO מהיר יותר במקרה של כשל. הסיבה לכך היא שהמסד הנתונים הראשי לא צריך לחכות לאישור ממסדי נתונים מרוחקים במצב המתנה לפני שהוא מבצע טרנזקציות.
אפשר ליצור גיבויים נוספים באזורים שונים, שיגבו את מסדי הנתונים של העותקים לקריאה, וכך להוסיף יתירות לגיבויים שנוצרו ממסד הנתונים הראשי.
גיבויים של עותקים לקריאה
כשמשתמשים בפריסות של Kubernetes, הפריסה המשנית באזור החלופי מוגדרת באופן אוטומטי עם גיבויים נוספים.
כמה נקודות שכדאי לחשוב עליהן:
- אם יש סיכוי שהגיבוי מרחוק יהיה רגיש לכשל באזור, צריך ליזום גיבויים נוספים באזורים החלופיים.
- אם אתם צריכים יתירות בגיבוי, אתם צריכים לבצע גיבויים של עותקי קריאה אזוריים.
מיקום של רפליקה לקריאה כדי לתמוך בזמינות של כמה אזורים
AlloyDB Omni Kubernetes operator האופרטור מטפל אוטומטית במיקום הצמתים באזורים ובצמתים שבהם צריך לפרוס את ה-pods. חלק מאפשרויות ההגדרה שמשפיעות על המיקום, כמו pod affinity ו-tolerance, זמינות בהגדרת מסד הנתונים שמשמשת לפריסה באמצעות AlloyDB Omni operator.
העברה מארכיטקטורה של זמינות גבוהה בלבד לארכיטקטורה של זמינות גבוהה והתאוששות מאסון
בפריסות של Kubernetes, צריך ליצור פריסה אזורית חדשה של Kubernetes, שנקראת אשכול מסד נתונים משני, ולהפעיל רפליקציה בין מרכזי נתונים.
הטמעה
כשבוחרים ארכיטקטורת הפניה לזמינות, חשוב לזכור את היתרונות, המגבלות והאפשרויות הבאים.
יתרונות
- הגנה מפני כשלים אזוריים וכשלים במופעים
- הגנה מפני כשלים אזוריים
- ה-RTO קטן יותר כשיש כשל אזורי במסד הנתונים
מגבלות
- אפשר להקטין את RPO לשחזור אזורי באמצעות שכפול סינכרוני, אבל הגישה הזו גורמת לזמן אחזור נוסף בביצועי העסקאות. לצורך DR ויצירת רפליקות באזור מרוחק, מומלץ להשתמש רק ברפליקציה אסינכרונית.
- הגדרת הזרמת WAL של PostgreSQL במצב סינכרוני מציעה אפס אובדן נתונים (
RPO=0) במהלך פעולה רגילה או מעברים אופייניים לגיבוי בעת כשל. עם זאת, הגישה הזו לא מגנה מפני אובדן נתונים במצבים ספציפיים של כשל כפול, למשל כשכל מופעי הגיבוי בעת כשל אבדו או שלא ניתן להגיע אליהם מהשרת הראשי, ומיד לאחר מכן מתבצעת הפעלה מחדש של השרת הראשי.
אפשרויות להגנה על הנתונים
- ארכיטקטורת זמינות רגילה לאפשרויות גיבוי ושחזור.
- ארכיטקטורת הזמינות המשופרת לאפשרויות של זמינות גבוהה.
המאמרים הבאים
- סקירה כללית של תרשים עזר לארכיטקטורת הזמינות של AlloyDB Omni.
- זמינות רגילה של AlloyDB Omni.
- זמינות משופרת של AlloyDB Omni.
- עבודה עם שכפול בין מרכזי נתונים.
- ניתוב בקשות למאזן עומסים קלאסי של אפליקציות (ALB) בכמה אזורים.