SlideShare uma empresa Scribd logo
1 de 41
おさらい…
“Heroku”ってどう読むの?



発音は「her-OH-koo」
 二文字目にアクセントを置いて、「ヘロク」もしくは「ハオク」と発音しま
  す。
“Heroku”ってどういう意味?



Hero(ヒーロー) + haiku(俳句)の造語
 「Rubyの開発者をヒーローにする」というコンセプトのもとに命名
どんなサービス?



Webアプリケーションのホスティングサービス
 最近流行のPaaS(Platform as a Service)




       ※参考URL     http://ja.wikipedia.org/wiki/PaaS
ここがすごい
Herrokの提唱   公開までの手間がいらない


                                    アイデア
                                     の実現


                    Herokuに展開
                                ⇓
            コーディン    インターネットに公
            グ        開
git push heroku
                              アイデア




               ✗
                               の実現

              デプロイ作業


      ✗
     サーバの購入、
     構築、設定          運用

コーディング
                         拡張
まとめ    スピードと柔軟性
                       Gitによ
                       るデプロ
                       イ
              スピー
               ド




             Herokuの
                                add-ons
              強み
      豊富な機               スケーラ
        能                ビリティ
アプリケーションを公開
    する
アプリケーション公開までの
      手順



ローカルでアプリ
            git でHerokuの
    の                      公開
           リポジトリにpush
 作成/変更
必要なもの

       Ruby

       rvm(使ったほうが便利)

       Git

★必須    Herokuアカウント

       Herokuで公開するアプリケーション

        (今回はRubyアプリケーション)
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
アプリケーションの作成




    省略…
Herokuにアプリケーションを作成
          する

        $ heroku create アプリ名

        または

        $ heroku create




     アプリケーション名を変更をする


      $ heroku rename 新しいアプリ名
デプロイ(初回)


     Herokuにマスターブランチを作成する


          $ git push heroku master


DBを使用する場合、HerokuのDBにマイグレーションを行う


         $ heroku db:migrate

         $ heroku db:push <db url>
デプロイ(変更を反映)


  Herokuに変更を反映させる


     $ git push heroku
ブラウザ起動




 $ bundle exec heroku open
標準(無料)の範囲


App       1アカウントにつきいくつ作成できるのか不明
容量        100MBまで(git、gem関連以外)10MB以下を推奨
プロセス      1dyno
リクエス      1dyno(1プロセス)につき10-50リクエスト(秒)
ト
メモリ       1dynoにつき最大300MBまで
DB        PostgreSQL 5MB
Ruby      1.9.2
ログ        1500行まで
Add-ons   最低グレードは無料(使用するには登録が必要)
便利な機能
環境変数

              環境変数を設定する


$ bundle exec heroku config:add PASSWORD=“password”
          stackコマンドで切り替える

              環境変数を参照する

                 ENV[‘PASSWORD’]



         設定した環境変数一覧を見る

             bundle exec heroku config
メンテナンスモード

   メンテナンスモードにする

   stackコマンドで切り替える
 $ bundle exec heroku maintenance:on
       環境変数を参照する



 メンテナンスモードを解除する

 $ bundle exec heroku maintenance:off
ログ

    環境変数を参照する

$ bundle exec heroku logs
メンテナンスモードを解除する
$ bundle exec heroku logs –n 200

$ bundle exec heroku logs --tail
チーム開発


   プロジェクトにメンバーを追加する

            環境変数を参照する
 $ bundle exec heroku sharing:add xxx@xxx.com


        課金アカウントを変更する

$ bundle exec heroku sharing:transfer xxx@xxx.com
add-ons
アドオンを使用する




$ bundle exec heroku addons:add アドオン名:グレード名
便利なアドオン
cron




$ bundle exec heroku addons:add cron:daily
httpsアクセス




$ bundle exec heroku addons:add ssl:piggyback
カスタムドメイン



$ bundle exec heroku addons:add custom_domains

$ bundle exec heroku domains:add xxx.xxx.com
DBバックアップ(herokuサーバー
       上)


   $ bundle exec heroku addons:add pgbackups

   $ bundle exec heroku pgbackup:capture

   $ bundle exec heroku pgbackups



   $ bundle exec pgbackups:restore バックアップファイル名
plugins
プラグインを使用する




