LAMP+F

WebシステムにLAMP構成っていうのがあります。

mixiとかニコニコ動画とか、スモールスタートして大規模になってるシステムが、基本がLAMP構成で出来ているってことで、もう十分に鉄板な構成らしいんだけれど、どういう仕組みで出来てるのかと疑問に思ってた。

一応システムに携わるものとして、考えなければいけないポイントは何個か思いつくけれど、イメージもあいまい、実現する技術もどういう理屈なのかがイマイチつかめない。(各種冗長化(ネットワーク、サーバ、データベース)とか、拡張性や運用etc)

そんな折、「スケーラブルWebサイト」って本を見つけた。
http://www.marlin-arms.co.jp/jpn/support/bsws/

一番印象的だったのが、状況が変わっても追加・変更が簡単に出来るように、階層化とインターフェースの設計が大事という事。これはすぐにピンと来た。ネットワークのレイヤ構造の考え方と同じ理屈だった。

車輪の再発明はするな」は名言だと思う。誰かが既に作っていてそれが十分にこなれていているものなら、「同じようなものを新たに発明する事が目的」でなければ、同じようなものをあえて発明する必要はない。これには、すごく納得した。
でも、これには条件があると思う。「失敗学」の理論だけれど、先人の苦労や失敗をまた自分がする事は時間の無駄だけれど、苦労や失敗の内容は把握・理解して本質を知らないと、先人の苦労や失敗に近い事が起きてもそこからの対処方法が、全く見当がつかない状況になってしまう危険性がある。

その辺に気をつけつつ、興味本位で、鉄板な構成を確かめてみようかと思う。ボリュームあるな。チームを組んでやってみたいな。。。

レイヤ 選定 次点
フロントエンド Flash html
言語 PHP Ruby
ミドルウェア(Web) Apache IIS
ミドルウェア(DB) MySQL PostgreSQL
OS Linux Windows
仮想化 Xen VMware

・・・ニコ動はよく出来てる。本当すごいわ。