Programavimas

Kodėl „MongoDB“ yra „iš esmės geresnė“ kūrėjams

Norint sugalvoti naujos rūšies duomenų bazę ir manyti, kad ji užvaldys pasaulį, reikia tam tikro kiekio chutzpah - gerai, jo kalnai. O gal ir nemanau, tiksliai, bet, kaip interviu pasakė „MongoDB“ įkūrėjas Eliotas Horowitzas: „Jei kas nors ketino tai padaryti, turėjome beveik geriausias galimybes kam nors iš ten“.

Ne „Oracle“, kurio dešimtmečiai vyravo reliacinėse duomenų bazėse (RDBMS). Ne IBM, o duomenų bazių verslas mažėja, bet talentingų inžinierių būriai. Ne „Microsoft“, kuri su „SQL Server“ įkvėpė naujos gyvybės RDBMS pasauliui. Net atviras šaltinis nepaleidžia „MySQL“ ir vis labiau populiarėjančio „PostgreSQL“.

Ne, Horowitzas ir Dwightas Merrimanas, du niujorkiečiai, norėjo įdiegti naują platformą kaip paslaugą (PaaS), bet kažkaip sukūrė duomenų bazę. "Duomenų bazių pasaulis visam laikui pasikeitė dėl to, ką mes padarėme", - sakė Horowitzas, kuris gali skambėti įžūliai, išskyrus tai, kad tai tiesa. Kodėl tiesa, tačiau verta nardyti giliai, kad suprastum.

Horowitzas neseniai išėjo iš „MongoDB“ po 13 metų dirbdamas su įmone ir produktu, suteikdamas tinkamą laiką įvertinti jo atliktą darbą.

„Mes pastūmėjome pramonę“

Bet pirmiausia palaikykime akimirką. Lengva pažvelgti į tokius dalykus kaip „DB-Engines“ duomenų bazių populiarumo reitingai ir padaryti klaidingą išvadą. „MongoDB yra penkta pagal populiarumą duomenų bazė ir vis dar trečdalis plačiausiai naudojama kaip„ Oracle “ir„ MySQL “!“ Atsižvelgiant į tai, kaip nenoriai įmonės atsisako mūšyje patikrintų duomenų bazių, netgi toks priėmimo lygis yra įspūdingas. Duomenų bazės yra „lipniausias“ produktas organizacijoje, kuris mažiausiai keičiasi. Taigi, kad „MongoDB“ galėtų perkelti duomenų bazes, kurios per dešimtmečius buvo plačiai pritaikytos (DB2, Ingres ir kt.), Ir toliau populiarėtų, palyginti su RDBMS, pavyzdžiui, „Oracle“ ... Tai didelis dalykas.

Tačiau dar galingesnis „MongoDB“ įtakos rodiklis yra tai, kiek šie dabartiniai operatoriai apleido pradinukus.

„Kiekvienas kitas tradicinis produktas,„ Postgres “,„ MySQL “, net„ Oracle “ir„ SQL Server “, perėmė daug„ MongoDB “idėjų ir bando jas savaip išniekinti“, - sakė Horowitzas. „Net kūrėjai, sakantys:„ Aš niekada nenaudočiau „MongoDB“! Aš tiesiog naudosiu „Postgres“, nes jame yra JSONB ir visi šie kiti dalykai. ““ Kaip pabrėžė Horowitzas, tokie dalykai kaip JSONB egzistuoja būtent todėl, kad „MongoDB“ pastūmėjo pramonę link jų priimti. Tiems, kurie „nekenčia„ MongoDB “, bet vis tiek verčiasi dėl JSONB“, Horowitzas tiesiog sako: „Jūs esate laukiami“.

Bet, vėlgi, hubrisas. Arba chutzpah. Arba kas tai paskatino Horowitzą ir Merrimaną žengti pirmyn, nepaisant visko -viskas - pramonėje, įsteigtoje siekiant užtikrinti jų nesėkmę. Iš kur tai atsirado?

„Duomenų bazės išsiurbtos ir kažkas turėjo ją išspręsti“

