大阪産業創造館で4/2に開催されたphp conferenceに行ってきました。
東京では年に1度行われているそうですが、関西での開催は今回が初めてです。
関西では数百人を集めるIT系イベントは非常に少ないです。
Web系やテクノロジーの先端はやはり首都東京が中心なので、大阪含む地方は技術者の数も少なくなかなか盛り上がらないという事情があるのだと思います。
200人収容の産業創造館イベント会場ですが、しかしこのイベントは会場の9割くらい埋まっていました。
もしかしたら関西でもこれくらい大きなイベントがどんどん盛り上がってくるかも知れませんね!
「PHPとのつきあいかた」高木 正弘さん
phpのドキュメントなどで、翻訳などの貢献をされている方です。
・phpに触れてはじめに感じたのが、ドキュメントが英語ばかりでとまどった。
・そこで自分で日本語翻訳をはじめた。これがphpと積極的に関わるようになったきっかけ。
・今までphpの開発をばりばりこなしてきたワケではない。
・英語がバリバリできるわけでもない。
→ それでも貢献できるフィールドはある。
日本語のマニュアルがおかしいところがあるので、それを修正する作業など。
例えば、誤字・脱字のチェック。意味をなさない日本語を校正したり。
なので積極的にコミュニティにかかわっていって欲しい。
・本業で翻訳をやっているワケではない。翻訳作業は出社前にすることが多い。
なぜ朝方に作業するのか?
→ 時差の関係で欧米ではその時間帯にドキュメントのコミットが多いので。
週に1日か2日。1時間~2時間くらい。
会場に来ている参加者にアンケートしていました。
「phpを触ったのは仕事がきっかけ」・・・50%くらい
「初めて覚えた言語がphpである」・・・数人
「phpのドキュメントの修正などでコミュニティに関わったことがある」・・・10人くらい。
「コミュニティに関わったことは無いが、phpのドキュメントがおかしいと気づいたことがある」・・・数人
仕事でphp使っている人多いですね。だけど初めての言語というワケではないので、IT業界の経験キャリアはそこそこ積んでいる人が多いということでしょうか。
「ソーシャルゲームとクラウドとPHPについて」個々一番さん(Zynga Japan)
・Zyngaとは:CityVille、FarmVille、MafiaWarなどfacebookアプリの大手
・Zynga Japanは元ウノウ株式会社(フォト蔵とか「まちつく」などを作っている)
・Zynga Japan
まちつく!mixi版がヒットした。1日で10万人単位のユーザ登録が一週間以上続いた。
物理的なサーバを持っている。500台くらい。5人くらいで回している。その人数で特には困っていない。
Zynga本社は、AWS(Amazon Web Services)のヘビーユーザ。EC2、EBS、S3など
・kokoichiさんは共有ライブラリを作ったり、サーバー管理とかしている。
・クラウドを使って良かった点:
人的コストが下がった。
ハードウェア購入の時間などが省けた。
・EC2を使うコツは、「自分でクラウドを作るつもりで構築する意識をもつ」。
・自動化にRightScaleとPuppetを使っている。
RightScale・・・Amazon EC2などのIaaSサービスのフロントエンドとして、
クラウド環境の構築や監視、自動スケーリング、移行などが行えるサービス。
Puppet・・・Rubyでできた,UNIX系OSのシステム管理を自動で行うためのツール
・サーバーを追加して起動したらすぐにサービスが開始できるように工夫をしている。
・冗長化にDNSラウンドロビンを使っている。
・ソーシャルゲームの特徴
- アプリと行っても、その中はソース中でひたすらAPIをたたくことが多い。
- 負荷との戦い。負荷をいかに軽くするかに神経を使う。
・APIを使うときの注意点
- 必ず応答タイムアウトを設定する。3秒応答がなければタイムアウトとする。それ以上は待てない。
- エラーが起きたときにどう表示するか。「エラーが発生したため現在アクセスできません」ではいけない。
表示できないところだけ表示できるようにし、部分的にでも動作させられるようにする。
・スケールアウトのコツ
障害が発生したとき、全ユーザが使えなくなっちゃうのを防ぐ。
ユーザID単位でデータを分割すると、1つのサーバー障害が一部のユーザのみの限定的な障害にとどめられる。
全ユーザが使う共通データを1つに集約してしまった場合、そのサーバがダウンすると全ユーザが使えなくなる。
・PHPは5.3+Apacheを使っている。
Synfony使っている。
ただしPHP5.2でも動くようなコードを推奨している。
・GAEがPHP対応したら?
→ 人的コストが下がる。1人で大きなサービスが作れる時代が来そうな気がする。
・SWFeditorやmingを使っている。
SWFeditor・・・SWF ファイル内のコンテンツを入れ替えるツール
ming・・・FLASHムービーを生成するためのライブラリの名称
・クラウドは人的コストを下げる。
たとえば、サーバ運用を外部に投げた場合より責任の所在が明確になる。
多量のトラフィックをさばくためには、普通にアプリケーションを組むだけではダメで、トランザクションの入り口から出口までを俯瞰的に見通してボトルネックとなる箇所を突き止め、過負荷に耐えられるようにいろいろなフェールセーフなり逃げ道なりを作っておく必要があります。
そういう意味で、高トラフィック対策というのは裏方的な仕事ではありながら高い技術力を必要とするのですが、今回聞いたZyngaのノウハウも例にもれずすごいと思いました。
知らない単語がいっぱいでてきたこともあり、話の内容はあまり理解できなかったです。
実際に自分が構築する場面があるかどうかというと微妙ですが、仕組みだけは自分としても理解しておきたいところです。
Apacheログの収集にスプラグ?を使っているという話がありましたがスプラグって何?調べたけど分かりませんでした。
nginxて名前は初めて知りましたが、Webサーバーなんですね。
「クラウドはもう目の前! PHP on Windows Azure ~PHPをクラウドにどう載せる? どう使う? ~」物江修さん(日本マイクロソフト株式会社)
・Windows Azureとは?
Microsoftのクラウドサービス。
会場では、WindowsAzure 聞いた事ない人→20人くらい。
・AzureシリーズにWindows Azure、SQL Azure 、 WindowsAzure AppFabricがある。
・Azureには3つのタイプがある。
- Webロール
IIS 7.xが使える。Windows Server2008で。
・Workerロール
Webサーバーが入らないインスタンス。バッチを動かすとかの用途に使う。
Apache、Tomcatを入れることも可能。
・VMロール
自分のローカルで作ったVHDを置くことが出来る。VHDとは、Virtual HardDisk imageの略。
VMイメージファイルのこと?
VMロールはリモートデスクトップで接続することが出来る。
・Azureのストレージサービス
・BLOB Binary Learge Object → バイナリーストアのこと。
ブロック(4MB単位)とページ(512b)がある。
ファイルなどのバイナリデータの保存に使う。
・テーブル
キーバリュー型のテーブル。BLOBより細かいデータを扱う。
・Eclipse用のツールがある。(Windows Azure Tools for Eclipse)
PDTがベース。これを使えばEclipseからデプロイ出来る。
・Windows Azure Companionを使って、WordPressなどののCMSを運用することができる。
デモを見せてもらいました。
Eclipse用のAzureプラグインをインストールして、PHPの開発ができます。
「スマートフォンサイトの作成術」大川洋一さん(おちゃのこネット株式会社)
ショッピングカート付きネットショップ開業サービスのおちゃのこネットの方です。
スマートフォン版をリリースしたのでそのノウハウを伝授していただきました。
・システム構成・・・CentOS、Apache、PostgreSQL
・WebKitとは・・・Appleが中心となって開発しているブラウザのエンジン。
Safari、Chrome、BlackBerryで使用されている。
・ビューポートとは・・・矩形の領域。コンテンツを表示する領域。
スマートフォンでは画面の幅に合わせて、コンテンツの幅を自動的にに合わせる必要がある。
ビューポートを指定しない場合のデフォルトは980pxになる。
・次のページに遷移するのではなく、Ajaxライクの追加読み込みのボタンを作ってページの下にコンテンツを追加読み込みしていくようにする。
・Ajaxの通信は軽量だが、もっと表示を高速にするためにAjaxで取得したデータをローカルでキャッシュしている。
・キャッシュする手段について
- Cookie・・・蓄積できるデータのサイズは小さい。
- Web Storage・・・HTML5のAPI
Cookieに代わるデータ蓄積手段。iPhoneの場合はサイズ5MB。文字列のみしか蓄積できない。
セッションストレージとローカルストレージの2種類ある。
・画像について
高解像度のスマートフォン(iPhone4など)では、80pxの画像を160pxにて表示されることもある。
もともと80pxで作られた画像を表示する場合は、画が荒くなってしまうので気をつける。
・HTML5のinput属性、tel,number,urlなどを指定すると、iPhoneのソフトキーボードが最適化される
・HTML5のplaceholderを使うと、inputボックスの中に初期値文字列を簡単に入れられる。
・orientationchangeイベントを使うとiPhoneの傾きを検出できる。これで縦向き/横向きを判定する。
・iPhoneは横320px縦480pxで表示させている。
・YouTube動画は、埋め込みコードをそのまま貼り付ければ動く。
会場アンケートでは、「スマートフォン使っている人」が80%くらいいました。IT業界での普及率はすごいですね。
E-Mobileなんかも局所集中が起きて繋がりにくくなったりしてました。
「スマートフォン時代のWebシステム」熊倉洋介さん(株式会社フィードテイラー)
・iPhoneアプリの作成実績60以上の会社。
・「そら案内」アプリを作っている。
- 公開1ヶ月半で30万ダウンロード。
- 日本気象協会と提携しており、独自データを送ってもらっている。
- GPSに対応している。現在地の天気を取得可能。
- 花粉情報取得可能。
- JSON作成用のサーバを用意し、JSONデータでiPhoneとサーバー間を受渡している。
- iPhoneからのデータ取得は1リクエストあたり100msー800msくらい。
- 1日に35万リクエストくらいをさばく。
- ピーク時は15000リクエスト/hour。7:00-8:00、22:00-24:00がピーク。
- さくらのVPSで稼動している。
・「SyncBoard」アプリを作っている。
- サーバ連携型のドキュメント共有アプリケーション。
- オンラインストレージ、セキュリティ、監視などを重視して作ったアプリ。
- サーバはCentOS、Apache、MySQL、PHP。
・RESTアーキテクチャとは:
- HTTP
- Resource 場所、プログラムなど、URL
- Method GET、POST、PUT、DELETE
- Status Code 200OK、404NotFound 500Internal Server Error
iPhoneのノウハウをたくさんもっている方の貴重なプレゼンでした。
さくらのVPSは安定性抜群て言っていました。
phpカンファレンス全体としては、テーマがクラウドということもあって、php言語そのものに触れたプレゼンは無く、phpを使っているサービスについて全体的に紹介するというものが多かったです。
関西でも数百人もの人がphpをキーワードにして集まるのか、と少し驚きました。
すごい技術をもった人がいっぱいいるし負けてられないから、自分もがんばらないとダメですね。いい刺激になりました。