Programmēšana

Kāpēc MongoDB ir izstrādātājiem “principiāli labāks”

Lai izgudrotu jauna veida datu bāzi un pieņemtu, ka tā pārņems pasauli, ir vajadzīgs zināms daudzums čutzas - labi, tās kalni. Vai varbūt ne tieši pieņem, bet, kā intervijā izteicās MongoDB līdzdibinātājs Eliots Horovics: "Ja kāds to darīs, mums bija gandrīz vislabākās iespējas kādam no turienes."

Nevis Oracle ar gadu desmitiem ilgu dominēšanu relāciju datu bāzēs (RDBMS). Nevis IBM, ar mazāku datu bāzu biznesu, bet gan talantīgu inženieru bariem. Nevis Microsoft, kas ar SQL Server bija iedvesis jaunu dzīvību RDBMS pasaulē. Pat atklātais avots neuzsāk MySQL un arvien populārāko PostgreSQL.

Nē, Horowitz un Dwight Merriman, divi ņujorkieši, vēlējās ieviest jaunu griezienu platformā kā pakalpojums (PaaS), bet kaut kā tā vietā izveidoja datu bāzi. "Datu bāzes pasaule ir uz visiem laikiem mainījusies mūsu izdarīto iemeslu dēļ," sacīja Horovics, kas varētu izklausīties augstprātīgi, izņemot to, ka tā ir patiesība. Kāpēc taisnība, tomēr ir vērts ienirt dziļi, lai to saprastu.

Pēc 13 gadiem, kad viņš strādāja ar uzņēmumu un produktu, Horovics nesen aizgāja no MongoDB, nodrošinot piemērotu laiku viņa paveiktā darba novērtēšanai.

‘Mēs virzījām nozari’

Bet vispirms dublēsim brīdi. Ir viegli apskatīt tādas lietas kā DB-Engines datu bāzes popularitātes klasifikāciju un nonākt pie nepareiza secinājuma. "MongoDB ir piektā populārākā datu bāze, un tā joprojām ir trešdaļa tikpat plaši izmantota kā Oracle un MySQL!" Ņemot vērā to, cik negribīgi uzņēmumi atsakās no kaujas pārbaudītām datubāzēm, pat šāds pieņemšanas līmenis ir iespaidīgs. Datu bāzes ir “lipīgākais” produkts organizācijā, kas vismazāk mainīsies. Tātad, lai MongoDB varētu pārvietoties garām datubāzēm, kuras gadu desmitiem ilgi bija plaši izmantotas (DB2, Ingres utt.), Un turpinātu pieaugt popularitāte salīdzinājumā ar RDBMS, piemēram, Oracle ... Tas ir liels darījums.

Tomēr vēl spēcīgāks MongoDB ietekmes rādītājs ir tas, cik daudz šie vēsturiskie operatori ir apēduši augšup.

"Katrs cits tradicionālais produkts, Postgres, MySQL, pat Oracle un SQL Server, ir pārņēmis daudz MongoDB ideju un mēģina tās savā veidā izdzīt," sacīja Horovics. “Pat izstrādātāji, kuri saka:“ Es nekad neizmantotu MongoDB! Es vienkārši izmantoju Postgres, jo tajā ir JSONB un visas šīs citas lietas. ”” Kā uzsvēra Horovics, tādas lietas kā JSONB pastāv tieši tāpēc, ka MongoDB virzīja nozari uz to pieņemšanu. Tiem, kas “ienīst MongoDB, bet vēl aizrauj par JSONB”, Horovics vienkārši saka: “Jūs esat laipni gaidīti.”

Bet, atkal, hubris. Vai čutzpa. Vai kāds tas bija, kas lika Horovicam un Merrimanam virzīties uz priekšu, neskatoties uz visu -viss - nozarē, kas izveidota, lai nodrošinātu viņu neveiksmes. No kurienes tas radās?

‘Datu bāzes ir iesūktas, un kādam vajadzēja to labot’

Horovics un Merimens bija strādājuši kopā dažos uzņēmumos, ieskaitot DoubleClick un Shopwiki, un, kā paskaidroja Horovics, datu bāze turpināja traucēt. Vai arī, lai būtu trāpīgāk: “Izmantojot datubāzes, tika iesūcas, un kādam vajadzēja to novērst, un, ja neviens cits to nedarīs, tas varētu būt arī es un Dvaits. Mēs zinājām, ka mums ir labs metiens. Tas bija tālu no slam dunk, bet ... ja kāds to darīs, mums bija gandrīz vislabākās iespējas kādam no turienes. ”

