Thursday, December 2, 2010

Scalability -- סקאלאביליות


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


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


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


עניינים חשובים בסקאלאביליות הם:

* לשמור שהמערכת תשאר חיה ועובדת

* לשמור את המערכת מגיבה

* לשמור את המערכת מגיבה בזמן סביר מהיר וטוב

* לשמור שהמערכת נותנת תוצאת באיכות

* לשמור שהמערכת לא מבזבזת (יותר מידי) משאבים כשהעומס קטן


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


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


הרעיונות הללו אינם חדשים אבל באחרונה עם הבאזזים של מחשוב מעונן (cloud computing) ושל וירטואליזציה (virtualization) מרגישות חברות רבות ומרגישים ארגונים רבים שגם אם הם לא התכוונו הם מוצאים את עצמם נדחפים עם העדר בכיוון הזה. ולכן, כנראה זה פתאום חשוב מאוד לכול.


מידע מועיל בעברית על סקאלאביליות של תשתיות מחשוב ורשת של חברה שנותנת שירותים באינטרנט אפשר למצוא וללמוד ממנו בפודקאסט מספר 83 של רברס עם פלטפורמה (reversim.com). בפודקאסט מספר אורי להב, מייסד-שותף באאוטבריין וה-CTO של אאוטבריין, על מערכות ה-Operations ב-אאוטבריין ואיך הן מתוכננות לסקאלאביליות. יש עוד מספר פודקאסטים של רברסים שעוסקים בנושא: פודקאסט מספר 47 (Scalability למתחילים), פודקאסט מספר 17 (Key Value Databases), פודקאסט מספר 13 (Scalability עם ניר יפת).


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


כמה נושאים שלא מזיק לקרוא עליהם, להכיר בקיומן ולדעת מה הם עושים (שווה יותר להבין כיצד הם עובדים וכיצד להשתמש בהם):

* ועוד ועוד ועוד

יש לכם קישורים מעניינים ומועילים על סקאלאביליות? שלחו אליי וארכז אותן בפוסט.