HerokuでPHPのココが便利 #phpcondo2016 #heroku #php
自己紹介
合同会社テンマド
- Webサイトやサービスの制作
- 技術顧問・コンサルティング、経営サポート
- 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
に従う
使える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のバージョン管理
- バージョンアップ、面倒くさくないですか
- 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からの操作も可能。
メンテナンスモードの切り替え
でメンテナンスモードがONになり、環境ごとに指定されたURLの内容を表示できます。Amazon S3から静的ファイルとして配信するのがオススメ。off
指定で元の状態に。
Twelve-Factor Appの思想に則ること
Terraform便利
- Terraform by HashiCorp
- AWSやGoogle Cloud、Microsoft Azureなど、様々なクラウドプラットフォームのリソースを一元的に定義・管理できるツール
- Herokuもプロバイダーとして使用できる
- 設定のコード化
- configとか、add-onとか、ドメイン名とか
何より簡単に始められること
- Herokuのアカウントを作る
- applicationの名前を決めて作る
git push
する
公開にいたるまでのステップが少ないこと、PostgreSQLやRedisなどのadd-onが充実していること。すぐに使い始められるメリットの大きさ。
ご静聴ありがとうございました