半年前に何かで話題になっていて、執筆中だった記事。。。。
The Share-Nothing Architecture
http://zef.me/883/the-share-nothing-architecture
著者の主張はキャッシュを使わずに、各レイヤーでスケールアウトすればいい。
ファイルシステム、データベース、フロントエンドそれぞれのレイヤでスケールするソリューションがあるから組み合わせて使えばキャッシュしなくてもいいとのこと。
なんか、無理矢理なロジック。それができていればみんな悩まないと思うし、大規模サイトを運用している会社がそれぞれ違ったアーキテクチャを作っている理由は簡単に解決できないからだ。
この主張の穴は、
1.「ボトルネックは必ず発生する」
2.「非リアルタイム」
1.
各レイヤではボトルネックを発生しないようにできるだろうが、レイヤ同士の通信や、マスタサーバへのトラフィックではボトルネックが発生する。
2.
ファイルを更新したら、デプロイ時間がかかる。よって、リアルタイム性とレスポンススピードのトレードオフになる。
どんなアーキテクチャでも結局はリアルタイム性とレスポンススピードのトレードオフになるんだろうなぁ。このトレードオフを解決するために各社が自社サービスに最適化したアーキテクチャを考えているのだろう。
PS:
俺も昔は同じ事かんがえてたよなぁ。。。理想論だよ!
Comments