「Heroku社エバンジェリスト相澤氏が語るDay1「What is Heroku?」APC勉強会#5」に参加してきました
全3回を予定しているHeroku勉強会の第1回目となります。アプリケーション開発者の生産性を最大化するプラットフォームクラウドの概要と機能について、米国Heroku, Inc.の相澤歩さんにお話頂きました。
Herokuとは
プロフェッショナルなアプリケーション開発者のための世界で最も先進的なプラットフォーム・クラウド
Herokuの特徴
- サーバーを意識しなくて良い
- あらゆる言語・フレームワークを利用可能
- アプリケーションの状況を全て可視化
- 信頼と実績
サーバーを意識しなくて良い
- 普通はサーバーの構成や調達方法を考えなくてはいけない
- Herokuはそれらを考える必要がない
Gitを使ったデプロイ
- Herokuがこの方式を導入した2008年くらいはバージョン管理環境とデプロイ環境を同じにするのは珍しかった
- バージョン管理はみんな使っているのでHerokuはみんな使える
- Herokuは全てのデプロイを保持している
- 全てのバージョンの復元が可能
継続的デプロイ
- Jenkins、Travis CIなどとの連携も可能
- Gitを使っているからインテグレーションが簡単にできる
アプリケーションのスケールが容易
- サーバーが1台だと同時アクセス数が限られる
- キャパシティを考えて、サーバーの構成を設計しなければいけない
- Herokuであればその必要がない
- 管理画面のスライドバーを動かすだけでスペックを変えることができる
- スケールはAWSでもできるが、他のアプリケーションサーバと矛盾なく設定するのはそれなりのスキルが必要
- アイディアが受けるかどうか分からなくてもとりあえずリリースして、その後で自由にスケールすることができる
アドオン
あらゆる言語・フレームワークを利用可能
- Ruby、Java、Python、PHP、Clojure、node.jsに対応している
- 言語のセキュリティ脆弱性の対応も全てHerokuで行っている
- Ubuntu上で稼働するプログラミング環境を立ち上げることもできる
- しかし公式サポートはしていない
アプリケーションの状況を全て可視化
- 一連の動きがログストリームというところに入っている
- アプリケーション、データベース、ルータのログを全て一連のログで出力している
- フィルタリングすれば見たいところで見られる
可視化のためのアドオン
New Relic
- アプリケーションのパフォーマンスを測定
- 何がパフォーマンスのボトルネックかを見ることができる
Librato
- プラットフォーム(メモリの状況、コネクションがどれくらい張られているかなど)の情報が見られる
- 購入履歴など独自の情報を可視化することも可能
Papertrail
- ログを貯めることができる
- 適当なタイミングでアーカイブも行ってくれる
- こういうツールは地味だが作るのが大変
- アドオンを使えば簡単に実現できる
デベロッパーはプロダクトの価値創造に集中することができる
信頼と実績
Herokuをはじめよう
書籍『プロフェッショナルのための実践Heroku入門』
- 本番として使うTipsはあまりWeb上にはないが本書には書いてある
- トラブルシューティングも書いてある
-
- 何かあればすぐにレポートが上がってくる
- 対応状況も分かる
- ここに何も書いていなければアプリケーションの問題と分かる
-
- 問い合わせチケットを投げることができる
- サポーターは世界で10人弱いる
- 色んな時差に対応したサポーターがいる