War MongoDB allgemeng déi richteg Wiel?

Ech hunn dat viru kuerzem erausfonnt Red Hat läscht MongoDB Support vum Satellit (si soen wéinst Lizenz Ännerungen). Dëst huet mech ze denken, well an de leschte Joren hunn ech eng Tonn vun Artikelen gesinn iwwer wéi schrecklech MongoDB ass a wéi keen et jee soll benotzen. Awer während dëser Zäit ass MongoDB e vill méi reife Produkt ginn. Wat ass geschitt? Ass all Haass wierklech wéinst Feeler am fréie Marketing vun engem neien DBMS? Oder benotzen d'Leit just MongoDB op de falsche Plazen?

Wann Dir Iech fillt wéi ech MongoDB verteidegen, liest w.e.g Verzichterklärung um Enn vum Artikel.

Neien Trend

Ech schaffen zënter méi Joeren an der Softwareindustrie wéi ech soen kann, awer ech sinn nach ëmmer nëmmen e klengen Deel vun den Trends ausgesat, déi eis Industrie getraff hunn. Ech hunn den Opstig vu 4GL, AOP, Agile, SOA, Web 2.0, AJAX, Blockchain gesinn ... d'Lëscht ass endlos. All Joer erschéngen nei Trends. E puer verschwannen séier, anerer veränneren d'Art a Weis wéi Software entwéckelt gëtt.

All neien Trend schaaft eng allgemeng Opreegung: d'Leit sprangen entweder u Bord, oder gesinn de Kaméidi vun aneren generéiert a verfollegen d'Leit. Dëse Prozess gëtt vum Gartner kodifizéiert an Hype Zyklus. Obwuel kontrovers ass, beschreift dës Timeline ongeféier wat mat Technologien geschitt ier se schliisslech nëtzlech ginn.

Awer vun Zäit zu Zäit erschéngt eng nei Innovatioun (oder huet eng zweet kommen, wéi an dësem Fall) gedriwwen duerch nëmmen eng spezifesch Implementatioun. Am Fall vun NoSQL gouf den Hype staark duerch d'Entstoe a meteoresch Opstig vu MongoDB gedriwwen. MongoDB huet dësen Trend net ugefaang: Tatsächlech hunn grouss Internetfirmen ugefaang Probleemer mat der Veraarbechtung vu grousse Quantitéiten un Daten ze hunn, wat zum Retour vun net-relational Datenbanken gefouert huet. D'Gesamtbewegung huet ugefaang mat Projete wéi Google's Bigtable a Facebook's Cassandra, awer et war MongoDB déi déi bekanntst an zougänglech NoSQL Datebank Implementatioun gouf, déi meescht Entwéckler Zougang zu haten.

Bemierkung: Dir mengt vläicht datt ech Dokumentdatenbanken mat spaltener Datenbanken, Schlëssel / Wäertgeschäfter oder eng vun de villen aneren Aarte vun Dategeschäfter duerchernee bréngen, déi ënner der allgemenger NoSQL Definitioun falen. An du hues Recht. Awer deemools huet de Chaos regéiert. Jiddereen ass obsesséiert mat NoSQL, et ass jiddereen ginn absolut néideg, obwuel vill net d'Ënnerscheeder an verschidden Technologien gesinn. Fir vill ass MongoDB ginn synonym NoSQL.

An d'Entwéckler hunn drop gesprongen. D'Iddi vun enger schemaloser Datebank déi magesch skaléiert fir all Problem ze léisen war zimlech verlockend. Ëm 2014 huet et geschéngt datt iwwerall, déi virun engem Joer eng relational Datebank wéi MySQL, Postgres oder SQL Server benotzt huet, ugefaang MongoDB Datenbanken z'installéieren. Wann Dir gefrot firwat, kënnt Dir eng Äntwert vum banalen "dëst ass d'Skala vum Web" op déi méi nodenklech "meng Donnéeën si ganz locker strukturéiert a passen gutt an eng Datebank ouni Schema."

