MongoDBはたったく正しい遞択でしたか

私は最近、 Red HatがSatelliteからMongoDBサポヌトを削陀しおいるこずを発芋したしたラむセンスの倉曎によるものです。 過去数幎間で、MongoDBがどれほどひどいもので、誰も䜿甚すべきではないずいう蚘事をたくさん芋たず思いたした。 しかし、この間、MongoDBははるかに成熟した補品になりたした。 どうしたの すべおの憎しみは、本圓に新しいDBMSのマヌケティング開始時の間違いによるものですか たたは、間違った堎所でMongoDBを䜿甚しおいるだけですか



突然MongoDBを保護しおいるず思われる堎合は、蚘事の最埌にある免責事項をお読みください。



新しいトレンド



私は゜フトりェア業界にきちんず話すのに十分な時間以䞊働いおきたしたが、それでも私たちの業界を襲ったトレンドのごく䞀郚しか説明できたせんでした。 4GL、AOP、アゞャむル、SOA、Web 2.0、AJAX、ブロックチェヌンの成長を目の圓たりにしたした...リストは無限です。 毎幎新しいトレンドが珟れたす。 すぐに消えおしたうものもあれば、゜フトりェアの開発方法を根本的に倉えるものもありたす。



すべおの新しいトレンドの呚りに、特定の䞀般的な興奮が生たれたす。人々はボヌトに飛び蟌むか、他の人が生成するノむズを芋お、矀衆を远いたす。 このプロセスは、ガヌトナヌによっお誇倧広告サむクルで䜓系化されおいたす 。 議論の䜙地はありたすが、このグラフは、最終的に䜿甚可胜になる前にテクノロゞヌに䜕が起こるかを倧たかに説明しおいたす。



しかし、たった1぀の特定の実装によっお駆動される新しい技術革新が登堎する堎合がありたすたたは、この堎合のように再登堎が発生したす。 NoSQLの堎合、誇倧広告はMongoDBの出珟ず急速な䞊昇によっお倧きく掚進されたした。 MongoDBはこの傟向を開始したせんでした。実際、倧芏暡なむンタヌネット䌁業は倧量のデヌタの凊理に問題を抱え始め、非リレヌショナルデヌタベヌスが埩掻したした。 䞀般的な動きは、GoogleのBigtableやFacebookのCassandraなどのプロゞェクトで始たりたしたが、ほずんどの開発者がアクセスできるNoSQLデヌタベヌスの最も有名で手頃な実装ずなったのはMongoDBでした。



泚文曞デヌタベヌスず列デヌタベヌス、キヌ/倀ストア、たたはNoSQLの䞀般的な定矩に該圓する他の倚くの皮類のデヌタストアのいずれかず混合しおいるず思われるかもしれたせん。 そしおあなたは正しい。 しかし、圓時は混乱が支配しおいたした。 誰もがNoSQLに倢䞭になっおおり、誰もが絶察にそれを必芁ずしおいたしたが、倚くの人は異なる技術の違いを芋おいたせんでした。 倚くの堎合、MongoDBはNoSQLず同矩語になりたした。



そしお、開発者は圌女を攻撃したした。 これは、問題を解決するために魔法のように拡匵するスキヌマのないデヌタベヌスにずっお非垞に魅力的なアむデアでした。 2014幎頃、MySQL、Postgres、SQL Serverなど、1幎前にリレヌショナルデヌタベヌスが䜿甚されおいたすべおの堎所で、MongoDBデヌタベヌスが展開され始めたようです。 なぜかずいう質問に察しお、「これはWebの芏暡です」ずいう考えから、「私のデヌタは非垞に構造が悪く、スキヌムなしでデヌタベヌスにうたく収たる」ずいう答えを埗るこずができたす。



MongoDBずドキュメントデヌタベヌスは、通垞、埓来のリレヌショナルデヌタベヌスに関する倚くの問題を解決するこずを芚えおおくこずが重芁です。





すべおのリスクはあなたにありたす。



MongoDBの朜圚的な利点は、特に特定のクラスの問題にずっおは倧きなものでした。 コンテキストを理解せず、経隓のない䞊蚘のリストを読んだ堎合、MongoDBは真に革呜的なDBMSであるずいう印象を受けるかもしれたせん。 唯䞀の問題は、䞊蚘の利点にいく぀かの予玄が䌎うこずであり、その䞀郚を以䞋に瀺したす。



公平に蚀えば、10gen / MongoDB Inc.には誰もいたせん 圌は以䞋が真実ではないず蚀うこずはありたせんそれはただの劥協です。





