Zašto je MongoDB 'bitno bolji' za programere

Potrebna je određena količina chutzpah - u redu, planine nje - da bi se izmislila nova vrsta baze podataka i pretpostavilo da će ona zavladati svijetom. Ili možda ne pretpostaviti, točno, ali, kako je u jednom intervjuu rekao suosnivač MongoDB-a Eliot Horowitz, "Ako je netko to učinio, imali smo otprilike najbolje šanse za nekoga vani."

Nije Oracle, s desetljećima dominacije u relacijskim bazama podataka (RDBMS). Ne IBM, s opadajućim poslovanjem bazama podataka, ali horde nadarenih inženjera. Ne Microsoft, koji je udahnuo novi život svijetu RDBMS-a s SQL Serverom. Čak ni open source ne pokreće MySQL i sve popularniji PostgreSQL.

Ne, Horowitz i Dwight Merriman, dvojica Njujorčana, htjeli su pokrenuti novu platformu kao uslugu (PaaS), ali nekako su umjesto toga izgradili bazu podataka. "Svijet baza podataka zauvijek se promijenio zbog onoga što smo učinili", rekao je Horowitz, što bi moglo zvučati arogantno, osim činjenice da je to istina. Međutim, zašto je to istina, vrijedi zaroniti duboko da biste je razumjeli.

Horowitz se nedavno povukao iz MongoDB-a nakon 13 godina rada s tvrtkom i proizvodom, pružajući prikladno vrijeme za ocjenu posla koji je obavio.

'Pogurali smo industriju'

No, vratimo se prvo na trenutak. Lako je sagledati stvari poput ljestvice popularnosti baze podataka DB-Engines i doći do pogrešnog zaključka. "MongoDB je peta najpopularnija baza podataka, a još uvijek jedna trećina široko korištena kao Oracle i MySQL!" S obzirom na to koliko su poduzeća nesklona izbacivanju baza podataka provjerenih u bitkama, čak je i ta razina usvajanja impresivna. Baze podataka su "najljepši" proizvod u organizaciji, a najmanje je vjerojatno da će se promijeniti. Dakle, da se MongoDB pomakne s prošlih baza podataka koje su široko prihvaćene (DB2, Ingres, itd.) Tijekom desetljeća, i da nastavi rasti popularnost u odnosu na postojane RDBMS poput Oraclea ...? To je velika stvar.

Međutim, još je snažniji pokazatelj utjecaja MongoDB-a koliko su ovi dosadašnji nositelji napredovali.

"Svi drugi tradicionalni proizvodi, Postgres, MySQL, čak i Oracle i SQL Server, preuzeli su puno ideja MongoDB-a i pokušavaju ih kopirati na svoj način", rekao je Horowitz. „Čak i programeri koji kažu: 'Nikad ne bih koristio MongoDB! Koristit ću samo Postgres jer ima JSONB i sve ove druge stvari. '”Kao što je naglasio Horowitz, takve stvari kao što je JSONB postoje upravo zato što ih je MongoDB potaknuo na usvajanje. Za one koji "mrze MongoDB, a pritom bruje o JSONB-u", Horowitz jednostavno kaže: "Nema na čemu."

Ali, opet, oholost. Ili chutzpah. Ili što god da je bilo što je potaknulo Horowitza i Merrimana da  krenu naprijed unatoč svemu -  svemu - u industriji koja je postavljena da osigura njihov neuspjeh. Odakle to?

'Baze podataka isisane i netko je to trebao popraviti'

Horowitz i Merriman surađivali su u nekoliko tvrtki, uključujući DoubleClick i Shopwiki, i, kao što je Horowitz objasnio, baza podataka neprestano je stajala na putu. Ili, da budem otvoreniji, „Korištenje baza podataka sranje i netko je to trebao popraviti, a ako to nitko drugi neće učiniti, to bismo mogli biti i ja i Dwight. Znali smo da smo dobro pucali. Bilo je to daleko od zakucavanja, ali ... ako je netko to učinio, imali smo otprilike najbolje šanse od bilo koga vani. "

Očito što bi u tom trenutku trebalo učiniti bilo bi izgraditi bolji RDBMS; kako bi se popunile praznine koje su ostavili MySQL i Postgres, a oba su porasla u popularnosti. No, to je ono što Horowitz je ne želite učiniti. Želio je izgraditi potpuno drugačiji pristup podacima, onaj koji se preslikava na način na koji su programeri programirali, a ne na potrebu nekog ERP sustava za urednim i urednim redovima i stupcima.

Pristup redovima i stupcima shemama podataka jednostavno ne sliči podacima kako su predstavljeni u aplikacijskom kodu, kao što je objasnio Horowitz. U modernim programskim jezicima stvar koju želite pohraniti u bazu podataka (npr. Narudžba, kupac itd.) Predstavljena je kao cjelovit objekt, sa svim povezanim atributima koji su sadržani u jednoj strukturi podataka. Ova neusklađenost između programera i administratora baze podataka zahtijeva prijevod te bogate aplikacijske strukture kako bi odgovarala krutim pravilima RDBMS-a. Na taj način čak i najjednostavnije aplikacije poprimaju Frankensteinove kvalitete u RDBMS-u, zahtijevajući desetke (ili čak tisuće) tablica kako bi uhvatile razvojno nekad jednostavno modeliranje podataka.

MongoDB je, rekao je Horowitz, ponudio programerima spas.