Et ass wichteg ze erënneren datt MongoDB, an Dokumentdatenbanken am Allgemengen, eng Rei vu Probleemer mat traditionelle relationalen Datenbanken léisen:

  • Streng Schema: Mat enger relationaler Datebank, wann Dir dynamesch generéiert Donnéeën hutt, sidd Dir gezwongen entweder eng Rëtsch zoufälleg "diverse" Kolonnen vun Donnéeën ze kreéieren, Blobs vun Daten dran ze drécken oder d'Konfiguratioun ze benotzen EAV... all dëst huet bedeitend Nodeeler.
  • Schwieregkeeten Skaléieren: Wann et sou vill Donnéeën ass, datt se net op engem Server passen, huet MongoDB Mechanismen ugebueden fir et iwwer verschidde Maschinnen ze skaléieren.
  • Komplex Circuit Ännerungen: keng Migratiounen! An enger relationaler Datebank kann d'Datebankstruktur änneren e grousse Problem sinn (besonnesch wann et vill Daten gëtt). MongoDB konnt de Prozess immens vereinfachen. An et huet et sou einfach gemaach datt Dir de Circuit just aktualiséieren wéi Dir gitt a ganz séier weidergoe kënnt.
  • Opnam Leeschtung: MongoDB Leeschtung war gutt, besonnesch wann richteg konfiguréiert. Och MongoDB's Out-of-the-Box Konfiguratioun, fir déi et dacks kritiséiert gouf, huet e puer beandrockend Leeschtungszuelen gewisen.

All Risiken sinn op Iech

Déi potenziell Virdeeler vu MongoDB waren enorm, besonnesch fir verschidde Klassen vu Probleemer. Wann Dir déi uewe genannte Lëscht liest ouni de Kontext ze verstoen an ouni Erfahrung, kënnt Dir den Androck kréien datt MongoDB wierklech eng revolutionär DBMS ass. Deen eenzege Problem war datt d'Virdeeler déi hei uewen opgezielt sinn mat enger Zuel vu Virschléi koumen, e puer vun deenen hei ënnen opgezielt sinn.

Fir fair ze sinn, kee bei 10gen/MongoDB Inc. wäert net soen, datt déi folgend net wouer ass, dat si just Kompromëss.

  • Verluer Transaktiounen: Transaktiounen sinn e Kär Fonktioun vu ville relational Datenbanken (net all, mä déi meescht). Transaktionell heescht datt Dir verschidde Operatiounen atomesch ausféiere kënnt a suerge kënnt datt d'Donnéeën konsequent bleiwen. Natierlech, mat enger NoSQL Datebank, Transaktiounsfäegkeet kann an engem eenzegen Dokument sinn, oder Dir kënnt zwee-Phase Verpflichtungen benotzen fir Transaktiounssemantik ze kréien. Awer Dir musst dës Funktionalitéit selwer ëmsetzen ... wat eng schwiereg an Zäitopwänneg Aufgab ka sinn. Dacks mierkt Dir net datt et e Problem ass bis Dir gesitt datt d'Donnéeën an der Datebank an ongülteg Staaten ophalen, well d'Atomizitéit vun den Operatiounen net garantéiert ka ginn. Notiz: Vill Leit hunn mir gesot datt MongoDB 4.0 d'lescht Joer Transaktiounen agefouert huet, awer mat e puer Aschränkungen. D'Ofhale vum Artikel bleift d'selwecht: evaluéiert wéi gutt d'Technologie Äre Besoinen entsprécht.
  • Verloscht vun der relationaler Integritéit (auslännesch Schlësselen): Wann Är Donnéeën Bezéiungen hunn, da musst Dir se an der Applikatioun applizéieren. Eng Datebank ze hunn déi dës Bezéiungen respektéiert wäert vill vun der Aarbecht vun der Applikatioun huelen an dofir Är Programméierer.
  • Mangel u Fäegkeet fir Datenstruktur z'applizéieren: Strikt Schemaen kënnen heiansdo e grousse Problem sinn, awer si sinn och e mächtege Mechanismus fir eng gutt Datestrukturéierung wann se verstänneg benotzt ginn. Dokumentdatenbanken wéi MongoDB bidden eng onheemlech Schema Flexibilitéit, awer dës Flexibilitéit läscht d'Verantwortung fir d'Daten propper ze halen. Wann Dir Iech net ëm si këmmert, schreift Dir um Enn vill Code an Ärer Applikatioun fir Daten ze berechnen déi net an der Form gespäichert sinn déi Dir erwaart. Wéi mir dacks bei eiser Firma Simple Thread soen ... d'Applikatioun gëtt iergendwann nei geschriwwe ginn, awer d'Donnéeë wäerte fir ëmmer liewen. Notiz: MongoDB ënnerstëtzt Schemakontrolle: et ass nëtzlech, awer bitt net déiselwecht Garantien wéi an enger relationaler Datebank. Als éischt, d'Addéieren oder d'Ännerung vun engem Schemacheck beaflosst net existent Daten an der Sammlung. Et ass un Iech fir sécherzestellen datt Dir d'Donnéeën no dem neie Schema aktualiséiert. Entscheed selwer ob dëst genuch ass fir Är Besoinen.
  • Native Query Sprooch / Verloscht vum Tool Ökosystem: D'Entstoe vu SQL war eng absolut Revolutioun an näischt huet sech zënterhier geännert. Et ass eng onheemlech mächteg Sprooch, awer och zimlech komplex. De Besoin fir Datebankufroen an enger neier Sprooch ze konstruéieren déi aus JSON Fragmenter besteet gëtt als e grousse Schrëtt no hannen ugesinn vu Leit déi Erfahrung mat SQL schaffen. Et gëtt e ganzen Universum vun Tools déi mat SQL Datenbanken interagéieren, vun IDEs bis Berichterinstrumenter. Beweegt op eng Datebank déi SQL net ënnerstëtzt heescht datt Dir déi meescht vun dësen Tools net benotze kënnt oder Dir musst d'Donnéeën an SQL iwwersetzen fir se ze benotzen, wat méi schwéier ka sinn wéi Dir denkt.