MongoDBに目を向けた倚くの開発者は、トレヌドオフを実際に理解しおおらず、しばしば真っ向から飛び蟌んで、プラむマリデヌタストアずしお蚭定したした。 この埌、戻るこずは非垞に困難でした。



別に䜕ができたでしょうか



誰もが最初に頭を跳ねお底を打ったわけではない。 しかし、倚くのプロゞェクトがMongoDBベヌスをむンストヌルしたしたが、それが収たりきらない堎所でした。そしお、さらに䜕幎もそこに䜏たなければなりたせん。 これらの組織がある皋床の時間を費やし、テクノロゞヌの遞択を系統的に怜蚎した堎合、倚くの組織が別の遞択を行っおいたでしょう。



適切なテクノロゞヌを遞択する方法は 「技術を゜フトりェア組織に導入するためのフレヌムワヌク」や「゜フトりェア技術を評䟡する ためのフレヌムワヌク」など、技術を評䟡するための䜓系的なフレヌムワヌクを䜜成しようずする詊みがいく぀かありたしたが、これは䞍必芁な耇雑さのようです。



倚くのテクノロゞヌは、2぀の基本的な質問をするだけで合理的に評䟡できたす。 問題は、責任を持っお回答できる人を芋぀けるこずであり、回答を探すのに時間を費やし、偏りがないこずです。



問題が発生しない堎合、新しいツヌルは必芁ありたせん。 ポむント。


質問1どのような問題を解決しようずしおいたすか



問題が発生しない堎合、新しいツヌルは必芁ありたせん。 ポむント。 解決策を探しお問題を思い぀く必芁はありたせん。 新しいテクノロゞヌでは既存のテクノロゞヌよりもはるかに優れた解決策が埗られないずいう問題が発生しおいない堎合は、議論するこずはありたせん。 他の人がどのように䜿甚しおいるのかを芋たためにこのテクノロゞヌの䜿甚を怜蚎しおいる堎合は、圌らが盎面しおいる問題を怜蚎し、そのような問題があるかどうかを尋ねおください。 他の人が䜿甚しおいるため、この技術を受け入れるのは簡単です。同じ問題に盎面しおいるかどうかを理解するこずは困難です。



質問2䜕を倱っおいたすか



もちろん、これはより難しい質問です。叀い技術ず新しい技術の䞡方を掘り䞋げお理解する必芁があるからです。 新しいものを実際に理解するこずができない堎合がありたす。それを䜿甚しお䜕かを構築するか、そのような経隓を持぀埓業員がいない堎合です。



どちらも持っおいない堎合は、このツヌルの䟡倀を刀断するために可胜な最小の投資に぀いお考えるのが理にかなっおいたす。 たた、投資を行う堎合、決定を芆すこずはどれほど難しいでしょうか



人々は垞にすべおを台無しにしたす



これらの質問に可胜な限り公平に答えようずするず、1぀のこずを芚えおおいおください。人間の本性ず栌闘しなければなりたせん。 技術を効果的に評䟡するために克服しなければならない倚くの認知バむアスがありたす。 ほんの䞀郚を次に瀺したす。





客芳的な評䟡は簡単ではありたせんが、基本的な認知バむアスを理解するこずは、より合理的な決定を䞋すのに圹立ちたす。



たずめ



特定の技術革新が珟れるず、2぀の質問に现心の泚意を払っお答える必芁がありたす。





これら2぀の質問に自信を持っお答えるこずができない堎合は、いく぀かの手順を螏んで考え盎しおください。



それでは、MongoDBは䞀般的に正しい遞択でしたか もちろん、はい。 ほずんどの゚ンゞニアリング技術ず同様に、これは倚くの芁因に䟝存したす。 これらの2぀の質問に答えた人の倚くは、MongoDBから恩恵を受けおおり、匕き続きMongoDBから恩恵を受けおいたす。 これをしなかった人は誰でも、誇倧広告サむクルに沿った動きに぀いおの貎重で痛くないレッスンを受けたず思いたす。



免責事項



私は、MongoDBに察する愛も憎しみもないこずを明確にしたいず思いたす。 MongoDBが最適な問題がなかったずいうだけです。 10gen / MongoDB Inc. 最初、圌女は非垞に倧胆に行動し、安党でないデフォルト倀を蚭定し、MongoDBをあらゆる堎所特にハッカ゜ンでであらゆるデヌタを扱うための普遍的な゜リュヌションずしお宣䌝したした。 これはおそらく悪い決断でした。 ただし、ここで説明するアプロヌチは確認されおいたす。これらの問題は、衚面的な技術評䟡でも非垞に迅速に怜出できたす。



All Articles