ביצועים: דרופל או Zend Frameworks ?

לקוח פוטנציאלי שאל אותי היום מה עדיף לדעתי מבחינת ביצועים - להשתמש בדרופל או ב-zend frameworks. הוא מעריך את הגמישות של דרופל, אבל חושש שדרופל לא יוכל לעמוד בעומסים רגעיים של 50,000 - 100,000 גולשים לשנייה וחברים המליצו לו על Zend Frameworks.

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

 

תגובות

בעניין: ביצועים: דרופל או Zend Frameworks ?

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

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

100,000 גולשים בשניה???

לא, אני לא מכיר שום מערכת, חומרה או תוכנה שתוכל לעמוד בזה.

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

עומסי שיא

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

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

בענין: ביצועים

היי,

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

מחזק

בועז,

אני מחזק את פסקתך האחרונה. הנה ציטוט מפי דונלד קנות' (שימו לב לשנה):

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." (Knuth, Donald. Structured Programming with go to Statements, ACM Journal Computing Surveys, Vol 6, No. 4, Dec. 1974. p.268.)

אמרה מוכרת

זה הסלוגן של הבלוג של שחר שאיתו דיברתי, ולכן גם רוח דבריי שכזו:
http://prematureoptimization.org/blog

קצת Off Topic

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

זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות

לא הבנתי

למה שמישהו עם כזו הצלחה ירצה לקנות חברה כמו מייקרוסופט?

מאדים ונוגה

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

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

לחדד את הנקודה העיקרית של מה שאמרתי לבועז

נראה לי שברור לכולם ששאלה כמו "למי יש ביצועים יותר טובים" היא שאלה לא הגיונית, שאין עליה תשובה נכונה או לא נכונה.

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

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

באופן כללי מבחינת היכולת לגדול (ברמת פיצ'רים וגמישות של המערכת) בד"כ עדיף ללכת על פריימוורק (כמו ZF) ולא על מערכת שהיא די מוכנה כמו Drupal - אבל זה רק ברמת העיקרון ולעיתים זה לא נכון - הכל תלוי ב"לאן רוצים להגיע". כמובן שמבחינת זמן פיתוח לעיתים קרובות דרופל מנצחת.

ד"א אם ביצועים היה באמת הדבר העיקרי, כולנו היינו כותבים ישר ב- PHP, או ב- C - או אפילו מממשים את ה- web server בעצמנו באסמבלר כולל תוכן דינמי built-in. כמובן שזו הקצנה אבל היא ממחישה את דעתי ששיפורי ביצועים צריך לעשות *בסוף*.

שחר.

ציטוט: באופן

ציטוט:

באופן כללי מבחינת היכולת לגדול (ברמת פיצ'רים וגמישות של המערכת) בד"כ עדיף ללכת על פריימוורק (כמו ZF) ולא על מערכת שהיא די מוכנה כמו Drupal

היתרון של דרופל על פני מערכות אחרות (אני לא מכיר את ZF) הוא שהיא לא "או פריימוורק או מערכת לבניית אתר" - היא גם וגם. היא מערכת לבניית אתר כאשר משתמשים בה רק ברמת הממשק, והיא פריימוורק נהדר לפיתוח, אם משתמשים ב-API שלה ושל המודולים הנלווים אליה.

זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות

נכון בעקרון

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

חדש באתר