Vill Entwéckler, déi sech op MongoDB ëmgewandelt hunn, hunn d'Ofdreiwungen net wierklech verstanen, an hunn dacks mam Kapp an d'Installatioun als hiren primäre Dategeschäft gedaucht. Duerno war et dacks onheemlech schwéier zréck ze kommen.

Wat kéint anescht gemaach ginn?

Net jidderee sprang mam Kapp an huet de Buedem geschloen. Awer vill Projeten hunn MongoDB op Plazen installéiert, wou et einfach net gepasst huet - a si musse fir vill Joere mat deem liewen. Wann dës Organisatiounen e bëssen Zäit verbruecht hätten a methodesch duerch hir Technologiewahlen geduecht hunn, hätte vill verschidde Choixe gemaach.

Wéi déi richteg Technologie ze wielen? Et goufen e puer Versich e systematesche Kader fir Technologie Bewäertung ze schafen, wéi z "Kader fir d'Aféierung vun Technologien an Software Organisatiounen" и "Kader fir d'Bewäertung vun Software Technologien", awer et schéngt mir datt dëst onnéideg Komplexitéit ass.

Vill Technologien kënnen intelligent bewäert ginn andeems se just zwou grondleeënd Froen stellen. De Problem ass Leit ze fannen déi se verantwortlech äntweren kënnen, d'Zäit huelen fir d'Äntwerten ze fannen an ouni Viraussetzung.

Wann Dir kee Problem konfrontéiert, braucht Dir keen neit Tool. Punkt.

Fro 1: Wéi eng Problemer probéieren ech ze léisen?

Wann Dir kee Problem konfrontéiert, braucht Dir keen neit Tool. Punkt. Et ass net néideg fir eng Léisung ze sichen an dann e Problem ze erfannen. Ausser Dir hutt e Problem begéint deen déi nei Technologie wesentlech besser léist wéi Är existent Technologie, do ass näischt hei ze diskutéieren. Wann Dir drun denkt dës Technologie ze benotzen well Dir anerer gesinn hutt se benotzen, denkt un wéi eng Probleemer si konfrontéieren a frot ob Dir dës Problemer hutt. Et ass einfach eng Technologie ze akzeptéieren well anerer se benotzen, d'Erausfuerderung ass ze verstoen ob Dir déiselwecht Probleemer hutt.

