Programmering

Hvorfor MongoDB er ‘fundamentalt bedre’ for utviklere

Det krever en viss mengde chutzpah - OK, fjell av det - for å oppfinne en ny type database og anta at den vil ta over verden. Eller kanskje ikke anta nøyaktig, men som MongoDB-medstifter Eliot Horowitz uttrykte det i et intervju: "Hvis noen skulle gjøre det, hadde vi omtrent den beste sjansen for noen der ute."

Ikke Oracle, med sine tiår med dominans i relasjonsdatabaser (RDBMS). Ikke IBM, med en avtagende databasevirksomhet, men horder av talentfulle ingeniører. Ikke Microsoft, som hadde blåst nytt liv i RDBMS-verdenen med SQL Server. Ikke engang open source oppstarter MySQL og den stadig mer populære PostgreSQL.

Nei, det var Horowitz og Dwight Merriman, to New Yorkere som ønsket å sette et nytt spinn på plattform-som-en-tjeneste (PaaS), men på en eller annen måte i stedet bygde en database. "Databaseverdenen er for alltid forandret på grunn av det vi gjorde," sa Horowitz, som kan høres arrogant utover det faktum at det er sant. Hvorfor det er sant, men det er verdt å dykke dypt for å forstå.

Horowitz trakk seg nylig ut av MongoDB etter 13 år med firmaet og produktet, og ga en passende tid til å evaluere arbeidet han gjorde.

'Vi presset industrien'

Men la oss sikkerhetskopiere et øyeblikk først. Det er enkelt å se på ting som DB-Engines popularitetsrangering i databasen og komme til feil konklusjon. "MongoDB er den femte mest populære databasen, og fortsatt en tredjedel så mye brukt som Oracle og MySQL!" Gitt hvor motvillige bedrifter er å slå ut kamptestede databaser, er selv dette nivået av adopsjon imponerende. Databaser er det "klebrigste" produktet i en organisasjon, og det er minst sannsynlighet for at de endres. Så for MongoDB å flytte forbi databaser som var blitt bredt adoptert (DB2, Ingres, etc.) i løpet av flere tiår, og fortsette å vokse i popularitet i forhold til RDBMS-trofaste som Oracle ...? Det er en stor avtale.

En enda sterkere indikator på MongoDBs innflytelse er imidlertid hvor mye disse etablerte selskapene har sluttet seg til oppstarten.

"Hvert annet tradisjonelt produkt, Postgres, MySQL, til og med Oracle og SQL Server, har tatt mange av MongoDB-ideene og prøver å bastardisere dem på sin egen måte," sa Horowitz. "Selv utviklere som sier," Jeg ville aldri brukt MongoDB! Jeg skal bare bruke Postgres fordi den har JSONB og alle disse andre tingene. '"Som Horowitz fremhevet, eksisterer slike ting som JSONB nettopp fordi MongoDB presset industrien mot å adoptere dem. For de som "hater MongoDB, men likevel gyser om JSONB", sier Horowitz ganske enkelt: "Du er velkommen."

Men igjen, hybrisen. Eller chutzpah. Eller hva det enn var som fikk Horowitz og Merriman til å presse frem til tross for alt -alt - i bransjen satt opp for å sikre at de mislykkes. Hvor kom det fra?

‘Databaser sugd og noen trengte å fikse det’

Horowitz og Merriman hadde jobbet sammen i noen få selskaper, inkludert DoubleClick og Shopwiki, og, som Horowitz forklarte, fortsatte databasen å være i veien. Eller, for å være mer stump: “Å bruke databaser sugd, og noen trengte å fikse det, og hvis ingen andre skulle gjøre det, kan det like godt være meg og Dwight. Vi visste at vi hadde et godt skudd. Det var langt fra en slam dunk, men ... hvis noen skulle gjøre det, hadde vi omtrent den beste sjansen for noen der ute. "

Den åpenbare tingen å gjøre på det tidspunktet vil være å bygge et bedre RDBMS; for å fylle ut hullene MySQL og Postgres etterlot, som begge hadde vokst i popularitet. Men dette gjorde Horowitz ikke vil gjøre. Han ønsket å bygge en helt annen tilnærming til data, en som kartla hvordan utviklere programmerte, ikke til noe ERP-systemets behov for ryddige rader og kolonner.

Rad- og kolonnetilnærmingen til dataskjemaer ligner ganske enkelt ikke data som representert i applikasjonskode, slik Horowitz forklarte. I moderne programmeringsspråk blir det du vil lagre i databasen (f.eks. En ordre, en kunde osv.) Representert som et komplett objekt, med alle relaterte attributter som finnes i en enkelt datastruktur. Denne uoverensstemmelsen mellom utviklere og databaseadministratorer krever oversettelse av den rike applikasjonsstrukturen for å få den til å passe de stive reglene i RDBMS. På denne måten tar selv de enkleste applikasjonene Frankenstein-kvaliteter i RDBMS, og krever titalls (eller til og med tusenvis) tabeller for å fange utviklerens en gang enkle datamodellering.

MongoDB, sa Horowitz, tilbød utviklere en livline.

