Programmering

Hvorfor MongoDB er 'fundamentalt bedre' for udviklere

Det kræver en vis mængde chutzpah - OK, bjerge af det - at opfinde en ny slags database og antage, at den vil overtage verden. Eller måske ikke antage nøjagtigt, men som MongoDB-medstifter Eliot Horowitz udtrykte det i et interview: "Hvis nogen ville gøre det, havde vi næsten den bedste chance for nogen derude."

Ikke Oracle med sine årtier af dominans i relationsdatabaser (RDBMS). Ikke IBM med en aftagende databaseforretning, men horder af talentfulde ingeniører. Ikke Microsoft, der havde pustet nyt liv ind i RDBMS-verdenen med SQL Server. Ikke engang open source starter MySQL og den stadig mere populære PostgreSQL.

Nej, det var Horowitz og Dwight Merriman, to New Yorkere, der ønskede at sætte et nyt spin på platform-as-a-service (PaaS) men på en eller anden måde i stedet byggede en database. ”Databaseverdenen ændres for evigt på grund af det, vi gjorde,” sagde Horowitz, som måske lyder arrogant bortset fra det faktum, at det er sandt. Hvorfor det er sandt, men det er værd at dykke dybt for at forstå.

Horowitz trak sig for nylig tilbage fra MongoDB efter 13 år med firmaet og produktet og gav et passende tidspunkt til at evaluere det arbejde, han udførte.

'Vi skubbede branchen'

Men lad os sikkerhedskopiere et øjeblik først. Det er let at se på ting som DB-Engines databasepopularitetsrangeringer og komme til den forkerte konklusion. "MongoDB er den femte mest populære database og stadig en tredjedel så udbredt som Oracle og MySQL!" I betragtning af, hvor tilbageholdende virksomheder er med at slukke kamptestede databaser, er selv dette niveau for vedtagelse imponerende. Databaser er det "mest klæbrige" produkt inden for en organisation, som er mindst sandsynligt at ændre sig. Så for MongoDB at flytte forbi databaser, der i vid udstrækning var blevet vedtaget (DB2, Ingres osv.) Gennem årtier, og fortsætte med at vokse i popularitet i forhold til RDBMS-styrke som Oracle ...? Det er en stor ting.

En endnu mere potent indikator for MongoDBs indflydelse er dog, hvor meget disse etablerede operatører har været ved opstart.

"Hvert andet traditionelt produkt, Postgres, MySQL, endda Oracle og SQL Server, har taget mange af MongoDB-ideerne og forsøger at bastardisere dem på deres egen måde," sagde Horowitz. ”Selv udviklere, der siger,“ Jeg ville aldrig bruge MongoDB! Jeg vil bare bruge Postgres, fordi det har JSONB og alle disse andre ting. '"Som Horowitz fremhævede, eksisterer sådanne ting som JSONB netop fordi MongoDB skubbede branchen mod at vedtage dem. For dem, der "hader MongoDB, men alligevel suser over JSONB", siger Horowitz simpelthen, "Du er velkommen."

Men igen, hybrisen. Eller chutzpah. Eller hvad det end var, der fik Horowitz og Merriman til at skubbe frem på trods af alt -alt - i branchen oprettet for at sikre deres fiasko. Hvor kom det fra?

'Databaser suget, og nogen havde brug for at ordne det'

Horowitz og Merriman havde arbejdet sammen i et par virksomheder, inklusive DoubleClick og Shopwiki, og som Horowitz forklarede, fortsatte databasen i vejen. Eller for at være mere stump: ”Brug af databaser suget, og nogen havde brug for at rette det, og hvis ingen andre ville gøre det, kunne det lige så godt være mig og Dwight. Vi vidste, at vi havde et godt skud. Det var langt fra en slam dunk, men ... hvis nogen skulle gøre det, havde vi næsten den bedste chance for nogen derude. ”

Den åbenlyse ting at gøre på det tidspunkt ville være at opbygge en bedre RDBMS; for at udfylde hullerne i MySQL og Postgres, som begge var vokset i popularitet. Men dette gjorde Horowitz ikke vil gøre. Han ønskede at opbygge en helt anden tilgang til data, en, der kortlagde, hvordan udviklere programmerede, ikke til noget ERP-systems behov for pæne rækker og kolonner.

Række- og kolonnetilgang til dataskemaer ligner simpelthen ikke data som repræsenteret i applikationskode, som Horowitz forklarede. I moderne programmeringssprog er det, du vil gemme i databasen (f.eks. En ordre, en kunde osv.), Repræsenteret som et komplet objekt med alle relaterede attributter indeholdt i en enkelt datastruktur. Denne uoverensstemmelse mellem udviklere og databaseadministratorer kræver oversættelse af den rige applikationsstruktur for at få den til at passe de stive regler i RDBMS. På denne måde tager selv de enkleste applikationer Frankenstein-kvaliteter i RDBMS, hvilket kræver titusinder (eller endda tusinder) af tabeller for at fange udviklerens engangs enkle datamodellering.

MongoDB, sagde Horowitz, tilbød udviklere en livline.

"Hvis du tager folk, der aldrig har brugt en database før, og du lærer dem MongoDB og derefter lærer dem en relationsdatabase, er MongoDB så meget lettere og mere intuitiv for dem." Ja, hvis du arbejder med et regnskabs- eller hovedbogssystem, var RDBMS designet til sådanne applikationer, og de fungerer godt. ”Men for alt andet fungerer den relationelle model ikke,” erklærede Horowitz.

