PHPカンファレンス2010スペシャルレポート

1日目、ビジネスデイレポート[随時更新]

今日・明日と、大田区産業プラザ PiOにて、PHPカンファレンス2010が開催されます。本日(1日目)「ビジネスデイ」と題して、ビジネスを意識した視点のセッションが2つのホールで展開されます。

本ページでは、1日目のレポートを随時掲載していきます!

イベント開始前

心配された天気もいまのところ何とか持ちこたえています。11時30分の開場に向けて、スタッフの皆さんが懸命に準備を進めています。

画像

雨が降り出してしまいましたが、多くの皆さんが来場されています。

画像

まもなく開始です!

亀本大地さん「オープニング」

PHPカンファレンス2010 実行委員長の亀本大地さんのあいさつから、いよいよ1日目のビジネスデイが開幕です。

亀本さんからは、今回のイベントテーマである「次の世代のPHP」について、ビジネス面ではオープンソーシャル、技術面ではPHPのバージョン5.3・5.4への移行の話題が盛り上がっていることが紹介されました。

また、本日(ビジネスデイ)のプログラムの紹介とスポンサー各社の紹介がありました。今年のPHPカンファレンスでは自由に使える無線LANが完備されたため、非常に快適な環境となっています。

画像

青柳直樹さん「GREE Platformの現状と今後の取組について」

グリー株式会社の青柳直樹さんによる基調講演では、GREE Platformの現状と今後の取組についてのお話がされました。

利用者数2125万人で国内No.1のGREEをはじめ、mixiやモバゲーもそれぞれ2千万人以上が利用するプラットフォームで、それらすべてがオープン化されています。GREE Platformオープン化の背景として、従来は自社ゲームが成長を牽引してきたが、今後さらなる飛躍のためにオープン化を決断したとのこと。オープン化によって3000万人到達も視野に入れているとのお話でした。また、パートナーさんとWin-Winの関係も築きやすいことも、オープン化を選択した理由の一つとのことです。

グリーでは、2011年から2012年に本格的なソーシャル時代を迎えると認識しています。ソーシャルゲームはスモールスタートが可能で、効果を確認しながら段階的な実施ができること、初期投資を抑えつつも高い利益率を追求できることなどから、ベンチャーの参入余地も大きいと見ています。

「ソーシャルゲームはウェブサービスの運用に長けている所が伸びていくと思う」と話す青柳さん。⁠自分たちも、ゲームを作っているとはあまり思っていない」と語ります。他社でも、コミュニケーションサービスを理解している所がうまく行っているとのお話でした。

今後はパートナーさんへのコンサルティングやプロモーション支援を強化したり、スマートフォン対応を順次展開していったり、またグローバル展開の一端としてアジア・北米における事業展開も展開中とのことです。急成長を続けるグリーから、これからも目が離せません。

画像
画像

小田祐史さん「CakePHPで作るニフティWebサービスのレシピ」

株式会社ニフティの小田さんによる講演は、CakePHPのお話から始まりました。

まず、PHPで開発されたニフティのサービスとして、シュフモトピックイット⁠、コネタマなどが紹介されました。これらのうち、⁠トピックイット」「コネタマ」は、Ruby on Railsの影響を色濃く受けたPHPのフレームワークであるCakePHPで構築されています。

CakePHPで冗長化構成を組むに当たって、NAS上へアプリケーションの配置を行ったらレスポンスが急激に悪化し、ローカルディスク上へソースを配置することで3秒かかっていた処理が0.1秒以下になった事例、CakePHP標準のファイルベースでのセッション管理はNASと相性が悪く、セッション情報はデータベースに格納するべきといった有益な情報をお話しいただきました。

ニフティでは効果的なデプロイのためにWebistranoというツールを利用しているそうで、Webistranoの機能について紹介していただきました。

後半は、ニフティのクラウドサービス「ニフティクラウド」のお話です。サーバの準備やディスクの追加などが5分ででき、料金は従量課金と月額課金を選択できるニフティクラウドでは、約160もの@niftyサービスが稼働中とのことで、高い運用実績があります。