Acīmredzama lieta, kas šajā laikā būtu jādara, būtu labāka RDBMS izveide; lai aizpildītu MySQL un Postgres atstātās nepilnības, kuru abu popularitāte bija pieaugusi. Bet to izdarīja Horovics gribu darīt. Viņš vēlējās izveidot pilnīgi atšķirīgu pieeju datiem, tādu, kas atspoguļo izstrādātāju programmēšanu, nevis kādas ERP sistēmas nepieciešamību pēc kārtīgām un kārtīgām rindām un kolonnām.

Rindu un kolonnu pieeja datu shēmām vienkārši neatgādina datus, kas attēloti lietojumprogrammas kodā, kā paskaidroja Horovics. Mūsdienu programmēšanas valodās lieta, kuru vēlaties saglabāt datu bāzē (piemēram, pasūtījums, klients utt.), Tiek attēlota kā pilnīgs objekts, un visi saistītie atribūti ir ietverti vienā datu struktūrā. Šī neatbilstība starp izstrādātājiem un datu bāzes administratoriem prasa šīs bagātīgās lietojumprogrammas struktūras tulkošanu, lai tā atbilstu RDBMS stingrajiem noteikumiem. Tādā veidā pat visvienkāršākās lietojumprogrammas RDBMS iegūst Frankenšteina īpašības, pieprasot desmitiem (vai pat tūkstošiem) tabulu, lai attēlotu izstrādātāja kādreiz vienkāršo datu modelēšanu.

MongoDB, sacīja Horovics, piedāvāja izstrādātājiem glābšanas riņķi.

"Ja jūs ņemat cilvēkus, kuri nekad iepriekš nav izmantojuši datu bāzi, jūs viņiem mācāt MongoDB un pēc tam iemācāt viņiem relāciju datu bāzi, MongoDB viņiem ir tik daudz vieglāk un intuitīvāk." Jā, ja jūs strādājat ar grāmatvedības vai virsgrāmatu sistēmu, RDBMS tika izstrādāts šādām lietojumprogrammām, un tās darbojas labi. "Bet visam citam relāciju modelis nedarbojas," paziņoja Horovics.

Ja izmantojat programmēšanas valodu un datu bāzi, dīvaini ir tas, ka ar MongoDB dažos veidos [MongoDB] API jūtas daudz vairāk kā jūsu programmēšanas valoda, nevis datu bāze. Tāpēc ir diezgan vienkārši paņemt. Jā, daudzām pamatjēdzieniem, piemēram, indeksēšanai un vaicājumiem, tā ir atšķirīga vaicājumu valoda, un indeksēšana ir nedaudz atšķirīga, taču būtībā indeksēšana ir tāda pati. MongoDB pamatus ir ļoti viegli uzņemt.

Pēdējo 13 gadu laikā liela daļa no viņa uzņēmuma paveiktā, sacīja Horovics, ir pāraudzināt tos, kuri uzauguši RDBMS un kuriem jāapgūst jauns veids. Bet tiem, kas jauni datu bāzēs, “MongoDB ir tik daudz intuitīvāks nekā citas datubāzes. Tas daudz labāk iekļaujas cilvēku domāšanā. ” Kā tāds, Horovics turpināja: "Ja jūs sākat no nulles, manā neobjektīvajā viedoklī gandrīz vienmēr jālieto MongoDB."

‘Mākonis vienmēr bija redzējums’

Jautāts, vai viņš varētu precīzi noteikt, kad viņš zināja, ka MongoDB likme atmaksāsies, Horovics brīdi par to domāja, pēc tam sacīja: “2010. gada aprīlis”. Tas bija tad, kad MongoDB Sanfrancisko rīkoja pasākumu, kas tika izpārdots mazāk nekā 48 stundu laikā. "Cilvēki mīlēja pamatjēdzienus, un viss kļuva daudz vieglāk." Līdz tam Horovics skaidri norādīja, ka bija brīži, kad viņš uztraucās: "Vai šī lieta kādreiz darbosies?" Bet 2010. gada aprīlī viņš zināja, ka atbilde ir pārliecinoša “Jā”.