Horowitzas ir Merrimanas dirbo kartu keliose įmonėse, įskaitant „DoubleClick“ ir „Shopwiki“, ir, kaip paaiškino Horowitzas, duomenų bazė vis kliudė. Arba tiesiau pasakius: „Duomenų bazių naudojimas buvo sugadintas, ir kažkas turėjo tai išspręsti. Jei niekas kitas to nedarys, tai taip pat gali būti aš ir Dwightas. Žinojome, kad turime gerą kadrą. Tai buvo toli gražu ne „slam dunk“, bet ... jei kas nors ketino tai padaryti, mes turėjome beveik visas šansus. “

Akivaizdus dalykas, kurį reikia padaryti, būtų sukurti geresnę RDBMS; užpildyti spragas, kurias paliko „MySQL“ ir „Postgres“, kurios abi išaugo. Bet tai padarė Horowitzas ne nori daryti. Jis norėjo sukurti visiškai kitokį požiūrį į duomenis, kuris atitiktų kūrėjų programavimą, o ne tam tikros ERP sistemos poreikį tvarkingoms eilutėms ir stulpeliams.

Eilučių ir stulpelių požiūris į duomenų schemas tiesiog neprimena duomenų, nurodytų programos kode, kaip paaiškino Horowitzas. Šiuolaikinėmis programavimo kalbomis dalykas, kurį norite išsaugoti duomenų bazėje (pvz., Užsakymas, klientas ir kt.), Yra visas objektas, o visi susiję atributai yra vienoje duomenų struktūroje. Kad kūrėjai ir duomenų bazių administratoriai neatitiktų, reikia išversti tą turtingą programų struktūrą, kad ji atitiktų griežtas RDBMS taisykles. Tokiu būdu net paprasčiausios programos RDBMS įgyja Frankenšteino savybes, reikalaujant dešimčių (ar net tūkstančių) lentelių, kad būtų galima užfiksuoti kadaise paprastą kūrėjo duomenų modeliavimą.

Pasak „Horowitz“, „MongoDB“ kūrėjams pasiūlė gelbėjimo ratą.

„Jei pasiimsite žmones, kurie dar niekada nenaudojo duomenų bazės, mokysite juos„ MongoDB “ir mokysite santykių duomenų bazę,„ MongoDB “jiems yra daug lengviau ir intuityviau.“ Taip, jei dirbate su apskaitos ar didžiosios knygos sistema, RDBMS buvo sukurtas tokioms programoms ir jie veikia gerai. "Bet visa kita, santykinis modelis neveikia", - pareiškė Horowitzas.

Jei naudojate programavimo kalbą ir duomenų bazę, keista yra tai, kad naudojant „MongoDB“ tam tikrais būdais [MongoDB] API jaučiasi daug labiau panaši į jūsų programavimo kalbą nei į duomenų bazę. Todėl pasiimti yra gana paprasta. Taip, daugeliui pagrindinių sąvokų, tokių kaip indeksavimas ir užklausos, tai kita užklausų kalba ir indeksavimas yra šiek tiek kitoks, tačiau iš esmės indeksavimas yra tas pats. „MongoDB“ pagrindus pasiimti yra labai lengva.

Per pastaruosius 13 metų didžioji dalis to, ką jo įmonė turėjo padaryti, sakė Horowitzas, yra perauklėti tuos, kurie užaugo RDBMS ir kuriems reikia išmokti naujo būdo. Tačiau naujiems duomenų bazėse „MongoDB yra tik daug intuityvesnis nei kitos duomenų bazės. Tai daug geriau tinka žmonių mąstymui “. Kaip toks, Horowitzas tęsė: „Jei pradedate nuo nulio, mano šališku požiūriu beveik visada turėtumėte naudoti„ MongoDB “.

„Debesis visada buvo vizija“

Paklaustas, ar galėtų tiksliai žinoti, kada žinojo, kad MongoDB statymas pasiteisins, Horowitzas akimirką apie tai pagalvojo, tada pasakė: „2010 m. Balandžio mėn.“ Tai buvo tada, kai „MongoDB“ surengė renginį San Franciske, kuris buvo išparduotas mažiau nei per 48 valandas. "Žmonės mėgo pagrindines sąvokas, ir viskas tapo daug lengviau." Iki to laiko Horowitzas aiškiai pasakė, kad buvo akimirkų, kai jis nerimavo: „Ar šis dalykas kada nors veiks?“ Tačiau 2010 m. Balandžio mėn. Jis žinojo, kad atsakymas yra griežtas „taip“.

