העיקרון הזה בעמוד התווך של האמינות ב-Google Cloud Well-Architected Framework מספק המלצות שיעזרו לכם להשתמש במדרגיות אופקית. בעזרת יכולת התאמה אופקית, תוכלו לוודא שעומסי העבודה ב-Google Cloud יכולים להתרחב ביעילות ולשמור על הביצועים.
העיקרון הזה רלוונטי לתחום המיקוד של היקף האמינות.
סקירה כללית של העקרונות
שינוי הארכיטקטורה של המערכת לארכיטקטורה אופקית. כדי להתאים את עצמכם לגידול בתנועה או בנתונים, אתם יכולים להוסיף עוד משאבים. אתם יכולים גם להסיר משאבים כשאתם לא משתמשים בהם.
כדי להבין את הערך של התאמה אופקית לעומס, כדאי להביא בחשבון את המגבלות של התאמה אנכית לעומס.
תרחיש נפוץ להרחבה אנכית הוא שימוש במסד נתונים של MySQL כמסד הנתונים הראשי עם נתונים קריטיים. ככל שהשימוש במסד הנתונים גדל, נדרשים יותר זיכרון RAM ו-CPU. בסופו של דבר, מסד הנתונים מגיע למגבלת הזיכרון במכונה המארחת וצריך לשדרג אותו. יכול להיות שתצטרכו לחזור על התהליך הזה כמה פעמים. הבעיה היא שיש מגבלות קשיחות על הגודל המקסימלי של מסד נתונים. הגודל של המכונות הווירטואליות מוגבל. מסד הנתונים יכול להגיע למצב שבו אי אפשר להוסיף עוד משאבים.
גם אם המשאבים היו בלתי מוגבלים, מכונה וירטואלית גדולה יכולה להפוך לנקודת כשל בודדת. כל בעיה במכונה הווירטואלית של מסד הנתונים הראשי יכולה לגרום לתגובות שגיאה או להפסקה זמנית של השירות בכל המערכת, שמשפיעה על כל המשתמשים. הימנעו מנקודות כשל בודדות, כפי שמתואר במאמר בניית מערכות בזמינות גבוהה באמצעות יתירות משאבים.
בנוסף למגבלות האלה, התאמה אנכית של קנה מידה בדרך כלל יקרה יותר. העלות יכולה לגדול באופן אקספוננציאלי ככל שרוכשים מכונות עם יותר כוח מחשוב וזיכרון.
לעומת זאת, התאמה אופקית יכולה לעלות פחות. הפוטנציאל להרחבה אופקית הוא כמעט בלתי מוגבל במערכת שמיועדת להרחבה.
המלצות
כדי לעבור מארכיטקטורה של מכונה וירטואלית אחת לארכיטקטורה אופקית של כמה מכונות, צריך לתכנן בקפידה ולהשתמש בכלים הנכונים. כדי לעזור לכם להשיג התאמה אופקית לעומס, כדאי לשקול את ההמלצות בסעיפי המשנה הבאים.
שימוש בשירותים מנוהלים
שירותים מנוהלים מייתרים את הצורך בניהול ידני של התאמה אופקית לעומס (scaling). לדוגמה, באמצעות קבוצות של מופעי מכונה מנוהלים (MIG) ב-Compute Engine, אתם יכולים להוסיף או להסיר מכונות וירטואליות כדי לשנות את קנה המידה של האפליקציה באופן אופקי. לאפליקציות בקונטיינרים, Cloud Run היא פלטפורמה ללא שרת (serverless) שיכולה לשנות באופן אוטומטי את קנה המידה של הקונטיינרים ללא שמירת מצב (stateless) בהתאם לתנועה הנכנסת.
קידום עיצוב מודולרי
רכיבים מודולריים וממשקים ברורים עוזרים לשנות את קנה המידה של רכיבים בודדים לפי הצורך, במקום לשנות את קנה המידה של האפליקציה כולה. מידע נוסף זמין במאמר קידום עיצוב מודולרי בעמוד התווך של אופטימיזציית הביצועים.
הטמעת עיצוב ללא שמירת מצב (stateless)
תכננו אפליקציות ללא שמירת מצב (stateless), כלומר ללא נתונים שמאוחסנים באופן מקומי. כך אפשר להוסיף או להסיר מכונות בלי לדאוג לעקביות הנתונים.