Programiranje

Zakaj je MongoDB "bistveno boljši" za razvijalce

Potrebna je določena količina chutzpah - v redu, gore, da bi izumili novo vrsto zbirke podatkov in domnevali, da bo prevzela svet. Ali morda ne predvidevamo natančno, toda, kot je v intervjuju povedal soustanovitelj MongoDB Eliot Horowitz, "Če bi kdo to hotel, smo imeli skoraj najboljše možnosti za kogar koli zunaj."

Ne Oracle, saj ima desetletja prevlade v relacijskih zbirkah podatkov (RDBMS). Ne IBM, ki se ukvarja z bazami podatkov, ampak horde nadarjenih inženirjev. Ne Microsoft, ki je s sistemom SQL Server vdihnil novo življenje v sistem RDBMS. Niti odprtokodni upstar MySQL in vse bolj priljubljeni PostgreSQL ne začneta.

Ne, Horowitz in Dwight Merriman, dva Newyorčana, sta želela narediti nov spin na platformo kot storitev (PaaS), a nekako namesto tega zgradila bazo podatkov. "Svet baz podatkov se je za vedno spremenil zaradi tega, kar smo storili," je dejal Horowitz, kar se morda sliši arogantno, razen dejstva, da je res. Zakaj res je, vendar se je vredno potopiti globoko, da bi to razumeli.

Horowitz se je pred kratkim upokojil iz MongoDB po 13 letih dela s podjetjem in izdelkom, tako da je imel primeren čas za oceno dela, ki ga je opravil.

"Potisnili smo industrijo"

Najprej pa vzemimo trenutek nazaj. Preprosto si lahko ogledamo stvari, kot so lestvice priljubljenosti baze podatkov DB-Engines, in pridemo do napačnega zaključka. "MongoDB je peta najbolj priljubljena baza podatkov in še vedno ena tretjina, ki se pogosto uporablja kot Oracle in MySQL!" Glede na to, kako nerada podjetja izklapljajo baze podatkov, preizkušene v bojih, je tudi ta stopnja sprejemanja impresivna. Baze podatkov so "najbolj lepljiv" izdelek znotraj organizacije, za katerega se najmanj verjetno spremeni. Torej, da se MongoDB premakne mimo zbirk podatkov, ki so bile v desetletjih splošno sprejeta (DB2, Ingres itd.), In še naprej narašča priljubljenost v primerjavi z RDBMS, kot je Oracle ...? To je velika stvar.

Še močnejši kazalnik vpliva MongoDB pa je, koliko so ti dosedanji operaterji pospešili začetek.

"Vsi drugi tradicionalni izdelki, Postgres, MySQL, celo Oracle in SQL Server, so prevzeli veliko idej MongoDB in jih poskušajo uničiti na svoj način," je dejal Horowitz. "Tudi razvijalci, ki pravijo:" Nikoli ne bi uporabljal MongoDB! Uporabil bom samo Postgres, ker ima JSONB in ​​vse te druge stvari. '«Kot je poudaril Horowitz, takšne stvari, kot je JSONB, obstajajo ravno zato, ker jih je MongoDB potisnil k njihovi uporabi. Za tiste, ki "sovražijo MongoDB, a kljub temu širijo JSONB", Horowitz preprosto reče: "Dobrodošli."

Ampak, spet hubris. Ali chutzpah. Ali karkoli je bilo tisto, kar je Horowitza in Merrimana spodbudilo, da sta kljub vsemu šla naprejvse - v industriji, ustanovljeni za zagotovitev njihovega neuspeha. Od kod to?

"Baze podatkov zanič in nekdo jih je moral popraviti"

