מדוע MongoDB 'טוב יותר באופן בסיסי' עבור מפתחים

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

לא אורקל, עם עשרות שנות הדומיננטיות שלה במאגרי מידע יחסיים (RDBMS). לא יבמ, עם עסק מאגר נתונים דועך, אך המוני מהנדסים מוכשרים. לא מיקרוסופט, שהפיחה חיים חדשים בעולם ה- RDBMS באמצעות SQL Server. אפילו קוד פתוח לא מקדם את MySQL ואת PostgreSQL הפופולרית יותר ויותר.

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

הורוביץ פרש לאחרונה מ- MongoDB לאחר 13 שנים עם החברה והמוצר, וסיפק זמן מתאים להעריך את העבודה שעשה.

'דחפנו את הענף'

אבל בואו נגבה תחילה רגע. קל להסתכל על דברים כמו דירוג הפופולריות של מסדי הנתונים של DB-Engines ולהגיע למסקנה שגויה. "MongoDB הוא מאגר הנתונים החמישי הפופולרי ביותר, ועדיין בשליש בשימוש נרחב כמו אורקל ו- MySQL!" בהתחשב במידת הארגון שארגונים מסרבים להשבית מאגרי מידע נלחמים, אפילו רמת האימוץ הזו מרשימה. מאגרי מידע הם המוצר "הדביק ביותר" בארגון, והכי פחות סביר שישתנו. אז כדי ש- MongoDB יעבור מאגרי מידע עבר שאומצו באופן נרחב (DB2, Ingres וכו ') במשך עשרות שנים, וימשיך לגדול בפופולריות ביחס לסטרטים RDBMS כמו אורקל ...? זה עניין גדול.

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

"כל מוצר מסורתי אחר, Postgres, MySQL, אפילו אורקל ו- SQL Server, לקחו הרבה מהרעיונות של MongoDB ומנסים לבסס אותם בדרכם שלהם", אמר הורוביץ. "אפילו מפתחים שאומרים, 'לעולם לא הייתי משתמש ב- MongoDB! אני פשוט אשתמש בפוסטגרס כי יש בו JSONB וכל הדברים האחרים האלה. '"כפי שהדגיש הורוביץ, דברים כמו JSONB קיימים דווקא בגלל ש- MongoDB דחף את התעשייה לאמץ אותם. לאלה ש"שונאים את MongoDB ובכל זאת משתוללים עם JSONB "הורוביץ אומר בפשטות:" אתה מוזמן. "

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

'מסדי נתונים נשאבו ומישהו היה צריך לתקן את זה'

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

הדבר הברור לעשות בשלב זה יהיה לבנות RDBMS טוב יותר; כדי למלא את החסר שהותירו MySQL ו- Postgres, שניהם גדלו בפופולריות. אבל זה מה שהורוביץ לא רצה לעשות. הוא רצה לבנות גישה שונה לחלוטין לנתונים, כזו שתמפה את האופן שבו מפתחים תכנתו, ולא לצורך של מערכת ERP כלשהי בשורות ועמודות מסודרות ומסודרות.

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

MongoDB, אמר הורוביץ, הציע למפתחים חבל הצלה.

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

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

במהלך 13 השנים האחרונות, הרבה ממה שהחברה שלו הייתה צריכה לעשות, אמר הורוביץ, מחנך מחדש את אלה שגדלו ב- RDBMS וצריכים ללמוד דרך חדשה. אבל עבור אלה החדשים במאגרי מידע, "MongoDB פשוט הרבה יותר אינטואיטיבי מאשר מאגרי מידע אחרים. זה משתלב הרבה יותר בצורה בה אנשים חושבים. " ככזה, המשיך הורוביץ, "אם אתה מתחיל מאפס, אתה תמיד צריך להשתמש ב- MongoDB, לדעתי המוטה."

'ענן היה תמיד החזון'

כשנשאל אם הוא יכול לאתר מתי הוא יודע שההימור של MongoDB ישתלם, חשב הורוביץ על זה לרגע ואז אמר: "אפריל 2010." זה היה כאשר MongoDB אירחה אירוע בסן פרנסיסקו שנמכר פחות מ- 48 שעות. "אנשים אהבו את מושגי הליבה, והכל נעשה הרבה יותר קל." עד לאותה נקודה, הבהיר הורוביץ, היו רגעים שהוא דאג "האם הדבר הזה יעבוד אי פעם?" אבל באפריל 2010 הוא ידע שהתשובה היא "כן" מהדהד.

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

אחת התכונות הללו הייתה ענן.

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

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

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

'אין סיכוי שתוכל לטעון שלא הצלחנו'

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

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

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