דוגמאות להגדרות שכפול
בדף הזה מתוארים כמה תרחישי שימוש נפוצים בשכפול של Bigtable, ומוצגות ההגדרות שבהן אפשר להשתמש כדי לתמוך בתרחישי השימוש האלה.
- בידוד עומסי עבודה של ניתוח נתונים באצווה מאפליקציות אחרות
- יצירת זמינות גבוהה (HA)
- גיבוי כמעט בזמן אמת
- שמירה על זמינות גבוהה ועמידות אזורית
- אחסון נתונים קרוב למשתמשים
בדף הזה מוסבר גם איך להחליט באילו הגדרות להשתמש בתרחישי שימוש אחרים.
לפני שקוראים את הדף הזה, מומלץ לעיין בסקירה הכללית על השכפול ב-Bigtable.
לפני הוספת אשכולות למופע, עליך להיות מודע למגבלות החלות בעת שינוי מדיניות איסוף אשפה בטבלאות משוכפלות.
ברוב המקרים, מומלץ להפעיל את התכונה 'התאמה אוטומטית לעומס' עבור אשכולות המכונות. התאמה אוטומטית לעומס מאפשרת ל-Bigtable להוסיף ולהסיר צמתים באופן אוטומטי באשכול על סמך עומס העבודה.
אם בוחרים בהקצאה ידנית של צמתים, צריך להקצות מספיק צמתים בכל אשכול במופע כדי להבטיח שכל אשכול יוכל לטפל בשכפול בנוסף לעומס שהוא מקבל מהאפליקציות. אם באשכול אין מספיק צמתים, יכול להיות שזמן ההשהיה של השכפול יתארך, האשכול עלול לסבול מבעיות בביצועים בגלל הצטברות של זיכרון, ויכול להיות שפעולות כתיבה לאשכולות אחרים במופע יידחו.
הדוגמאות במסמך הזה מתארות יצירה של מכונה, אבל אפשר גם להוסיף אשכולות למכונה קיימת.
בידוד של עומסי עבודה של ניתוח נתונים באצווה מאפליקציות אחרות
כשמשתמשים באותו אשכול כדי להריץ משימת ניתוח אצווה שמבצעת קריאות רבות של נתונים גדולים, לצד אפליקציה שמבצעת קריאות וכתיבות, משימת האצווה הגדולה עלולה להאט את הפעילות של משתמשי האפליקציה. בעזרת שכפול, אפשר להשתמש בפרופילי אפליקציות עם ניתוב לאשכול יחיד כדי לנתב משימות ניתוח נתונים של אצווה ותנועה של אפליקציות לאשכולות שונים, כך שמשימות אצווה לא ישפיעו על המשתמשים באפליקציות.
יצירת מכונה עם שני אשכולות.
יוצרים שני פרופילים של אפליקציות, אחד בשם
live-trafficואחד בשםbatch-analytics.אם מזהי האשכולות הם
cluster-aו-cluster-b, פרופיל האפליקציהlive-trafficצריך לנתב בקשות אלcluster-a, ופרופיל האפליקציהbatch-analyticsצריך לנתב בקשות אלcluster-b. ההגדרה הזו מספקת עקביות של קריאה-כתיבה לאפליקציות שמשתמשות באותו פרופיל אפליקציה, אבל לא לאפליקציות שמשתמשות בפרופילים שונים של אפליקציות.במקרה הצורך, אפשר להפעיל עסקאות בשורה אחת בפרופיל האפליקציה
live-traffic. אין צורך להפעיל טרנזקציות של שורה אחת בפרופיל האפליקציה שלbatch-analytics, בהנחה שתשתמשו בפרופיל האפליקציה הזה רק לקריאות.משתמשים בפרופיל של אפליקציית
live-trafficכדי להריץ עומס עבודה של תנועה בזמן אמת.בזמן שעומס העבודה של התנועה בזמן אמת פועל, משתמשים בפרופיל האפליקציה
batch-analyticsכדי להפעיל עומס עבודה של אצווה לקריאה בלבד.
כדי לבודד שני עומסי עבודה קטנים מעומס עבודה גדול יותר:
יוצרים מכונה עם שלושה אשכולות.
השלבים האלה מניחים שהאשכולות שלכם משתמשים במזהים
cluster-a,cluster-bו-cluster-c.יוצרים את פרופילי האפליקציות הבאים:
live-traffic-app-a: ניתוב של מקבץ יחיד מהאפליקציה אלcluster-a-
live-traffic-app-b: ניתוב של קלאסטר יחיד מהאפליקציה אלcluster-b -
batch-analytics: ניתוב של עבודת ניתוח הנתונים באצווה מאשכול יחיד אלcluster-c
משתמשים בפרופילים של אפליקציות עם תנועת גולשים פעילה כדי להריץ עומסי עבודה של תנועת גולשים פעילה.
בזמן שעומסי העבודה של התנועה בזמן אמת פועלים, משתמשים בפרופיל האפליקציה
batch-analyticsכדי להפעיל עומס עבודה של קבוצת פעולות לקריאה בלבד.
יצירת זמינות גבוהה (HA)
אם למופע יש רק אשכול אחד, העמידות והזמינות של הנתונים מוגבלות לאזור שבו האשכול ממוקם. רפליקציה יכולה לשפר את העמידות והזמינות על ידי אחסון עותקים נפרדים של הנתונים בכמה אזורים או אזורים גיאוגרפיים, ומעבר אוטומטי בין אשכולות במקרה הצורך.
כדי להגדיר את המופע לתרחיש שימוש בזמינות גבוהה (HA), צריך ליצור פרופיל אפליקציה חדש שמשתמש בניתוב מרובה אשכולות, או לעדכן את פרופיל האפליקציה שמוגדר כברירת מחדל כך שישתמש בניתוב מרובה אשכולות. ההגדרה הזו מספקת מודל עקביות הדרגתי. לא תוכלו להפעיל עסקאות בשורה אחת כי הן עלולות לגרום לסכסוכי נתונים כשמשתמשים בניתוב מרובה אשכולות.
ההגדרות הבאות יכולות לשפר את הזמינות.
קלאסטרים בשלושה אזורים שונים או יותר (הגדרה מומלצת). ההגדרה המומלצת לזמינות גבוהה היא מופע עם N+2 אשכולות, שכל אחד מהם נמצא באזור אחר. לדוגמה, אם מספר האשכולות המינימלי שנדרש כדי להציג את הנתונים הוא 2, צריך ליצור מופע עם ארבעה אשכולות כדי לשמור על זמינות גבוהה. ההגדרה הזו מספקת זמן פעולה גם במקרה הנדיר ששני אזורים לא זמינים. מומלץ לפזר את האשכולות בכמה יבשות.
הגדרה לדוגמה:
-
cluster-aבאזורus-central1-aבאיווה cluster-bבאזורeurope-west1-dבבלגיה-
cluster-cבאזורasia-east1-bבטייוואן
-
שני אשכולות באותו אזור אבל באזורים שונים. האפשרות הזו מספקת זמינות גבוהה במסגרת הזמינות של האזור, יכולת לבצע מעבר לגיבוי ללא יצירת עלויות שכפול בין אזורים, וללא עלייה בחביון במעבר לגיבוי. הנתונים שלכם במופע Bigtable משוכפל זמינים כל עוד אחד מהאזורים שאליהם הוא משוכפל זמין.
מידע נוסף על שיקולים ספציפיים לאזור זמין במאמר מיקום גיאוגרפי ואזורים.
הגדרה לדוגמה:
-
cluster-aבטווחaustralia-southeast1-aבסידני -
cluster-bבטווחaustralia-southeast1-bבסידני
-
שני אשכולות באזורים שונים. ההגדרה הזו במספר אזורים מספקת זמינות גבוהה כמו ההגדרה הקודמת במספר אזורים, אבל הנתונים שלכם זמינים גם אם אתם לא מצליחים להתחבר לאחד מהאזורים.
החיוב הוא על רפליקציה של פעולות כתיבה בין אזורים.
הגדרה לדוגמה:
cluster-aבאזורasia-northeast1-cבטוקיוcluster-bבאזורasia-east2-bבהונג קונג
שני אשכולות באזור א' ואשכול שלישי באזור ב'. האפשרות הזו מאפשרת גישה לנתונים גם אם אין אפשרות להתחבר לאחד מהאזורים, ומספקת קיבולת נוספת באזור א'.
אתם מחויבים על רפליקציה של פעולות כתיבה בין אזורים. אם כותבים לאזור א', החיוב הוא פעם אחת כי יש רק אשכול אחד באזור ב'. אם כותבים לאזור ב', מחויבים פעמיים כי יש שני אשכולות באזור א'.
הגדרה לדוגמה:
cluster-aבאזורeurope-west1-bבבלגיהcluster-bבאזורeurope-west1-dבבלגיהcluster-cבאזורeurope-north1-cבפינלנד
גיבוי כמעט בזמן אמת
במקרים מסוימים – למשל אם אתם לא יכולים להרשות לעצמכם לקרוא נתונים לא עדכניים – תמיד תצטרכו להפנות בקשות לאותו אשכול. עם זאת, עדיין אפשר להשתמש בשכפול על ידי טיפול בבקשות באמצעות אשכול אחד ושמירת אשכול אחר כגיבוי כמעט בזמן אמת. אם אשכול השרתים להצגת מודעות לא זמין, אפשר למזער את זמן ההשבתה על ידי מעבר ידני לאשכול הגיבוי.
כדי להגדיר את המופע לתרחיש השימוש הזה, יוצרים פרופיל אפליקציה שמשתמש בניתוב של אשכול יחיד או מעדכנים את פרופיל האפליקציה שמוגדר כברירת מחדל כך שישתמש בניתוב של אשכול יחיד. האשכול שציינתם בפרופיל האפליקציה מטפל בבקשות נכנסות. האשכול השני משמש כגיבוי למקרה שצריך לבצע מעבר לגיבוי. הסידור הזה נקרא לפעמים הגדרה פעילה-סבילה, והוא מספק גם מודל עקביות חזק וגם עקביות של קריאה-כתיבה. במקרה הצורך, אפשר להפעיל עסקאות בשורה אחת בפרופיל האפליקציה.
כדי להטמיע את ההגדרה הזו:
משתמשים בפרופיל אפליקציה עם ניתוב לאשכול יחיד כדי להריץ עומס עבודה.
משתמשים במסוף Google Cloud כדי לעקוב אחרי האשכולות של המופע ולוודא שרק אשכול אחד מטפל בבקשות נכנסות.
האשכול השני עדיין ישתמש במשאבי CPU כדי לבצע שכפול ומשימות תחזוקה אחרות.
מעדכנים את פרופיל האפליקציה כך שיצביע על האשכול השני במופע.
מוצגת אזהרה לגבי אובדן עקביות של קריאה-כתיבה, שמשמעותה גם אובדן עקביות חזקה.
אם הפעלתם טרנזקציות של שורה אחת, תקבלו גם אזהרה לגבי פוטנציאל לאובדן נתונים. אם שולחים פעולות כתיבה סותרות בזמן הגיבוי האוטומטי, הנתונים יאבדו.
חשוב להמשיך לעקוב אחרי המופע. אפשר לראות שהאשכול השני מטפל בבקשות נכנסות.
שמירה על זמינות גבוהה ועמידות אזורית
נניח שיש לכם ריכוזים של לקוחות בשני אזורים נפרדים ביבשת מסוימת. אתם רוצים להציג לכל קבוצת לקוחות אשכולות Bigtable כמה שיותר קרוב ללקוחות. אתם רוצים שהנתונים שלכם יהיו עם זמינות גבוהה בכל אזור, ואולי תרצו אפשרות יתירות כשל אם אחד או יותר מהאשכולות שלכם לא זמינים.
בתרחיש השימוש הזה, אפשר ליצור מופע עם שני אשכולות באזור א' ושני אשכולות באזור ב'. ההגדרה הזו מספקת זמינות גבוהה גם אם אי אפשר להתחבר לאזור Google Cloud . הוא גם מספק חוסן אזורי, כי גם אם תחום (zone) מסוים לא זמין, האשכול השני באזור הזה עדיין זמין.
אתם יכולים לבחור להשתמש בניתוב בין כמה אשכולות או בניתוב בין אשכולות בודדים בתרחיש השימוש הזה, בהתאם לצורכי העסק שלכם.
כדי להגדיר את המופע לתרחיש השימוש הזה:
יוצרים מופע Bigtable עם ארבעה אשכולות: שניים באזור א' ושניים באזור ב'. קלאסטרים באותו אזור צריכים להיות באזורים שונים.
הגדרה לדוגמה:
-
cluster-aבאזורasia-south1-aבמומבאי -
cluster-bבאזורasia-south1-cבמומבאי cluster-cבאזורasia-northeast1-aבטוקיוcluster-dבאזורasia-northeast1-bבטוקיו
-
ממקמים שרת אפליקציות ליד כל אזור.
אתם יכולים לבחור להשתמש בניתוב בין כמה אשכולות או בניתוב בין אשכולות בודדים בתרחיש השימוש הזה, בהתאם לצורכי העסק שלכם. אם משתמשים בניתוב בין כמה אשכולות, Bigtable מטפל במעבר לגיבוי אוטומטית. אם אתם משתמשים בניתוב של אשכול יחיד, אתם צריכים להפעיל שיקול דעת כדי להחליט מתי לבצע מעבר לגיבוי פעיל לאשכול אחר.
אפשרות ניתוב לאשכול יחיד
אתם יכולים להשתמש בניתוב של אשכול יחיד לתרחיש השימוש הזה אם אתם לא רוצים שאשכול Bigtable שלכם יעבור אוטומטית לגיבוי אם אזור או אזור גיאוגרפי מסוים לא יהיו זמינים. האפשרות הזו מתאימה אם אתם רוצים לנהל את העלויות ואת זמן טעינה שעלולים להתרחש אם Bigtable יתחיל לנתב תעבורת נתונים לאזור מרוחק וממנו, או אם אתם מעדיפים לקבל החלטות לגבי יתירות כשל על סמך שיקול דעת או כללי עסקיים משלכם.
כדי להטמיע את ההגדרה הזו, צריך ליצור לפחות פרופיל אפליקציה אחד שמשתמש בניתוב של אשכול יחיד לכל אפליקציה ששולחת בקשות למופע. אתם יכולים להפנות את פרופילי האפליקציות לכל אשכול במופע Bigtable. לדוגמה, אם יש לכם שלוש אפליקציות שפועלות במומבאי ושש בטוקיו, אתם יכולים להגדיר פרופיל אפליקציה אחד לאפליקציה במומבאי שינותב ל-asia-south1-a ושני פרופילים שינותבו ל-asia-south1-c. באפליקציית טוקיו, מגדירים שלושה פרופילים של אפליקציות שמובילים ל-asia-northeast1-a ושלושה שמובילים ל-asia-northeast1-b.
במקרה של הגדרה כזו, אם אחד או יותר מהאשכולות לא יהיו זמינים, תוכלו לבצע יתירות כשל ידנית או לבחור שהנתונים לא יהיו זמינים באופן זמני באזור הזה עד שהאזור יהיה זמין שוב.
אפשרות ניתוב מרובה אשכולות
אם אתם מטמיעים את תרחיש השימוש הזה ואתם רוצים ש-Bigtable יבצע מעבר אוטומטי לגיבוי (failover) לאזור אחד אם האפליקציה שלכם לא יכולה להגיע לאזור השני, אתם יכולים להשתמש בניתוב בין כמה אשכולות.
כדי להטמיע את ההגדרה הזו, יוצרים פרופיל אפליקציה חדש שמשתמש בניתוב מרובה אשכולות לכל אפליקציה, או מעדכנים את פרופיל האפליקציה שמוגדר כברירת מחדל כך שישתמש בניתוב מרובה אשכולות.
ההגדרה הזו מספקת מודל עקביות הדרגתי. אם אזור מסוים הופך ללא זמין, בקשות Bigtable נשלחות באופן אוטומטי לאזור השני. במקרים כאלה, תחויבו על תנועת הרשת לאזור השני, ויכול להיות שזמן האחזור של האפליקציה יהיה ארוך יותר בגלל המרחק הגדול יותר.
אחסון נתונים קרוב למשתמשים
אם יש לכם משתמשים בכל העולם, אתם יכולים להקטין את זמן האחזור על ידי הפעלת האפליקציה קרוב למשתמשים והצבת הנתונים קרוב ככל האפשר לאפליקציה. באמצעות Bigtable, אפשר ליצור מופע עם אשכולות בכמה Google Cloud אזורים, והנתונים משוכפלים אוטומטית בכל אזור.
בתרחיש השימוש הזה, צריך להשתמש בפרופילים של אפליקציות עם ניתוב לאשכול יחיד. לא מומלץ להשתמש בניתוב בין כמה אשכולות בתרחיש השימוש הזה בגלל המרחק בין האשכולות. אם קבוצת מחשבים (cluster) הופכת ללא זמינה ופרופיל האפליקציה שלה שמבוסס על כמה קבוצות מחשבים מפנה אוטומטית את התעבורה למרחק רב, יכול להיות שזמן האחזור של האפליקציה יהיה ארוך מדי ותיגרמו עלויות רשת נוספות ולא צפויות.
כדי להגדיר את המופע לתרחיש השימוש הזה:
יוצרים מופע עם אשכולות בשלושה אזורים גיאוגרפיים נפרדים, למשל ארצות הברית, אירופה ואסיה.
ממקמים שרת אפליקציות ליד כל אזור.
יוצרים פרופילים של אפליקציות שדומים לפרופילים הבאים:
-
clickstream-us: ניתוב לאשכול יחיד בארצות הברית -
clickstream-eu: ניתוב לאשכול יחיד באשכול באירופה -
clickstream-asia: ניתוב לאשכול יחיד לאשכול באסיה
-
בהגדרה הזו, האפליקציה משתמשת בפרופיל האפליקציה של האשכול הקרוב ביותר. פעולות כתיבה לכל אשכול משוכפלות אוטומטית לשני האשכולות האחרים.
תרחישים אחרים לדוגמה
אם יש לכם תרחיש שימוש שלא מתואר בדף הזה, תוכלו להיעזר בשאלות הבאות כדי להחליט איך להגדיר את פרופילי האפליקציה:
האם אתם צריכים לבצע טרנזקציות בשורה אחת, כמו פעולות קריאה-שינוי-כתיבה (כולל פעולות של הגדלה וצירוף) ופעולות של בדיקה ושינוי (שנקראות גם שינויים מותנים או כתיבות מותנות)?
אם כן, פרופילי האפליקציות צריכים להשתמש בניתוב של אשכול יחיד כדי למנוע אובדן נתונים, וצריך לטפל במעבר לגיבוי ידנית.
האם רוצים שמערכת Bigtable תטפל במעבר לגיבוי בעת כשל באופן אוטומטי?
אם כן, בפרופילים של האפליקציה צריך להשתמש בניתוב בין כמה אשכולות. אם אשכול לא יכול לעבד בקשה נכנסת, Bigtable מבצעת באופן אוטומטי מעבר לגיבוי חם לאשכולות האחרים. מידע נוסף על מעבר אוטומטי לגיבוי
כדי למנוע אובדן נתונים, אי אפשר להפעיל טרנזקציות של שורה אחת כשמשתמשים בניתוב בין כמה אשכולות. מידע נוסף
רוצים לשמור גיבוי או אשכול חלופי למקרה שהאשכול הראשי לא יהיה זמין?
אם כן, צריך להשתמש בניתוב של בקשות לאשכול יחיד בפרופילים של האפליקציה, ולבצע מעבר לגיבוי לאשכול באופן ידני אם יש צורך.
ההגדרה הזו מאפשרת גם להשתמש בטרנזקציות של שורה אחת, אם צריך.
רוצים להפנות סוגים שונים של תנועה לאשכולות שונים?
אם כן, צריך להשתמש בניתוב חד-אשכולי בפרופילים של האפליקציות, ולהפנות כל סוג של תעבורה לאשכול משלו. במקרה הצורך, מעבירים את הגיבוי בין אשכולות באופן ידני.
במקרה הצורך, אפשר להפעיל עסקאות בשורה אחת בפרופילים של האפליקציות.
המאמרים הבאים
- מידע נוסף על פרופילים של אפליקציות
- יוצרים פרופיל אפליקציה או מעדכנים פרופיל אפליקציה קיים.
- איך מתבצע מעבר לגיבוי?