שאלה/תייעצות

קרמיט524

New member
שאלה/תייעצות

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

בתודה מראש ובברכה,
מיכל
 

N i X

New member
CDN טוב לתוכן סטטי

לא לתוכן דינמי\תלוי משתמש.
זה טוב נגיד לתמונות, וידאו, CSS, JS.
אבל האפליקציה עצמה תמשיך לשבת איפה שהיא יושבת.
 

קרמיט524

New member
אז אם אני מבינה נכון

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

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

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

תודה,
 

Qwais

New member
כן, במידה

במידה והבעיה היא לא בטעינת המסד אלא רק בטעינת האתר עצמו(וגילוי מקומו) אז כן, זה יספיק והאתר יופיע כאילו נמצא בהולנד.

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

bnayal

New member
אתה קצת מבלבל לטעמי

דווקא הדוגמא של PayPal לא ממש קשורה (אלא אם לא הבנתי אותך).

הרעיון המרכזי הוא שהפלט HTML יוצא ממערכת אחת זהה לא משנה מאיזו מדינה. התוכן הדינאמי נוצר במקום אחד (אפשר לעשות לו load balancing ורפליקציות וכו' וכו'). ההפנייה לתוכן סטטי בלבד מבוצעת לכתובת CDN שה origin שלו בד"כ מקומי יחד עם שאר המערכת אבל השירות CDN מבצע שמירה של התוכן הסטטי על השרתים שלו שמפוזרים בעולם, וכך מציג לכל מדינה את התוכן הסטטי מהשרת שהכי קרוב לגולש.
 

Qwais

New member
אכן

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

bnayal

New member
קצת על CDN

יש כל מיני סוגים של שירותי CDN. השירות שיצא לי לעבוד איתו נקרא Cotendo. מה שבעצם קורה זה שאת מגדירה שרת אצלך שהוא המקור לקבצים. גולש שנכנס לאתר מנסה להוריד תמונה מהCDN. הCDN בודק איזה שרת שלו הכי מהיר לגולש ומציג את התמונה מתוך השרת שקרוב לגולש. אם התמונה לא נמצאת עדיין בשרת CDN הוא דואג לשמור העתק שלה בפעם הראשונה.
כל התוכן הדינאמי (דפי PHP למשל) כמובן מהשרת הרגיל שמושך תמונות, CSSים, JSים וכו' מהCDN.
היתרון הנוסף הוא שאת פותרת ככה משהו שהוא לא מקומי להולנד אלא יתן לך שיפור גישה מכל מדינה (הייתי בודק מראש את רמת הפריסה של השרותי CDN שאת בוחרת בהתאם למקורות התנועה לאתר).

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

בהצלחה ותודה,
בניה
 

קרמיט524

New member
אוקי, תודה!

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

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

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

N i X

New member
אם אני מבין נכון, יש פה בעיקר תוכן קבוע

שמשתנה לעתים רחוקות, ועיקר הצד"ש הוא רק בשביל הנוכות של העריכה?

אם כך, לא יותר פשוט לקנות שרת במדינה -X, לשים שם שרת פרוקסי שימשוך את כל הנתונים (העמודים עצמם + קבצים סטטיים) מהשרת הראשי ויעשה להם קש ל-Y זמן,
כשמשנים את התוכן בשרת הראשי, מרוקנים את הקש בפרוקסי וזהו.
 

bnayal

New member
שוב לגבי הריבוי שפות אם אפשר


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

קרמיט524

New member
האמת שזה די פרימיטיבי...

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

bnayal

New member
לגבי ה"פרישה של שרתי CDN"

מבחינתך את לא פורשת כלום. מבחינתך זאת "קופסא שחורה" שנותן לך ספק CDN כלשהו (אם אני זוכר נכון יש גם לאמזון שירות CDN). מבחינתך את נותנת לשירות CDN שני דברים: 1. URL שלך כלשהו שמצביע עם CNAME לכתובת שנותן לך הספק CDN ו-2. URL שלך שמצביע לשרת שלך שמכיל את המקור של הקבצים שממנו מושכים כל השרתים של השרת CDN.

