« 2014年12月 | メイン | 2015年4月 »

2015年1月

2015年1月30日 (金)

Heroku Meetup #13 参加レポート

こんにちは、浅野です。 開催から時間が経ってしまいましたが、1月13日に開催されたHeroku Meetup#13の参加レポートです。

あの時に見たスライドどこだっけ?とならないように保存しておく目的のPOSTです。

目次

  • 本編
  • 懇親会 兼 LT大会
  • 参加された方のブログ etc.

本編

目次

  • Heroku Inc. 新入社員紹介
  • Heroku Update
  • 大企業でも、小さく始めるためにHerokuを導入してみた
  • シャトルバスとHerokuをつなぐ、IoTサービス実践事例

当日のハッシュタグは #herokujp でした。

Heroku Inc. 新入社員紹介

Herokuに、新たに日本語が母国語の方が入社された。@zundan さん。

ハワイで勤務されているとのことで、現地時間深夜にも関わらずビデオチャットでご挨拶してくださいました。

これからサポート等お世話になるかもしれません、よろしくお願いいたします。

ちなみに、一番好きなherokuコマンドは git push heroku master だそうで、相澤さんから間髪いれず「それ、gitコマンド」とツッコミが入っていました。

Heroku Update

スピーカ

Heroku Inc. 相澤さん

2014年のHerokuの状況について。

  • ビジネスとして前年比200%以上の成長をした1年だった
    • リクルートのHeroku導入事例
  • IoTのトピックでHerokuをあつかう事例が増えてきた
    • フレクトのSalesforce World Tour Tokyoでのデモサービス

なるほど、これは後半の事例紹介のイントロダクションもかねているのですね。

Heroku Updates

2014年のHerokuの機能アップデートは大体以下のようなもの。

Heroku DXでの追加以外にも色々ありますね。

Github Integration/Dropbox Sync は当日はまだベータ版でしたが、DropBox Syncは1月26日に、Github Integrationは1月28日に正式版になりましたね。

One more things

近日公開予定だけどまだオフレコ、ということで、会場にいた方だけのお楽しみ。 (1月30日時点でまだ公開されていないです)

Herokuがいっそう使いやすくなるなーと期待しています。

大企業でも、小さく始めるためにHerokuを導入してみた(仮)

スピーカ

株式会社リクルートジョブズ 奥村 命さん

メインターゲット

  • Herokuを導入したいが上司の説得が面倒な方
  • IT企業を目指すような会社はいまどきHerokuを入れているんだ、リクルートでもできるらしいという事実が欲しい方

スライド

内容

  • ターゲット
    • Herokuをプロジェクトで導入したいけれど、上司の説得が面倒な方
    • リクルートのような大きな会社でもHerokuが入れられるんだ、という事実がほしい方
  • 大きなサービスの裏側で小さなサービスを追加している
    • 50以上のアプリを作ってきた
  • アプリを作るうえで開発環境をどうするか?どうやれば楽に開発が進められる?が課題に
    • Herokuを使って大体解決したかも(他にグループ内基盤などとの比較検討を実施した)
  • Herokuはアプリケーションを動かすまでが圧倒的に速いのが良いところ
    • グループ内基盤は申請/スケール見積もり等大変
    • AWSは、インフラ周りの知識だったり、AWSのサービスに精通する必要があったり大変
    • Herokuは、git push heroku masterで作れるし、DBだなんだもAddonがよしなに計らってくれる
  • Herokuではカバーできない部分は、AWS等を使って自分たちで構築する必要がある。

Herokuを使うと本質的な価値の創造に専念できるのでとても良いです。

シャトルバスとHerokuをつなぐ、IoTサービス実践事例

スピーカ

株式会社フレクト 大橋正興

スライド

http://www.slideshare.net/masaoki_ohashi/heroku-meetup-13shuttlebusheroku

内容

