ראשי » Facebook platform - מדריך לפיתוח אפליקציות לפייסבוק, כללי, מדריכים

המדריך לפיתוח אפליקציות לפייסבוק חלק 4: מבט על הארכיטקטורה מאחורי פייסבוק

ב 24 למאי 2007 הושקה לאחר צפיות רבות מערכת ה Facebook platform שאפשרה למפתחים חיצוניים לפתח אפליקציות עבור פייסבוק.

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

חלק 4: מבט על הארכיטקטורה מאחורי פייסבוק

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

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

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

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

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

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

הנתונים אותם אנו שומרים בעת השימוש בפייסבוק הם רבים וחשובים. מדי יום, מאות מיליוני משתמשים יוצרים דפים, מעלים תמונות, שולחים הודעות ועוד. כאשר אתר כמו פייסבוק צריך להחליט כיצד הוא שומר את אותם נתונים, שלושה דברים עיקריים צריכים לעמוד מולו: מהירות, אמינות ועלות. שטח אכסון עולה כסף, כנ"ל גם רוחב פס ובמקרה של אתר בגודל של פייסבוק מדובר בהרבה מאד כסף. אך למרות הפיתוי לחסוך בנושא זה צריך לזכור שלפעמים הפתרון הזול עולה ביוקר בגלל קריסה, אובדן נתונים או כל אסון אחר. שחזור של כמות כה גדולה של מידע יכול להיות הליך מאד יקר ואיטי. במרבית יישומיה, פייסבוק משתמשת במספר רב של כוננים קשיחים בתצורת Raid 10 ו Raid 6. שיטת אכסון זאת מספקת ביצועים טובים יותר והגנה מירבית מפני אובדן נתונים.בנוסף, פייסבוק משתמשת בפתרונות CDN – Content Devlivery Networks המאפשרים הפצה מהירה של התכנים המבוקשים דרך אלפי שרתים המפוזרים באיזורים שונים ובכך היא מקטינה את התעבורה בתוך הרשת שלה וחוסכת שימוש ברוחב פס יקר. במאמר הבא ניתן ללמוד קצת יותר לעומק על פתרון האכסון בו פייסבוק בחרה עבור אפליקציית התמונות שלה

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

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

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

רשימת כל חלקי המדריך

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

אליקו יצחקי

אודות אליקו יצחקי

אליקו יצחקי הינו המייסד והעורך הראשי של הבלוג.

Bookmark and Share

2 תגובות »

הוספת תגובה

הוסף את תגובתך למטה או שלח טראקבק מאתרך. תוכל גם להרשם לעדכון על התגובות באמצעות RSS.