あなたはグヌグルではありたせん







開発者は最も奇劙なこずに倢䞭です。 私たちは皆、超合理的な存圚を考えるこずを奜みたすが、特定のテクノロゞヌを遞択するこずになるず、ある皮の狂気に陥り、HackerNewsのコメントからいく぀かのブログの投皿にスキップしたす。元々探しおいたものを完党に忘れおしたったので、その前に最も明るい光源に向かっお順調に航行しおいたす。







これは、合理的な人々が決定を䞋す方法ではありたせん。 しかし、たさにそのため、開発者は、たずえばMapReduceを䜿甚するこずにしたした。







ゞョヌ・ヘラヌスタむンが孊士号デヌタベヌスに関する講矩で指摘したように 54分







実際、このような野心的なタスクを実行する䌁業は䞖界に玄5瀟ありたす。 他のすべおの人ず同様に...圌らはシステムの匟力性を確保するために信じられないほどのリ゜ヌスを費やしたす。 2000幎代には「Google」のようなものがありたした。「Googleは䞖界最倧のデヌタ凊理サヌビスも管理しおいるため、Googleずたったく同じようにすべおを行いたす...」[皮肉なこずに頭を振っお聎衆の笑い声を埅぀]



デヌタセンタヌの建物の䜕階ですか Googleは、少なくずもオクラホマ州メむズ郡にあるこの特定のデヌタセンタヌでは、4にずどたるこずにしたした。







はい、あなたのシステムはあなたが必芁ずするよりも回埩力がありたすが、それが䜕を犠牲にするか考えおください。 ポむントは、倧量のデヌタを凊理する必芁があるだけではありたせん。 おそらく、トランザクション、むンデックス、ク゚リ最適化を備えた完党なシステムを、比范的匱いものず亀換しおいるでしょう。 これは倧きな埌退です。 䜕人のHadoopナヌザヌがこれを意識的に行いたすか 本圓にバランスのずれた決定を䞋すのは䜕人ですか







MapReduce / Hadoopは非垞に簡単な䟋です。 カヌゎカルトの信奉者でさえ、飛行機がすべおの問題を解決するわけではないこずをすでに認識しおいたす。 それにもかかわらず、MapReduceを䜿甚するず、重芁な䞀般化を行うこずができたす。倧䌁業向けに䜜成されたテクノロゞヌを䜿甚し、同時に小さな問題を解決する堎合は、軜率に行動しおいる可胜性がありたす。 そうでなくおも、GoogleやAmazonのような巚人を暡倣するずいう神秘的なアむデアに導かれる可胜性が最も高く、同じ高さに到達したす。









はい、この蚘事はカヌゎカルトの反察者です。 しかし、埅っおください。私はあなたのために、より倚くの情報に基づいた決定を䞋すために䜿甚できる䟿利なチェックリストを甚意しおいたす。







クヌルなフレヌムワヌクUNPHAT



次回、システムを再圢成するための新しいクヌルなテクニックをGoogleで怜玢するずきは、停止しおUNPHATフレヌムワヌクを䜿甚するこずをお勧めしたす。







  1. 理解問題を理解する前に、可胜な解決策に぀いお考えようずさえしないでください。 あなたの䞻な目暙は、゜リュヌションの芳点ではなく、問題の芳点から問題を「解決」するこずです。
  2. いく぀かの可胜な゜リュヌションをリストeNumerateしたす。 すぐにお気に入りのオプションに指を向ける必芁はありたせん。
  3. 別の解決策を怜蚎し、もしあればドキュメントPaperを読んでください。
  4. この゜リュヌションが䜜成された履歎コンテキストを定矩したす 。
  5. Flawsず利点を䞀臎させたす。 意思決定者が目暙を達成するために犠牲にしなければならないものを分析したす。
  6. 考える考える  この゜リュヌションがあなたのニヌズを満たすのにどれだけ適しおいるかを萜ち着いお静かに考えおください。 心を倉えるために䜕を倉える必芁があるのでしょうか たずえば、Hadoopを䜿甚しないようにするには、デヌタをどれだけ少なくする必芁がありたすか


あなたはアマゟンではありたせん



UNPHATの䜿甚は簡単です。 倜にダりンロヌドしたデヌタを集䞭的に読み取るプロセスにCassandraを䜿甚するこずに急いで決めた䌚瀟ずの最近の䌚話を思い出しおください。







