Programovanie

Prečo je MongoDB pre vývojárov „zásadne lepší“

Vymyslieť nový druh databázy a predpokladať, že prevezme kontrolu nad svetom, si vyžaduje určité množstvo chutzpah - OK, ich kopcov. Alebo možno presne nepredpokladám, ale ako to v rozhovore uviedol spoluzakladateľ MongoDB Eliot Horowitz: „Ak to niekto urobí, mali sme takmer najlepšiu šancu.“

Nie Oracle, s jeho desaťročiami dominancie v relačných databázach (RDBMS). Nie IBM, s ubúdajúcim databázovým podnikaním, ale zástupy talentovaných inžinierov. Nie Microsoft, ktorý vdýchol svetu RDBMS nový život pomocou servera SQL Server. Ani open source nepodporuje MySQL a čoraz populárnejší PostgreSQL.

Nie, boli to Horowitz a Dwight Merriman, dvaja Newyorčania, ktorí chceli dať nový smer platforme ako službe (PaaS), ale namiesto toho nejako vytvorili databázu. "Svet databázy sa navždy zmenil kvôli tomu, čo sme urobili," povedal Horowitz, čo môže znieť arogantne, až na to, že je to pravda. Prečo je pravda, že stojí za to sa hlboko pochopiť, aby ste to pochopili.

Horowitz nedávno odišiel z MongoDB po 13 rokoch so spoločnosťou a produktom, čím poskytol vhodný čas na vyhodnotenie jeho práce.

„Posunuli sme priemysel“

Poďme si však najskôr chvíľu zálohovať. Je ľahké sa pozrieť na veci, ako sú rebríčky popularity databázy DB-Engines, a prísť k nesprávnemu záveru. „MongoDB je piata najpopulárnejšia databáza a stále je tretina tak často používaná ako Oracle a MySQL!“ Vzhľadom na to, ako sa zdráhajú podniky vypínať databázy preverené bojmi, je dokonca aj táto úroveň prijatia pôsobivá. Databázy sú „najlepším“ produktom v organizácii a je najmenej pravdepodobné, že sa zmenia. Takže pre MongoDB prechádzať minulými databázami, ktoré boli široko adoptované (DB2, Ingres, atď.) Po celé desaťročia, a naďalej rásť v popularite v porovnaní so stálicami RDBMS ako Oracle ...? To je veľká vec.

Ešte silnejším indikátorom vplyvu MongoDB je však to, ako veľmi sa títo súčasní operátori naštartovali.

„Každý ďalší tradičný produkt, Postgres, MySQL, dokonca aj Oracle a SQL Server, prijali veľa nápadov MongoDB a snažia sa ich bastardizovať svojim spôsobom,“ uviedol Horowitz. „Aj vývojári, ktorí hovoria:„ MongoDB by som nikdy nepoužil! Iba použijem Postgres, pretože má JSONB a všetky tieto ďalšie veci. ““ Ako zdôraznil Horowitz, také veci ako JSONB existujú práve preto, že MongoDB tlačil priemysel na ich prijatie. Pre tých, ktorí „nenávidia MongoDB, ale prchajú nad JSONB“, Horowitz jednoducho hovorí: „Nemáte zač.“

Ale opäť arogancia. Alebo chutzpah. Alebo čo to bolo, čo prinútilo Horowitza a Merrimana tlačiť sa napriek všetkému vpred -všetko - v priemysle zriadenom na zabezpečenie ich zlyhania. Odkiaľ sa to vzalo?

„Databázy boli nasaté a niekto to musel opraviť“

Horowitz a Merriman spolupracovali v niekoľkých spoločnostiach vrátane spoločností DoubleClick a Shopwiki a ako vysvetlil Horowitz, databáza neustále prekážala. Alebo, aby som bol otvorenejší: „Používanie databáz bolo naštvané a niekto to potreboval opraviť, a ak to nikto iný neurobil, mohol by som to urobiť ja a Dwight. Vedeli sme, že máme dobrú strelu. Ani zďaleka to nebolo slam dunk, ale ... ak to niekto urobil, mali sme asi najväčšiu šancu z kohokoľvek vonku. “

