Enviar pesquisa
Carregar
start Heroku
•
Transferir como PPTX, PDF
•
12 gostaram
•
2,853 visualizações
Hazuki Wakabayashi
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 41
Baixar agora
Recomendados
Ansible+Docker
Ansible+Docker
正太 佐久本
Cloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみた
i_yudai
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructure
i_yudai
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Shunji Konishi
Ansible quickstart
Ansible quickstart
Hideki Saito
Pycon2014 django performance
Pycon2014 django performance
hirokiky
Wordpress on heroku
Wordpress on heroku
Kokoro Sato
Recomendados
Ansible+Docker
Ansible+Docker
正太 佐久本
Cloud Foundry Admin UI v2を使ってみた
Cloud Foundry Admin UI v2を使ってみた
i_yudai
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
BOSHで始めるImmutable Infrastructure
BOSHで始めるImmutable Infrastructure
i_yudai
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Shunji Konishi
Ansible quickstart
Ansible quickstart
Hideki Saito
Pycon2014 django performance
Pycon2014 django performance
hirokiky
Wordpress on heroku
Wordpress on heroku
Kokoro Sato
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
CubedKachi
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
akira6592
ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
Niigata.pm #1
Niigata.pm #1
hayajo Imai
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼう
i_yudai
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
Pyramid
Pyramid
Atsushi Odagiri
Rancher command line interface
Rancher command line interface
Masahito Zembutsu
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
Kazuto Kusama
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
Kazuhiro Hara
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
i_yudai
ゆるふわAzure Functions
ゆるふわAzure Functions
Keiji Kamebuchi
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
YASUKAZU NAGATOMI
Dockerで開発環境をデリバる
Dockerで開発環境をデリバる
Daigou Harada
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
Kazuhide Okamura
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
Mais conteúdo relacionado
Mais procurados
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
CubedKachi
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
akira6592
ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
Niigata.pm #1
Niigata.pm #1
hayajo Imai
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼう
i_yudai
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
Pyramid
Pyramid
Atsushi Odagiri
Rancher command line interface
Rancher command line interface
Masahito Zembutsu
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
Kazuto Kusama
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
Kazuhiro Hara
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
i_yudai
ゆるふわAzure Functions
ゆるふわAzure Functions
Keiji Kamebuchi
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
YASUKAZU NAGATOMI
Dockerで開発環境をデリバる
Dockerで開発環境をデリバる
Daigou Harada
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
Kazuhide Okamura
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
Mais procurados
(20)
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
実は怖くないDevOps
実は怖くないDevOps
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
ChefとPuppetの比較
ChefとPuppetの比較
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Niigata.pm #1
Niigata.pm #1
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼう
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Pyramid
Pyramid
Rancher command line interface
Rancher command line interface
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
ゆるふわAzure Functions
ゆるふわAzure Functions
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
Dockerで開発環境をデリバる
Dockerで開発環境をデリバる
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Destaque
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
T pryor a day in the life
T pryor a day in the life
tpryorp3
Unearthing seed money
Unearthing seed money
Colorado State Library
Larvicidal activity of mousticide in rice husk and wettable powder formulatio...
Larvicidal activity of mousticide in rice husk and wettable powder formulatio...
entogenex
Ipa kls 5 sd (maryanto)
Ipa kls 5 sd (maryanto)
MOH. SHOFI'I
Apie atleidima
Apie atleidima
zigius
Str8ts Weekly Extreme #44 - Solution
Str8ts Weekly Extreme #44 - Solution
SlowThinker
Nextwavevending-naturals2go school-version
Nextwavevending-naturals2go school-version
Viroo Mirji
Movie maker 002
Movie maker 002
Georgia Bicos
Origins of our solar system
Origins of our solar system
brenzac15
DIN: Danish Design-driven Innovation
DIN: Danish Design-driven Innovation
Marcin Monko
Coearch Survey 2010
Coearch Survey 2010
Jeevan George
16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update
Noel Waterman
File Processing - Process Execution Solution
File Processing - Process Execution Solution
Abimael Desales López
Str8ts: Solution to Weekly Extreme Str8ts #24
Str8ts: Solution to Weekly Extreme Str8ts #24
SlowThinker
Apr 2012 1 ID Fort Riley Monthly News Update
Apr 2012 1 ID Fort Riley Monthly News Update
Noel Waterman
Benfits of RSC membership
Benfits of RSC membership
Team MyRSC
Diabolic Str8ts #4
Diabolic Str8ts #4
SlowThinker
Str8ts Weekly Extreme #47 - Solution
Str8ts Weekly Extreme #47 - Solution
SlowThinker
Destaque
(20)
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
T pryor a day in the life
T pryor a day in the life
Unearthing seed money
Unearthing seed money
Larvicidal activity of mousticide in rice husk and wettable powder formulatio...
Larvicidal activity of mousticide in rice husk and wettable powder formulatio...
Ipa kls 5 sd (maryanto)
Ipa kls 5 sd (maryanto)
Apie atleidima
Apie atleidima
Str8ts Weekly Extreme #44 - Solution
Str8ts Weekly Extreme #44 - Solution
Nextwavevending-naturals2go school-version
Nextwavevending-naturals2go school-version
Movie maker 002
Movie maker 002
Origins of our solar system
Origins of our solar system
DIN: Danish Design-driven Innovation
DIN: Danish Design-driven Innovation
Coearch Survey 2010
Coearch Survey 2010
16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update
File Processing - Process Execution Solution
File Processing - Process Execution Solution
Str8ts: Solution to Weekly Extreme Str8ts #24
Str8ts: Solution to Weekly Extreme Str8ts #24
Apr 2012 1 ID Fort Riley Monthly News Update
Apr 2012 1 ID Fort Riley Monthly News Update
Benfits of RSC membership
Benfits of RSC membership
Diabolic Str8ts #4
Diabolic Str8ts #4
Str8ts Weekly Extreme #47 - Solution
Str8ts Weekly Extreme #47 - Solution
Semelhante a start Heroku
Heroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみた
Nozomu KURASAWA
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
Satomi Tsujita
Sinatra and heroku for mac
Sinatra and heroku for mac
Naoyuki Mitsuboshi
debexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするには
kenhys
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
Kazuhiro Nishiyama
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Mori Shingo
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
Salesforce Developers Japan
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
Dockerハンズオン
Dockerハンズオン
啓介 大橋
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
Docker実践入門
Docker実践入門
hiro nemu
Capistrano
Capistrano
Yasuharu Fukuda
はじめてのMercurial/Bitbucket その2
はじめてのMercurial/Bitbucket その2
kenjis
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
Hitoshi Kurokawa
Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!
Shinnosuke Furuya
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
怖いRails
怖いRails
Yutaka Kinjyo
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
Nobuhiro Iwamatsu
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Semelhante a start Heroku
(20)
Heroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみた
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
Sinatra and heroku for mac
Sinatra and heroku for mac
debexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするには
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Dockerハンズオン
Dockerハンズオン
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
Docker実践入門
Docker実践入門
Capistrano
Capistrano
はじめてのMercurial/Bitbucket その2
はじめてのMercurial/Bitbucket その2
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
怖いRails
怖いRails
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Último
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(8)
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
start Heroku
1.
2.
おさらい…
3.
“Heroku”ってどう読むの? 発音は「her-OH-koo」 二文字目にアクセントを置いて、「ヘロク」もしくは「ハオク」と発音しま
す。
4.
“Heroku”ってどういう意味? Hero(ヒーロー) + haiku(俳句)の造語
「Rubyの開発者をヒーローにする」というコンセプトのもとに命名
5.
どんなサービス? Webアプリケーションのホスティングサービス 最近流行のPaaS(Platform as
a Service) ※参考URL http://ja.wikipedia.org/wiki/PaaS
6.
ここがすごい
7.
Herrokの提唱
公開までの手間がいらない アイデア の実現 Herokuに展開 ⇓ コーディン インターネットに公 グ 開
8.
git push heroku
アイデア ✗ の実現 デプロイ作業 ✗ サーバの購入、 構築、設定 運用 コーディング 拡張
9.
まとめ
スピードと柔軟性 Gitによ るデプロ イ スピー ド Herokuの add-ons 強み 豊富な機 スケーラ 能 ビリティ
10.
アプリケーションを公開
する
11.
アプリケーション公開までの
手順 ローカルでアプリ git でHerokuの の 公開 リポジトリにpush 作成/変更
12.
必要なもの
Ruby rvm(使ったほうが便利) Git ★必須 Herokuアカウント Herokuで公開するアプリケーション (今回はRubyアプリケーション)
13.
heroku gemのインストール
$ gem install bundler $ bundle init $ vim Gemfile ←Gemfileに使用するgemsを記述 source http://rubygems.org gem ‘heroku’ gem ‘sinatra’ bundlerでGemfileのgemsをアプリケーション …その他必要なgem 以下の/vendor/bundleにインストール ↓ $ bundler install –path /vendor/bundle $ vim .gitignore ←herokuの容量がもったいないので gemsはherokuのリポジトリにpushしない vendor/bundle
14.
アプリケーションの作成
省略…
15.
Herokuにアプリケーションを作成
する $ heroku create アプリ名 または $ heroku create アプリケーション名を変更をする $ heroku rename 新しいアプリ名
16.
デプロイ(初回)
Herokuにマスターブランチを作成する $ git push heroku master DBを使用する場合、HerokuのDBにマイグレーションを行う $ heroku db:migrate $ heroku db:push <db url>
17.
デプロイ(変更を反映) Herokuに変更を反映させる
$ git push heroku
18.
ブラウザ起動 $ bundle
exec heroku open
19.
標準(無料)の範囲 App
1アカウントにつきいくつ作成できるのか不明 容量 100MBまで(git、gem関連以外)10MB以下を推奨 プロセス 1dyno リクエス 1dyno(1プロセス)につき10-50リクエスト(秒) ト メモリ 1dynoにつき最大300MBまで DB PostgreSQL 5MB Ruby 1.9.2 ログ 1500行まで Add-ons 最低グレードは無料(使用するには登録が必要)
20.
便利な機能
21.
環境変数
環境変数を設定する $ bundle exec heroku config:add PASSWORD=“password” stackコマンドで切り替える 環境変数を参照する ENV[‘PASSWORD’] 設定した環境変数一覧を見る bundle exec heroku config
22.
メンテナンスモード
メンテナンスモードにする stackコマンドで切り替える $ bundle exec heroku maintenance:on 環境変数を参照する メンテナンスモードを解除する $ bundle exec heroku maintenance:off
23.
ログ
環境変数を参照する $ bundle exec heroku logs メンテナンスモードを解除する $ bundle exec heroku logs –n 200 $ bundle exec heroku logs --tail
24.
チーム開発
プロジェクトにメンバーを追加する 環境変数を参照する $ bundle exec heroku sharing:add xxx@xxx.com 課金アカウントを変更する $ bundle exec heroku sharing:transfer xxx@xxx.com
25.
add-ons
26.
アドオンを使用する $ bundle exec
heroku addons:add アドオン名:グレード名
27.
便利なアドオン
28.
cron $ bundle exec
heroku addons:add cron:daily
29.
httpsアクセス $ bundle exec
heroku addons:add ssl:piggyback
30.
カスタムドメイン $ bundle exec
heroku addons:add custom_domains $ bundle exec heroku domains:add xxx.xxx.com
31.
DBバックアップ(herokuサーバー
上) $ bundle exec heroku addons:add pgbackups $ bundle exec heroku pgbackup:capture $ bundle exec heroku pgbackups $ bundle exec pgbackups:restore バックアップファイル名
32.
plugins
33.
プラグインを使用する $ bundle exec
heroku plugins:install gitリポジトリのパス
34.
プラグインのカタログ
35.
プラグインのカタログを利用す
る Herocutter http://herocutter.heroku.com/
36.
Herocutterプラグイン
$ bundle exec heroku plugins:install git://github.com/hone/heroku_herocutter.git インストールが簡単になる $ bundle exec heroku plugins:install git://github.com/hone/heroku_colorize_console.git ↓ $ bundle exec heroku plugins:install colorize_console
37.
HeroはRuby開発者だけじゃない..
38.
対応環境 Ruby(デフォルト) Node.JS
Clojure(Lisp) Java Python Scala
39.
stack
Stack一覧を確認する aspen-mri-1.8.6 bamboo-ree-1.8.7 Ruby デフォルト → bamboo-mri-1.9.2 * cedar (beta) その他
40.
動作環境を切り替える アプリケーション作成時にオプションを指定する $ bundle
exec heroku create アプリ名 –stack cedar stackコマンドで切り替える $ bundle exec heroku stack:migrate ceder Pushした時に切り替わる $ git push heroku
41.
http://devcenter.heroku.com/
Notas do Editor
本日のテーマはRuby開発者であれば誰もが触ったことがあろうHerokuについてのお話です。
まずはおさらいHerokuって?
一部にハーオークーとよぶ人もいるので、呼び方は人それぞれ。気になる人はyoutubeなどでネイティブの発音を聞いてみてください。
なぜ”俳句”なのかはよくわかりませんが、Rubyのふるさとの日本文化に敬意をあらわして、というコンセプトからHerokuのサービスには日本語や日本的なモチーフが多く使用されています。それらについては日本語の意味をなしていないため、特別な意味合いはないと考えられます。
PaaS(パース)とはソフトウェアを構築、稼働する土台となるプラットフォームをインターネット経由で提供するサービスです。--2007/7にSalesforce.comがSaaSの進化版として提唱しました。簡単に言うと、自分で作成したアプリケーションを簡単にインターネット上に公開することができるサービスです。
Herokuのなにがすごいか
元HerokuSEO(現在はSalesforce.comのシニア・バイス・プレジデント)のバイロン・セバスチャン氏曰く、「開発者は偉大なアイデアを思いついたら、Rubyのプログラムにして、Herokuのプラットフォームに展開すればいい。そうすれば、そのアイデアはすぐに実現可能になり、開発者はヒーローになれる。」どういうことかというと・・・
Herokuを使えば開発者はサーバの購入コスト、環境構築設定やデプロイにかかる時間コストを大幅に削減することができ、アプリケーションの公開に至る開発スピードを劇的に上げることができます。コーディングを行ったら、次に、gitでherokuの公開レポジトリにソースをコミットするだけでデプロイが完了し、インターネット上にアプリを公開することができます。驚異的なスピードで開発を行うRuby開発者は、Web開発のヒーローになる!ということらしいです。さらに、アプリケーションを公開するだけではなく、公開後の運用や拡張を行うための機能もがふんだんに用意されています。
まとめると、Herokuの強みは、①スピード ローカルのプログラムをgitでHerokuに展開すれば一瞬で利用可能になります②スケーラビリティ 必要になった時に必要なだけ即座にMailやcron、DBなどの機能や、メモリなどのリソースの拡張が行えます③豊富な機能 Node.jsやNoSQLデータベースなど話題のサービスを使用できるなど、アーリーアダプターの志向に対応した機能を提供しているため、最近のクラウドを取り巻く環境を簡単に手に入れることができます。また、アプリケーションを公開するだけではなく、ログやバックアップ、解析、ステージング環境などに対応する機能が環境が整っています。
実際にHerokuでアプリケーションを公開する手順です
ローカルでアプリを作成します。ローカルのアプリをheroku上に展開します。デプロイはgit push herokuコマンドのみ。これだけでアプリケーションをインターネット上に公開することができます。
herokuはRuby以外の言語環境にも対応していますが、今回はRubyアプリケーションを公開します。Rubyのバージョンやgemの管理を簡単にするため、Rubyのバージョン管理をおこなうrvmを使用します。herokuサーバーへのソースの展開はgitを使用して行うため、gitの導入は必須です。herokuのアカウントはメールアドレスの登録のみで簡単に作成することができます。
herokuの操作はherokuのサイトからGUIで行う方法と、コマンドラインからherokuコマンドを使用してCUIで行う2通りの方法が可能ですが、herokuコマンドを使用するためにはheroku gemを導入する必要があります。今回はCUIから操作を行います。herokuではすでにgemsが用意されているため、使用するgemのインストールなどは不要ですが、herokuで用意しているgem以外のgemを使用したい場合、や、gemのバージョンを指定したいは2通りの方法でgemsを管理することができます。ひとつは.gemファイルを作成し、その中に使用するgemを記述してpushする方法ですが、バージョンの指定やgems同士の互換性は管理できないため、herokuではgems管理ラッパーであるbundlerを使用することを推奨しています。herokuの公開リポジトリにpushすると、.gemファイル、もしくはbundlerで管理するGemfileとGemfile.lockファイルを参照してherokuが自動でgemsのインストールを行なってくれます。.gemファイルとGemfile.lockファイルの共存はできません。(.gemファイルが優先されます)
Herokuで公開するアプリケーションを作成します。今回は省略します。
herokuコマンドで、heroku上にgitリポジトリと、アプリケーションを作成します。アプリケーション名を付ける場合はheroku内で一意な名前のみ命名することができます。サービス名がURLになるので、heroku上ですでに存在するサービス名は命名することができません。アプリ名を省略すると、自動でアプリケーション名が割り振られます。作成時に命名したアプリケーション名はいつでも変更することが可能です。変更する場合は、コマンドラインから $ heroku rename NEWNAME コマンドで変更を行うか、herokuサイトからアプリケーション設定画面で変更することができます。
デプロイは、herokuのmasterリポジトリにpushするだけでです。
変更を反映させたい場合は、Herokuの公開リポジトリに変更をpushするだけで変更が反映されます。
pushしたソースが実際にデプロイされ、アプリケーションが公開されたか確認してみます。
デフォルトのHerokuの装備についてです。1アカウントにつき作成できるアプリケーションの数に制限は設けられていません。そのため、ステージング環境を保持することも容易です。容量ですが、この100MBはソースを圧縮したサイズで100MBまでです。(git push herokuをすると自動で圧縮されます。)Dyno(ダイノス)はCPUリソースの設定単位で、1Dynoが1プロセスです。1Dynoのメモリ使用量は最大300MBまでです。WebアプリケーションサーバープロセスであるWebDynosと、バックグラウンドプロセスであるWorkerDynosが設定可能です。設定する際は、上限値を設定します。3にすれば3dynos分のリソースが使用されるわけではなく、溢れた容量分が設定値まで拡張されると考えてください。標準ではWebDynosが1Dyno割り当てられています。DBは標準ではPostgreSQLが5MB用意されていますが、add-onsを使用することで容量を増やすことや、MysqlやMongoDBなどのDBを使用することができます。ログは1500行までフィッチすることができます。add-onは最低グレードは大抵が無料で提供されています。(ただし、アドオンが無料であっても連携先のサービスが有料の場合があります。)無料でも使用登録の際にクレジットカードの登録を求められます。ただし、無料の機能を使用している範囲内で課金されることはありません。サービスの成長に合わせて課金していくのが一般的です。
Herokuには標準で便利な機能が用意されています。ありすぎて書き切れないのでその一部を紹介します。
パスワードなど、コード内に記述したくない値を環境変数としてherokuに保持させることができます。具体的な使用例としては、Twitterやfacebookなどの外部サービスと連携したアプリを作成する場合、aouth_tokenなどを環境変数にもたせておくと、本番環境とステージング環境で、異なったtokenで同じソースを使用できるなど、汎用的な使い方ができます。
メンテナンス中画面に切り替える場合もherokuコマンド一つで行うことができます。ユーザーがメンテナンスモード中にアプリケーションにアクセスすると、メンテナンス画面のレスポンスが返されますが、この画面をカスタマイズしたい場合はcustome_error_pagesアドオンを導入します。このアドオンではエラー画面も設定することができます。
標準のログコマンドでは最近の100行を出力します。-nオプションを指定することで、1500行まで取得することができます。その他に、--tailオプションでリアルタイム出力を行ったり、プロレスごとのログ出力を行うことも出来ます。
アプリケーションの共同開発を行うには、herokusharing:addコマンドの後に、追加するユーザーのメールアドレスを指定します。コマンドを発行すると、追加ユーザー宛てにメールが送信され、URLリンクをクリックすることで招待を認可します。共有しているプロジェクトが課金サービスを使用している場合に、支払いを行うユーザーを変更することができます。課金対象ユーザーはプロジェクト一つにつき一人のみです。
ここからはHerokuの拡張についてです。Add-onsはアプリケーションに対して機能を追加します。
外部ホスティングサービスとの連携や、DB、cron、メール、ロギング拡張、アナライザなどの機能はadd-onとして提供されています。標準装備以外のアドオンを使用するには、はじめにherokuのサイトからadd-onsの使用登録をしなければなりません。その際クレジットカードの登録を求められますが、課金されることはありません。初回に一度登録を行えば、2個目からは使用登録は要りません。
Herokuで公開しているアプリケーションの拡張を行う
cronアドオンを導入することで、バッチ処理を行うこともできます。一日一回実行するDailyCronは無料です。
ssl:piggybackアドオンを導入することで、SSLを使えるようになります。
custom_domainsアドオンを導入することで、独自ドメインを使用することができます。
pgbackupsアドオンを導入することで、PostgreSQLのDBのバックアップを自動でキャプチャし、heroku上に保持することができるようになります。バックアップ2ファイルまでは無料です。captureでバックアップファイルを作成し、作成したバックアップはpgbackupsで確認することができます。Rstoreでリストアします。これらはすべて最低グレードなら無料で使用することができます。この他にも、様々なアドオンが提供されています。
次に、プラグインについてです。add-onsがアプリケーションに対して機能を追加するのに対して、pluginはherokuコマンドに対して機能を追加します。そのため、GUIから操作を行うユーザーに対しては必要がありません。herokuコマンドはプラグインという仕組みを持っていて、herokuのCUIでの操作をより快適にする機能を追加することができます。例えば、コードハイライトの機能を提供するプラグインなどがあります。
プラグインは主にgithubで公開されています。プラグインをインストールするコマンドは、herokuplugins:installのあとに、gitリポジトリのパスを指定します。プラグインを使用するために、別途gemが必要な場合があります。
これらのプラグインは有志によって主にgithubで公開されていますが、プラグインを統括しているカタログサイトが存在します。
プラグインのカタログを提供するのがherocutterというサービスです。Rubygems.orgの前身である、gemcutter.orgのherokuプラグインバージョンとして展開されています。Gemcutterと同じく、自分で開発したプラグインを自由に追加することが可能になっています。現在、18個のプラグインが登録されています。
Herocutter用のプラグインもあり、これを導入することにより、カタログ上のプラグインのインストールがプラグイン名のみで行えるようになります。
2011/10現在、対応言語は6つ。フレームワークはなんでもOK。
Ruby以外のアプリケーション環境を使用する場合はVMを切り替えます。Ruby以外のアプリを動かすには、Ceader(シーダー)を選択します。
環境を切り替えるには、herokuアプリケーション作成時にオプションを付けるか、stack:migrateコマンドを使用します。変更はpushした時にはじめて切り替わります。
Herokuで提供しているドキュメントがわかりやすいので詳しくはHerokuサイトのドキュメントをどうぞ。
Baixar agora