$ bundle exec heroku plugins:install gitリポジトリのパス
プラグインのカタログ
プラグインのカタログを利用す
      る



    Herocutter
    http://herocutter.heroku.com/
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
HeroはRuby開発者だけじゃない..
対応環境


 Ruby(デフォルト)

 Node.JS

 Clojure(Lisp)

 Java

 Python

 Scala
stack
        Stack一覧を確認する
          aspen-mri-1.8.6

           bamboo-ree-1.8.7   Ruby
デフォルト → bamboo-mri-1.9.2
      *

           cedar (beta)       その他
動作環境を切り替える
アプリケーション作成時にオプションを指定する


 $ bundle exec heroku create アプリ名 –stack cedar


         stackコマンドで切り替える

     $ bundle exec heroku stack:migrate ceder



          Pushした時に切り替わる

                $ git push heroku
http://devcenter.heroku.com/

Mais conteúdo relacionado

Mais procurados

第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~CubedKachi
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-akira6592
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうすごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうi_yudai
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudyTakeshi Komiya
 
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようAtsushi Odagiri
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interfaceMasahito Zembutsu
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版Kazuto Kusama
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションKazuhiro Hara
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSi_yudai
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
 
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてオンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてYASUKAZU NAGATOMI
 
Dockerで開発環境をデリバる
Dockerで開発環境をデリバるDockerで開発環境をデリバる
Dockerで開発環境をデリバるDaigou Harada
 
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門Kazuhide Okamura
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料Yasutaka Hamada
 

Mais procurados (20)

第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
すごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼうすごいBOSHたのしく学ぼう
すごいBOSHたのしく学ぼう
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
 
Pyramid
PyramidPyramid
Pyramid
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interface
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWSBOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてオンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
 
Dockerで開発環境をデリバる
Dockerで開発環境をデリバるDockerで開発環境をデリバる
Dockerで開発環境をデリバる
 
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
 

Destaque

ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようMasataka Kono
 
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 Masataka Kono
 
T pryor a day in the life
T pryor  a day in the lifeT pryor  a day in the life
T pryor a day in the lifetpryorp3
 
Larvicidal activity of mousticide in rice husk and wettable powder formulatio...
Larvicidal activity of mousticide in rice husk and wettable powder formulatio...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)Ipa kls 5 sd (maryanto)
Ipa kls 5 sd (maryanto)MOH. SHOFI'I
 
Apie atleidima
Apie atleidimaApie atleidima
Apie atleidimazigius
 
Str8ts Weekly Extreme #44 - Solution
Str8ts Weekly Extreme #44 - SolutionStr8ts Weekly Extreme #44 - Solution
Str8ts Weekly Extreme #44 - SolutionSlowThinker
 
Nextwavevending-naturals2go school-version
Nextwavevending-naturals2go school-versionNextwavevending-naturals2go school-version
Nextwavevending-naturals2go school-versionViroo Mirji
 
Origins of our solar system
Origins of our solar systemOrigins of our solar system
Origins of our solar systembrenzac15
 
DIN: Danish Design-driven Innovation
DIN: Danish Design-driven InnovationDIN: Danish Design-driven Innovation
DIN: Danish Design-driven InnovationMarcin Monko
 
16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News UpdateNoel Waterman
 
File Processing - Process Execution Solution
File Processing - Process Execution SolutionFile Processing - Process Execution Solution
File Processing - Process Execution SolutionAbimael Desales López
 
Str8ts: Solution to Weekly Extreme Str8ts #24
Str8ts: Solution to Weekly Extreme Str8ts #24Str8ts: Solution to Weekly Extreme Str8ts #24
Str8ts: Solution to Weekly Extreme Str8ts #24SlowThinker
 
Apr 2012 1 ID Fort Riley Monthly News Update
Apr 2012 1 ID Fort Riley Monthly News UpdateApr 2012 1 ID Fort Riley Monthly News Update
Apr 2012 1 ID Fort Riley Monthly News UpdateNoel Waterman
 
Benfits of RSC membership
Benfits of RSC membershipBenfits of RSC membership
Benfits of RSC membershipTeam MyRSC
 
Diabolic Str8ts #4
Diabolic Str8ts #4Diabolic Str8ts #4
Diabolic Str8ts #4SlowThinker
 