V tomto okamihu je zrejmé, že je potrebné vytvoriť lepší RDBMS; aby sme vyplnili medzery, ktoré zanechali MySQL a Postgres, obidve sa stali čoraz obľúbenejšími. Ale toto urobil Horowitz nie chcieť urobiť. Chcel vybudovať úplne iný prístup k údajom, ktorý by mapoval to, ako programovali vývojári, nie potrebu toho, aby nejaký systém ERP vyžadoval úhľadné a upratané riadky a stĺpce.

Prístup k údajovým schémam riadok a stĺpec jednoducho nepripomína údaje vyjadrené v kóde aplikácie, ako vysvetlil Horowitz. V moderných programovacích jazykoch je vec, ktorú chcete uložiť do databázy (napr. Objednávka, zákazník atď.), Reprezentovaná ako kompletný objekt so všetkými súvisiacimi atribútmi obsiahnutými v jednej dátovej štruktúre. Tento nesúlad medzi vývojármi a správcami databáz vyžaduje preklad tejto bohatej aplikačnej štruktúry, aby zodpovedala prísnym pravidlám RDBMS. Týmto spôsobom aj tie najjednoduchšie aplikácie preberajú Frankensteinove kvality v RDBMS a vyžadujú desiatky (alebo dokonca tisíce) tabuliek na zachytenie kedysi jednoduchého dátového modelovania vývojára.

MongoDB, uviedol Horowitz, ponúkol vývojárom záchranné lano.

„Ak vezmete ľudí, ktorí nikdy predtým nepoužívali databázu, a naučíte ich MongoDB a potom ich naučíte relačnú databázu, MongoDB je pre nich oveľa jednoduchšie a intuitívnejšie.“ Áno, ak pracujete s účtovníckym systémom alebo systémom hlavnej knihy, RDBMS bol navrhnutý pre takéto aplikácie a funguje dobre. "Ale na všetko ostatné relačný model nefunguje," vyhlásil Horowitz.

Ak používate programovací jazyk a databázu, je čudné, že s MongoDB sa API [MongoDB] v niektorých ohľadoch cíti oveľa viac ako váš programovací jazyk ako databáza. Preto je celkom jednoduché to zdvihnúť. Pre mnoho základných pojmov, ako je indexovanie a dotazy, je to iný dopytovací jazyk a indexovanie je mierne odlišné, ale v zásade je indexovanie rovnaké. Základy MongoDB sa dajú ľahko zdvihnúť.

Horowitz uviedol, že za posledných 13 rokov veľa z toho, čo jeho spoločnosť musela urobiť, prevychovať tých, ktorí vyrástli na RDBMS a potrebujú sa naučiť novým spôsobom. Ale pre tých, ktorí v databázach začínajú, „MongoDB je oveľa intuitívnejší ako iné databázy. Oveľa lepšie to zapadá do toho, ako si ľudia myslia. “ Ako taký, Horowitz pokračoval: „Ak začínate od nuly, mali by ste podľa môjho skresleného názoru takmer vždy používať MongoDB.“

„Cloud bol vždy víziou“

Na otázku, či môže určiť, kedy vie, že stávka na MongoDB sa vyplatí, Horowitz na chvíľu o tom premýšľal a potom povedal: „Apríl 2010.“ To bolo, keď MongoDB usporiadal v San Franciscu akciu, ktorá sa vypredala za menej ako 48 hodín. "Ľudia milovali základné koncepty a všetko sa stalo oveľa jednoduchším." Až do tohto okamihu Horowitz jasne povedal, že boli chvíle, keď sa obával: „Bude táto vec niekedy fungovať?“ V apríli 2010 však vedel, že odpoveď bola jednoznačná „áno“.