Tas nenozīmē, ka viņš sasniedza kruīza kontroli. "Jau tad mēs zinājām, ka vajadzēs 10 gadus, lai pievienotu vēlamās funkcijas un kuras uzņēmumiem vajadzēs."

Viena no šīm funkcijām bija mākonis.

Ņemot vērā MongoDB sākumu kā iespējamo PaaS, iespējams, nav pārsteidzoši, ka Horovics norāda, ka mākonis jau no pirmās dienas bija ceļvedī. "Diezgan neilgi pēc tam, kad sākām būvēt MongoDB, mēs sākām būvēt arī MongoDB uzraudzības dienestu, kas nodrošināja pamatu Atlasam," MongoDB datu bāze kā pakalpojums, kas tagad veido 42 procentus no uzņēmuma ienākumiem. "Mūsu mērķis vienmēr bija nodrošināt pilnu datu bāzes servisu."

Liela daļa no tā ir saistīta ar uzņēmuma vīziju, lai atvieglotu izstrādātāju dzīvi. "Kā izstrādātāji mēs zinājām, ka neviens nevēlas pats pārvaldīt datu bāzi, ja var panākt, lai kāds to izdara viņu vietā, kas ir tikpat droša un uzticama." Pilnīga šīs vīzijas realizācija tomēr būtu jāgaida, jo pat labi finansēts jaunuzņēmums, piemēram, MongoDB, nevarēja visu izdarīt vienlaikus. "Mums bija jāiegulda viss laiks un enerģija datu bāzes labošanai, citādi tas nenotiktu. Tāpēc mēs sākām spēlēt ar uzraudzību kā pakalpojumu tikai tāpēc, lai pārliecinātos, ka saprotam, kā mākoņpakalpojumu vadīt mērogā. ” Turklāt uzņēmums aplauzās ar tādām lietām kā kredītkaršu apstrāde un atbalsta sistēmas, lai "iegūtu praksi to darīt, lai tad, kad mēs bijām gatavi reāli palaist Atlas, tas nesākās no nulles".

Galu galā Horovics uzskata, ka “to cilvēku procentuālā daļa, kuri vada MongoDB, izmantojot Atlas, būs gandrīz 100 procenti”, lai gan maz ticams, ka tas kādreiz būs 100 procenti. Tā kā “lielākais vairums” lietojumprogrammu pāriet uz mākoņu, “Nav iemesla neizmantot Atlas,” apgalvo Horovics.

"Nekādā gadījumā nevarat apgalvot, ka mums neizdevās"

Jautāts, no kurienes varētu nākt nākamais MongoDB, Horovics ne tik daudz identificēja konkurentu kā pamatprincipu, tas pats, kas viņu un Merimanu pamudināja uzbūvēt MongoDB: “Jums ir jādara kaut kas fundamentāli labāks par kaut ko citu. Ja jūs iznāktu ar kaut ko tādu, kas darīja visu, ko darīja MongoDB vai Postgres, bet būtu 10 reizes lētāks vai 10 reizes ātrāks, tas būtu diezgan pārliecinoši. ” Tas nozīmē, ka viņš piebilda: "Es neiedomājos, kā jūs tagad varat pārspēt MongoDB datu modelī."

Bet tas, kas varētu būt interesants, Horovics izteicās, būtu fundamentāli atšķirīgas datu bāzes arhitektūras, kas var izmantot publiskās mākoņu infrastruktūras priekšrocības, lai padarītu lietas daudz lētākas. "Daudzi cilvēki pie tā strādā, bet neviens to īsti nav izdarījis. Tur nekas nav veidots principiāli atšķirīgi. ”

Kas mūs atgriež tur, kur sākām. "Ja jūs domājat par to, ko mēs apņēmāmies darīt, kas bija padarīt datu bāzes fundamentāli vieglākas un principiāli labākas izstrādātājiem, jūs nekādā gadījumā nevarat apgalvot, ka mums neizdevās," paziņoja Horovics. "MongoDB ir ievērojami pārāks par visu citu, kas pastāvēja, kad mēs sākām." Daži varētu nepiekrist, bet daži nepiekristu viņa nākamajam apgalvojumam: “Datu bāzu pasaule ir uz visiem laikiem mainījusies mūsu izdarīto iemeslu dēļ. Tas ir diezgan lieliski. ”

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