ニフティクラウドAPIのβ版が8月10日にリリースされ、さらに10月以降にはサーバコピー機能やオートスケール機能(負荷に応じてサーバを自動縮退する⁠⁠、CPUやメモリの基本情報監視機能などがリリースされる予定とのこと。⁠エンジニアの日々の作業をより簡単にできるよう頑張ります!」と力強く約束してくれた小田さんでした。

画像
画像

新井啓太さん「モバイル ソーシャルアプリの開発と運用」

B会場初めのセッションはウノウ株式会社 テクノロジーグループ 新井 啓太さんよりソーシャルゲームの開発と運用についての発表がありました。

ウノウといえば米ソーシャルゲームの大手Zyngaに買収されたニュースが記憶に新しいですが、ウノウラボで提供されている技術情報など開発者からの注目度が高い会社らしく、壇上から挙手でアンケートを取ったところ、なんと会場のほとんどがエンジニアという結果でした。

前半は会社やサービスの紹介がありましたが、ソーシャルゲームに参入してから会社の体制も大きくなり社員数も17人から60人と大きく増えたそうです。それまで運営していたフォト蔵などに加え、まちつく!バンドやろうよ!海賊クロニクルなどのソーシャル性の高いゲームを運営するようになったことから、オープンソーシャルへの対応や負荷対策などの経験をかなり積んできているとのことです。

運用面では、大量のユーザー数をもつサービスを運用している経験から実際に困った事例を紹介いただきました。特にサポート面でユーザーからのお問い合わせの対応には気を使っているようで、毎日大量に届くお問い合わせに少人数で対応するためにシステム化をするひつようがあったようです。また、そもそもお問い合わせ数を減らすように、ユーザーからクレームがきそうな機能は始めから実装しないようにしたり、FAQにあらかじめ書いておくことが重要だそうです。また、これらは設計段階から考慮しておくほうが良いです。

続いて、開発面ですがミドルウェアとしてはいわゆるLAMPの構成に加え、Memcache(キャッシュ⁠⁠、Q4M(キュー⁠⁠、Nginx(プロキシ)などパフォーマンスや負荷分散のための仕組みを導入したり、PuppetやCapistranoを使って大量のサーバー管理を効率化しています。1月くらいから3,400台のサーバーを導入しているようですが、たった3〜4人で運用できているのもこれらの技術によるものだそうです。

データベースのチューニングも大規模サービスでは非常に重要で、なるべく高速なメモリを使って表示を行うようにしてDisk書き込み/読み込みの遅延を減らすという工夫をしているそうです。負荷対策でMaster-Slaveの構成にすることがありますが、これではパフォーマンスはあまり向上しなくて、Master分割などを検討していく必要があります。

また、開発者の人数が増えてくると開発コストを減らすことも重要なテーマです。DBアクセスにはPDOなどのORMを使うなどライブラリをうまく使うようにしています。また、フレームワークとしてSymfonyを導入することで新しく開発者が入ってきても教育コストを少なくすることができたそうです。

数多くのサービスをヒットさせているウノウの開発ノウハウを、存分に紹介しているセッションでした。

画像
画像

高原芳浩さん「ユニットホスティングを使った効率的なPHPプラットフォームのご紹介」

株式会社ディノの高原さんによる、自社開発のホスティングサービスユニットホスティングについての講演です。

1998年に東京工業大学発のベンチャーとして始まったディノは、今では22名のPHPエンジニアが在籍しています。開発者として、自分たちが欲しかったホスティングは何かと考えた時、

  • 10分以内にサーバを立ち上げる
  • 1分以内にCPUやメモリを増やす
  • 要らなくなったらすぐ捨てる

などの条件に思い至りましたが、既存のレンタルサーバにこれらすべてを満足するものがなかったと言います。ユニットホスティングでは、メモリとディスクとCPUを独立して時間単位に増減可能で、とある大人気のECサイトの例を挙げて話をしてくれました。そのECサイトはセール時には非常にアクセスが増えるのですが、WebサーバではCPUを増やすのが効果的なのに対し、DBサーバではキャッシュの効きをよくするためにメモリを増やすのが効果的です。従来のレンタルサーバではCPUとメモリがセットで増えますが、ユニットホスティングではその点に柔軟性があります。

ユニットホスティングの設計思想は、⁠短期で無精で無計画な人向け」⁠全世界に提供できるサービス」⁠利用者同士がコミュニケーションによって創造できる」の3本だと話す高原さん。最後のコミュニケーションについては「ユーザを独立したものとは考えていない」と言い、ユーザスクリプト機能によって自分のサーバを他の人が複製できたり、別の人が管理できたりする機能を一部公開中です。ゆくゆくはユーザ同士でサーバを販売したり、有償サポートを提供したりできるようにしたいと語る高原さんに、期待が膨らみます。

画像
画像

手嶋守さん「~モバイルオープンソーシャルにも対応!~ OpenPNE Ver3.6紹介」

株式会社手嶋屋の手嶋 守さんからモバイルオープンソーシャルに対応したOpenPNE Ver3.6、および次期バージョンの3.7系の展望などが紹介されました。

Open PNEはもともと株式会社手嶋屋で開発したSNSアプリケーションですが、より多くの人に使ってもらうために現在ではオープンソースとして公開されています。これには、ただサイトを作るためのツールではなく、誰でもプラットフォームを作ることができるようにしたいという思いが込められているそうです。

オープンソース化以降たくさんのユーザーに利用されていて、今では週100〜150サイトが新規設置されるほどのペースだそうです。SNSといえばmixi・GREEなど大手SNSのイメージが大きいですが、手嶋さんは「規模が小さかったり社内に限定されているようなSNSこそが本来の姿」だと思っているので、それぞれ独自のスペースを作っていって欲しいとのこと。

また、セッション中盤ではバージョン3.6を使って実際の画面を使ったデモが行われました。SNSではユーザー画面と管理画面の大きく2種類の機能がありますが、特に管理画面の使い方を強調していました。普段はユーザー画面しか見る機会はないと思いますが、管理画面を見ることで管理者がどのようにユーザー画面を構成しているのかを想像することができます。バージョン3.6では要望の多いTwitterのタイムライン表示ができるようになったり、各要素の場所や表示/非表示を簡単に切り替えられるようになっています。

OpenPNEはSymfonyをベースに開発されており、Symfonyのサンプルソースを探している開発者にもたくさん使われているそうです。OpenPNEにプラグインを導入するために、Symfonyのプラグイン機構を使用するなどフレームワークの長所を活かして開発されており、フレームワークを使ったアプリケーションのベストプラクティスとして参考にされています。

今後も機能追加を予定しており、特に大規模化・複雑化に対応していくとのこと。パフォーマンスへの対応はもちろんのこと、ID連携や外部サービスとの連携、またOpenPNE同士の連携なども考えているそうです。

質疑応答では、スマートフォン対応への質問がでましたが、携帯版の改造だけでは不十分だと考えており、3.7系ではiPhone対応が決定しており今後もマルチデバイス対応を進めていくようです。

画像
画像

高田敦史さん、新田祐介さん「大ヒットソーシャルアプリの裏側

「恋してキャバ嬢」などのソーシャルアプリを開発している、KLab株式会社の新田さんと高田さんによるお話です。

「サービスを気軽に立ち上げられるソーシャルアプリは、他のアプリとの差別化が必要不可欠」と語る新田さん。⁠キャバ嬢」という新しい分野を開拓した「恋してキャバ嬢」は大当たりしましたが、公開翌日に毎秒580ページビュー、最大で毎秒2000ページビュー以上という、普通のウェブアプリでは考えられないアクセスによって、サーバーの負荷対策を余儀なくされました。

また、しばらくすると、似たようなアプリケーションが他社からリリースされ、差別化のために機能追加が行われます。しかし企画者の持って来た企画書どおりに作ると、作り終わってから「やっぱりここはこうして」という注文が出て、手戻りが発生することもしばしば。手戻りでリリースが遅れると、それだけ機会損失になります。新田さんは、企画書が来たら「ここはこうしたほうが面白いんじゃない?」と逆に提案するようにしました。こうすることで企画の意図がよく理解できるようになり、手戻りもだいぶ減ったといいます。⁠エンジニアも、少しでいいから企画のフィールドに首を突っ込むと楽になれる」と話していました。

サーバーの負荷対策については、高田さんから説明がありました。大量のHTTPリクエストが高頻度に発生し、マスターデータベースに負荷が集中するソーシャルアプリケーションでは、なるべくデータベースに接続せず、かつデータベースへの接続時間を短くすること、キャッシュを最大限に活用すること、更新の一部をKVS(キーバリューストア)に分散することなどが有効とのお話でした。興味深かったのは、KVSとSQLでは一貫性の保証された更新は困難なので、⁠ユーザーが得をする順序で処理を行う」のがキモという話です。例えば、

  1. ユーザーの利益になる処理(体力回復など)
  2. MySQLへの更新処理(アイテム消費など)
  3. ユーザーが損をする処理(体力消費など)

の順に処理を行えば、仮に途中で処理に失敗してもユーザーは「トクをした、ラッキー」となってトラブルにはなりにくいという、現場ならではの知恵に感嘆の声が上がっていました。

なお、KLabではDSASという高負荷・大規模サイト構築用インフラ統合技術を提供しているので、⁠お気軽にご相談ください」とのことです。

画像
画像

大垣靖男さん「新しいPHPアプリケーションのテスト手法」

大垣さんによるセキュリティセッション「新しいPHPアプリケーションのテスト手法」では、バージョンアップ効率化というテーマでお話しされました。

WEBアプリの動作確認は難しく、例えばIPアドレス、HTTPヘッダ、クッキー、DB、キャッシュなど様々な条件に左右され、確認環境に関しても各ブラウザやiPhone、Androidで確認しなければならず非常に手間がかかるというお話がありました。

PHPのバージョンアップのテストのために、⁠PROVE for PHP」というものを開発されているそうです。これは、アプリケーションレベルのテストスイートであり、特にバージョンアップ時のテストに有効であるそうです。サポート予定のPHPは、4.3/5.1/5.2/5.3 です。

PROVE for PHP のアーキテクチャはZendEngineをラッピングするモジュールとして作ってあるそうです。一番のメリットは、本当に実働アプリケーションのテストが可能であることがあげられます。TRACEモード・VALIDATIONモードの2つがあり、TRACEモードでは、リクエスト・関数呼び出しなどを監視しデータを貯め、前と同じように動いてるかどうかをバリデーションすることができるそうです。

VALIDATIONモードでは引数の検証と戻り値のオーバーライドができます。このような単機能のテストはユニットテストの得意分野です。

これからの追加予定の機能として、バリデーションモードのWEBベースGUI、ソースカバレッジ分析、オーバーライド関数の追加、PROVE for ANY(powered by PHP)などがあげられました。

また、PROVE for SQL/PHP も追加機能としてあげられ、これはSQLクエリをログするシンプルなツールです。テスト用ではなくセキュリティ対策用として使用するもので、SQLクエリとPHP変数(例えば $_SESSION['user_id'])を一緒にダンプすることができるそうです。

PHP 4をまだ使い続けたい方向けに「PHP 4セキュリティ保守サービス」をやられており、パッチ数は30以上以上あり、そのうちのいくつかはリモート攻撃が可能であるものだという説明がありました。

最後に、PHP認定機構という団体の説明があり、これはこれからWeb業界に入る方向けのものだそうです。できる限り安価な仕組みを作っており、ベータ試験が今週開催予定だというお話で締められました。

画像
画像

Don Mositeさん「Scaling the Worlds Largest Social Gaming Network」

ビジネスデイ最後のセッションは世界最大のソーシャルゲーム会社であるZyngaより、共同設立者のジャスティン・ウォルドロンさん、リードエンジニアのドン・モサイテスさんからスケーリングについての発表がありました。

始めに、共同設立者のジャスティン・ウォルドロンさんから、Zyngaのサービス説明とソーシャルゲームについて説明がありました。Zyngaは全世界で最も大きなソーシャルゲームプロバイダーで、全世界で毎月2億4600万人のユーザーがプレイしています。累計すると321,000,400人(世界のインターネット人口の10%)もの人が体験しているというのですからその規模の大きさに驚きます。米国では文化の一部としてジュースのメーカーとコラボレーションしてパッケージにキャラクターが印刷されたりしているそうです。facebookの人気ゲームランキングでは上位7つまでがZyngaが開発したゲームであり、米国では確固たる地位を築いています。

続いて、リードエンジニアのドン・モサイテスさんからZyngaサービスのスケーリングについて説明がありました。

ジャスティンさんからも説明があったように、かなりのユーザー数を持っているZyngaのインフラは負荷対策も重要な課題です。ソーシャルゲームという特性から、書き込みが多く、高度にインタラクティブなアプリケーションになっています。そのため、インフラストラクチャー・デザインは、自動でスケールするウェブサーバーとしてクラウド上に構築されており、サーバーの全部分が水平方向にスケールできるようになっています。

負荷のピーク時では一週間で1000サーバを追加することもあるといいますが、それが可能なのも全自動でスケールアウトできるような設計思想によるものです。また、複雑なAPIはラッピングして抽象化したり、BitTorrentの技術を使ってデプロイするなど、複数台サーバーを運用するためのユニークな取り組みも行っているようです。

また、データのストレージとしては、一時的なデータはMemcacheへ、持続的なDBはMySQLへと保存先を使い分けているようですが、独自に「Membase」と呼ばれる持続型Memcachedの仕組みをApache 2.0 Licenceで公開しています。高速アクセスができかつ信頼性が高いKVSとして、大規模アプリケーションのパフォーマンス改善に大いに役立つだろうとのことでした。

Membaseの他にも様々なライブラリを開発しており、今後も注目度の高い会社であることは間違いありません。

画像
画像
画像

クロージング

ZyngaセッションのQ&Aから、そのまま流れでクロージングとなりました。

展示ブースもあります

会場の入り口には、スポンサー各社による展示も行われています。セッション間の休憩中などには多くの来場者が足を止め、担当者に話を聞いたり意見交換をしたりしていました。

左から、お名前.com、アシアル(株⁠⁠、⁠株)セキュアスカイ・テクノロジー、マイクロソフト⁠株⁠のブース。マイクロソフトさんは今回会場の無線LANも提供しています。

画像

ゼンド・ジャパン(株⁠⁠、⁠株)手嶋屋のブース。

画像

ニフティ⁠株⁠のブース。大きなモニター画面が来場者の目を引いていました。

画像

明日は「テックデイ」を再び随時更新でお届けします。お楽しみに!

おすすめ記事

記事・ニュース一覧