Str8ts Weekly Extreme #47 - Solution
Str8ts Weekly Extreme #47 - SolutionStr8ts Weekly Extreme #47 - Solution
Str8ts Weekly Extreme #47 - SolutionSlowThinker
 

Destaque (20)

ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
 
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
 
T pryor a day in the life
T pryor  a day in the lifeT pryor  a day in the life
T pryor a day in the life
 
Unearthing seed money
Unearthing seed moneyUnearthing 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...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)Ipa kls 5 sd (maryanto)
Ipa kls 5 sd (maryanto)
 
Apie atleidima
Apie atleidimaApie atleidima
Apie atleidima
 
Str8ts Weekly Extreme #44 - Solution
Str8ts Weekly Extreme #44 - SolutionStr8ts Weekly Extreme #44 - Solution
Str8ts Weekly Extreme #44 - Solution
 
Nextwavevending-naturals2go school-version
Nextwavevending-naturals2go school-versionNextwavevending-naturals2go school-version
Nextwavevending-naturals2go school-version
 
Movie maker 002
Movie maker 002Movie maker 002
Movie maker 002
 
Origins of our solar system
Origins of our solar systemOrigins of our solar system
Origins of our solar system
 
DIN: Danish Design-driven Innovation
DIN: Danish Design-driven InnovationDIN: Danish Design-driven Innovation
DIN: Danish Design-driven Innovation
 
Coearch Survey 2010
Coearch Survey 2010Coearch Survey 2010
Coearch Survey 2010
 
16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update
 
File Processing - Process Execution Solution
File Processing - Process Execution SolutionFile Processing - Process Execution Solution
File Processing - Process Execution Solution
 
Str8ts: Solution to Weekly Extreme Str8ts #24
Str8ts: Solution to Weekly Extreme Str8ts #24Str8ts: 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 UpdateApr 2012 1 ID Fort Riley Monthly News Update
Apr 2012 1 ID Fort Riley Monthly News Update
 
Benfits of RSC membership
Benfits of RSC membershipBenfits of RSC membership
Benfits of RSC membership
 
Diabolic Str8ts #4
Diabolic Str8ts #4Diabolic Str8ts #4
Diabolic Str8ts #4
 
Str8ts Weekly Extreme #47 - Solution
Str8ts Weekly Extreme #47 - SolutionStr8ts Weekly Extreme #47 - Solution
Str8ts Weekly Extreme #47 - Solution
 

Semelhante a start Heroku

Heroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみたHeroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみたNozomu KURASAWA
 
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionRails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionSatomi Tsujita
 
debexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするにはdebexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするにはkenhys
 
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境Kazuhiro Nishiyama
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン啓介 大橋
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門hiro nemu
 
はじめてのMercurial/Bitbucket その2
 はじめてのMercurial/Bitbucket その2 はじめてのMercurial/Bitbucket その2
はじめてのMercurial/Bitbucket その2kenjis
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!Shinnosuke Furuya
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )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からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードKazuhiro Hara
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Nobuhiro Iwamatsu
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 

Semelhante a start Heroku (20)

Heroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみたHeroku に ChiliProject を入れてみた
Heroku に ChiliProject を入れてみた
 
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionRails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
 
Sinatra and heroku for mac
Sinatra and heroku for macSinatra and heroku for mac
Sinatra and heroku for mac
 
debexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするにはdebexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするには
 
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
Capistrano
CapistranoCapistrano
Capistrano
 
はじめてのMercurial/Bitbucket その2
 はじめてのMercurial/Bitbucket その2 はじめてのMercurial/Bitbucket その2
はじめてのMercurial/Bitbucket その2
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!Rescale で Singularity を使ってみよう!
Rescale で Singularity を使ってみよう!
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
 
怖いRails
怖いRails怖いRails
怖いRails
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 

Último

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。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 DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-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.pptxIoT 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 Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

start Heroku