Horowitz in Merriman sta sodelovala v nekaj podjetjih, vključno z DoubleClick in Shopwiki, in, kot je pojasnil Horowitz, je baza podatkov vedno ovirala. Ali pa, če sem bolj odkrit, "Uporaba zbirk podatkov je bila zanič in nekdo je to moral popraviti, in če tega ne bo storil nihče drug, smo to lahko tudi jaz in Dwight. Vedeli smo, da smo dobro streljali. Še zdaleč ni šlo za potapljanje, toda ... če bi kdo to storil, smo imeli skoraj najboljše možnosti od kogar koli tam zunaj. "

V tem trenutku bi bilo očitno, da bi zgradili boljši RDBMS; zapolniti vrzeli, ki sta jih pustila MySQL in Postgres, ki sta se vse bolj uveljavila. Toda to je storil Horowitz ne hočem narediti. Želel je zgraditi povsem drugačen pristop k podatkom, ki je preslikal, kako programirajo razvijalci, ne pa potrebe nekega sistema ERP po urejenih vrsticah in stolpcih.

Pristop vrstice in stolpci k shemam podatkov preprosto ni podoben podatkom, kot so predstavljeni v aplikacijski kodi, kot je pojasnil Horowitz. V sodobnih programskih jezikih je stvar, ki jo želite shraniti v bazo podatkov (npr. Naročilo, stranka itd.), Predstavljena kot celoten objekt z vsemi povezanimi atributi, ki jih vsebuje ena sama podatkovna struktura. Ta neusklajenost med razvijalci in skrbniki baz podatkov zahteva prevod te bogate strukture aplikacije, da bo ustrezala strogim pravilom RDBMS. Na ta način celo najpreprostejše aplikacije prevzamejo Frankensteinove lastnosti v RDBMS, kar zahteva deset (ali celo tisoč) tabel, da zajamejo nekoč preprosto oblikovanje podatkov razvijalca.

MongoDB, je dejal Horowitz, razvijalcem ponudil rešilno vrv.

"Če vzamete ljudi, ki še nikoli niso uporabljali baze podatkov in jih naučite MongoDB in jih nato naučite relacijske baze podatkov, je MongoDB zanje toliko lažji in bolj intuitiven." Da, če delate z računovodskim sistemom ali sistemom glavne knjige, je bil RDBMS zasnovan za takšne aplikacije in delujejo dobro. "Toda za vse ostalo relacijski model ne deluje," je izjavil Horowitz.

Če uporabljate programski jezik in bazo podatkov, je čudno, da je pri MongoDB API [MongoDB] na nek način bolj podoben vašemu programskemu jeziku kot zbirki podatkov. Zato je precej enostavno pobrati. Da, za številne osrednje koncepte, kot so indeksiranje in poizvedbe, gre za drugačen jezik poizvedb in indeksiranje je nekoliko drugačno, vendar je v bistvu indeksiranje nekako enako. Osnove MongoDB je zelo enostavno pobrati.

V zadnjih 13 letih je večina tega, kar je moralo storiti njegovo podjetje, povedal Horowitz, da prevzgoji tiste, ki so odraščali v RDBMS in se morajo naučiti novega. Toda za tiste, ki so novi v bazah podatkov, je "MongoDB ravno toliko bolj intuitiven kot druge baze podatkov. Tako bolje se prilega načinu razmišljanja ljudi. « Kot tak je Horowitz nadaljeval: "Če začnete iz nič, bi morali po mojem pristranskem mnenju skoraj vedno uporabljati MongoDB."

"Oblak je bil vedno vizija"

Na vprašanje, ali bi lahko natančno določil, kdaj je vedel, da se bo stava MongoDB izplačala, je Horowitz za trenutek premislil, nato pa rekel: "April 2010." Takrat je MongoDB gostil dogodek v San Franciscu, ki je bil razprodan v manj kot 48 urah. "Ljudje so imeli radi ključne koncepte in vse je postalo veliko lažje." Do tega trenutka je Horowitz jasno povedal, da so bili trenutki zaskrbljeni: "Ali bo ta stvar kdaj delovala?" Toda aprila 2010 je vedel, da je odgovor odločen "Da".

