<< 9月 2014 | Home | 11月 2014 >>

WebアプリケーションをIntelliJ IDEAからHerokuへデプロイする #herokujp #jbugj

簡単にWebアプリケーションをデプロイできるHerokuですが、IntelliJ IDEAから直接デプロイすることもできます。

デフォルトで対応しているのでプラグインは不要で、手順は以下の通り。

1. Tools→Edit Configurationsより実行設定のダイアログを開く

2. 設定ボタン(スパナのアイコン)を押し、Heroku Deploymentを選択

3. Server...をクリックし、ユーザー名/パスワードを入力


4. 設定ダイアログの+ボタンを押し、Heroku Deploymentを選択

5. 先に設定したサーバ設定を選択し、必要に応じてアプリケーション名(herokuapp.comのサブドメイン)を指定


6. 実行設定の実行ボタン(緑の再生ボタンみたいなの)を押してデプロイ

7. ブラウザよりアプリケーションにアクセス

実際に設定→デプロイしている様子はこちら↓

(時間のかかるビルドの部分は一部カットしてます)

実際に動いているところ↓
https://redpen.herokuapp.com

動画内でデプロイしたのは文書校正ツールのRedPen

サクッとデプロイ出来てインターネットのWebアプリケーションを公開できるのはやっぱり便利!でもビルドにはそこそこ時間がかかるので本番用か、外部から確認してもらうためのステージング用に使うのが良さそう。
ちょっと動作検証するだけならやはりローカルで動かすほうがサクサク。

IntelliJ IDEAからHerokuにデプロイする際の注意点として二段階認証やOAuthには(現在の所)対応しておらず、ユーザー名やパスワードを入れなければならないこと。(IDEAはユーザーが入力した秘密鍵で暗号化するのでHerokuのパスワード自体は平文では保管されません)

Herokuについて詳しくは「プロフェッショナルのための実践Heroku入門」をどうぞ。もっと丁寧な説明が書いてあります。



関連記事:
Heroku Buttonで簡単にHerokuにデプロイ #herokujp - #侍ズム
Java WebアプリケーションをHerokuへデプロイする #herokujp - #侍ズム
Getting Started with Java on Heroku | Heroku Dev Center
RedPen を公開しました (ベータバージョン) | Advanced Technology Lab
社内共有会で使用した RedPen 資料と進捗 | Advanced Technology Lab

※1 こちらにはGoogle Analyticsコード入りのブランチをデプロイしてあります→ https://github.com/yusuke/redpen/tree/atl-analytics
※2 入力した文章は記録していません。厳密にはアプリケーションのログが直近100行分Herokuに記録されていますが、当方では保管していません

このエントリーをはてなブックマークに追加   

tsūの「ū」の入力方法 #tsu

日本語では長音の表記に当たる、音を伸ばすアクセント記号、マクロン付きのuはuキーを長押し→5で入力できます(Macの場合)。




Google Analyticsもそうだけど、お金になると思うと何かとコンテンツを書きためたくなります。

tsūの登録はこちらから。

関連記事:
SNS/収益プラットフォームのtsū #tsu - #侍ズム
tsūでマネーロンダリング #tsu - #侍ズム

このエントリーをはてなブックマークに追加   

tsūでマネーロンダリング #tsu

tsūにはウォレットがあって、送金出来るけれども、お金の動きは外から追跡出来ません。マネーロンダリングに使われるのでは?と思うかもしれないけどtsūのウォレットには銀行振込やクレジットカードで入金することは出来ません。
つまり手元の現金をtsūのウォレットに入れてコソっと送金することは出来ません。
やたらと大金を持つアカウントがあって現金と引き替えに自分のtsūウォレットに送金してもらう、みたいなのはその相手が信頼出来るのであればたぶん可能。

ただし年間の収益が$600を超える場合は税金の処理上、社会保障番号を申告しなければならないそう。当局に送金状況は報告される見たいなので悪いことには使えません。北米に住んでいない人は大抵社会保障番号を持っていないと思うけどどうなるんだろ?

まぁ、そうそうお金が貯まるはずもないので心配するまでもないけど。


tsūのウォレット管理画面

関連記事:
SNS/収益プラットフォームのtsū #tsu - #侍ズム
tsūの「ū」の入力方法 #tsu - #侍ズム

このエントリーをはてなブックマークに追加   

SNS/収益プラットフォームのtsū #tsu

新しい形のSNS?収益プラットフォーム?であるtsū(たぶん読みはツー)が登場しました。

ユーザーがコンテンツで稼げる新SNS「Tsu」スタート - ITmedia ニュース

広告収益をユーザーにも分け与えるSNSだとのこと。コンテンツを手軽に売れる仕組みのメディアはあるけれども、特に投稿に値段付けとかをするのではなく広告収益をレベニューシェアするという仕組みは新しい感じ。

さらに積極的に友人を誘う仕掛けとして、自分が招待したユーザー経由の収益の一部も自分に入ってくるようになっています。

収益はtsūのウォレットに溜まり、tsū内で別のユーザーに送るか、小切手(現在の所北米のみっぽい)で受け取ることができます。
つまり小売店がtsūに出店すればtsū内で買い物ができるようになります。


とりあえず始めてみましょう。(自分も子供会員欲しいので)
tsūの登録はこちらから。