Notas do Editor

  1. 本日のテーマはRuby開発者であれば誰もが触ったことがあろうHerokuについてのお話です。
  2. まずはおさらいHerokuって?
  3. 一部にハーオークーとよぶ人もいるので、呼び方は人それぞれ。気になる人はyoutubeなどでネイティブの発音を聞いてみてください。
  4. なぜ”俳句”なのかはよくわかりませんが、Rubyのふるさとの日本文化に敬意をあらわして、というコンセプトからHerokuのサービスには日本語や日本的なモチーフが多く使用されています。それらについては日本語の意味をなしていないため、特別な意味合いはないと考えられます。
  5. PaaS(パース)とはソフトウェアを構築、稼働する土台となるプラットフォームをインターネット経由で提供するサービスです。--2007/7にSalesforce.comがSaaSの進化版として提唱しました。簡単に言うと、自分で作成したアプリケーションを簡単にインターネット上に公開することができるサービスです。
  6. Herokuのなにがすごいか
  7. 元HerokuSEO(現在はSalesforce.comのシニア・バイス・プレジデント)のバイロン・セバスチャン氏曰く、「開発者は偉大なアイデアを思いついたら、Rubyのプログラムにして、Herokuのプラットフォームに展開すればいい。そうすれば、そのアイデアはすぐに実現可能になり、開発者はヒーローになれる。」どういうことかというと・・・
  8. Herokuを使えば開発者はサーバの購入コスト、環境構築設定やデプロイにかかる時間コストを大幅に削減することができ、アプリケーションの公開に至る開発スピードを劇的に上げることができます。コーディングを行ったら、次に、gitでherokuの公開レポジトリにソースをコミットするだけでデプロイが完了し、インターネット上にアプリを公開することができます。驚異的なスピードで開発を行うRuby開発者は、Web開発のヒーローになる!ということらしいです。さらに、アプリケーションを公開するだけではなく、公開後の運用や拡張を行うための機能もがふんだんに用意されています。
  9. まとめると、Herokuの強みは、①スピード ローカルのプログラムをgitでHerokuに展開すれば一瞬で利用可能になります②スケーラビリティ 必要になった時に必要なだけ即座にMailやcron、DBなどの機能や、メモリなどのリソースの拡張が行えます③豊富な機能 Node.jsやNoSQLデータベースなど話題のサービスを使用できるなど、アーリーアダプターの志向に対応した機能を提供しているため、最近のクラウドを取り巻く環境を簡単に手に入れることができます。また、アプリケーションを公開するだけではなく、ログやバックアップ、解析、ステージング環境などに対応する機能が環境が整っています。
  10. 実際にHerokuでアプリケーションを公開する手順です
  11. ローカルでアプリを作成します。ローカルのアプリをheroku上に展開します。デプロイはgit push herokuコマンドのみ。これだけでアプリケーションをインターネット上に公開することができます。
  12. herokuはRuby以外の言語環境にも対応していますが、今回はRubyアプリケーションを公開します。Rubyのバージョンやgemの管理を簡単にするため、Rubyのバージョン管理をおこなうrvmを使用します。herokuサーバーへのソースの展開はgitを使用して行うため、gitの導入は必須です。herokuのアカウントはメールアドレスの登録のみで簡単に作成することができます。
  13. 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ファイルが優先されます)
  14. Herokuで公開するアプリケーションを作成します。今回は省略します。
  15. herokuコマンドで、heroku上にgitリポジトリと、アプリケーションを作成します。アプリケーション名を付ける場合はheroku内で一意な名前のみ命名することができます。サービス名がURLになるので、heroku上ですでに存在するサービス名は命名することができません。アプリ名を省略すると、自動でアプリケーション名が割り振られます。作成時に命名したアプリケーション名はいつでも変更することが可能です。変更する場合は、コマンドラインから $ heroku rename NEWNAME コマンドで変更を行うか、herokuサイトからアプリケーション設定画面で変更することができます。
  16. デプロイは、herokuのmasterリポジトリにpushするだけでです。
  17. 変更を反映させたい場合は、Herokuの公開リポジトリに変更をpushするだけで変更が反映されます。
  18. pushしたソースが実際にデプロイされ、アプリケーションが公開されたか確認してみます。
  19. デフォルトの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は最低グレードは大抵が無料で提供されています。(ただし、アドオンが無料であっても連携先のサービスが有料の場合があります。)無料でも使用登録の際にクレジットカードの登録を求められます。ただし、無料の機能を使用している範囲内で課金されることはありません。サービスの成長に合わせて課金していくのが一般的です。
  20. Herokuには標準で便利な機能が用意されています。ありすぎて書き切れないのでその一部を紹介します。
  21. パスワードなど、コード内に記述したくない値を環境変数としてherokuに保持させることができます。具体的な使用例としては、Twitterやfacebookなどの外部サービスと連携したアプリを作成する場合、aouth_tokenなどを環境変数にもたせておくと、本番環境とステージング環境で、異なったtokenで同じソースを使用できるなど、汎用的な使い方ができます。
  22. メンテナンス中画面に切り替える場合もherokuコマンド一つで行うことができます。ユーザーがメンテナンスモード中にアプリケーションにアクセスすると、メンテナンス画面のレスポンスが返されますが、この画面をカスタマイズしたい場合はcustome_error_pagesアドオンを導入します。このアドオンではエラー画面も設定することができます。
  23. 標準のログコマンドでは最近の100行を出力します。-nオプションを指定することで、1500行まで取得することができます。その他に、--tailオプションでリアルタイム出力を行ったり、プロレスごとのログ出力を行うことも出来ます。
  24. アプリケーションの共同開発を行うには、herokusharing:addコマンドの後に、追加するユーザーのメールアドレスを指定します。コマンドを発行すると、追加ユーザー宛てにメールが送信され、URLリンクをクリックすることで招待を認可します。共有しているプロジェクトが課金サービスを使用している場合に、支払いを行うユーザーを変更することができます。課金対象ユーザーはプロジェクト一つにつき一人のみです。
  25. ここからはHerokuの拡張についてです。Add-onsはアプリケーションに対して機能を追加します。
  26. 外部ホスティングサービスとの連携や、DB、cron、メール、ロギング拡張、アナライザなどの機能はadd-onとして提供されています。標準装備以外のアドオンを使用するには、はじめにherokuのサイトからadd-onsの使用登録をしなければなりません。その際クレジットカードの登録を求められますが、課金されることはありません。初回に一度登録を行えば、2個目からは使用登録は要りません。
  27. Herokuで公開しているアプリケーションの拡張を行う
  28. cronアドオンを導入することで、バッチ処理を行うこともできます。一日一回実行するDailyCronは無料です。
  29. ssl:piggybackアドオンを導入することで、SSLを使えるようになります。
  30. custom_domainsアドオンを導入することで、独自ドメインを使用することができます。
  31. pgbackupsアドオンを導入することで、PostgreSQLのDBのバックアップを自動でキャプチャし、heroku上に保持することができるようになります。バックアップ2ファイルまでは無料です。captureでバックアップファイルを作成し、作成したバックアップはpgbackupsで確認することができます。Rstoreでリストアします。これらはすべて最低グレードなら無料で使用することができます。この他にも、様々なアドオンが提供されています。
  32. 次に、プラグインについてです。add-onsがアプリケーションに対して機能を追加するのに対して、pluginはherokuコマンドに対して機能を追加します。そのため、GUIから操作を行うユーザーに対しては必要がありません。herokuコマンドはプラグインという仕組みを持っていて、herokuのCUIでの操作をより快適にする機能を追加することができます。例えば、コードハイライトの機能を提供するプラグインなどがあります。
  33. プラグインは主にgithubで公開されています。プラグインをインストールするコマンドは、herokuplugins:installのあとに、gitリポジトリのパスを指定します。プラグインを使用するために、別途gemが必要な場合があります。
  34. これらのプラグインは有志によって主にgithubで公開されていますが、プラグインを統括しているカタログサイトが存在します。
  35. プラグインのカタログを提供するのがherocutterというサービスです。Rubygems.orgの前身である、gemcutter.orgのherokuプラグインバージョンとして展開されています。Gemcutterと同じく、自分で開発したプラグインを自由に追加することが可能になっています。現在、18個のプラグインが登録されています。
  36. Herocutter用のプラグインもあり、これを導入することにより、カタログ上のプラグインのインストールがプラグイン名のみで行えるようになります。
  37. 2011/10現在、対応言語は6つ。フレームワークはなんでもOK。
  38. Ruby以外のアプリケーション環境を使用する場合はVMを切り替えます。Ruby以外のアプリを動かすには、Ceader(シーダー)を選択します。
  39. 環境を切り替えるには、herokuアプリケーション作成時にオプションを付けるか、stack:migrateコマンドを使用します。変更はpushした時にはじめて切り替わります。
  40. Herokuで提供しているドキュメントがわかりやすいので詳しくはHerokuサイトのドキュメントをどうぞ。