עוד שרתים לאוויר

הרבה שנים שאנשים צריכים מחשוב חזק שיכול לשרת הרבה בקשות ולעשות חישובים מסובכים. המערכות האלו לרוב אמורות לספק משהו שנקרא high availability, אבל כיום החשיבה הזו הלכה לכיוון ממש לא טוב.

זה התחיל בכך שהיום כל "שירות" באינטרנט מהקטן ועד לענק מקבל את התואר "ענן" – מילה שיווקית. וכלה בכך שאנשים בטוחים שריבוי שרתים = ביצועים טובים יותר.

אז הבעיה היא שאנשים כבר לא חושבים ומשקיעים בלכתוב מערכות טובות ויעילות (אולי למעט ארתיום ?), אלא אומרים "מה הבעיה, תמיד אפשר להוסיף עוד מכונה". ואז הופכים את המילה high availability לעוד מילת שיווק ריקה מתוכן.

ישנה אנלוגיה מאוד נכונה במקרה הזה: "תשעה נשים בהריון בחודש אחד לא יכולות להביא תינוק". כלומר בשביל לקבל תינוק צריך לחכות 9 חודשים, ותיאורטית אי אפשר לזרז את התהליך. כך גם עם מערכות. אי אפשר להשיג שירות 24-7 למליארד תהליכים ככה סתם. הוספת סתם ככה שרתים וניהול שלהם לא מבטיח כלום. חשבתם מה קורה עם רוחב פס ? חשבתם מה קורה עם המידע שאתם מעבירים הלאה ? חשבתם מה קורה עם האיכות של המערכות שלכם ? איפה צווארי הבקבוק (אה כן, מסד נתונים… אז זהו שלא תמיד) ? מה אפשר לשפר ולמטב בשביל לקבל יותר ביצועים על מכונה אחת ?

ואז אנחנו מגיעים לתשתיות. שמעתי מהרבה מנהלי תשתיות בארץ את התשובה "אז מה אם מהווינדוז שלי אני יכול להפיק רק 80 בקשות בעוד שבלינוקס תוכל לספק לי 100 בקשות על אותה מערכת ? אז אני אוסיף עוד שרת". תארו לכם שבשביל 5 שרתי לינוקס אתם תהיו צריכים בגישה הזו 10 שרתי ווינדוז, ותעשו חישוב האם זה כלכלי ? או אם יש לכם 20 שרתי לינוקס, זה כבר 40 שרתי ווינדוז… תכפילו ב2 בשביל התוצאה ותראו האם המערכות שלכם מתאימות למה שאתם צריכים. כמובן שסיפקתי את ווינדוז כדוגמה חייה, אבל זה לא כל הסיפור, אלא רק ניסיון להסביר את הבעיה בצורה פשוטה.

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

עוד גישה מאוד לא נכונה שאני רואה, היא שיש הרבה מערכות אשר קוראות כל הזמן ממסד הנתונים מידע שמשתנה אחת לתקופה ארוכה (כל 5 דקות, 10 דקות יום וכו' …). במקום ליצור את המידע הזה בצורה סטטית לגמרי ולעדכן רק כאשר יש מה לעדכן. שוב פעם המערכת שלכם מבצעת חישובים מיותרים על דברים שלא צריך.

כך שהרבה שרתים אינם לרוב התשובה לכל צרות העולם, אלא רק יוצרים בעיות חדשות שצריך להתמודד איתם. לפעמים הכלים והגישה משנים הכל. ותמיד צריך לזכור את ואסה בניהול של פרוייקטים כאלו …

4 מחשבות על “עוד שרתים לאוויר

  1. meir

    נושא הזמינות הגבוהה גלש לתחום הביצועים בפוסט, כדאי להבהיר שזמינות גבוהה וביצועים אינם קשורים אחד לשני.

    שירות עשוי גם להיות איטי יחסית אך בעל זמינות גבוהה או מהיר מאוד אך בעל זמינות לא משהו.

    כמובן ששירות בעל זמינות גבוהה, אך איטיות מוגזמת ייראה לא זמין למשתמשים בו, אז לא להגזים ;-), לכן חשוב להגדיר קודם מה מחשיבים לזמינות גבוהה.

  2. נדב

    למרות שאני בעד יעילות, הרי בסה"כ המשאבים שלי קטנים לעומת חברות גדולות, ובחלקם אומנם יש מגבלות שונות אבל זה לא בהכרח כיוון שלילי.

    אתה הרי מכיר את המשפט אם משהו עובד טוב לא נוגעים, וחלק מאותם מנהלים לא רוצים הרבה שינויים "שלא לצורך".

    ולכן יש כאן את קצת הגדילה של החברה ביחס לקצב ההכנסות שלה. בהנחה שקצב הגדילה שלה לא מאיץ במהירות גבוהה כמו רוב החברות, אז ייתכן שהמגמה טובה בשבילם שכן יש גם את קצב ההתקדמות הטכנולוגית שגדלה בקצב מואץ.

    אם נגיד אחרי כמה חודשים המשאבים מתקרבים לגבולם, קניית שרת חדש יתמודד עם יותר מטלות עקב התקדמות הטכנולוגית, או לחילופין אם קונים דומה, המחיר שלו יהיה יותר זול…

    לכן אין סיבה ששתי המגמות התפתחו במקביל, הבזבזנית לאלו שרוצים שקט והתערבות מינימלית, וחסכונית לגיקים וכדומה

    1. ik_5 מאת

      לא. High scalability זה באמת עוד שרתים הרבה פעמים, כי אתה מבזר את החישוב, ורוחב הפס.
      אבל אנשים חושבים שעוד שרתים מספקים להם high availability וזה משהו שונה לגמרי שלא קשור לכמות השרתים, אלא איך הדברים בנויים וכמובן דבר יחסי.

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s