関連記事:
tsūでマネーロンダリング #tsu - #侍ズム
tsūの「ū」の入力方法 #tsu - #侍ズム

このエントリーをはてなブックマークに追加   

Java WebアプリケーションをHerokuへデプロイする #herokujp

Herokuは言わずと知れたPaaS。Ruby界隈では有名だけどJava屋さんにはもしかすると馴染みが無いかもしれません。

つまり無料から始められるお手軽に使えるサーバプラットフォームで、難しい知識無しに手元のWebアプリケーションをそのままデプロイできます。
無料で使えるからにはもちろん制約があって、無料のままではパフォーマンススロットリング機構が働いて一定の負荷までしかリクエストを捌けません。dynoと呼ばれる単位を購入することでスケールさせることができます。
でもJavaは元々パフォーマンスが高いので無料枠でもそこそこのリクエストを捌けてしまいます。

MavenベースのWebアプリケーションをHerokuにデプロイするざっくりとした手順は以下の通り。

1. Herokuのアカウント作成
https://id.heroku.com/signupよりHerokuのアカウントを作成。クレジットカードの登録は必要なく、メールアドレスだけで登録可能。

2. Heroku Toolbeltのインストール
Heroku ToolbeltはHerokuプラットフォームを利用する上で必要なコマンドラインツール。WindowsやMac用のインストーラ形式になっているので素直にインストールします。

3. jetty-runner、Procfileの追加
jetty-runnerは特に埋込サーブレットコンテナとして人気のJettyを手軽に動かすためのartifact(ここではartifactの意味を知らなくてもいいです)。ProcfileはHerokuで動かすアプリケーションがどんな種類なのか、どうやって起動するのかを定義するファイルです。
具体的には以下のように記述します。
pom.xmlのビルドプラグインの設定欄でpackage時にjetty-runner.jarを配置するよう定義:

<execution>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-runner</artifactId>
<version>9.2.1.v20140609</version>
<destFileName>jetty-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>

Procfileに起動方法を定義:
web java $JAVA_OPTS -jar target/dependency/jetty-runner.jar --port $PORT target/*.war

また、pom.xmlにtarget/sourceのJavaのバージョンが指定されていてもHerokuはデフォルトではもはやオーパーツであるJava 6を使ってくれます。Java 8を使うにはsystem.propertiesというファイルで明示的にランタイムVMのバージョンを指定します。
java.runtime.version=1.8

詳しくは文書校正ツールであるRedPenをHerokuに対応させたコミットログがあるのでご参照いただければ:
making redpen-server heroku deployable · 3972e56 · recruit-tech/redpen

4. Herokuにデプロイ
アプリケーションのルートディレクトリでherokuのcreateコマンドを使い、ディレクトリをHerokuとひもつけ、そしてgit pushでデプロイ完了
$ heroku create [アプリ名]
$ git push heroku master
.
.
.
-----> Compressing... done, 119.3MB
-----> Launching... done, v13
http://redpen.herokuapp.com/ deployed to Heroku

最後に出るURLにアクセスすればok。
httpsでもアクセスできます(※1/※2):
https://redpen.herokuapp.com

どういう条件で出るか忘れたけど、以下のようなエラーがでる場合は確か heroku ps:scale web=1 と叩けばok。

2014-10-15T06:40:56.775146+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=redpen.herokuapp.com request_id=e6ab3d0f-bd6a-4d09-afa0-56c7c6535213 fwd="124.213.71.220" dyno= connect= service= status=503 bytes=


「プロフェッショナルのための実践Heroku入門」にはもっと丁寧な説明が書いてあります。


関連記事:
Heroku Buttonで簡単にHerokuにデプロイ #herokujp - #侍ズム
WebアプリケーションをIntelliJ IDEAからHerokuへデプロイする #herokujp #jbugj - #侍ズム
RedPen: a document checker
Getting Started with Java on Heroku | Heroku Dev Center
RedPen を公開しました (ベータバージョン) | Advanced Technology Lab
社内共有会で使用した RedPen 資料と進捗 | Advanced Technology Lab

※1 こちらにはGoogle Analyticsコード入りのブランチをデプロイしてあります→ https://github.com/yusuke/redpen/tree/atl-analytics
※2 入力した文章は記録していません。厳密にはアプリケーションのログが直近100行分Herokuに記録されていますが、当方では保管していません

このエントリーをはてなブックマークに追加   

JettyでSSL v3接続を拒否する #poodle #jetty

SSL 3.0の脆弱性が見つかったとのことで話題になっています。
Google、SSL 3.0の脆弱性「POODLE」の発見と対策について説明 - ITmedia ニュース

該当するかどうか確認するにはたぶん以下のコマンドを叩けばok
curl -sslv3 -kv https://ホスト

これでレスポンスが返ってきたらだめ。

JettyをフロントWebサーバにしている環境ってあんまり多くなさそうだけど自分の会社ではhttpsのサイトだけJettyがフロントに立ってる。

調べたところJettyでは以下のように対策すればOk。自分のサイトではjetty.xmlではなくjetty-ssl.xmlだった。
java - How do I disallow particular SSL protocols in Jetty? - Stack Overflow

うまくSSL v3を無効化できたらcurlを叩いた結果がこんな感じになる


追記:
Intalio(Jetty開発者がたくさんいるコンサルティング会社)の中の人からも設定方法のメモが公開されました。

このエントリーをはてなブックマークに追加