במאמר הזה מוצגת ארכיטקטורה לדוגמה של אפליקציה בכמה שכבות, שפועלת במכונות וירטואליות של Compute Engine וב-Spanner בטופולוגיה גלובלית ב- Google Cloud. בנוסף, מוסבר איך לבנות ארכיטקטורה שמשתמשת בשירותי תשתית אחרים של Google Cloud . במאמר מתוארים הגורמים העיצוביים שצריך להביא בחשבון כשבונים ארכיטקטורה גלובלית לאפליקציות בענן. קהל היעד של המסמך הזה הוא אדריכלי ענן.
הארכיטקטורה הזו תואמת לארכיטיפ של פריסה גלובלית. אנחנו ממליצים על האבטיפוס הזה לאפליקציות שמשרתות משתמשים ברחבי העולם וצריכות זמינות גבוהה ועמידות בפני הפסקות שירות בכמה אזורים. הארכיטקטורה הזו תומכת בהתאמה גמישה של קנה המידה ברמת הרשת, האפליקציה ומסד הנתונים. כך תוכלו להתאים את העלויות לשימוש בלי להתפשר על הביצועים, הזמינות או יכולת ההתאמה לעומס.
ארכיטקטורה
בתרשים הבא מוצגת ארכיטקטורה של אפליקציה שפועלת בתשתית שפרוסה באופן גלובלי בכמה אזורים ב- Google Cloud.
בארכיטקטורה הזו, מאזן עומסים גלובלי מפיץ את הבקשות הנכנסות לשרתי אינטרנט באזורים המתאימים, על סמך הזמינות, הקיבולת והקרבה שלהם למקור התנועה. שכבה פנימית של איזון עומסים בין אזורים מטפלת בהפצת התנועה משרתי האינטרנט לשרתי האפליקציות המתאימים, על סמך הזמינות והקיבולת שלהם. שרתי האפליקציה כותבים נתונים למסד נתונים שמשוכפל באופן סינכרוני וזמין בכל האזורים, וקוראים ממנו.
הארכיטקטורה כוללת את המשאבים הבאים של Google Cloud :
| רכיב | מטרה |
|---|---|
| מאזן עומסים גלובלי חיצוני |
מאזן העומסים החיצוני הגלובלי מקבל את בקשות המשתמשים ומפיץ אותן לאפליקציה. מאזן העומסים החיצוני הגלובלי מפרסם כתובת IP אחת מסוג anycast, אבל מאזן העומסים מוטמע כמספר גדול של שרתי proxy בממשקי הקצה של Google (GFE). בקשות הלקוח מופנות ל-GFE הקרוב ביותר ללקוח. בהתאם לדרישות שלכם, אתם יכולים להשתמש במאזן עומסים גלובלי חיצוני של אפליקציות (ALB) או במאזן עומסי רשת גלובלי חיצוני בשרת proxy. מידע נוסף זמין במאמר בחירת מאזן עומסים. כדי להגן על האפליקציה מפני איומים כמו התקפות מניעת שירות מבוזרות (DDoS) ופרצות אבטחה XSS (cross-site scripting), אתם יכולים להשתמש בכללי מדיניות האבטחה של Google Cloud Armor. |
| קבוצות מופעי מכונה מנוהלים (MIG) אזוריות לשכבת האינטרנט |
שכבת האינטרנט של האפליקציה פרוסה במכונות וירטואליות של Compute Engine, שהן חלק מקבוצות MIG אזוריות. קבוצות ה-MIG האלה הן שרתי ה-backend של מאזן העומסים הגלובלי. כל קבוצת MIG מכילה מכונות וירטואליות של Compute Engine בשלושה אזורים שונים. כל אחת מהמכונות הווירטואליות האלה מארחת מכונה עצמאית של שכבת האינטרנט של האפליקציה. |
| שכבת איזון עומסים פנימי בין אזורים |
מאזני עומסים פנימיים עם קצוות עורפיים חוצי-אזורים מטפלים בהפצה של תעבורת הנתונים מהמכונות הווירטואליות של שכבת האינטרנט בכל אזור למכונות הווירטואליות של שכבת האפליקציה בכל האזורים. בהתאם לדרישות שלכם, אתם יכולים להשתמש במאזן עומסים פנימי של אפליקציות (ALB) חוצה-אזורים או במאזן עומסי רשת פנימי חוצה-אזורים בשרת proxy. מידע נוסף זמין במאמר בחירת מאזן עומסים. |
| קבוצות MIG אזוריות לשכבת האפליקציה |
שכבת האפליקציה נפרסת במכונות וירטואליות של Compute Engine שהן חלק מקבוצות MIG אזוריות. קבוצות ה-MIG האלה הן הקצוות העורפיים של שכבת איזון העומסים הפנימית. כל קבוצת MIG מכילה מכונות וירטואליות של Compute Engine בשלושה אזורים שונים. כל מכונה וירטואלית מארחת מכונה עצמאית של שכבת האפליקציה. |
| מכונה של Spanner במספר אזורים |
האפליקציה כותבת נתונים למכונה של Spanner במספר אזורים וקוראת ממנה נתונים. ההגדרה במספר אזורים בארכיטקטורה הזו כוללת את הרפליקות הבאות:
|
| רשת ענן וירטואלי פרטי (VPC) ורשתות משנה |
כל המשאבים בארכיטקטורה משתמשים ברשת VPC אחת. לרשת ה-VPC יש את רשתות המשנה הבאות:
במקום להשתמש ברשת VPC אחת, אתם יכולים ליצור רשת VPC נפרדת בכל אזור ולחבר את הרשתות באמצעות Network Connectivity Center. |
המוצרים שהשתמשו בהם
ארכיטקטורת העזר הזו משתמשת במוצרים הבאים של Google Cloud :
- Compute Engine: שירות מחשוב מאובטח שניתן להתאמה אישית, שמאפשר ליצור ולהריץ מכונות וירטואליות בתשתית של Google.
- Cloud Load Balancing: מגוון של מאזני עומסים גלובליים ואזוריים, עם ביצועים גבוהים ויכולת התאמה לעומס.
- Spanner: שירות של מסד נתונים רלציוני, עם עקביות גלובלית וסילומיות גבוהה.
שיקולים שקשורים לעיצוב
בקטע הזה מוסבר איך להשתמש בארכיטקטורה לדוגמה כדי לפתח ארכיטקטורה שעומדת בדרישות הספציפיות שלכם בנוגע לתכנון המערכת, לאבטחה ולתאימות, לאמינות, לעלות, ליעילות התפעולית ולביצועים.
עיצוב המערכת
בקטע הזה מוסבר איך לבחור את האזורים ב- Google Cloud לפריסה גלובלית ואת שירותי Google Cloudהמתאימים.
בחירת אזור
כשבוחרים את Google Cloud האזורים שבהם צריך לפרוס את האפליקציות, צריך להביא בחשבון את הגורמים והדרישות הבאים:
- זמינות השירותים של Google Cloud בכל אזור. בטבלה של זמינות המוצרים לפי מיקום תוכלו לקרוא מידע נוסף.
- זמינות של סוגי מכונות ב-Compute Engine בכל אזור. למידע נוסף, קראו את המאמר אזורים ותחומים.
- דרישות זמן אחזור של משתמשי קצה.
- עלות המשאבים של Google Cloud .
- עלויות העברת נתונים בין אזורים.
- דרישות רגולטוריות.
- דרישות בנושא קיימוּת.
חלק מהגורמים והדרישות האלה עשויים להיות כרוכים בפשרות. לדוגמה, יכול להיות שהאזור הכי משתלם מבחינת עלות הוא לא האזור עם טביעת הרגל הפחמנית הכי נמוכה. למידע נוסף, קראו את המאמר שיטות מומלצות לבחירת אזורים ב-Compute Engine.
תשתית המחשוב
ארכיטקטורת העזר במאמר הזה משתמשת במכונות וירטואליות של Compute Engine בשכבות מסוימות של האפליקציה. בהתאם לדרישות של האפליקציה, אתם יכולים לבחור מבין שירותי המחשוב האחרים של Google Cloud :
- קונטיינרים: אתם יכולים להריץ אפליקציות בקונטיינרים באשכולות של Google Kubernetes Engine (GKE). GKE הוא מנוע לתזמור קונטיינרים, שמאפשר לבצע אוטומציה של פריסה, התאמה לעומס וניהול של אפליקציות בקונטיינרים.
- בלי שרת (serverless): אם אתם מעדיפים להתמקד בנתונים ובאפליקציות במקום להגדיר ולהפעיל משאבי תשתית, אתם יכולים להשתמש בשירותים בלי שרת (serverless) כמו Cloud Run.
ההחלטה אם להשתמש במכונות וירטואליות, בקונטיינרים או בשירותים בלי שרת (serverless) כרוכה בפשרה בין גמישות ההגדרה לבין מאמצי הניהול. מכונות וירטואליות ומאגרים מספקים גמישות רבה יותר בהגדרות האישיות, אבל אתם אחראים לניהול המשאבים. בארכיטקטורה בלי שרת (serverless), אתם פורסים עומסי עבודה בפלטפורמה שהוגדרה מראש ודורשת מאמץ ניהולי מינימלי. מידע נוסף על בחירת שירותי המחשוב המתאימים לעומסי העבודה שלכם ב-Google Cloudזמין במאמר אירוח אפליקציות ב- Google Cloud.
שירותי אחסון
בארכיטקטורה שמוצגת במסמך הזה נעשה שימוש באמצעי אחסון אזוריים מסוג Persistent Disk למכונות הווירטואליות. אמצעי אחסון מסוג Regional Persistent Disk מספקים שכפול סינכרוני של נתונים בין שני אזורים בתוך אזור. הנתונים בנפחים של Persistent Disk לא משוכפלים בין אזורים.
Google Cloud Hyperdisk מספק ביצועים, גמישות ויעילות טובים יותר מאשר Persistent Disk. בעזרת Google Cloud Hyperdisk Balanced, אתם יכולים להקצות פעולות קלט/פלט לשנייה (IOPS) ונפח עיבוד נתונים בנפרד ובאופן דינמי, וכך להתאים את הנפח למגוון רחב של עומסי עבודה.
כדי לאחסן בעלות נמוכה עם שכפול בכמה מיקומים, אתם יכולים להשתמש בקטגוריות של Cloud Storage באזור אחד, בשני אזורים או בכמה אזורים.
- הנתונים בקטגוריות אזוריות משוכפלים באופן סינכרוני בין האזורים באותו אזור.
- נתונים בקטגוריות של שני אזורים או מספר אזורים מאוחסנים ביתירות בשני מיקומים גיאוגרפיים נפרדים לפחות. המטא-נתונים נכתבים באופן סינכרוני בין אזורים, והנתונים משוכפלים באופן אסינכרוני. בקטגוריות בשני אזורים אפשר להשתמש ברפליקציה בקצב טורבו, כדי לוודא שהאובייקטים משוכפלים בין זוגות של אזורים, עם יעד להתאוששות מאסון (RPO) של 15 דקות. למידע נוסף, ראו זמינות ועמידות של נתונים.
כדי לאחסן נתונים שמשותפים בין כמה מכונות וירטואליות באזור, כמו בכל המכונות הווירטואליות בשכבת האינטרנט או בשכבת האפליקציה, אתם יכולים להשתמש במכונה אזורית של Filestore. הנתונים שמאוחסנים במכונה אזורית של Filestore משוכפלים באופן סינכרוני בשלושה אזורים בתוך האזור. הרפליקציה הזו מבטיחה זמינות גבוהה ועמידות בפני הפסקות זמניות בשירות באזורים. אתם יכולים לאחסן קובצי תצורה משותפים, כלים וכלים נפוצים ויומנים מרכזיים במכונה של Filestore, ולטעון את המכונה בכמה מכונות וירטואליות. כדי להגן מפני הפסקות חשמל באזור, אתם יכולים לשכפל מכונה של Filestore לאזור אחר. מידע נוסף זמין במאמר רפליקציה של מכונות.
אם מסד הנתונים שלכם הוא Microsoft SQL Server, מומלץ להשתמש ב-Cloud SQL ל-SQL Server. אם Cloud SQL לא תומך בדרישות ההגדרה שלכם, או אם אתם צריכים גישה למערכת ההפעלה, אתם יכולים לפרוס מכונה של אשכול יתירות כשל (FCI) של Microsoft SQL Server. בתרחיש הזה, אתם יכולים להשתמש ב-Google Cloud NetApp Volumes בניהול מלא כדי לספק למסד הנתונים אחסון SMB בזמינות רציפה (CA).
כשאתם מתכננים את האחסון לעומסי העבודה, כדאי להביא בחשבון את המאפיינים הפונקציונליים, את דרישות העמידות, את הציפיות לגבי הביצועים ואת יעדי העלות. מידע נוסף זמין במאמר תכנון אסטרטגיית אחסון אופטימלית לעומסי העבודה בענן.
שירותי מסדי נתונים
ארכיטקטורת העזר במסמך הזה משתמשת ב-Spanner, מסד נתונים מנוהל, שניתן להרחבה אופקית, מבוזר גלובלית ומשוכפל באופן סינכרוני. מומלץ להגדיר את Spanner במספר אזורים לפריסות קריטיות שדורשות עקביות חזקה בין אזורים. Spanner תומך ברפליקציה סינכרונית בין אזורים בלי זמן השבתה לצורך יתירות כשל, תחזוקה או שינוי גודל.
למידע על שירותי מסדי נתונים מנוהלים אחרים שאפשר לבחור בהם בהתאם לדרישות, ראו מסדי נתונים שלGoogle Cloud . כשבוחרים ומגדירים את מסד הנתונים לפריסה במספר אזורים, חשוב להביא בחשבון את הדרישות של האפליקציה לעקביות בנתונים בין אזורים, ולהיות מודעים לפשרות מבחינת ביצועים ועלות.
עיצוב הרשת
בוחרים עיצוב רשת שעונה על הדרישות העסקיות והטכניות שלכם. אפשר להשתמש ברשת VPC אחת או בכמה רשתות VPC. מידע נוסף זמין במשאבי העזרה הבאים:
אפשרויות לאיזון עומסים חיצוני
ארכיטקטורה שמשתמשת במאזן עומסים גלובלי חיצוני, כמו הארכיטקטורה שמתוארת במאמר הזה, תומכת בתכונות מסוימות שעוזרות לשפר את האמינות של הפריסות. לדוגמה, אם אתם משתמשים במאזן עומסים גלובלי חיצוני של אפליקציות (ALB), אתם יכולים להטמיע שמירת נתונים במטמון קצה באמצעות Cloud CDN.
אם באפליקציה שלכם נדרש סיום של Transport Layer Security (TLS) באזור ספציפי, או אם אתם צריכים את היכולת להציג תוכן מאזורים ספציפיים, אתם יכולים להשתמש במאזני עומסים אזוריים עם Cloud DNS כדי לנתב תנועה לאזורים שונים. למידע על ההבדלים בין מאזני עומסים אזוריים וגלובליים, קראו את המאמרים הבאים:
- איזון עומסים גלובלי לעומת איזון עומסים אזורי בקטע "בחירת מאזן עומסים"
- מצבי פעולה בסקירה הכללית של מאזן עומסים חיצוני של אפליקציות (ALB)
אבטחה, פרטיות ותאימות
בקטע הזה מתוארים הגורמים שצריך להביא בחשבון כשמשתמשים בארכיטקטורה לדוגמה הזו כדי לתכנן ולבנות טופולוגיה גלובלית ב-Google Cloud שעומדת בדרישות האבטחה, הפרטיות והתאימות של עומסי העבודה שלכם.
הגנה מפני איומים חיצוניים
כדי להגן על האפליקציה מפני איומים כמו התקפות מניעת שירות מבוזרות (DDoS) ופרצות אבטחה XSS (cross-site scripting), אתם יכולים להשתמש בכללי מדיניות האבטחה של Google Cloud Armor. כל מדיניות היא קבוצה של כללים שמציינים תנאים מסוימים שצריך להעריך ופעולות שצריך לבצע כשהתנאים מתקיימים. לדוגמה, כלל יכול לציין שאם כתובת ה-IP של המקור של תעבורת הנתונים הנכנסת תואמת לכתובת IP ספציפית או לטווח CIDR, צריך לדחות את תעבורת הנתונים. אפשר גם להחיל כללים מוגדרים מראש של חומת אש ליישומי אינטרנט (WAF). מידע נוסף זמין במאמר סקירה כללית של מדיניות האבטחה.
גישה חיצונית למכונות וירטואליות
בארכיטקטורה לדוגמה שמתוארת במאמר הזה, המכונות הווירטואליות של Compute Engine לא צריכות גישה נכנסת מהאינטרנט. אל תקצו כתובות IP חיצוניות למכונות הווירטואליות. Google Cloud משאבים שיש להם רק כתובת IP פנימית פרטית עדיין יכולים לגשת לממשקי API ולשירותים מסוימים של Google באמצעות Private Service Connect או גישה פרטית ל-Google. למידע נוסף, קראו את המאמר אפשרויות גישה פרטיות לשירותים.
כדי לאפשר חיבורים יוצאים מאובטחים ממשאבי Google Cloud שיש להם רק כתובות IP פרטיות, כמו המכונות הווירטואליות של Compute Engine בארכיטקטורה לדוגמה, אתם יכולים להשתמש ב-Secure Web Proxy או ב-Cloud NAT.
הרשאות של חשבון שירות
במכונות הווירטואליות של Compute Engine בארכיטקטורה, במקום להשתמש בחשבונות השירות שמוגדרים כברירת מחדל, מומלץ ליצור חשבונות שירות ייעודיים ולציין את המשאבים שחשבון השירות יכול לגשת אליהם. לחשבון השירות שמוגדר כברירת מחדל יש מגוון רחב של הרשאות, כולל כאלה שלא בהכרח נדרשות. אתם יכולים להתאים אישית חשבונות שירות ייעודיים כך שיהיו להם רק ההרשאות החיוניות. מידע נוסף מופיע במאמר הגבלת ההרשאות של חשבון שירות.
אבטחת SSH
כדי לשפר את האבטחה של חיבורי SSH למכונות הווירטואליות של Compute Engine בארכיטקטורה, צריך להטמיע את Identity-Aware Proxy (IAP) ואת Cloud OS Login API. באמצעות IAP אפשר לשלוט בגישה לרשת על סמך זהות המשתמש וכללי המדיניות של ניהול זהויות והרשאות גישה (IAM). באמצעות Cloud OS Login API אפשר לשלוט בגישת SSH ל-Linux על סמך זהות המשתמש ומדיניות IAM. למידע נוסף על ניהול הגישה לרשת, קראו את המאמר שיטות מומלצות לבקרת הגישה להתחברות באמצעות SSH.
שיקולי אבטחה נוספים
כשאתם בונים את הארכיטקטורה של עומס העבודה, כדאי להביא בחשבון את השיטות המומלצות וההמלצות לאבטחה ברמת הפלטפורמה שמפורטות בתוכנית Enterprise foundations ובGoogle Cloud Well-Architected Framework: אבטחה, פרטיות ותאימות.
אמינות
בקטע הזה מתוארים גורמי התכנון שצריך להביא בחשבון כשמשתמשים בארכיטקטורה לדוגמה הזו כדי לבנות ולהפעיל תשתית אמינה לפריסה גלובלית ב- Google Cloud.
התאמה לעומס (autoscaling) ב-MIG
כשמריצים את האפליקציה בכמה קבוצות MIG אזוריות, האפליקציה נשארת זמינה במהלך הפסקות מבודדות באזורים או הפסקות אזוריות. היכולת של קבוצות MIG ללא שמירת מצב להתאים את הגודל באופן אוטומטי מאפשרת לשמור על הזמינות והביצועים של האפליקציה ברמות צפויות.
כדי לשלוט בהתנהגות של ההתאמה האוטומטית לעומס של קבוצות MIG בלי שמירת מצב, אתם יכולים לציין מדדי ניצול יעדים, כמו ניצול ממוצע של המעבד (CPU). אפשר גם להגדיר התאמה אוטומטית לעומס (scaling) מבוססת-תזמון לקבוצות MIG ללא שמירת מצב. אי אפשר לשנות את הגודל של קבוצות MIG עם שמירת מצב באופן אוטומטי. מידע נוסף מופיע במאמר התאמה אוטומטית לעומס (autoscaling) של קבוצות מכונות.
מגבלת הגודל של MIG
כשמחליטים על הגודל של קבוצות ה-MIG, צריך להביא בחשבון את מגבלות ברירת המחדל והמגבלות המקסימליות על מספר המכונות הווירטואליות שאפשר ליצור בקבוצת MIG. מידע נוסף זמין במאמר הוספה והסרה של מכונות וירטואליות מ-MIG.
תיקון אוטומטי של מכונות וירטואליות
לפעמים המכונות הווירטואליות שמארחות את האפליקציה פועלות וזמינות, אבל יש בעיות באפליקציה עצמה. האפליקציה עלולה לקפוא, לקרוס או לא לקבל מספיק זיכרון. כדי לוודא שאפליקציה מגיבה כצפוי, אפשר להגדיר בדיקות תקינות שמבוססות על אפליקציות כחלק ממדיניות התיקון האוטומטי של קבוצות ה-MIG. אם האפליקציה במכונה וירטואלית מסוימת לא מגיבה, ה-MIG מתקן את המכונה הווירטואלית באופן אוטומטי. מידע נוסף על הגדרת תיקון אוטומטי זמין במאמר תיקון מכונות וירטואליות לזמינות גבוהה.
מיקום של מכונות וירטואליות
בארכיטקטורה שמתוארת במאמר הזה, שכבת האפליקציה ושכבת האינטרנט פועלות במכונות וירטואליות של Compute Engine שפזורות בכמה אזורים. ההפצה הזו מבטיחה שהאפליקציה תהיה עמידה בפני הפסקות חשמל באזורים.
כדי לשפר את העמידות של הארכיטקטורה, אפשר ליצור מדיניות למיקום מרווח ולהחיל אותה על התבנית של ה-MIG. כשה-MIG יוצר מכונות וירטואליות, הוא ממקם אותן בכל אזור בשרתים פיזיים שונים (שנקראים מארחים), כך שהמכונות הווירטואליות עמידות בפני כשלים של מארחים בודדים. מידע נוסף זמין במאמר יצירה והחלה של מדיניות למיקום מרווח במכונות וירטואליות.
תכנון קיבולת של מכונות וירטואליות
כדי לוודא שהקיבולת של המכונות הווירטואליות ב-Compute Engine זמינה כשצריך להקצות אותן, אתם יכולים ליצור הזמנות. הזמנה מספקת קיבולת מובטחת באזור ספציפי למספר מסוים של מכונות וירטואליות מסוג מכונה שאתם בוחרים. אפשר להגדיר הקצאה לפרויקט ספציפי או לשתף אותה בין כמה פרויקטים. למידע נוסף על הזמנות, ראו בחירת סוג הזמנה.
אחסון עם שמירת מצב (stateful)
אחת מהשיטות המומלצות בתכנון אפליקציות היא להימנע מהצורך בדיסקים מקומיים עם שמירת מצב (stateful). אבל אם יש דרישה כזו, אתם יכולים להגדיר את הדיסקים הקבועים כ-stateful כדי לוודא שהנתונים יישמרו כשהמכונות הווירטואליות יתוקנו או ייווצרו מחדש. עם זאת, מומלץ להשאיר את דיסקי האתחול בלי שמירת מצב, כדי שתוכלו לעדכן אותם לתמונות העדכניות ביותר עם גרסאות חדשות ותיקוני אבטחה. מידע נוסף זמין במאמר הגדרת דיסקים קבועים עם שמירת מצב בקבוצות MIG.
עמידות הנתונים
אתם יכולים להשתמש בשירות Backup and DR כדי ליצור, לאחסן ולנהל גיבויים של המכונות הווירטואליות ב-Compute Engine. שירות Backup and DR שומר את נתוני הגיבוי בפורמט המקורי שניתן לקריאה על ידי האפליקציה. במקרה הצורך, אתם יכולים לשחזר את עומסי העבודה לייצור באמצעות שימוש ישיר בנתונים מאחסון הגיבוי לטווח ארוך, בלי להכין או להעביר נתונים.
ב-Compute Engine יש כמה אפשרויות שיעזרו לכם לוודא שהנתונים שמאוחסנים בנפחים של Persistent Disk יישמרו לאורך זמן:
- אתם יכולים להשתמש בתמונות מצב כדי לתעד את המצב של דיסקים לאחסון מתמיד בנקודת זמן מסוימת. תמונות המצב מאוחסנות באופן יתיר בכמה אזורים, עם סיכומי ביקורת (checksum) אוטומטיים כדי להבטיח את תקינות הנתונים. כברירת מחדל, קובצי snapshot הם מצטברים, ולכן הם תופסים פחות מקום באחסון וחוסכים לכם כסף. תמונות המצב מאוחסנות במיקום ב-Cloud Storage שאפשר להגדיר. המלצות נוספות לשימוש בתמונות מצב ולניהול שלהן מופיעות במאמר שיטות מומלצות לתמונות מצב של דיסקים ב-Compute Engine.
- כדי לוודא שהנתונים ב-Persistent Disk יהיו זמינים גם אם תהיה הפסקה זמנית בשירות באזור, אתם יכולים להשתמש ב-Regional Persistent Disk או ב-Google Cloud Hyperdisk Balanced High Availability. הנתונים בסוגי הדיסקים האלה משוכפלים באופן סינכרוני בין שני אזורים באותו מחוז. מידע נוסף זמין במאמר מידע על שכפול דיסקים סינכרוני.
אמינות מסד הנתונים
נתונים שמאוחסנים במכונה של Spanner במספר אזורים משוכפלים באופן סינכרוני בכמה אזורים. ההגדרות של Spanner שמוצגות בדיאגרמת הארכיטקטורה שלמעלה כוללות את הרפליקות הבאות:
- ארבע רפליקות לקריאה ולכתיבה באזורים נפרדים בשני אזורים.
- רפליקת עדות באזור שלישי.
פעולת כתיבה למכונה של Spanner במספר אזורים מאושרת אחרי שלפחות שלוש רפליקות – באזורים נפרדים בשני אזורים – ביצעו את הפעולה. אם יש כשל באזור או בתחום, ל-Spanner יש גישה לכל הנתונים, כולל נתונים מפעולות הכתיבה האחרונות, והוא ממשיך לשרת בקשות קריאה וכתיבה.
ב-Spanner נעשה שימוש באחסון מפורק, שבו משאבי המחשוב והאחסון מופרדים. לא צריך להעביר נתונים כשמוסיפים קיבולת מחשוב לזמינות גבוהה או לשינוי קנה מידה. משאבי המחשוב החדשים מקבלים נתונים כשהם צריכים אותם מהצומת הקרוב ביותר של Colossus. כך אפשר לבצע יתירות כשל ושינוי קנה מידה מהר יותר ובצורה בטוחה יותר.
Spanner מספק עקביות עם העולם האמיתי, שהיא מאפיין מחמיר יותר מ-serializability למערכות של עיבוד טרנזקציות. למידע נוסף, קראו את המאמרים הבאים:
- Spanner: TrueTime ועקביות עם העולם האמיתי
- הסבר על הגדרות Spanner בכמה אזורים
- Inside Spanner and the CAP Theorem
שיקולים נוספים בנושא אמינות
כשאתם בונים את ארכיטקטורת הענן לעומס העבודה, כדאי לעיין בשיטות המומלצות ובהמלצות שקשורות לאמינות, שמפורטות במסמכים הבאים:
- Google Cloud מדריך לאמינות התשתית
- תבניות לאפליקציות עמידות שניתנות להרחבה
- תכנון מערכות חסינות
- Google Cloud Well-Architected Framework: אמינות
הוזלת עלויות
בקטע הזה מוסבר איך לבצע אופטימיזציה של עלויות ההגדרה וההפעלה של טופולוגיית Google Cloud גלובלית, שאתם בונים באמצעות ארכיטקטורת העזר הזו.
סוגי מכונות וירטואליות
כדי לעזור לכם לשפר את ניצול המשאבים של המכונות הווירטואליות, Compute Engine מספק המלצות לסוגי מכונות. אתם יכולים להשתמש בהמלצות כדי לבחור סוגי מכונות שמתאימים לדרישות המחשוב של עומס העבודה. אם אתם יכולים לחזות את השימוש שלכם במשאבים בעומסי העבודה, אתם יכולים להתאים אישית את סוג המכונה לפי הצרכים שלכם ולחסוך כסף באמצעות סוגי מכונות בהתאמה אישית.
מודל הקצאת VM
אם האפליקציה שלכם עמידה בפני תקלות, מכונות וירטואליות במחיר Spot יכולות לעזור לכם להפחית את העלויות של Compute Engine למכונות הווירטואליות בשכבות האפליקציה והאינטרנט. העלות של מכונות וירטואליות במודל Spot נמוכה משמעותית מזו של מכונות וירטואליות רגילות. עם זאת, יכול להיות ש-Compute Engine יפסיק או ימחק מכונות VM במודל Spot כדי לפנות קיבולת.
VM במודל Spot מתאימות למשימות באצווה שיכולות לסבול הפסקה זמנית, ואין להן דרישות לזמינות גבוהה. VMs במודל Spot מציעות את אותם סוגי מכונות, אפשרויות וביצועים כמו VMs רגילות. עם זאת, כשהקיבולת של המשאבים באזור מסוים מוגבלת, יכול להיות שקבוצות ה-MIG לא יוכלו להתרחב אופקית (כלומר, ליצור מכונות וירטואליות) באופן אוטומטי לגודל היעד שצוין, עד שהקיבולת הנדרשת תהיה זמינה שוב.
ניצול המשאבים של המכונה הווירטואלית
היכולת של קבוצות MIG ללא שמירת מצב להתאמה אוטומטית לעומס מאפשרת לאפליקציה להתמודד עם עליות בתעבורת נתונים בצורה חלקה, ועוזרת לכם להפחית את העלויות כשהצורך במשאבים נמוך. אי אפשר לשנות את הגודל של קבוצות MIG עם שמירת מצב באופן אוטומטי.
עלות מסד הנתונים
בעזרת Spanner אתם יכולים לוודא שעלויות מסד הנתונים צפויות. קיבולת המחשוב שאתם מציינים (מספר הצמתים או יחידות העיבוד) קובעת את נפח האחסון. קצב העברת הנתונים לקריאה ולכתיבה משתנה באופן ליניארי בהתאם לקיבולת המחשוב. התשלום הוא רק על השימוש בפועל. כדי להתאים את העלויות לצורכי עומס העבודה, אתם יכולים לשנות את הגודל של המכונה ב-Spanner.
רישוי של צד שלישי
כשמעבירים עומסי עבודה של צד שלישי אל Google Cloud, יכול להיות שאפשר להפחית את העלויות באמצעות שימוש ברישיונות קיימים (BYOL). לדוגמה, כדי לפרוס מכונות וירטואליות של Microsoft Windows Server, במקום להשתמש בקובץ אימג' פרימיום שגורר עלות נוספת על הרישיון של הצד השלישי, אתם יכולים ליצור קובץ אימג' בהתאמה אישית של Windows BYOL ולהשתמש בו. אחרי זה, אתם משלמים רק על תשתית ה-VM שבה אתם משתמשים ב- Google Cloud. האסטרטגיה הזו עוזרת לכם להמשיך להפיק ערך מההשקעות הקיימות שלכם ברישיונות של צד שלישי. אם החלטתם להשתמש בגישת BYOL, ההמלצות הבאות יכולות לעזור לכם להוזיל את העלויות:
- להקצות את המספר הנדרש של ליבות מעבד (CPU) לחישוב, בלי קשר לזיכרון, באמצעות סוגי מכונות בהתאמה אישית. כך אתם מגבילים את עלות הרישוי של הצד השלישי למספר ליבות המעבד שאתם צריכים.
- להשבית את הריבוי-תהליכים בו-זמני (SMT) כדי להפחית את מספר המעבדים הווירטואליים לכל ליבה מ-2 ל-1.
אם אתם פורסים מסד נתונים של צד שלישי כמו Microsoft SQL Server במכונות וירטואליות של Compute Engine, אתם צריכים להביא בחשבון את עלויות הרישיון של תוכנת הצד השלישי. כשמשתמשים בשירות של מסד נתונים מנוהל כמו Cloud SQL, עלויות הרישיון של מסד הנתונים כלולות בחיובים על השירות.
שיקולי עלות נוספים
כשאתם בונים את הארכיטקטורה של עומס העבודה, כדאי גם להביא בחשבון את השיטות המומלצות הכלליות ואת ההמלצות שמפורטות במאמר Google Cloud Well-Architected Framework: הוזלת העלויות.
יעילות תפעולית
בקטע הזה מתוארים הגורמים שצריך להביא בחשבון כשמשתמשים בארכיטקטורה לדוגמה כדי לתכנן ולבנות טופולוגיה גלובלית של Google Cloud שאפשר להפעיל ביעילות.
עדכונים בהגדרות של המכונה הווירטואלית
כדי לעדכן את ההגדרות של המכונות הווירטואליות בקבוצת MIG (למשל, סוג המכונה או קובץ האימג' של דיסק האתחול), יוצרים תבנית חדשה של הגדרות מכונה עם ההגדרות הנדרשות, ואז מחילים את התבנית החדשה על קבוצת ה-MIG. קבוצת ה-MIG מעדכנת את המכונות הווירטואליות באמצעות שיטת העדכון שבחרתם: אוטומטית או סלקטיבית. בחרו שיטה מתאימה בהתאם לדרישות שלכם לגבי זמינות ויעילות תפעולית. מידע נוסף על השיטות האלה לעדכון קבוצות MIG מופיע במאמר החלת הגדרות חדשות של מכונות וירטואליות בקבוצת MIG.
תמונות של מכונות וירטואליות
במקום להשתמש בתמונות ציבוריות ש-Google מספקת למכונות הווירטואליות, מומלץ ליצור ולהשתמש בתמונות מותאמות אישית של מערכת ההפעלה שמכילות את ההגדרות והתוכנות שהאפליקציות שלכם צריכות. אתם יכולים לקבץ את התמונות בהתאמה אישית למשפחת תמונות בהתאמה אישית. משפחת תמונות תמיד מפנה לתמונה העדכנית ביותר במשפחה, כך שהתבניות של הגדרות המכונה והסקריפטים יכולים להשתמש בתמונה הזו בלי שתצטרכו לעדכן את ההפניות לגרסת תמונה ספציפית. צריך לעדכן באופן קבוע את קובצי האימג' בהתאמה אישית כדי לכלול את עדכוני האבטחה והתיקונים שמספק ספק מערכת ההפעלה.
תבניות דטרמיניסטיות של הגדרות מכונה
אם התבניות של הגדרות המכונה שבהן אתם משתמשים בקבוצות ה-MIG כוללות סקריפטים לטעינה בזמן ההפעלה כדי להתקין תוכנות צד שלישי, ודאו שהסקריפטים מציינים במפורש את הפרמטרים של התקנת התוכנה, כמו גרסת התוכנה. אחרת, כשהתוכנה מותקנת במכונות הווירטואליות שנוצרות על ידי ה-MIG, יכול להיות שהיא לא תהיה עקבית. לדוגמה, אם תבנית של הגדרות מכונה כוללת סקריפט לטעינה בזמן ההפעלה שמתקין את Apache HTTP Server 2.4 (החבילה apache2), צריך לוודא שהסקריפט מציין את הגרסה המדויקת של apache2 שצריך להתקין, כמו גרסה 2.4.69. מידע נוסף זמין במאמר תבניות דטרמיניסטיות של הגדרות מכונה.
העברה ל-Spanner
אתם יכולים להעביר את הנתונים שלכם ל-Spanner ממסדי נתונים אחרים כמו MySQL, SQL Server ו-Oracle Database. תהליך ההעברה תלוי בגורמים כמו מסד הנתונים של המקור, גודל הנתונים, מגבלות זמן ההשבתה ומורכבות קוד האפליקציה. כדי לעזור לכם לתכנן ולהטמיע את ההעברה ל-Spanner ביעילות, אנחנו מספקים מגוון כלים של Google Cloudושל צד שלישי. מידע נוסף זמין במאמר סקירה כללית על העברה.
ניהול מסדי נתונים
ב-Spanner אין צורך להגדיר או לעקוב אחרי הרפליקציה או יתירות הכשל. רפליקציה סינכרונית ויתירות כשל אוטומטית מובנות במערכת. לאפליקציה שלכם אין זמן השבתה לצורך תחזוקה של מסד הנתונים ויתירות כשל. כדי לצמצם עוד יותר את המורכבות התפעולית, אתם יכולים להגדיר התאמה אוטומטית לעומס. כשההתאמה האוטומטית לעומס מופעלת, לא צריך לעקוב אחרי גודל המכונה ולשנות אותו ידנית.
שיקולים תפעוליים נוספים
כשאתם בונים את הארכיטקטורה של עומס העבודה, כדאי להביא בחשבון את השיטות המומלצות הכלליות ואת ההמלצות ליעילות תפעולית שמתוארות במאמר Google Cloud Well-Architected Framework: מצוינות תפעולית.
אופטימיזציה של הביצועים
בקטע הזה מתוארים הגורמים שצריך להביא בחשבון כשמשתמשים בארכיטקטורה לדוגמה הזו כדי לתכנן ולבנות טופולוגיה גלובלית ב-Google Cloud שעומדת בדרישות הביצועים של עומסי העבודה.
ביצועי הרשת
לעומסי עבודה שדורשים זמן אחזור נמוך ברשת בין מכונות וירטואליות בשכבות האפליקציה והאינטרנט, אפשר ליצור מדיניות למיקום קומפקטי ולהחיל אותה על התבנית של קבוצת המכונות המנוהלת שמשמשת לשכבות האלה. כשה-MIG יוצר מכונות וירטואליות, הוא ממקם אותן בשרתים פיזיים שקרובים זה לזה. מדיניות למיקום קומפקטי עוזרת לשפר את ביצועי הרשת בין המכונות הווירטואליות, אבל מדיניות למיקום מרווח יכולה לעזור לשפר את הזמינות של המכונות הווירטואליות, כמו שתיארנו קודם. כדי להשיג איזון אופטימלי בין ביצועי הרשת לבין הזמינות, כשיוצרים מדיניות למיקום קומפקטי אפשר לציין את המרחק בין המכונות הווירטואליות. מידע נוסף מופיע במאמר סקירה כללית על כללי מדיניות מיקום.
ב-Compute Engine יש מגבלה לכל מכונה וירטואלית על רוחב הפס של הרשת לתעבורת נתונים יוצאת. המגבלה הזו תלויה בסוג המכונה הווירטואלית, ובשאלה אם התנועה מנותבת דרך אותה רשת VPC כמו המכונה הווירטואלית המקורית. במכונות וירטואליות עם סוגי מכונות מסוימים, כדי לשפר את ביצועי הרשת, אתם יכולים להפעיל את רשת Tier_1 ולקבל רוחב פס מקסימלי גבוה יותר לתעבורת נתונים יוצאת.
ביצועי המחשוב
ב-Compute Engine יש מגוון רחב של סוגי מכונות מוגדרים מראש ובהתאמה אישית, לעומסי העבודה שאתם מריצים במכונות וירטואליות. בוחרים סוג מכונה שמתאים לדרישות הביצועים שלכם. למידע נוסף, קראו את המדריך להשוואה בין משפחות של מכונות ומשאבים.
ריבוי הליכי משנה (multithreading) של VM
כל מעבד וירטואלי (vCPU) שאתם מקצים למכונה וירטואלית ב-Compute Engine מוטמע כ-multithread חומרתי יחיד. כברירת מחדל, שני מעבדים וירטואליים חולקים ליבת מעבד פיזית. באפליקציות שכוללות פעולות מקבילות מאוד או שמבצעות חישובים של נקודה צפה (כמו ניתוח רצף גנטי ומודלים של סיכון פיננסי), אפשר לשפר את הביצועים על ידי הפחתת מספר השרשורים שפועלים בכל ליבת מעבד פיזית. מידע נוסף זמין במאמר הגדרת מספר הליכי המשנה לכל ליבה.
לריבוי הליכים במכונה וירטואלית עשויות להיות השלכות על הרישוי של תוכנות מסוימות של צד שלישי, כמו מסדי נתונים. למידע נוסף, קראו את מסמכי התיעוד בנושא רישוי של תוכנת הצד השלישי.
Network Service Tiers
מסלולי שירות הרשת מאפשרים לכם לבצע אופטימיזציה של עלות הרשת והביצועים של עומסי העבודה. אתם יכולים לבחור בין מסלול פרימיום למסלול רגיל. במסלול הפרימיום, תעבורת הנתונים עוברת דרך התשתית הגלובלית של Google כדי להשיג אובדן מנות מינימלי וזמן אחזור קצר. במסלול הרגיל, תעבורת הנתונים מועברת באמצעות קישור בין רשתות שכנות (peering), ספקי אינטרנט (ISP) או רשתות העברה בנקודת קצה (PoP) שהכי קרובה לאזור שבו פועל עומס העבודה ב- Google Cloud . כדי לשפר את הביצועים, מומלץ להשתמש במסלול פרימיום. כדי לבצע אופטימיזציה של העלות, מומלץ להשתמש במסלול הרגיל.
הארכיטקטורה במסמך הזה משתמשת במאזן עומסים חיצוני גלובלי עם כתובת IP חיצונית ובק-אנדים בכמה אזורים. בארכיטקטורה הזו צריך להשתמש במסלול פרימיום, שמשתמש בתשתית הגלובלית האמינה של Google כדי לעזור לכם להשיג אובדן מנות וזמן אחזור מינימליים.
אם אתם משתמשים במאזני עומסים חיצוניים אזוריים ומנתבים את התנועה לאזורים באמצעות Cloud DNS, אתם יכולים לבחור במסלול הפרימיום או במסלול הרגיל בהתאם לדרישות שלכם. המחיר של המסלול הרגיל נמוך מהמחיר של מסלול הפרימיום. מסלול Standard מתאים לתעבורת נתונים שלא רגישה לאובדן מנות, ושאין לה דרישות לזמן אחזור קצר.
ביצועי Spanner
כשמקצים מכונה של Spanner, מציינים את קיבולת המחשוב של המכונה לפי מספר הצמתים או יחידות העיבוד. עוקבים אחרי ניצול המשאבים של מכונת Spanner, ומשנים את הקיבולת בהתאם לעומס הצפוי ולדרישות הביצועים של האפליקציה. אתם יכולים לשנות את הקיבולת של מכונה ב-Spanner באופן ידני או אוטומטי. מידע נוסף זמין במאמר סקירה כללית על התאמה לעומס (scaling).
בהגדרה של מספר אזורים, Spanner משכפל נתונים באופן סינכרוני בכמה אזורים. הרפליקציה הזו מאפשרת לבצע פעולות קריאה עם זמן אחזור קצר ממספר מיקומים. החיסרון הוא זמן אחזור ארוך יותר לפעולות כתיבה, כי הרפליקות של הקוורום מפוזרות בכמה אזורים. כדי לצמצם את זמן האחזור של עסקאות קריאה-כתיבה בהגדרה של מספר אזורים, Spanner משתמש בניתוב מבוסס-Leader (מופעל כברירת מחדל).
במאמרים הבאים מפורטות המלצות לאופטימיזציה של הביצועים של מכונות ומסדי נתונים ב-Spanner:
- שיטות מומלצות לשיפור הביצועים בהגדרות של מספר אזורים
- שיטות מומלצות לעיצוב סכימה
- שיטות מומלצות לטעינה בכמות גדולה
- שיטות מומלצות לשימוש בשפת טיפול בנתונים (DML)
- שיטות מומלצות ל-SQL
שמירה במטמון
אם האפליקציה שלכם מציגה נכסים סטטיים של אתרים, והארכיטקטורה כוללת מאזן עומסים חיצוני גלובלי של אפליקציות (ALB), אתם יכולים להשתמש ב-Cloud CDN כדי לשמור במטמון תוכן סטטי שהגישה אליו מתבצעת באופן קבוע, בקרבת המשתמשים. בעזרת Cloud CDN אפשר לשפר את הביצועים בשביל המשתמשים, לצמצם את השימוש במשאבי התשתית בקצה העורפי ולהפחית את עלויות ההעברה ברשת. מידע נוסף זמין במאמר ביצועים מהירים יותר באינטרנט והגנה משופרת על האינטרנט לאיזון עומסים.
שיקולים נוספים שקשורים לביצועים
כשאתם בונים את הארכיטקטורה של עומס העבודה, כדאי להביא בחשבון את השיטות המומלצות הכלליות ואת ההמלצות שמפורטות במאמר Google Cloud Well-Architected Framework: אופטימיזציה של הביצועים.
המאמרים הבאים
- Google Cloud מידע נוסף על המוצרים שמשמשים בארכיטקטורה לדוגמה:
- מידע על רפליקציה ועקביות ב-Spanner:
- איך מתחילים להעביר את עומסי העבודה ל- Google Cloud.
- לבחון ולהעריך ארכיטיפים של פריסה שתוכלו לבחור כדי לבנות ארכיטקטורות לעומסי העבודה שלכם בענן.
- בודקים את אפשרויות הארכיטקטורה כדי לתכנן תשתית אמינה לעומסי העבודה ב- Google Cloud.
- פריסת GFE שניתנים לתכנות באמצעות Cloud Armor, איזון עומסים ו-Cloud CDN.
- לדוגמאות נוספות של ארכיטקטורות, תרשימים ושיטות מומלצות, עיינו במאמר Cloud Architecture Center.
שותפים ביצירת התוכן
מחברים:
- קומאר דהנגופאל | מפתח פתרונות למוצרים שונים
- סמנתה הי | כותבת טכנית
תורמים אחרים:
- בן גוד | אדריכל פתרונות
- דניאל ליס | ארכיטקט אבטחה בענן
- Gleb Otochkin | Cloud Advocate, Databases
- ג'סטין מייקיג | מנהל מוצר
- מארק שלאגנהאוף | כותב טכני, רשתות
- סקו פייג' | מנהל מוצר יוצא
- סטיב מקגי | מומחה לאמינות
- ויקטור מורנו | מנהל מוצר, Cloud Networking