האם שווה לבנות לבד אתר לגיוס המונים?
-
@yits אמר בהאם שווה לבנות לבד אתר לגיוס המונים?:
@clickone אמר בהאם שווה לבנות לבד אתר לגיוס המונים?:
השאלה למה אתה קורא עומסים.
לאתרי יום הבחירות של מדינת הסארט אפ...
אלפי אנשים יושבים וצופים בסכום ורוצים להתעדכן בתרומות אונליין.
בדיוק בשביל זה הצעתי לעשות שתי שרתים.
אחד נפרד לצפייה בנתונים.
ואחד לצורך הדברים החשובים. -
קשה לי לצטט את כולם, כל אחד בנקודה שהוא חידד, אבל אכתוב בכמה מילים את מה שיש לי לומר.
ליוויתי ב"ה כמה קמפיינים של צ'רידי, אחד של הקהילה שהייתי תורם ומתרים, ובעצם שם נוצר החיבור הראשון שלי עם צ'רידי, ועוד כמה שליוויתי קצת יותר עמוק.
אני בניתי לדושינסקי, ולבעלזא, ולעטרת שלמה - סורוצקין את המערכת הטלפונית.
(ולעוד כמה, רק ששם בניתי רק שלוחת שמיעת מצב הקמפיין ולא תרומות).
בנוסף אציין שבנדרים פלוס בדושינסקי ובבעלזא שהיה דף מיוחד שניתן היה לתרום לקמפיין באמצעות מתרים, זה עבד בצורה שלאחר התרומה בהצלחה השרת של נ"פ שלח API לשרת שלי, עם פרטי התרומה שחדשה, והשרת שלי עדכן אותם כתרומה חדשה, בשרתי צ'רידי.
ולא נראה שזה ימשיך לעבוד כך. (בסורוצקין אכן כבר לא היה הרשאה לעשות את זה).לעצם העניין, זה ברור שעיקר ההצלחה של צ'רידי זה הפסיכולוגיה וכדומה בניהול הקמפיין, ורוב העניינים כבר הוזכרו בשרשור למעלה, איך הם גורמים למתרימים להיכנס ללחץ וכו'.
זה ובעיקר זה, הוא יסוד ההצלחה של צ'רידי.
מצד שני, חייבים שרתים חזקים, וחייבים בנוסף לבנות את זה נכון.
לדוגמא, עד הקמפיין של בעלזא, בו הייתה קריסה בשרתי צ'רידי כשלוש שעות (מחמש לשמונה בערב) פה ושם היה קורה עומסים בשרתי צ'רידי והייתי מקבל מייל מהמערכת שלי (בעת הפעלת שלוחת שמיעת מצב הקמפיין) שיש שגיאה בהתחברות לצ'רידי עם שגיאה 502 או אחר.
לאחר הקמפיין של בעלזא הם הפיקו לקחים, וראשית כל כנראה הגדילו את השרתים, אך בעיקר מה שהם עשו שהם חסמו את האפשרות של סינון תרומות בקמפיינים גדולים דוגמת סורוצקין, שלא יוכלו לחפש בהיסטוריית התרומות, זה היה נתח כבר מאוד לשרת שלהם, וכן ב API שלהם של שליפת מידע הם הגבילו את השאילתה המירבית ל100 תוצאות.בנוסף ישנם הרבה נקודות בניהול ותכנון הקמפיין מבחינת בסיס הנתונים, דוגמת אפילו שמירת כתובת ה IP מאיפה הגיעה התרומה ועוד עשרות פרמטרים שנשמרים יחד עם התרומה.
אפשרויות הוספת תרומות אופליין - לא דרך האשראי מהאתר אונליין.וכמובן API של שליפת נתונים ברמה גלובלית או ברמת מתרים, הן עבור האתר, והן עבור המערכת הטלפונית
והאחוזים של החברה, הלוואי וצ'רידי היו לוקחים רק 4 אחוז.
ישנם חברות נוספות דוגמת קוזמאצ' שלוקחים אכן רק בסביבות 4 אחוז, רק ששם אין לי מושג איך הולך ניהול הקמפיין והמתרימים.
אך מ"מ לא כל קמפיין חייב לקחת את צ'רידי, ע"מ לגייס מאה אלף ש"ח חבל להכניס את צ'רידי לתמונה.
על זה נותר לקוות שהחברות הקטנות יותר ו/או נדרים פלוס למשל, יספקו פלטפורמה טובה ומספקת. -
@מנצפך את זה נשאיר לפורום תיכנות... בכל מקרה, אני לא חושב שיש סיבה לא לעבוד ככה בכזה מקרה.
אין טעם שכולם יגשו לDB שוב ושוב רק כדי להביא את אותם נתונים בדיוק (העידכון מהדקה האחרונה) וזה נתון שכן הייתי מצפה להביא מהקאש בשרת ולא ישר מהDB. במיוחד במקרה של עומסים.למיטב זכרוני, המערכת של פיקוד העורף גם שומרת את נתון האזעקה הנוכחי בקאש שלה ולא שולפת מהDB לכל אחד. (למי שהתעסק בעבר מול הAPI שלהם)
-
@clickone אמר בהאם שווה לבנות לבד אתר לגיוס המונים?:
@מנצפך את זה נשאיר לפורום תיכנות... בכל מקרה, אני לא חושב שיש סיבה לא לעבוד ככה בכזה מקרה.
אין טעם שכולם יגשו לDB שוב ושוב רק כדי להביא את אותם נתונים בדיוק (העידכון מהדקה האחרונה) וזה נתון שכן הייתי מצפה להביא מהקאש בשרת ולא ישר מהDB. במיוחד במקרה של עומסים.למיטב זכרוני, המערכת של פיקוד העורף גם שומרת את נתון האזעקה הנוכחי בקאש שלה ולא שולפת מהDB לכל אחד. (למי שהתעסק בעבר מול הAPI שלהם)
מה זה קאש בצד השרת?
ואיך מעדכנים אותו? -
@חוקר תלוי באיזה שפה / פלטפורמה.
זה יכול להיות גם ליסט בזיכרון ברמת האפליקצייה שמעודכן ע"י רול פעם בX זמן.לדוגמא: C#
System.Web.HttpContext.Current.Application.Lock(); System.Web.HttpContext.Current.Application["Name"] = "Value"; // added by clickone System.Web.HttpContext.Current.Application["PayList"] = db.tblPays.where(x=>x.payDate==DateTime.ToDate).ToList(); // unlock object System.Web.HttpContext.Current.Application.UnLock();
עריכה:
עקרונית אתה יכול לשמור רק את הנתונים שאתה רוצה בקובץ סטטי ולקרוא ממנו כל הזמן ישירות בצורה סטטית.
ואז כל הפעולה שלך בשרת היא רק לכתוב ברול קבוע כל X זמן לקובץ את הליסט, או כשמתרחש אירוע כלשהו (לדוגמא נוספת תרומה)אני מדגיש, שזה נועד רק לX תרומות אחרונות וכו' לא בשביל לנהל את כל הDB משם. רק ברמה שיש המון בקשות, שאמורות בכל פעם להחזיר את אותם נתונים בדיוק.
-
@clickone
אולי אפשר לעשות 2 DB אחד עם כל הנתונים המלאים ששם נרשם התרומה וכו'
ועוד אחד עם נתונים פשוטים של סכום ושם התורם
וכל כמה דקות הDB השני יתעדכן ככה שאם השני יקרוס לפחות ישאר החלק הקריטי של ההתרמה
הרווח בזה שהצופים הסקרנים יוכלו לסדר את הרשימה ע"פ סדר התרומות מהגדול לקטן ,חיפוש תורם לפי שם ואולי עוד דברים בסיגנון -
יש עוד משהו שלא לקחתם בחשבון:
עצם זה שאנשים יודעים שחברה ידועה מתעסקת בזה ואם זה לא יצליח אז החברה לא תעשה זאת שוב בשביל אותו מוסד,
אבל אם המוסד יכול לעשות כזו התרמה כל שבוע זה לא אפקטיבי, הידיעה הזו משחקת תפקיד פסיכולגי חשוב אצל התורמים
אל תשכחו שכל הרעיון בדבר הזה הוא לחץ פסיכולוגי, לכן זה מאוד משמעותי.