Fro 2: Wat feelen ech?

Dëst ass definitiv eng méi schwéier Fro, well Dir musst gräifen an e gutt Verständnis vun der aler an der neier Technologie hunn. Heiansdo kann een en neien net wierklech verstoen, bis een eppes domat gebaut huet oder een huet mat där Erfahrung.

Wann Dir weder hutt, da mécht et Sënn fir de Minimum méiglech Investitioun ze denken fir de Wäert vun dësem Instrument ze bestëmmen. A wann Dir d'Investitioun maacht, wéi schwéier wäert et sinn d'Entscheedung ëmzegoen?

D'Leit ruinéieren ëmmer alles

Wéi Dir probéiert dës Froen esou onparteiesch wéi méiglech ze beäntweren, erënnert Iech un eng Saach: Dir musst géint déi mënschlech Natur kämpfen. Et ginn eng Rei kognitiv Biases déi musse iwwerwonne ginn fir d'Technologie effektiv ze bewäerten. Hei sinn nëmmen e puer:

  • Den Effekt vun der Majoritéit bäitrieden - jidderee weess iwwer hien, awer et ass nach ëmmer schwéier fir hien ze kämpfen. Gitt einfach sécher datt d'Technologie tatsächlech mat Äre aktuellen Bedierfnesser entsprécht.
  • Neiegkeet Effekt - Vill Entwéckler tendéieren d'Technologien ze ënnerschätzen, mat deenen se eng laang Zäit geschafft hunn, an iwwerschätzen d'Virdeeler vun der neier Technologie. Et sinn net nëmmen Programméierer, jiddereen ass ufälleg fir dës kognitiv Bias.
  • Effekt vu positiven Charakteristiken - Mir tendéieren ze gesinn, wat do ass a verléieren aus den Ae wat fehlt. Dëst kann zu Chaos féieren wann se mam Neiheetseffekt kombinéiert ginn, well Dir net nëmmen inherent nei Technologie iwwerschätzt, awer och seng Mängel ignoréiert.

Objektiv Bewäertung ass net einfach, awer d'Basisdaten kognitiv Biases ze verstoen hëlleft Iech méi rational Entscheedungen ze treffen.

Summary

Wann ëmmer eng Innovatioun erschéngt, musse zwou Froen mat grousser Suergfalt beäntwert ginn:

  • Léisst dëst Tool e richtege Problem?
  • Verstoen mir d'Ofdreiwungen gutt?

Wann Dir dës zwou Froen net zouversiichtlech beäntweren kënnt, huelt e puer Schrëtt zréck an denkt.

Also war MongoDB souguer déi richteg Wiel? Natierlech jo; Wéi mat de meeschten Ingenieurstechnologien hänkt dëst vu ville Faktoren of. Ënnert deenen, déi dës zwou Froen geäntwert hunn, hu vill vu MongoDB profitéiert a maachen dat weider. Fir déi, déi net gemaach hunn, hoffen ech datt Dir eng wäertvoll an net ze schmerzhafte Lektioun geléiert hutt iwwer den Hype-Zyklus ze bewegen.

Verzichterklärung

Ech wëll et kloer maachen datt ech weder eng Léift nach eng Haass Bezéiung mat MongoDB hunn. Mir hu just net déi Aart vu Probleemer déi MongoDB am Beschten gëeegent ass fir ze léisen. Ech weess datt 10gen / MongoDB Inc. war am Ufank ganz fett, onsécher Defaults setzen an de MongoDB iwwerall (besonnesch bei Hackathons) als eng universell Léisung fir mat all Daten ze promovéieren. Et war wahrscheinlech eng schlecht Entscheedung. Awer et bestätegt d'Approche, déi hei beschriwwe gëtt: dës Probleemer konnten och mat enger iwwerflächlecher Bewäertung vun der Technologie ganz séier festgestallt ginn.

Source: will.com

Setzt e Commentaire