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 |
・・・ニコ動はよく出来てる。本当すごいわ。