私はすでにDynamoのドキュメントに粟通しおおり、Cassandraが掟生システムであるこずを知っおいたため、これらのデヌタベヌスでは䞻に蚘録機胜に焊点を圓おおいるこずに気付きたしたAmazonは「カヌトに远加」アクションを倱敗したせんでした。 たた、開発者がデヌタの敎合性を犠牲にしたこず、そしお実際、埓来のRDBMSに固有のすべおの機胜を評䟡したこずにも感謝しおいたす。 結局のずころ、私が話をした䌚瀟では、録音する胜力は優先事項ではありたせんでした。 正盎なずころ、このプロゞェクトは1日に1぀の倧きなレコヌドを䜜成するこずを意味しおいたした。









アマゟンはすべおを販売しおいたす。 「バスケットに远加」機胜が突然機胜しなくなった堎合、倚くのお金を倱いたす。 同じ順序の問題がありたすか







この䌚瀟は、問題のPostgreSQLク゚リを完了するのに数分かかったため、Cassandraを䜿甚するこずを決定し、これらはハヌドりェアの技術的な制限であるず刀断したした。 いく぀かの点を明確にした埌、テヌブルはそれぞれ80バむトの玄5,000䞇行で構成されおいるこずがわかりたした。 SSDから完党に読み取る必芁がある堎合、SSDから読み取るのに玄5秒かかりたす。 これは䜎速ですが、その時点でのク゚リ実行速床よりも2桁高速です。







この段階で、私は倚くの質問をしたしたU =理解し、問題を理解したすそしお、元の問題を解決できる5぀の異なる戊略を怜蚎し始めたしたN = eNumerate、可胜な解決策をいく぀か挙げおください、しかし、いずれにしおもCassandraを䜿甚するこずが根本的に間違った決定であるこずは、珟時点ではすでに明らかでした。 圌らが必芁ずしたのは、蚭定するための少しの忍耐、おそらくデヌタベヌスの新しい蚭蚈ず、おそらく可胜性は䜎いですが別のテクノロゞヌの遞択でした...しかし、集䞭的な蚘録を備えたキヌバリュヌデヌタストレヌゞではありたせんAmazonがバスケット甚に䜜成したもの







あなたはLinkedInではありたせん



ある孊生のスタヌトアップが、Kafkaを䞭心にそのアヌキテクチャを構築するこずを決めたこずに非垞に驚きたした。 それはすごかった。 私が知る限り、圌らのビゞネスは1日に数十件の非垞に倧芏暡な業務しか行っおいたせんでした。 おそらく最も成功した日に数癟。 この垯域幅により、メむンデヌタりェアハりスは普通の本の手曞き入力になりたす。







比范のために、KafkaはLinkedInのすべおの分析むベントを凊理するために䜜成されたこずを思い出しおください。 これは膚倧な量のデヌタです。 数幎前でさえ、それは1日に玄1兆むベントであり、ピヌク負荷は1秒あたり1,000䞇メッセヌゞでした。 もちろん、Kafkaを䜿甚しおより䜎い負荷で䜜業できるこずを理解しおいたすが、10オヌダヌ少ないですか









倪陜は非垞に倧きな物䜓であり、地球よりも6桁重いだけです。







おそらく、開発者は、予想されるニヌズずKafkaの目的の十分な理解に基づいお、慎重な決定を䞋したこずもありたす。 しかし、圌らはカフカに察する通垞は正圓化されたコミュニティの熱意によっおむしろ掻気づけられ、これが本圓に圌らが必芁ずするツヌルであるかどうかほずんど疑問に思わなかったず思いたす。 想像しおみおください... 10泚文







すでに蚀った あなたはアマゟンではありたせん



Amazonの分散デヌタりェアハりスよりもさらに人気があるのは、スケヌラビリティを提䟛するアヌキテクチャ蚭蚈アプロヌチ、぀たりサヌビス指向アヌキテクチャです。 2006幎のゞムグレむずのむンタビュヌで Werner Vogelsが指摘したように、Amazonは2001幎にむンタヌフェヌスフロント゚ンドのスケヌリングが困難であり、サヌビス指向アヌキテクチャが圹立぀可胜性があるこずに気付きたした。 このアむデアは次々ず開発者に感染したしたが、ほんの数人の開発者でクラむアントがほずんどいないスタヌトアップは、゜フトりェアをナノサヌビスに分割し始めたせんでした。







AmazonがSOAサヌビス指向アヌキテクチャに切り替えるこずを決定するたでに、 箄7,800人の埓業員がおり、売り䞊げは30億ドルを超えおいたした 。









サンフランシスコのコンサヌトホヌルビルグラハムオヌディトリアムには7,000人が垭を構えおいたす。 Amazonには、SOAに切り替えたずきに玄7,800人の埓業員がいたした。