Hvis du bruger et programmeringssprog og en database, er det underlige, at [MongoDB] API med MongoDB på nogle måder føles meget mere som dit programmeringssprog end databasen. Derfor er det ret ligetil at afhente. For mange af kernebegreberne som indeksering og forespørgsler, ja, det er et andet forespørgselssprog, og indekseringen er lidt anderledes, men grundlæggende er indeksering den samme. Grundlæggende om MongoDB er super let at hente.

I løbet af de sidste 13 år er meget af det, som hans firma har været nødt til at gøre, Horowitz, omuddannet dem, der voksede op på RDBMS og har brug for at lære en ny måde. Men for de nye databaser er “MongoDB bare så meget mere intuitiv end andre databaser. Det passer så meget bedre ind i den måde, folk tænker på. ” Som sådan fortsatte Horowitz: "Hvis du starter fra bunden, skal du næsten altid bruge MongoDB efter min partiske mening."

'Cloud var altid visionen'

På spørgsmålet om, hvorvidt han kunne finde ud af, hvornår han vidste, at MongoDB-væddemålet ville betale sig, tænkte Horowitz på det et øjeblik og sagde derefter, "April 2010." Det var da MongoDB var vært for en begivenhed i San Francisco, der blev udsolgt på under 48 timer. "Folk elskede kernebegreberne, og alt blev meget lettere." Indtil det tidspunkt, forklarede Horowitz, var der øjeblikke, hvor han bekymrede "Går denne ting nogensinde til at fungere?" Men i april 2010 vidste han, at svaret var et rungende ”ja”.

Hvilket ikke betyder, at han ramte fartpilot. "Allerede da vidste vi, at det ville tage 10 år at tilføje de funktioner, vi ønskede, og som virksomhederne skulle få brug for."

En af disse funktioner var cloud.

I betragtning af MongoDBs start som en blivende PaaS er det måske ikke overraskende, at Horowitz antyder, at skyen var på køreplanen fra den første dag. ”Temmelig kort tid efter, at vi begyndte at bygge MongoDB, begyndte vi også at bygge MongoDB Monitoring Service, som leverede undergrunden for Atlas,” MongoDB's database-as-a-service, der nu tegner sig for 42 procent af virksomhedens indtægter. "Vores mål var altid at have en fuld databasetjeneste."

En stor del af dette hænger sammen med virksomhedens vision om at gøre livet lettere for udviklere. "Som udviklere vidste vi, at ingen selv ville ønske at administrere databasen, hvis de kunne få nogen til at gøre det for dem, der er lige så sikkert og pålideligt." Den fulde realisering af denne vision bliver dog nødt til at vente, fordi selv en velfinansieret opstart som MongoDB ikke kunne gøre alt på én gang. ”Vi måtte investere al vores tid og energi i at få databasen rigtig, ellers ville det ikke ske. Derfor begyndte vi at lege med overvågning-som-en-tjeneste, bare for at sikre, at vi forstod, hvordan vi kørte en skytjeneste i stor skala. ” Derudover fik virksomheden tingene rundt om kanterne med ting som kreditkorthåndtering og supportsystemer for at "få øvelse i at udføre dem, så når vi var klar til at lancere Atlas i virkeligheden, startede det ikke fra bunden."

I sidste ende mener Horowitz, at "procentdelen af ​​mennesker, der kører MongoDB ved hjælp af Atlas, vil være næsten 100 procent", selvom det usandsynligt nogensinde vil være 100 procent. Med det "store flertal" af applikationer, der flytter til skyen, "er der ingen grund til ikke at bruge Atlas," fastholder Horowitz.

'Der er ingen måde, du kan argumentere for, at vi ikke lykkedes'

På spørgsmålet om, hvor den næste MongoDB måske kommer fra, identificerede Horowitz ikke en konkurrent så meget som et vejledende princip, den samme, der fik ham og Merriman til at bygge MongoDB: ”Du bliver nødt til at gøre noget fundamentalt bedre end noget andet. Hvis du kom ud med noget, der gjorde alt, hvad MongoDB eller Postgres gjorde, men var 10 gange billigere eller 10 gange hurtigere, ville det være ret overbevisende. ” Når det er sagt, tilføjede han, "Jeg kan ikke forestille mig, hvordan du kan slå MongoDB i datamodellen lige nu."

Men hvad der kunne være interessant, sagde Horowitz, ville være fundamentalt forskellige databasearkitekturer, der kan udnytte den offentlige skyinfrastruktur for at gøre tingene meget billigere. ”Mange arbejder på dette, men ingen har virkelig gjort det. Der er intet derude, der er arkitekteret fundamentalt anderledes. "

Hvilket bringer os tilbage til hvor vi startede. "Hvis du tænker på, hvad vi satte os for, hvilket var at gøre databaser grundlæggende lettere og grundlæggende bedre for udviklere, er der ingen måde, du kan argumentere for, at vi ikke lykkedes," erklærede Horowitz. "MongoDB er langt bedre end alt andet, der eksisterede, da vi startede." Nogle kan være uenige, men få er uenige i hans næste udsagn: ”Databaseverdenen er for evigt ændret på grund af det, vi gjorde. Det er ret fantastisk. ”

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