0 HerokuでPHPのココが便利 #phpcondo2016 #heroku #php みんなに公開
自己紹介
- 山岡広幸 @hiro_y(合同会社テンマド・代表社員)
- おもにPHPとかNode.jsとか書く人
- 大学文学部卒 ➡ SIer ➡ ウノウ ➡ Zynga Japan ➡ デジタルガレージ ➡ トイロ ➡ フリー ➡ 会社設立
合同会社テンマド
- Webサイトやサービスの制作
- 技術顧問・コンサルティング、経営サポート
- 技術顧問: 株式会社アスクリード
- 社外CTO: 株式会社イノベーター・ジャパン など
- Webサービス開発・運営
📝 mimemo
書く・読む・見せるをお手軽に。
mimemoはゆるく使えるテキスト置き場です。
- https://mimemo.io
- Markdown記法
- 個人メモに使ったりテキスト共有に使ったり
- 「あいことば」設定して秘密のメモを見せたり共同編集したり
- もちろんブログのようにも使えます
- powered by Heroku with Node.js (Express)
🐬 iruca
オフィスに誰がいるか一目瞭然。
irucaはログイン不要の在席管理ツールです。
- https://iruca.co
- 無料・ログイン不要、Slack連携あり
- リモート勤務の多い会社などにオススメ
- 行動予定表としてご利用されているケースも
- powered by Heroku with Node.js (Express)
🍆 conasu
複数案件かけ持ちしていても安心。
conasuはチームで使うタスク管理ツールです。
- https://conasu.co
- チームでタスクのやり取りをするツール
- Slackやidobata、HipChatへの通知機能あり
- 複数プロジェクトのタスクを一覧で見られるので今日やることが一目瞭然
- powered by Heroku with PHP (Silex)
- Web Dyno x1 + Worker Dyno x1
Heroku
- https://www.heroku.com
- PaaS (Platform as a Service)
- Node.js / Ruby / Java / PHP / Python / Go / Scala / Closure
- PHPの正式サポートは2014年7月から
Herokuの特徴
- アプリケーションを作成して
git push
すればdeployできる - Docker 🐳 のコンテナごとdeployすることもできるようになった
- そもそもHerokuがDynoというコンテナ単位で動いている
- GitHubやDropboxなどと連携しての自動deployもできる
Herokuの弱点
レイテンシ…でしたがHeroku EnterpriseでPrivate Spacesに東京リージョンが!(ただしお高い)
$ heroku regions
ID Location Runtime
───────── ─────────────────────── ──────────────
eu Europe Common Runtime
us United States Common Runtime
frankfurt Frankfurt, Germany Private Spaces
oregon Oregon, United States Private Spaces
tokyo Tokyo, Japan Private Spaces
virginia Virginia, United States Private Spaces
きめ細かなサーバー設定とかは苦手。あと価格はやはりAWS単体より高い。
HerokuでのPHPの使い方
composer.json
があればPHPアプリケーションとみなされるpackage.json
とかもある場合は明示的にbuildpackを指定
composer.json
に記述されたPHPの環境が用意される- 拡張(extension)が必要な場合も
composer.json
に書けば入る - バージョンは
composer.lock
に従う
- 拡張(extension)が必要な場合も
使えるPHP拡張(7の場合)
- 最初から入っている
- bzip2 / curl / fpm / pdo_mysql / mysqli / opcache / openssl / pgsql / pdo_pgsql / readline / sockets / zip / zlib
- composer.jsonで指定すれば入る
- bcmath / calendar / exif / ftp / gd / gmp / gettext / imap / intl / ldap / mbstring / pcntl / shmop / soap / sqlite3 / pdo_sqlite / xmlrpc / xsl
- apcu / blackfire / imagick / mongodb / newrelic / oauth
PHPサポートの歴史(1)
- 2014年7月15日
- The new PHP on Heroku now Generally Available | Heroku
- PHPの正式サポート開始。
- Updates to support the latest PHP and HHVM versions including PHP 5.5.14 and 5.6.0RC2;
- 2014年9月8日
- PHP 5.6.0 and miscellaneous PHP updates | Heroku Dev Center
- PHP 5.6.0が使えるようになると同時にデフォルトのランタイムに
- ちなみにPHP 5.6.0のリリースは8月28日
PHPサポートの歴史(2)
- 2015年7月10日
- PHP 7 beta now available on Heroku | Heroku Dev Center
- ちなみにPHP 7.0.0 Beta 1のリリースは7月10日(同日)
- 2015年12月11日
- PHP 7 now available on Heroku | Heroku Dev Center
- PHP 7.0.0正式版が使えるようになると同時にデフォルトランタイムに
- ちなみにPHP 7.0.0正式版リリースは12月3日
PHPのバージョン管理
- バージョンアップ、面倒くさくないですか
- 7.0.4: 2016年3月3日
- 7.0.3: 2016年2月4日
- 7.0.2: 2016年1月7日
- 7.0.1: 2015年12月17日
- 7.0.0: 2015年12月3日
- Herokuならdeployするタイミングで勝手に上がります
PHPのバージョン指定例
"require": {
"php": "^5.6.0"
}
composer.jsonPHP 5系の最新版、ただし5.6.0以上のバージョン
"require": {
"php": "~5.6.0"
}
composer.jsonPHP 5.6系の最新版。~5.5.0
と書くと5.5系の最新版が入る。
スケールの調整が簡単なこと
Dashboardで簡単にスケールアップやスケールアウトの設定ができます。もちろんAPIからの操作も可能。
メンテナンスモードの切り替え
$ heroku maintenance:on
でメンテナンスモードがONになり、環境ごとに指定されたURLの内容を表示できます。Amazon S3から静的ファイルとして配信するのがオススメ。off
指定で元の状態に。
Twelve-Factor Appの思想に則ること
- The Twelve-Factor App (日本語訳)
- 移植性、要するに身軽に作るということ
- Herokuで動くように作る=Twelve-Factor Appの思想に則ること
- 結果、将来的なAWSなどへの引っ越しも楽に
- 各IaaSでDockerでdeployできるようになってきている
- 参考: diary/2016/03/30/インフラの引っ越しを行いました - docs.esa.io
Terraform便利
- Terraform by HashiCorp
- AWSやGoogle Cloud、Microsoft Azureなど、様々なクラウドプラットフォームのリソースを一元的に定義・管理できるツール
- Herokuもプロバイダーとして使用できる
- 設定のコード化
- configとか、add-onとか、ドメイン名とか
何より簡単に始められること
- Herokuのアカウントを作る
- applicationの名前を決めて作る
git push
する
公開にいたるまでのステップが少ないこと、PostgreSQLやRedisなどのadd-onが充実していること。すぐに使い始められるメリットの大きさ。
コメント(0)