מערכת הגשת באנרים

boaZone

New member
מערכת הגשת באנרים

היי!

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

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

אשמח לקבל מבעלי הניסיון המלצות / כיוונים בנושא:
- האם כדאי להשתמש ב- FW, האם YII ספציפית תתאים
- מסד נתונים מומלץ, מהיר ועמיד ועם יכולת לגדול במהירות מבלי להתרגש
- המלצות סיסטם, סוג שרתים, אופן אירוח וכד'

תודה מראש,
בועז
 

stac

New member
כמה דברים

1. תקבעו יעדים ברורים, ויכולות ברורות של המערכת. תמיד יודעים איפה מתחילים אבל לא איפה מסיימים.

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

3. תתאים את המסד נתונים שלך לסוג הנתונים, בעיקרון אפשר ללהתחיל לעבוד עם כל דבר רק תוודא שהתכנון שלך לטיפול בנתונים תואם את יכולות המסד, לפעמים יש צורך לשלב מספר כלים כמו MYSQL + REDIS או MONGO+REDIS
תלוי בנסיון שלך.

4. CLOUD/VPS/DEDICATED - לכל פלטפורמה יתרונות וחסרונות, המלצה שלי בגלל שאתה מפתח יחיד, היא להתחיל עם VPS. כלל אצבע בשביל שהמערכת תהיה מוכנה להרחבות בעתיד באופן יחסית מהר וקל צריך מינימום 6 שרתים.

5. אל תחשוב אפילו להגיש את הקבצים מהשרתים שלך לא קבצים ולא וידאו, תשתמש ב CDN מתאים.

6. תבחר תוכנות אמינות וחדשניות כמו redis, nginx, mariaDB, 'queue תכיר אותם, תלמד לקמפל אותם ללא המודלים שאתה צריך.

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

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

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

barnyrebal

New member
#9

 

garfiled22

New member
נראה לי הגזמת קצת

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

DB למה חייב להתחיל ברפליקציה?? אתה אוהב לשלם כסף מיותר? לעשות רפליקציה רגילה (MASTER SLAVE) לוקח לא יותר מחצי שעה כולל גוגל.

FS - ??
 

stac

New member
הסבר

LB - אני לא הבנתי אם נסית לשאול משהו או להגיד משהו.
DB - האם אתה באמת אוהב להסתכן באיבוד שרת/נתונים כבר בתחילת הדרך?
FS - FileServer, איפה תשמור את הקבצים שלך לפני שהם יעלו ל CDN
 

garfiled22

New member
תשובות

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

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

stac

New member
מצחיק, הלקוח ישלם מעל ל 100K עבור פיתוח מערכת

אבל לא ישקיע אלף שקל לחודש עבור השרתים שלו, וביטחון שהכל ירוץ כמו שצריך.

אין פה מקום להתקמצן.
 

garfiled22

New member
אמרת "כלל אצבע" :)

אולי למערכת הזו סבבה, חשבתי שאתה מתכוון באופן כללי..
 

boaZone

New member
תודה על התשובה הסופר מפורטת

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

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

שוב, תודה!
 

gilmad

New member
בתחילת תהליך דומה

* אני לא רואה סיבה לא להשתמש בFW, כל עוד הוא לא כבד.
* מבין הFW הקיימים - Yii נראה לי בחירה טובה.
* לניהול הנתונים אני החלטתי ללכלת על Mysql שאח"כ יעבור לMongoDB ויהיה פרוסס ברקע שיסנכרן בינהם (רק המידע ההכרחי להגשת המודעות יהיה על המונגו)
* כמו שstac אמר - כל דבר סטטי יוגש מcdn. אני אפילו שוקל שהטמפלטים של האתר עצמו יוגשו סטטיים, שהסרבר יחזיר רק JSON-ים והטימפלוט יקרה בצד לקוח.
* סיסטם - אם אתה רוצה ביטחון - לך על משהו כמו CentOS, אבל הכל שאלה של מה אתה צריך, מה אתה יודע ותוך כמה זמן אתה רוצה להגיע לשם. (אם אתה לא איש סיסטם - לך תשבור את הראש עם SeLINUX במקום להשתמש בסרבר של אובונטו)
 

boaZone

New member
תודה


לך, לכולם.

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

שבוע מצויין,
בועז
 
למעלה