PHPer.jpのシステム構成

このエントリーをはてなブックマークに追加
はてなブックマーク - PHPer.jpのシステム構成
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

PHPer.jpの基本的なしくみは以下のようになっています。

[phper_jp]: http://phper.jp
[varnish]: http://www.varnish-cache.org/
[nginx] : http://nginx.org/
[cli] : https://github.com/tumf/phper
[api] : http://phper.jp/api

エッジレイヤ
: ユーザのリクエストを受けるサーバです。高速なウェブサーバ[Nginx][nginx]を採用し、SSLのアクセラレーションもこのレイヤーで行っています。

ルーティングレイヤ
: ユーザのリクエストのホスト名からリクエストを受けるアプリケーションサーバを対応させてリクエストをフォーワードします。このレイヤーはアプリケーションサーバ割り当て時に動的に設定ファイルが書き換えられます。高速なキャッシュサーバの[Varnish][varnish]を採用しており、静的コンテンツのキャッシングも行います。

アプリケーションレイヤ
: プロジェクトごとにサーバが少なくとも1台割り当てられ、ルーティングレイヤーからのリクエストを汎用ウェブサーバのApacheが受けます。ユーザのコードはこのサーバに配備されます。

データベースレイヤ
: チューニングされた高性能共用MySQLです。

PHPer.jpではユーザごとに割り当てられるアプリケーションサーバの役割を極力を少なくし、機能ごとに専門特化した共用サーバに役割を持たせることで高性能なサーバシステムを低コストで提供できるしくみを実現しています。

git
: 開発者がコードをアプリケーションサーバにアップロードする手段としてgitを利用します。gitによりpushすることでアプリケーションはサーバに自動的にデプロイされます。

Umeboshi
: 以上のサーバ群を管制しているのがPHPer.jpサービスのコアであるUmeboshiシステムです。UmeboshiシステムはPHPer.jpのために作成されたシステムです。開発者はUmeboshiへWeb・[CLI][cli]・[RESTful API][api]を利用してアクセスします。

次回は、フェイルオーバーの仕組みについてご説明します。