弊社が Salesforce World Tour Tokyo 2014で展示していた2会場間を結ぶシャトルバス運行状況通知アプリケーションの事例紹介。

アプリの様子はこんな感じです。

  • IoTサービスをHerokuで構築した実例
  • OBD2デバイスをシャトルバスに接続して、アップロードされた情報をHerokuへ集約
  • Webシステムの開発では遭遇しない、ハードウェアとの境界で課題が多かった
    • Try & Error
    • 色々な工夫をして乗り越えた
  • 基調講演終了後がアクセスのピークで 約 5200req/min
    • この程度のアクセスはHerokuでさばける
  • それぞれ専門分野を持つ関係者が多くなる
    • 意見を言うのに萎縮してしまう
    • それを打ち破っていく。「的外れかもしれませんが...」

IoTサービスの構築には、Try & Error のサイクルをまわしやすいHerokuが有効です。

大事なこと

フレクトではHerokuエンジニアを募集しています。今回の事例に興味をもたれた方はぜひこちらへお越しくださいませw

懇親会 兼 LT大会

スペシャルゲスト?の Matz の乾杯からスタート。 会場は「空箱」というリクルートさんの社員食堂でした。夜景がとても綺麗でした(写真うまく撮れず...)

LT大会メニュー

  • Salesforceのハッカソンに参加したよ 小西俊司さん スライド
  • Project Based Learning using by PaaS よしおかひろたかさん スライド
  • 2人月の開発に105人のエンジニアが参加する世界 髙須俊宏さん
  • クラウドソーシングで作るHerokuシステム 岩崎輝之さん スライド
  • 他人が3人集まって、Herokuでアプリ公開した話 西村美沙さん スライド
  • HerokuでGroonga 須藤功平さん スライド
  • Herokuを使って学ぶ「Railsチュートリアル」の中の話 安川 要平さん スライド

参加された方のブログ etc.

会場を提供してくださったリクルートホールディングス様、登壇者の皆様、スタッフの皆様、参加された方、お疲れ様でした。

2015年1月26日 (月)

Addon のアプリ間共有

Addon のアプリ間共有

はじめまして、2015年からこのHerokuブログを担当することになりました、浅野です。 今後ともよろしくお願いいたします。

今回のポストは Heroku blog の Expanding the Power of Add-onsを試してみました。

できるようになったこと

1つのアプリが使用しているaddonを別のHerokuアプリケーションで共有できるようになりました。 複数Herokuアプリケーションでaddonが共有できると MicroServices を作りやすくなるよね、とのこと。

動作検証

早速、どんな風に操作するかをためします。

大まかな流れ

  1. addon-attachmentsプラグインのインストール
  2. アプリケーション作成
  3. Addonの追加
  4. アプリケーションのデプロイ
  5. Addonを共有するアプリケーションの作成
  6. Addon共有の設定
  7. Addonを共有するアプリケーションのデプロイ

addon-attachmentsプラグインのインストール

Addonを追加する前に、addon 共有のためのプラグインをインストールします。

$ heroku plugins:install https://github.com/heroku/heroku-addon-attachments.git

アプリケーション作成

Herokuにデプロイするアプリケーションを作ります。 今回はFlectのgithubリポジトリにある ht-java-demo を使います。

$ git clone git@github.com:flect/ht-java-demo.git
$ cd ht-java-demo
$ heroku create

1つ目のアプリの名前は hogehoge とします。

Addonの追加

アプリケーションに Addonを追加します。 定番の heroku-postgresql を使用します。 アドオンの追加は addons:create を使います。--name オプションでこのアドオンを共有する名前を設定します。 ここでは my-share-db という名前にしています。

$ heroku addons:create heroku-postgresql --name my-share-db

アプリケーションのデプロイ

hogehoge をHerokuへデプロイします。

$ git push heroku master

このプログラムは https://hogehoge.herokuapp.com/db で、DBから読み込んだ値を表示します。 デプロイしただけだと、テーブル・レコードがないので、エラーが表示されます。 テーブル・レコードを生成するにはプロジェクトのルート階層にある create.sql を実行します。

