אני מפתח אפליקציה וובית חדשה מזה חודשיים. לפני כמה ימים חשבתי לעבור מ-SQL Server 2008 ל-Amazon Simple DB. הסיבה לכך נעוצה בעובדה כי אני מחפש פיתרון Scalable לבסיס הנתונים. אני מעוניין שבמידה והאפליקציה מצליחה ויש לה הרבה גולשים שאני לא אצטרך להתמודד עם שדרוגים של שרתים, העברת בסיס הנתונים לשרת החדש וכמובן לא מעונין לסבול לנפילות שרת ואי זמינות האפליקציה. אם זאת, גם ל-Simple DB יש את הבעיות שלו. אחת הבעיות נאוצה בעובדה כי זהו בסיס נתונים ללא סכמה, מה שאומר שאי אפשר לבציע שאילתות של Join. זה אומר שאני צריך לשנות את הקוד אשר מבצע את השאילתות, להשתמש ב-API של אמזון. בנוסף, אני אצטרך לבצע את הצלבת הנתונים בקוד, מה שאומר עוד שעות תכנות נוספות.

בסופו של דבר כל הרעיון לעבור ל-Amazon SimpleDB לא נשמע לי מיודע מה. אני מחפש נכון לעכשיו פתרון scalable אשר יתאים ל-SQL Server 2008. במידה ולא אמצע, אני אשכול לעבור לעבוד עם Microsoft SQL Azure או Amazon Simple DB, אבל אני עדיין לא סגור על זה. האפליקציה שלי עושה שימוש נרחב בבסיס הנתונים וזה בעצם צבר הבקבוק של האפליקציה. במידה ויהיו הרבה גולשים לאתר ויהיה פיק חזק, בסיס הנתונים פשוט יכול לא להגיב. אפשר לקחת איזה שרת חזק עם SQL Server 2008 באמזן, אבל המחירים בשמיים. כל היתרון של אחסון בשירותי בסיס נתונים כמו Amazon Simple DB ו-Microsoft SQL Azure הוא שאתה משלם רק על מה שאתם משתמש, וזה בהחלט מוזיל את העלויות.

חשבתי גם אולי להשתמש ב-Amazon RDS שמבוסס על MySQL, כי זה יותר קל בשבילי להתממשק לזה בעזרת מחבר חדש אחראי על שינוי התקשורת בין ASP.NET ל-MYSQL. בסך הכל הרבה כאב ראש ואני עדיין לא יודע למה אין פתרונות נוחים וקלים יותר. נכון לעכשיו אני צריך לבצע שינויים לא מעטים בקוד כדי להפוך את האפליקציה ל-Scalable. אופציה אחרת שאני שוקל זה להשתמש בכמה שרתים של MYSQL בשביל Mirroring לשאילתות Read בלבד, זתאת על מנת לחלק את העומס על מספר שרתים במקום על שרת יחיד. גם במקרה זה אני כנראה אצטרך להשתמש ב-API של Amazon בשביל לתשאל את המדדים הרלוונטיים לניצול משאבי השרת כדי לדעת מתי להפנות גולשים לשרת המקביל כדי להוריד מהעומס, בקיצר, סיפור.





 







תגיות:

מי הצביע לידיעה הזו

תגובות

 •  RSS פידים  •  ^ למעלה