Herokuは,ソースコードから実行可能なアプリケーションを,もっと簡単に生成できるようにしようとしている。Herokuボタン – GitHubの公開リポジトリからHerokuのパブリッククラウドへのデプロイを行う,簡単なHTMLコードあるいはマークダウン – によってHerokuは,オープンソースWebのアプリケーションを手軽にプレビュー,ホスト,拡張するための魅力的な対象になる。
先週のブログ記事で発表されたHerokuボタンは,“コードのデプロイ,実行,更新プロセスをシンプルで容易なものにする”目的で設計されている。どうやって? アプリケーションを試用するため,開発者にリポジトリのクローン,アプリケーションコンテナの作成,補助的なサービスの追加,セットアップスクリプトの実行といった作業をさせる代わりに,ワンクリックでアプリケーション設定をエンコードして,GitHubの公開リポジトリからコードをデプロイする手段をHerokuが提供するのだ。
Herokuではボタン機構の重要部分を説明するために,さらに詳細な記事を用意した。ボタン自体は単純で,イメージの参照とhttps://heroku.com/deployへのハイパーリンクを使ってページを示しているに過ぎない。このリンクがGitHubリポジトリのREADME内にあれば,Herokuが"referer"ヘッダを読み取って,コードをプルするリポジトリを認識する。これが推奨されるアプローチであり,"ボタンに特定のリポジトリURLをハードコードする必要がなく,リポジトリのフォークやブランチにもボタンのhrefを変更する必要なく対応できる便利な方法"だ。その他,特定のリポジトリあるいは特定のGitブランチを示すパラメータを,"テンプレート"を利用して問い合わせる方法もある。Webアプリケーションの記述については,app.jsonマニフェストファイルを採用している。開発者はこのマニフェストを,アプリケーション名やリポジトリ,デプロイ後のスクリプト,デプロイ時のコンフィギュレーション値,デプロイにおいてプロビジョンするHerokuアドオンを確認するために使用する。下に示すボタンは,本記事の編集者が作成したNode.jsアプリケーションを含むGitHub公開リポジトリを示すものだ。
ボタンをクリックすると,単一ページの構成ワークフローを通じて誘導されているHerokuへとルートされる。アプリケーションの名称や対象領域,その他の環境変数はユーザが指定する。Herokuはこの新サービスで,最もメリットのあるのは誰だと考えているのだろう?
自身がメンテナンスするHerokuアプリの実行ソースコードを,素早く簡単にユーザに届けたいと思っている,アドオン開発者やオープンソースプロジェクトのメンテナにとって,このボタンは理想的なものです。
そのためにHerokuでは,最初にボタンを採用するアドオンパートナ数社を発表した。
ボタンのメリットを活かして,Heroku上のサービスを簡単に経験できるようにするために,私たちは数社のアドオンプロバイダと作業を続けてきました。CloudAMQPとMemCachierのDevCenter記事をチェックして,異なる言語で記述されたサンプルアプリが,簡単なクリックでデプロイ,テストできることに注目してください。
Twilioの友人たちが,彼らのRapid Response Kitにデプロイボタンを追加してくれました。Rapid Response Kitは,緊急対応からコミュニティ組織まで,さまざまな用途に対応した通信ツールのスイートです。READMEにあるボタンを使えば,Rapid Response Kitが直ちにHerokuにデプロイされて,必要な作業を行うためのハッキングを開始することができます。
Herokuはさらに,現時点でHerokuボタンを設定しているオープンソースプロジェクトをいくつか紹介している。最初はcity-72という防災アプリケーションで,Herokuボタンとフォークを使って任意の都市で,その地域のニーズを満足するか確認することができる。このアプリケーションは,PostgreSQLやSendGrid,New RelicといったHerokuアドオンに依存するコードでの使用方法を示している。第2のアプリはHerokuが提供するものだ。Starboardという名称で,従業員の入社と退社をトラックするためにTrelloを使用する。