オンラインモール大手の楽天は、オープンソースの開発言語であるPHPを利用して、システム・コストの削減を進めている。「約3年前から利用を開始し、今では新規開発するシステムの半分はPHPで開発している」(安武弘晃 楽天事業カンパニー開発本部 開発推進部長)。8月27日には、PHP関連ツールを扱うゼンド・オープンソースシステムズと技術提携した。「楽天はPHPのユーザーの立場。技術的な検証はゼンドに任せる。PHPを活用するうえで、より多くのアイデアやパートナが集まることを期待する」(同)という。

 ADSLの普及もあって、楽天のサイトは現在でもアクセス数が右肩上がりに増えている。このため毎週のようにサーバーを増設している。しかし、「システムで利用している商用のWebアプリケーション・サーバー(WebLogic)や商用データベース(Oracle)のライセンス料がかさんでいた」(安武部長)と打ち明ける。

 こうした問題を解決するために、オープンソースの利用を始めた。現在はPHPとMySQLを中心に、一部でPostgreSQLやTomcatも利用している。「例えば掲示板のようなサービスを商用ソフトで構築すると、サービスの価値に対してシステム投資額が大きくなりすぎる」(安武部長)。

 しかしPHPにも弱点はある。PHPはデータベース接続機能を持っているが、商用のアプリケーション・サーバーが備えるデータベース接続機能のように「コネクション・プーリング」の機能は備えていない。このためのアクセス数が多くなると、データベースとの接続部分がボトルネックとなる可能性がある。楽天は、PHPを利用するサービスをデータベースへのアクセスが比較的少ないものに限定することと、PHPが動作する複数のWebサーバーに負荷を分散することで、この弱点を回避している。

 もう一つの弱点は、スクリプト言語であるPHPは、多くのプログラマが参加する大規模な開発体制に向かない点である。これには楽天が独自に開発したフレームワークを利用することで対応した。「このフレームワークは、PHPを使って開発する考え方を記述したもの。職人芸のようなスクリプトではなく、誰がスクリプトを書いても一つにまとめられるようにした」(安武部長)。

 例えば、データベースへのアクセスの仕方を決めたり、HTMLコードの中にPHPのスクリプトを書くことを禁止したりしている。結果的に、「PHPがWebシステムの開発に向いていることもあり、Javaでの開発に比べて開発効率は大差がない」(楽天事業カンパニー開発本部 開発推進部の増田創氏)という。

 楽天は今後もシステム・コストの削減を進めていく。「システムの応答速度、安定性、機能を落とすことなく、コストを削減できる手段を常に考え続けている」(安武部長)。とはいえ安武部長は、「管理するオープンソースのシステムが増えすぎて、最新情報の収集などにかかる人的な運用コストがかさんでしまうことにも注意が必要」という。

(坂口 裕一=日経コンピュータ)