"Ako uzmete ljude koji nikada prije nisu koristili bazu podataka i naučite ih MongoDB, a zatim ih naučite relacijsku bazu podataka, MongoDB im je toliko lakši i intuitivniji." Da, ako radite s računovodstvenim sustavom ili sustavom glavne knjige, RDBMS je dizajniran za takve aplikacije i dobro funkcioniraju. "Ali za sve ostalo, relacijski model ne djeluje", izjavio je Horowitz.

Ako koristite programski jezik i bazu podataka, čudno je ono što se s MongoDB-om na neki način API-ju [MongoDB] mnogo više doima poput vašeg programskog jezika nego baze podataka. Stoga je prilično jednostavno pokupiti. Za mnoge temeljne koncepte poput indeksiranja i upita, da, to je drugačiji jezik upita i indeksiranje je malo drugačije, ali u osnovi je indeksiranje nekako isto. Osnove MongoDB-a je vrlo lako pokupiti.

Tijekom proteklih 13 godina, većina onoga što je njegova tvrtka morala učiniti, rekao je Horowitz, preodgaja one koji su odrasli na RDBMS-u i trebaju naučiti novi način. Ali za one koji su novi u bazama podataka, „MongoDB je upravo toliko intuitivniji od ostalih baza podataka. Toliko se bolje uklapa u način razmišljanja ljudi. " Kao takav, Horowitz je nastavio, "Ako počinjete od nule, po mom bi pristranom mišljenju gotovo uvijek trebali koristiti MongoDB."

'Oblak je uvijek bio vizija'

Upitan može li točno odrediti kada zna da će se oklada MongoDB isplatiti, Horowitz je na trenutak razmislio o tome, a zatim rekao, "Travanj 2010." Tada je MongoDB bio domaćin događaja u San Franciscu koji je rasprodan za manje od 48 sati. "Ljudi su voljeli temeljne koncepte i sve je postalo puno lakše." Do tog trenutka, Horowitz je jasno rekao, bilo je trenutaka kada se brinuo: "Hoće li ovo ikad uspjeti?" Ali u travnju 2010. znao je da je odgovor odlučan "Da".

Što ne znači da je pogodio tempomat. "Već tada smo znali da će trebati 10 godina da dodamo značajke koje želimo i koje će poduzećima trebati."

Jedna od tih značajki bio je oblak.

S obzirom na to da je MongoDB započeo kao potencijalni PaaS, možda nije iznenađujuće što Horowitz sugerira da je oblak bio na putu od prvog dana. "Ubrzo nakon što smo započeli izgradnju MongoDB-a, započeli smo i izgradnju MongoDB Monitoring Service-a, koji je pružao podlogu za Atlas", MongoDB-ova baza podataka kao usluga koja sada čini 42 posto prihoda tvrtke. "Naš je cilj uvijek bio imati potpunu uslugu baze podataka."

Veliki dio toga povezan je s vizijom tvrtke kako bi olakšao život programerima. "Kao programeri znali smo da nitko ne bi želio sam upravljati bazom podataka ako bi nekoga mogao učiniti za njih koji je jednako siguran i pouzdan." Potpuno ostvarenje ove vizije moralo bi pričekati, jer ni dobro financiran startup poput MongoDB-a nije mogao sve odjednom. “Morali smo uložiti svo svoje vrijeme i energiju u ispravljanje baze podataka jer se to inače ne bi dogodilo. Zbog toga smo se počeli igrati s monitoringom kao uslugom, samo da bismo bili sigurni da razumijemo kako pokretati uslugu u oblaku. “ Uz to, tvrtka se poigravala oko rubova sa stvarima poput rukovanja kreditnim karticama i sustava podrške kako bi se "uvježbala u tome, tako da kad smo bili spremni pokrenuti Atlas stvarno, nije počelo od nule."

U konačnici, Horowitz vjeruje da će "postotak ljudi koji koriste MongoDB koji koriste Atlas biti gotovo 100 posto", iako je malo vjerojatno da će ikad biti 100 posto. S "velikom većinom" aplikacija koje se premještaju u oblak, "Nema razloga da se ne koristi Atlas", drži Horowitz. 

'Ni na koji način ne biste mogli tvrditi da nismo uspjeli'

Upitan odakle bi mogao doći sljedeći MongoDB, Horowitz nije identificirao konkurenta toliko kao vodeće načelo, isto ono koje je potaknulo njega i Merrimana na izgradnju MongoDB-a: „Morate učiniti nešto bitno bolje od nečeg drugog. Da izađete s nečim što je učinilo sve što su radili MongoDB ili Postgres, ali je bilo 10 puta jeftinije ili 10 puta brže, bilo bi prilično uvjerljivo. " To je rekao, dodao je, "Ne pretpostavljam kako trenutno možete pobijediti MongoDB u podatkovnom modelu."

No, ono što bi moglo biti zanimljivo, istaknuo je Horowitz, bile bi bitno drugačije arhitekture baza podataka koje mogu iskoristiti prednost javne infrastrukture u oblaku kako bi stvari postale znatno jeftinije. “Puno ljudi radi na ovome, ali to zapravo nitko nije učinio. Ne postoji ništa što bi bilo bitno drugačije oblikovano. "

Što nas vraća tamo gdje smo započeli. "Ako razmislite o onome što smo zacrtali, a to je bazu podataka učinili bitno lakšom i bitno boljom za programere, nema šanse da možete tvrditi da nismo uspjeli", izjavio je Horowitz. "MongoDB je znatno superiorniji od svega ostalog što je postojalo kad smo započeli." Neki se možda neće složiti, ali malo tko se neće složiti s njegovom sljedećom izjavom: „Svijet baza podataka zauvijek se promijenio zbog onoga što smo učinili. To je prilično strašno. "