$ heroku pg:psql
hogehoge::PURPLE=> \i create.sql

これで再度、https://hogehoge.herokuapp.com/db を開くとHello test が表示されます。

ここまでは、いつも通りです。

Addonを共有するアプリケーションの作成

hogehoge で使用している共有名my-share-dbのheroku-postgresql を使用する別のアプリケーションを作ります。 このアプリも今回はht-java-demo を使います。

実際にAddonを共有したいケースはコードベースを共有しない別アプリケーションのはずなので、別のディレクトリにクローンして、Herokuアプリケーションとして初期化します。

heroku create

2つ目のアプリの名前は piyopiyo とします。

Addon共有の設定

Herokuの設定

Addonを共有するときには addons:attachを使います。第1パラメータにアドオンの共有名 --asオプションでこのアプリが参照する名前を指定します。

hogehoge の heroku-postgresql アドオン my-share-db を、 SHARED_DB という名前で参照するには以下のコマンドを実行します。

heroku addons:attach my-share-db --as SHARED_DB

これで、piyopiyoアプリには、環境変数SHARED_DB_URLが定義されて hogehogeの heroku-postgresql アドオンが提供するDBに接続できるようになります。

ソースコードの変更

ht-java-demoで接続先DBの情報を読み込んでいるのはここ なので、この"DATABASE_URL""SHARED_DB_URL"に変更します。

Addonを共有するアプリケーションのデプロイ

これはいつも通りの

$ git push heroku master

です。デプロイが正常終了したら、ブラウザでhttps://piyopiyo.herokuapp.com/dbを開きます。 hogehogeの時は、DBテーブルが存在しない、とエラーになっていたページが問題なく表示されていて、DBが共有されていることが確認できました。

まとめ

アプリ間でAddonを共有したいケースは時々あって、環境変数の値を共通の値にする等の対応をしていた部分が今回の変更でずいぶん楽になった気がします。 個人的に、 GitHub Integration の PullRequest ごとの自動デプロイでテスト用データが入ったDBを共有できるのでは、と思って調べてみたのですが、今(2015/01/26)見たら、PullReqeust毎の自動デプロイの機能が見当たらない、っていう。ベータ版機能なのでしかたないですよね...。

おまけ

addon-attachmentsプラグインをインストールして追加される addon コマンドは以下の通りでした。

addons:attach

Usage: heroku addons:attach ADDON

 attach add-on resource to an app

 --as ATTACHMENT_NAME  # (optional) name for add-on attachment
 --confirm APP_NAME    # overwrite existing add-on attachment with same name

addons:attachments

Usage: heroku addons:attachments

 list add-on attachments

 --all # list attachments across all apps in account

addons:create

Usage: heroku addons:create PLAN

 create an add-on resource

 --name NAME             # (optional) name for the resource
 --as ATTACHMENT_NAME    # (optional) name for the initial add-on attachment
 --confirm APP_NAME      # (optional) ovewrite existing config vars or existing add-on attachments

addons:destroy

Usage: heroku addons:destroy ADDON

 destroy an add-on resources

 -f, --force # allow destruction even if this in not the final attachment

addons:detach

Usage: heroku addons:detach ATTACHMENT

 detach add-on resource from an app

addons:plans

Usage: heroku addons:plans

 list all available add-on plans

 --region REGION      # specify a region for add-on plan availability

Example:

 $ heroku addons:plans --region eu
 === available
 adept-scale:battleship, corvette...
 adminium:enterprise, petproject...

採用情報

株式会社フレクトでは、事業拡大のため、
Salesforce/Force.comのアプリケーション
開発
HerokuやAWSなどのクラウドプラッ
トフォーム上でのWebアプリケーション開発

エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみた
い方、是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、
セールスフォースパートナーです。
heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。
Powered by Six Apart