Tai nereiškia, kad jis pasiekė kruizo kontrolę. „Jau tada žinojome, kad prireiks 10 metų, kol pridėsime norimas funkcijas ir kurių įmonėms reikės.“

Viena iš tų savybių buvo debesys.

Atsižvelgiant į MongoDB startą kaip būsimą „PaaS“, galbūt nenuostabu, kad Horowitzas teigia, kad debesis buvo gairėse nuo pirmos dienos. „Netrukus po to, kai pradėjome kurti„ MongoDB “, taip pat pradėjome kurti„ MongoDB “stebėjimo tarnybą, kuri suteikė pagrindą„ Atlas “, -„ MongoDB “duomenų bazė kaip paslauga, kuri dabar sudaro 42 procentus bendrovės pajamų. „Mūsų tikslas visada buvo turėti visą duomenų bazės paslaugą.“

Didelė dalis to siejasi su įmonės vizija, palengvinančia kūrėjų gyvenimą. „Kaip kūrėjai žinojome, kad niekas nenorės pats tvarkyti duomenų bazės, jei galėtų ką nors padaryti taip pat saugiai ir patikimai.“ Visiškai įgyvendinant šią viziją teks palaukti, nes net ir gerai finansuojamas startuolis, kaip antai „MongoDB“, negalėjo padaryti visko iš karto. „Turėjome investuoti visą savo laiką ir energiją, kad duomenų bazė būtų teisinga, kitaip tai neįvyks. Štai kodėl mes pradėjome žaisti su stebėjimu kaip paslauga, kad įsitikintume, jog suprantame, kaip masto valdyti debesų paslaugą “. Be to, įmonė apipjaustė tokius dalykus, kaip kreditinių kortelių tvarkymas ir palaikymo sistemos, kad „įgytų praktikos juos daryti, kad, kai mes buvome pasirengę paleisti„ Atlas “iš tikrųjų, tai neprasidėjo nuo nulio“.

Galiausiai Horowitzas mano, kad „žmonių, valdančių„ MongoDB “, naudojant„ Atlas “, procentas bus beveik 100 proc., Nors vargu ar kada nors bus 100 proc. Kai „didžioji dauguma“ programų pereina į debesį, „Nėra jokios priežasties nenaudoti„ Atlas “, - tvirtina Horowitzas.

"Niekaip negalite teigti, kad mums nepasisekė"

Paklaustas, iš kur gali ateiti kitas „MongoDB“, Horowitzas ne tiek nustatė konkurentą, kiek pagrindinį principą, tas pats, kuris paskatino jį ir Merrimaną kurti „MongoDB“: „Jūs turite padaryti kažką iš esmės geriau nei kažkas kitas. Jei pasirodytum ką nors padariusio viską, ką padarė „MongoDB“ ar „Postgres“, bet būtų 10 kartų pigiau arba 10 kartų greičiau, būtų gana įtikinamai “. Tai sakydamas, jis pridūrė: "Aš neįsivaizduoju, kaip jūs galite įveikti" MongoDB "duomenų modelyje dabar."

Bet kas gali būti įdomu, teigė Horowitzas, iš esmės skirtingos duomenų bazių architektūros, kurios gali pasinaudoti viešosios debesų infrastruktūros privalumais, kad viskas būtų gerokai pigiau. „Daugybė žmonių šiuo klausimu dirba, bet niekas to tikrai nepadarė. Nėra nieko, kas būtų sukurta iš esmės kitaip “.

Kas mus grąžina ten, kur pradėjome. "Jei pagalvotumėte, ką mes ketinome padaryti, tai buvo padaryti duomenų bazes iš esmės lengvesnes ir iš esmės geresnes kūrėjams, niekaip negalėtumėte teigti, kad mums nepasisekė", - pareiškė Horowitzas. „MongoDB yra žymiai pranašesnis už viską, kas egzistavo, kai pradėjome“. Kai kurie gali nesutikti, bet nedaugelis nesutiktų su kitu jo teiginiu: „Duomenų bazių pasaulis amžinai pasikeitė dėl to, ką mes padarėme. Tai gana nuostabu. “

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