Čo však neznamená, že narazil do tempomatu. "Už vtedy sme vedeli, že bude trvať 10 rokov, kým pridáme funkcie, ktoré sme chceli, a ktoré budú podniky potrebovať."

Jednou z týchto funkcií bol cloud.

Vzhľadom na to, že MongoDB začal ako potenciálny PaaS, asi neprekvapuje, že Horowitz naznačuje, že mrak bol v pláne od prvého dňa. „Krátko po tom, čo sme začali budovať MongoDB, sme začali budovať aj monitorovaciu službu MongoDB, ktorá poskytla podporu spoločnosti Atlas,“ databáza ako služba MongoDB, ktorá teraz predstavuje 42 percent výnosov spoločnosti. "Naším cieľom bolo vždy mať úplnú databázovú službu."

Veľká časť z toho súvisí s víziou spoločnosti uľahčiť vývojárom život. „Ako vývojári sme vedeli, že nikto by nechcel spravovať databázu sám, ak by mohol dostať niekoho, kto by to urobil za nich rovnako bezpečné a spoľahlivé.“ Na úplnú realizáciu tejto vízie by však bolo treba počkať, pretože ani dobre financovaný startup ako MongoDB nemohol urobiť všetko naraz. „Museli sme investovať všetok svoj čas a energiu do správneho fungovania databázy, inak by sa to nestalo. Preto sme začali hrať s monitorovaním ako službou, len aby sme sa ubezpečili, že rozumieme tomu, ako prevádzkovať cloudovú službu vo veľkom rozsahu. “ Okrem toho sa spoločnosť zaoberala aj inými vecami, ako sú systémy manipulácie s kreditnými kartami a systémy podpory, „aby sme si ich vyskúšali tak, aby keď sme boli pripravení skutočne spustiť Atlas, nezačalo to od nuly.“

Horowitz nakoniec verí, že „percento ľudí prevádzkujúcich MongoDB pomocou Atlasu bude takmer 100 percent“, aj keď je nepravdepodobné, že to bude niekedy 100 percent. Keďže „veľká väčšina“ aplikácií sa sťahuje do cloudu, „nie je dôvod nepoužívať Atlas,“ tvrdí Horowitz.

„Neexistuje spôsob, ako by ste mohli namietať, že sme neuspeli“

Na otázku, odkiaľ môže prísť ďalší MongoDB, Horowitz neidentifikoval ani tak konkurenta ako vodiaci princíp, ten istý, ktorý ho a Merrimana podnietil k vytvoreniu MongoDB: „Musíte urobiť niečo zásadne lepšie ako niečo iné. Keby ste vyšli s niečím, čo robilo všetko, čo MongoDB alebo Postgres, ale bolo to 10-krát lacnejšie alebo 10-krát rýchlejšie, bolo by to dosť presvedčivé. “ To znamená, že dodal: „Nemyslím si, že práve teraz môžete poraziť MongoDB v dátovom modeli.“

Ale čo by mohlo byť zaujímavé, predpokladal Horowitz, boli by to zásadne odlišné databázové architektúry, ktoré môžu využívať výhody verejnej cloudovej infraštruktúry na to, aby veci boli oveľa lacnejšie. "Mnoho ľudí na tom pracuje, ale nikto to skutočne neurobil." Nie je tam nič, čo by bolo postavené zásadne inak. “

Čo nás vracia tam, kde sme začali. „Ak premýšľate o tom, čo sme sa rozhodli urobiť, a to zásadným spôsobom uľahčiť a zásadne vylepšiť databázy pre vývojárov, nedá sa tvrdiť, že sme neuspeli,“ vyhlásil Horowitz. "MongoDB je oveľa lepší ako čokoľvek iné, čo existovalo, keď sme začínali." Niektorí by možno nesúhlasili, ale málokto by nesúhlasil s jeho ďalším vyjadrením: „Svet databázy sa navždy zmenil kvôli tomu, čo sme urobili. To je úžasné. “

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