What Powers YouTubeから。大量のアクセスをテキパキとさばくYouTubeを支えているソフトウエアの構成が面白い。
- Apache (HTML, JavaScript, CSS)
- Python
- Linux (初期はSuSe,現在はいろいろ)
- MySQL (5.x, Google内製のクラスタリング技術でそうとうカスタマイズされている)
- psyco, (Python -> Cの動的コンパイラ)
- lighttpd (動画配信に利用)
- GFS (Google File system)
ほとんどオープンソースで,特別なものは使っていなくて,特にフロントエンドに近いところはかつシンプルに構成されていることがわかる。DB部分がMySQLベースでバリバリにカスタマイズされているのも興味深い。そのうちBig Tableに移行したりするんだろうか。
YouTubenのほとんどの部分はPythonで書かれている というのは知ってたけど,psyco(Python -> Cコンパイラ)を使っているというのは知らなかった。プリプロセス,キャッシュなども有効に使っているんだろうけど,アプリケーションサーバのロジック部分はPythonだけで書かれたシンプルでモノリシックな構成になっているわけだ。
追記
tokuhiromのブクマコメントもらって調べてみたら,psycoのintroductionに
Think of Psyco as a kind of just-in-time (JIT) compiler (snip) that emit machine code on the fly instead of interpreting your Python program step by step.
とあるので,マシンコードを生成しているらしい。psycoはCコンパイラ用のコードを生成するわけじゃないのね〜。
と言うことで追記で訂正:-)。