PHPでもこわくないHeroku
2015年6月27日・PHPカンファレンス福岡
山岡広幸(合同会社テンマド)
自己紹介
山岡広幸 a.k.a. @hiro_y
東京生まれ、東京育ち、東京在住
  福岡には大叔母が住んでいます
  幼いころ初めて乗った乗った飛行機は福岡行きでした
合同会社テンマド 10mado, LLC
代表社員(エンジニアリング担当)
Web系プロダクトの企画開発運用から採用サポートまで承っております
conasu https://conasu.co/
「チームのためのタスク管理ツール」
毎日のタスクをチームでこなしていく。
いろいろな職種のメンバーの間のやり取りをスムーズにします
株式会社イノベーター・ジャパン
社外CTO
東京と福岡に事務所があります
Webメディア運用から自社サービスまで
福岡オフィス
大濠公園目の前
積極採用中(エンジニアさん、ディレクターさん、アシスタントさん)
勉強会・イベントでの利用も可能ですのでお声がけください
あらためて経歴
元 ウノウ(元 Zynga Japan)
元 Digital Garage
サーバー管理歴
社内サーバーでした http://blog.kushii.net/archives/762513.html
データセンター
クラウド(IaaS ⇨ PaaS)
Heroku
PaaS #トノコト
Ruby界隈でよく使われている印象
最近のHeroku
Ruby、Python、Node.js、PHP、Java、Scala、Closure
Docker対応したりRedisの提供を開始したり
PHP on Heroku(2015年6月現在)
選べるRuntime
  PHP 5.5 / 5.6 or HHVM 3.3 / 3.5
選べるWeb server
  Apache with mod_proxy_fcgi or nginx ...
gitによるデプロイ
git push heroku master
これだけでデプロイが完了する便利さ
Composer
必要なライブラリのインストールだけでなく
拡張のインストール、PHPのRuntimeとバージョン指定まで依存性を解決
composer.lockを元にデプロイ時にインストール
パラダイムシフト
Twelve-Factor App という思想 http://12factor.net/ja/
宣言的なフォーマットの利用、依存関係の明確化と移植性の最大化、
クラウドプラットフォームへの継続的デプロイ、スケールアップの容易性
Herokuで得られるもの
サーバーセットアップ・メンテナンスからの解放
PHPのバージョンアップに追随できる喜び
豊富なAdd-onたち
Add-onの例 https://addons.heroku.com/
PostgreSQL、Redis、MySQL、MongoDBなどのデータストア
その他にメール、監視、全文検索、キャッシュ、ロギング、キューなど
Herokuで失うもの
レイテンシ(東京リージョン、ありません)
きめ細かくチューニングされたサーバー環境
AWSでサーバーを立てるのと比べると、やはりお高い
始めかた
1. Herokuのアプリケーション作成
2. PHPのbuildpackを使うように環境変数設定
3. Procfileの準備(プロセス起動ファイル)
4. タイムゾーンの設定(Herokuと、必要ならPostgreSQL)
5. 各...
Heroku 気を付けるところ
Qiitaに書きました
HerokuでPHPを使うときに気を付けるところ
  http://qiita.com/hiro_y/items/bc631a27c9701f81a4f9
開発環境
ローカルで開発環境を作っています
PHPはHomebrewで、DBはPostgres.appで http://postgresapp.com/

PHPのビルトインサーバーをgulp.jsで起動しています
開発環境の考え方
できるだけシンプルな構成にする
ビルトインサーバーできちんと動けばたいてい大丈夫
Tips: キャッシュの活用
ブラウザーキャッシュの利用(expireをきちんと設定)
その分アプリケーションサーバーへの負荷が減ります
Tips: CDNの利用
例えばCSS、JavaScript、画像の配信をCloudFront経由で

Web fontではAccess-Control-Allow-Originヘッダーの設定を忘れずに
Tips: ステージング環境の用意
環境構築が簡単なので本番環境と同等のステージング環境の用意が容易
各環境を振り分けるのに環境変数を利用すると便利(heroku config)
Tips: web以外のprocess
例えばworkerを動かしたい場合。
ParallelPrefork とか使うと便利 https://github.com/travail/php-parallel-prefork
Herokuの使いどころ
プロダクトのプロトタイプとか開発初期に利用するの、オススメ
成長したらAWSに移行するのもよいのでは(考慮した設計を…)
レイテンシが問題になるような場合は、避けたい
何はともあれ
気軽に試してみたらいいと思うよ。
Webサービスを簡単に作れる楽しさを多くの人に知ってほしい
もちろん、実際のビジネスでも使えるのでそちらもぜひ
PHPでもこわくないHeroku(PHPカンファレンス福岡2015)
PHPでもこわくないHeroku(PHPカンファレンス福岡2015)
PHPでもこわくないHeroku(PHPカンファレンス福岡2015)
Upcoming SlideShare
Loading in …5
×

PHPでもこわくないHeroku(PHPカンファレンス福岡2015)

4,302 views

Published on

PHPカンファレンス福岡2015で「PHPでこわくないHeroku」と題して発表しました

Published in: Technology