これは、䌚瀟が埓業員7800人のレベルに達するたでSOAぞの移行を延期する必芁があるずいう意味ではありたせん... 垞に自分の頭で考えおください 。 これは本圓にあなたのタスクに最適な゜リュヌションですか あなたの前の仕事は正確に䜕ですかそれを解決する他の方法はありたすか







50人の開発者で構成される組織の䜜業がSOAなしで単玔に䞊昇するこずを教えおくれた堎合、なぜ倚くの倧䌁業が単䞀の、よく組織されたアプリケヌションを䜿甚しお玠晎らしく機胜するのか疑問に思いたした。







GoogleでさえGoogleではありたせん。



負荷の高いデヌタストリヌムHadoopたたはSparkを凊理するためのシステムの䜿甚䟋は、本圓に戞惑う可胜性がありたす。 非垞に倚くの堎合、埓来のDBMSは負荷により適しおいたす。たた、デヌタ量が非垞に少ないため、 䜿甚可胜なメモリでも十分な堎合がありたす。 どこかで1TBのRAMを10,000ドルで賌入できるこずをご存知ですか 10億人のナヌザヌがいたずしおも、各ナヌザヌに1 KBのRAMを提䟛できたす。







ディスクぞの読み取りず曞き蟌みが必芁になるため、おそらくこれは負荷に察しお十分ではありたせん。 しかし、実際に読み曞きするのに数千のディスクが必芁ですか 実際にどのくらいのデヌタを持っおいたすか GFSずMapReduceは、むンタヌネット党䜓のコンピュヌティングの問題を解決するために䜜成されたした。たずえば、 むンタヌネット党䜓で怜玢むンデックスを再蚈算したす。









ハヌドドラむブの䟡栌は、GFSのドキュメントが発行された2003幎よりもはるかに䜎くなりたした。







GFSずMapReduceのドキュメントを読んで、Googleの問題の1぀はデヌタ量ではなく垯域幅凊理速床であるこずに気付きたした。ディスクからバむトを転送するのに時間がかかりすぎたため、分散ストレヌゞを䜿甚しおいたした。 しかし、今幎䜿甚するデバむスの垯域幅はどうなりたすか Googleが必芁ずするほど倚くのデバむスを必芁ずしないこずを考えるず、おそらくより新しいドラむブを賌入する方が良いでしょうか SSDを䜿甚するにはどれくらいの費甚がかかりたすか







事前にスケヌラビリティを怜蚎したい堎合がありたす。 必芁な蚈算はすべお完了しおいたすか SSDの䟡栌が䞋がるよりも早くデヌタを蓄積したすか すべおの利甚可胜なデヌタが1぀のデバむスに収たらないように、ビゞネスを䜕回成長させる必芁がありたすか 2016幎の時点で、Stack Exchangeは1日あたり2億件のク゚リを凊理し、4台のSQLサヌバヌのみをサポヌトしおいたした。メむンはStack Overflow、もう1぀はすべお、もう2぀はコピヌです。







繰り返したすが、UNPHATに頌っおも、HadoopたたはSparkを䜿甚するこずを決定できたす。 そしお、決定は正しいかもしれたせん。 䞻なこずは、あなたが本圓にあなたの問題を解決するために正しい技術を䜿うずいうこずです。 ちなみに、これはGoogleでよく知られおいたす。MapReduceがむンデックスに適しおいないず刀断したため、䜿甚を䞭止したした。







たず最初に、問題を理解する



私のメッセヌゞは新しいものではないかもしれたせんが、その圢であなたに返事をするかもしれたせんし、UNPHATを芚えお生掻に適甚するのは簡単かもしれたせん。 そうでない堎合は、 ハンモック駆動開発に関するリッチヒッキヌのスピヌチ、たたはポヌルの本、それを解決する方法 、たたはハミングのコヌス、科孊ず工孊の実践の講座を芋るこずができたす。 なぜなら私たち党員が尋ねる䞻なこずは考えるこずだからです







そしお、あなたが解決しようずしおいる問題を本圓に理解しおください。 パりロの心に匷く蚎える蚀葉で







「 理解できない質問に答えるのは愚かです。 達成したくない目暙を目指しお努力するのは悲しいこずです。」





ロシア語翻蚳



翻蚳 アレクサンダヌ・トレグボフ

アレクセむ・むワノフ 線集 @ponchiknews

コミュニティ @ponchiknews

図 LucidChartコンテンツチヌム








All Articles