Kar pa ne pomeni, da je zadel tempomat. "Že takrat smo vedeli, da bo trajalo 10 let, da dodamo funkcije, ki jih želimo, in ki jih bodo podjetja potrebovala."

Ena od teh funkcij je bil oblak.

Glede na to, da je MongoDB začel kot potencialni PaaS, morda ni presenetljivo, da Horowitz predlaga, da je bil oblak na načrtu že od prvega dne. "Kmalu po tem, ko smo začeli graditi MongoDB, smo začeli graditi tudi MongoDB Monitoring Service, ki je zagotavljal podlago za Atlas," MongoDB-jeva zbirka podatkov kot storitev, ki zdaj predstavlja 42 odstotkov prihodkov podjetja. "Naš cilj je bil vedno imeti popolno storitev zbirke podatkov."

Velik del tega je povezan z vizijo podjetja, da razvijalcem olajša življenje. "Kot razvijalci smo vedeli, da nihče ne bi hotel sam upravljati zbirke podatkov, če bi lahko koga prepričal, da je to storil enako varno in zanesljivo." Na popolno uresničitev te vizije pa bi bilo treba počakati, saj tudi dobro financiran zagon, kot je MongoDB, ni mogel narediti vsega naenkrat. »Ves čas in energijo smo morali vložiti v pravilno urejanje baze podatkov, sicer se to ne bi zgodilo. Zato smo se začeli igrati s programom monitoring-as-a-service, samo zato, da smo se prepričali, da razumemo, kako v veliki meri voditi storitev v oblaku. « Poleg tega se je podjetje po robovih poigravalo s stvarmi, kot so ravnanje s kreditnimi karticami in podporni sistemi, da "se vadijo, da ko smo resnično bili pripravljeni zagnati Atlas, ni začel iz nič."

Na koncu Horowitz verjame, da bo "odstotek ljudi, ki bodo uporabljali MongoDB, ki uporabljajo Atlas, skoraj 100-odstoten", čeprav verjetno ne bo kdaj 100-odstoten. Z "veliko večino" aplikacij, ki se selijo v oblak, "ni razloga, da ne bi uporabili Atlasa," trdi Horowitz.

‘Nikakor ne bi mogli trditi, da nam ni uspelo’

Na vprašanje, od kod bi lahko prišel naslednji MongoDB, Horowitz konkurenta ni identificiral toliko kot vodilno načelo, isto tisto, ki je spodbudilo njega in Merrimana, da zgradita MongoDB: "Narediti morate nekaj bistveno boljšega kot nekaj drugega. Če bi izšli z nečim, kar je storilo vse, kar sta storila MongoDB ali Postgres, vendar je bilo 10-krat cenejše ali 10-krat hitrejše, bi bilo precej prepričljivo. " Kljub temu je dodal: "Ne predstavljam si, kako lahko zdaj v podatkovnem modelu premagate MongoDB."

Toda tisto, kar bi lahko bilo zanimivo, bi bil, kot je poudaril Horowitz, bistveno drugačne arhitekture baz podatkov, ki bi lahko izkoristile javno infrastrukturo v oblaku in pocenile stvari. »Veliko ljudi dela na tem, a tega ni zares naredil nihče. Tam ni ničesar, kar bi bilo zasnovano bistveno drugače. "

Kar nas vrne tja, kjer smo začeli. "Če pomislite, kaj smo si zastavili, kar je bistveno olajšalo in bistveno izboljšalo zbirke podatkov za razvijalce, nikakor ne morete trditi, da nam ni uspelo," je izjavil Horowitz. "MongoDB je močno boljši od vsega drugega, kar je obstajalo, ko smo začeli." Nekateri se morda ne strinjajo, le redki pa se ne strinjajo z njegovo naslednjo izjavo: »Svet baz podatkov se je za vedno spremenil zaradi tega, kar smo storili. To je čudovito. "

$config[zx-auto] not found$config[zx-overlay] not found