ほぼ無限に拡張できるオープンソースの監視ツールという夢

Getty Images


データベースはマンションの建物のようなもの


ハバロネンコは次のように説明する「たとえば一棟のマンションを考えてみてください。この建物は、あらゆるものが入っている大きなデータベースを表しています。建物の各階がシャードです。マルチレイヤーではない単層構造では、各階には1つの部屋しか入ることができず追加の部屋は入れられません。規模を拡大しようとするときに、これは問題になります、各階ごとにまた別のシャードを追加しなければならなくなるからです。その結果、複数のシャードを持つシステムでは、ネットワークの容量、つまり建物の高さがボトルネックになってしまうのです。この限界を突破するため、マルチレイヤーアーキテクチャでは各階ごとに初めから複数の部屋を持たせて、各シャードに負荷を分散させます。こうすることで、より速く、より効率的に拡張できるようになるのです」

最後に、シンプルであることが重要だ。スケーラブルな分散システムを設計する場合には、できるだけシンプルなコンポーネントを使用することで、将来のスケーラビリティを簡単にすることができる。シンプルなコンポーネントは、1つか2つの機能だけを提供して、他のコンポーネントに依存することなくその機能を非常にうまくこなす必要がある。

ハバロネンコは「このようなデカップリング(コンポーネント間の依存度を下げること)により、個々のコンポーネントを独立してスケーリングすることができるようになります。そうしておかないと、いずれかのコンポーネントをスケーリングする際に、波及効果が発生する可能性があります。たとえば、読み取りクエリの処理をスケーリングするには、キャッシュ層のコンポーネントをスケーリングする必要があるかもしれませんし、キャッシュ層は他の何かをスケーリングする必要があるかもしれません」と結論づけている。

このシンプルさは、スケーリングのコストを抑えることにもつながる。無限のスケーリングは理論的には(ほぼ)可能だが、それを実現するためにはコスト効率が重要な要素となる。

この分野の技術開発で、費用対効果の高いイノベーションを実現するために重要なのは、シンプルさと透明性だろう。ボンネットの下で行われている魔法の数が少なくなり(現在のクルマがどれほど複雑に設計されているかを考えてみてほしい)、使用されているコンポーネントの数が少ない状態になればなるほど、私たちは乗り心地をカスタマイズし、無限にスケーリングできる夢へと向かってさらに向かうことができるのだ。

翻訳=酒匂寛

タグ:

ForbesBrandVoice

人気記事