Interop行ってきました

2007/06/13

ここ何年かご無沙汰だったInteropに行ってきました。

展示会場の感想は省略しますが、livedoor主催のセミナー「オープンソースソフトウェアによる大規模ポータル構築」はとても実践的で参考になる内容だったので自分の理解力の範囲内でまとめておきます。

システム構成

LAMP + JavaScript(Ajax) ... 基本的に全てOSS
特にレスポンスを要求される部分(ポータルトップなど)はApacheの組込みモジュールをCで自作
時代からOSSとして公開しているSledgeフレームワークを利用
HTML生成にテンプレートエンジンClearsilverを利用。C、Python、Perl、Rubyなどバイディングが豊富
自社でデータセンターを運用しているのでそこと連係して素早いシステム構築・増強・補修が可能

負荷分散手法(障害対策を兼ねる)

一次Webサーバで受けたリクエストはReverseProxyにて負荷の低いWebサーバに割り振る
負荷分散の手法をトラフィックの種類(参照系/更新系)で分ける
参照系の手法

memcachedを用いてメモリ上でキャッシュ

・livedoorブログなど、ユーザを特定できるサービスはユーザ毎にDBサーバを分ける

・ファイルシステムレベルのquota設定はパフォーマンスが落ちるのでDBサーバ上にユーザ毎のHDD使用量を保持しておき、都度計算

更新系の手法

・ファイルの場合、直接ファイルアクセスはせずWebDAVサーバにPUT、非同期更新とする。

・DBの場合、まず更新情報をキャッシュ、それをメッセージキュー経由で非同期更新、同時に別DBに非同期コピーし、参照専用DBとして再利用

開発/運営方針

自分たちが影響を及ぼせる範囲(手元に置いておけるソース)をなるべく多くする。ソースが公開されているOSSを利用するのもその一環。ブラックボックスが多いとユーザに最終責任が負えない。
OSSを利用させてもらっているのでコミュニティへの還元が大切で、会社の社会的使命でもある。
とにかくレスポンスが最重要事項なので、高機能で重いサービスよりも7割程度の機能でいいのでレスポンスが早いほうがユーザが定着してくれる。
最初にサービスを作ったチーム(1人〜3人)が一番そのサービスに思い入れが深いので、基本的に彼らが運用・改修・機能追加を全て行う。
同業他社と(個人レベルで)交流を持つ。システム構築/運営の技術情報はもとより、苦悩や喜びも共有できる。
に簡単に使ってもらえるためには、裏側にあるシステムの複雑さを怖がらない。それよりも複雑なシステムを理解できる人材を確保することのほうが大切。

livedoorのサービスは以前から安定していると思っていたのですが、今回のセミナーを聴いてやはりテクノロジードリブンな会社だなと改めて思いました。

特に開発方針の最後の「システムの複雑さを怖がらない」という部分に自信と潔さを覚えました。

とりあえずmemcachedに興味を覚えたのでさっそく使ってみることにします。