"Hvis du tar folk som aldri har brukt en database før, og du lærer dem MongoDB og deretter lærer dem en relasjonsdatabase, er MongoDB så mye enklere og mer intuitivt for dem." Ja, hvis du jobber med et regnskaps- eller reskontorsystem, var RDBMS designet for slike applikasjoner, og de fungerer bra. "Men for alt annet fungerer ikke relasjonsmodellen," erklærte Horowitz.

Hvis du bruker et programmeringsspråk og en database, er det rare at med MongoDB, på noen måter, [MongoDB] API føles mye mer som programmeringsspråket ditt enn databasen. Derfor er det ganske greit å hente. For mange av kjernekonseptene som indeksering og spørringer, ja, det er et annet spørrespråk, og indekseringen er litt annerledes, men i utgangspunktet er indeksering lik den samme. Grunnleggende om MongoDB er veldig enkle å ta opp.

I løpet av de siste 13 årene er mye av det selskapet hans har hatt å gjøre, sa Horowitz, omutdanne de som vokste opp på RDBMS og trenger å lære en ny måte. Men for de som er nye i databaser, er “MongoDB bare så mye mer intuitivt enn andre databaser. Det passer så mye bedre inn i måten folk tenker på. ” Som sådan fortsatte Horowitz: "Hvis du begynner fra bunnen av, bør du nesten alltid bruke MongoDB, etter min partiske mening."

‘Cloud var alltid visjonen’

På spørsmål om han kunne finne ut når han visste at MongoDB-innsatsen ville lønne seg, tenkte Horowitz på det et øyeblikk, og sa, "April 2010." Det var da MongoDB var vert for et arrangement i San Francisco som solgte ut på under 48 timer. "Folk elsket kjernekonseptene, og alt ble mye lettere." Fram til det tidspunktet, gjorde Horowitz klart, var det øyeblikk da han bekymret seg: "Kommer denne tingen til å fungere?" Men i april 2010 visste han at svaret var et rungende "ja."

Som ikke betyr at han traff cruise control. "Allerede da visste vi at det ville ta ti år å legge til funksjonene vi ønsket og som bedriftene ville trenge."

En av disse funksjonene var sky.

Gitt MongoDBs start som en fremtidig PaaS, er det kanskje ikke overraskende at Horowitz antyder at skyen var på veikartet fra første dag. "Ganske kort tid etter at vi begynte å bygge MongoDB, begynte vi også å bygge MongoDB Monitoring Service, som ga grunnlaget for Atlas," MongoDBs database-as-a-service som nå utgjør 42 prosent av selskapets inntekter. "Målet vårt var alltid å ha en full databasetjeneste."

En stor del av dette knytter seg til selskapets visjon om å gjøre livet enklere for utviklere. "Som utviklere visste vi at ingen ville ønske å administrere databasen selv hvis de kunne få noen til å gjøre det for dem som er like trygge og pålitelige." Den fulle realiseringen av denne visjonen måtte imidlertid vente, fordi selv en velfinansiert oppstart som MongoDB ikke kunne gjøre alt på en gang. “Vi måtte investere all vår tid og energi i å få databasen riktig, ellers ville det ikke skje. Derfor begynte vi å spille med monitoring-as-a-service, bare for å være sikre på at vi forsto hvordan vi skal kjøre en skytjeneste i stor skala. " I tillegg flinket selskapet rundt kantene med ting som kredittkorthåndtering og støttesystemer for å "få øvelse i å gjøre dem, slik at når vi var klare til å lansere Atlas for ekte, begynte det ikke helt fra bunnen av."

Til slutt tror Horowitz at "andelen mennesker som kjører MongoDB ved bruk av Atlas vil være nesten 100 prosent," selv om det neppe vil være 100 prosent. Med "det store flertallet" av applikasjoner som flytter til skyen, "Det er ingen grunn til ikke å bruke Atlas," fastholder Horowitz.

'Det er ingen måte du kan argumentere for at vi ikke lyktes'

På spørsmål om hvor neste MongoDB kan komme fra, identifiserte Horowitz ikke en konkurrent så mye som et ledende prinsipp, det samme som fikk ham og Merriman til å bygge MongoDB: “Du må gjøre noe fundamentalt bedre enn noe annet. Hvis du kom ut med noe som gjorde alt som MongoDB eller Postgres gjorde, men var 10 ganger billigere eller 10 ganger raskere, ville det være ganske overbevisende. ” Når det er sagt, la han til: "Jeg kan ikke forestille meg hvordan du kan slå MongoDB i datamodellen akkurat nå."

Men det som kan være interessant, antydet Horowitz, ville være fundamentalt forskjellige databasearkitekturer som kan dra nytte av den offentlige skyinfrastrukturen for å gjøre ting mye billigere. "Mange jobber med dette, men ingen har virkelig gjort det. Det er ingenting der ute som er fundamentalt annerledes. "

Som bringer oss tilbake til der vi startet. "Hvis du tenker på hva vi satte oss for å gjøre, som gjorde databaser fundamentalt enklere og grunnleggende bedre for utviklere, er det ingen måte du kan argumentere for at vi ikke lyktes," erklærte Horowitz. "MongoDB er langt bedre enn alt annet som eksisterte da vi startet." Noen kan være uenige, men få er uenige i hans neste uttalelse: “Databaseverdenen er forandret for alltid på grunn av det vi gjorde. Det er ganske fantastisk. "