PHPでもこわくないHeroku(PHPカンファレンス福岡2015)

  1. 1. PHPでもこわくないHeroku 2015年6月27日・PHPカンファレンス福岡 山岡広幸(合同会社テンマド)
  2. 2. 自己紹介 山岡広幸 a.k.a. @hiro_y 東京生まれ、東京育ち、東京在住   福岡には大叔母が住んでいます   幼いころ初めて乗った乗った飛行機は福岡行きでした
  3. 3. 合同会社テンマド 10mado, LLC 代表社員(エンジニアリング担当) Web系プロダクトの企画開発運用から採用サポートまで承っております
  4. 4. conasu https://conasu.co/ 「チームのためのタスク管理ツール」 毎日のタスクをチームでこなしていく。 いろいろな職種のメンバーの間のやり取りをスムーズにします
  5. 5. 株式会社イノベーター・ジャパン 社外CTO 東京と福岡に事務所があります Webメディア運用から自社サービスまで
  6. 6. 福岡オフィス 大濠公園目の前 積極採用中(エンジニアさん、ディレクターさん、アシスタントさん) 勉強会・イベントでの利用も可能ですのでお声がけください
  7. 7. あらためて経歴 元 ウノウ(元 Zynga Japan) 元 Digital Garage
  8. 8. サーバー管理歴 社内サーバーでした http://blog.kushii.net/archives/762513.html データセンター クラウド(IaaS ⇨ PaaS)
  9. 9. Heroku PaaS #トノコト Ruby界隈でよく使われている印象
  10. 10. 最近のHeroku Ruby、Python、Node.js、PHP、Java、Scala、Closure Docker対応したりRedisの提供を開始したり
  11. 11. PHP on Heroku(2015年6月現在) 選べるRuntime   PHP 5.5 / 5.6 or HHVM 3.3 / 3.5 選べるWeb server   Apache with mod_proxy_fcgi or nginx with PHP-FPM
  12. 12. gitによるデプロイ git push heroku master これだけでデプロイが完了する便利さ
  13. 13. Composer 必要なライブラリのインストールだけでなく 拡張のインストール、PHPのRuntimeとバージョン指定まで依存性を解決 composer.lockを元にデプロイ時にインストール
  14. 14. パラダイムシフト Twelve-Factor App という思想 http://12factor.net/ja/ 宣言的なフォーマットの利用、依存関係の明確化と移植性の最大化、 クラウドプラットフォームへの継続的デプロイ、スケールアップの容易性
  15. 15. Herokuで得られるもの サーバーセットアップ・メンテナンスからの解放 PHPのバージョンアップに追随できる喜び 豊富なAdd-onたち
  16. 16. Add-onの例 https://addons.heroku.com/ PostgreSQL、Redis、MySQL、MongoDBなどのデータストア その他にメール、監視、全文検索、キャッシュ、ロギング、キューなど
  17. 17. Herokuで失うもの レイテンシ(東京リージョン、ありません) きめ細かくチューニングされたサーバー環境 AWSでサーバーを立てるのと比べると、やはりお高い
  18. 18. 始めかた 1. Herokuのアプリケーション作成 2. PHPのbuildpackを使うように環境変数設定 3. Procfileの準備(プロセス起動ファイル) 4. タイムゾーンの設定(Herokuと、必要ならPostgreSQL) 5. 各種Add-onの設定 6. git pushしてデプロイ 7. 各種通知(ログや監視など)の設定
  19. 19. Heroku 気を付けるところ Qiitaに書きました HerokuでPHPを使うときに気を付けるところ   http://qiita.com/hiro_y/items/bc631a27c9701f81a4f9
  20. 20. 開発環境 ローカルで開発環境を作っています PHPはHomebrewで、DBはPostgres.appで http://postgresapp.com/
 PHPのビルトインサーバーをgulp.jsで起動しています
  21. 21. 開発環境の考え方 できるだけシンプルな構成にする ビルトインサーバーできちんと動けばたいてい大丈夫
  22. 22. Tips: キャッシュの活用 ブラウザーキャッシュの利用(expireをきちんと設定) その分アプリケーションサーバーへの負荷が減ります
  23. 23. Tips: CDNの利用 例えばCSS、JavaScript、画像の配信をCloudFront経由で
 Web fontではAccess-Control-Allow-Originヘッダーの設定を忘れずに
  24. 24. Tips: ステージング環境の用意 環境構築が簡単なので本番環境と同等のステージング環境の用意が容易 各環境を振り分けるのに環境変数を利用すると便利(heroku config)
  25. 25. Tips: web以外のprocess 例えばworkerを動かしたい場合。 ParallelPrefork とか使うと便利 https://github.com/travail/php-parallel-prefork
  26. 26. Herokuの使いどころ プロダクトのプロトタイプとか開発初期に利用するの、オススメ 成長したらAWSに移行するのもよいのでは(考慮した設計を…) レイテンシが問題になるような場合は、避けたい
  27. 27. 何はともあれ 気軽に試してみたらいいと思うよ。 Webサービスを簡単に作れる楽しさを多くの人に知ってほしい もちろん、実際のビジネスでも使えるのでそちらもぜひ

×