לשרת את כל אתרי החדשות בארץ בעזרת... CppCMS

ב־14.11.2014, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, CppCMS; ‏5 תגובות

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

הפרויקט נקרא ליניקום.

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

מספר מילים על "ליניקום":

"ליניקום" הוא מנוע שמביא פרסומות תלויות תוכן ומותאמות למשתמש לאתרים שונים בקלות רבה. מרבית אתרי החדשות הגדולים בארץ משתמשים בשירותי ליניקום, ביניהם: ynet, הארץ, מאקו, Jerusalem Post, ואללה ועוד רבים אחרים כולל מספר אתרים גדולים בחו"ל.

להלן כמה עובדות מעניינות:

  • ליניקום מבוססת על טכנולוגית CppCMS
  • המערכת משרתת כ־10,000,000 פניות המותאמות למשתמש ביום - קרי כ־115 פניות בשניה.
  • בשעות העמוסות הקצב מגיע לכ־160 פניות בשניה.
  • השרת מייצר תעבורה יוצאת ממוצעת של כ־11 מגאביט בשניה.
  • צריכת זיכרון הכוללת של המערכת (שרת וואב, בסיס נתונים, יישום, מערכת ההפעלה) הוא בסביבות 360MB
  • העומס הממוצע על המעבדים הוא כ-5%
  • השרת רץ על c1.medium instance בודד ב־Amazon EC2

המערכת רצה מאחורי lighttpd ומשתמשת ב־PosgreSQL לשמירה וניהול הנתונים בצורה אינטנסיבית, עם זאת, מרבית הנתונים הנדרשים בזמן אמת שמורים ומנוהלים בזיכרון.

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

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

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

תגובות

a, ב־14.11.2014, 9:56

מדהים! סתם לשם השוואה, אם היית צריך לכתוב מערכת דומה המבוססת על LAMP - מה היו דרישות המערכת המוערכות לדעתך?

ארתיום, ב־16.11.2014, 12:29

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

אם כבר להשוות ל-Java/JSP או Django, Rails ודברים אחרים.

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

חתול, ב־17.11.2014, 15:25

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

ארתיום, ב־18.11.2014, 9:01

אתה אשם במפגע שקרא ליניקום

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

גיא, ב־6.2.2015, 18:46

אלו ביצועים ממש מרשימים.

הוסף תגובה:

 
 כתובת דוא"ל לא תוצג
 

ניתן לכתוב תגובות עם שימוש בתחביר Markdown.

חובה לאפשר JavaScript כדי להגיב.

דפים

נושאים