כלומר:
1. גולש מבקש תמונה מ cdn.yourdomain.com
2. cdn.yourdomain.com מצביע לכתובת של השירות cdn ומבקש ממנו את התמונה.
3. השירות CDN בודק איזה שרת הכי קרוב לאותו גולש ומפנה אותו לאותו שרת.
4. השרת הקרוב לגולש בודק האם יש לו בCACHE את התמונה הזאת.
4.1. אם יש לו את התמונה בCACHE הוא מציג לו ישר.
4.2. אם אין לו את התמונה בCACHE (מה שקורה בפעם הראשונה שמבקשים את הקובץ בעצם) הוא מפנה בד"כ את הגולש לשרת origin שלך ודואג להוריד את התמונה לCACHE שלו לפעם הבאה שמישהו יבקש אותה.

אני בטוח שבגוגל יש תרשימי זרימה טובים שאת יכולה למצוא...

מה שNIX אומר זה שאם התוכן הוא מאוד סטטי אפשר לבצע CACHE של התוכן נניח לקבצי HTML ולהציג לגולש את התוכן השמור בfilesystem. את הקבצי HTML האלו אפשר להעביר גם כן לCDN או שרת הולנדי מקומי אם את רוצה לתת פתרון כזה רק להולנדים.
בדרופל יש מודול שמבצע סוג כזה של CACHE לעמודים שנקרא Boost, אני מניח שאת יכולה לקרוא איך הוא עובד.
מערכת cache דומה ברמת השרת היא למשל Varnish שאמורה להיות הרבה יותר טובה.

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


בהצלחה,
בניה
 

bnayal

New member
רק שוב, לגבי בחירה של ספק CDN

1. זה יכול להיות עסק לא כ"כ זול. אבל אני לא מכיר מחירים.
2. תוודאי שלספק CDN שאת בוחרת יש שרתים בהולנד ובשאר המדינות שחשובות לך.

בניה
 

Admini

New member
Cotendo לא קיימים יותר למעשה

Akamai קנו אותם.


(גם אנחנו לקוחות שלהם, ובעבר הלא רחוק היינו לקוחות מרוצים)
 

Admini

New member
שהתשתית שלהם הולכת לרדת בקרוב

ושהם מעבירים את כל הלקוחות ל-Akamai.
 

N i X

New member
זה לא נותן כלום מבחינת SEO לדעתי

השרת אפליקציה עדיין יושב איפה שהוא יושב, רק הקבצים הסטטים נטענים מהCDN,

נגיד נכנסים ל www.kermit.com (82.1.1.10) , משם מוגש דף ה HTML שלך עם קישורים לקבצים שיושבים ב
kermit.stamcdn.com (123.123.123.123)

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

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

קרמיט524

New member
אוקי זה מובן (גם בתגובה למה שטל כתב)

הבנתי מה קורה מבחינת מיקום הקבצים והקריאה אליהם, אבל פשוט לא הייתי סגורה מה בעצם הפרמטרים שאמורים להשפיע על ה-SEO, האם רק זמן טעינת הדף (ואז במקרה הזה זה כן מספיק שרק כל הקבצים הגרפים סטייל וסקריפטים יהיו על שרת מקומי ), או גם המיקום המדוייק של ה-IP שטוען את האתר עצמו. טוב, אז אני מבינה שזה שניהם. הפתרון המלא הוא בעצם לייצר כל פעם מחדש את האתר ב-HTML ולהעתיק אותו לשרת CDN או שרת מקומי בהולנד. טוב, אעביר את זה ללקוח. בסופו של דבר, הכל עניין של כמה כסף הוא יהיה מוכן להשקיע.

תודה,
 
למעלה