Heroku Pipelines とは
Heroku には、継続的デリバリー(Continuous Delivery)ワークフローを提供する、Heroku Pipelinesという機能を持っています。
A pipeline is a group of Heroku apps that share the same codebase. Apps in a pipeline are grouped into “review”, “development”, “staging”, and “production” stages representing different deployment steps in a continuous delivery workflow. A code change will typically be deployed first to a pull request, which automatically creates a review app, then merged into master which is automatically deployed to staging for further testing before promotion to production where the new feature will be available to end users of the app. The pipelines overview page helps you visualize this flow, as well as meta information about the status of each stage. For example, you can see if your production app is running different code than staging. (from Pipelines)
なお、Google翻訳すると
パイプラインは、同じコードベースを共有するHerokuアプリケーションのグループです。 パイプライン内のアプリケーションは、継続的な配信ワークフローで異なる展開手順を表す「レビュー」、「開発」、「ステージング」、および「プロダクション」ステージに分類されます。 コード変更は通常プルリクエストに展開され、自動的にレビューアプリが作成され、マスタにマージされ、自動的にアプリケーションのエンドユーザが新しい機能を利用できるように、プロダクションへのプロモーションを行う前に、 。 パイプラインの概要ページは、このフローと各ステージのステータスに関するメタ情報を視覚化するのに役立ちます。 たとえば、プロダクションアプリがステージングと異なるコードを実行しているかどうかを確認できます。
制度の上がった翻訳のおかげで、私がすることがほとんどありませんが、記載あるとおり、「開発」「ステージング」「本番」用の Heroku App環境を準備・定義して、本番へのデプロイプロセスを一貫して提供してくれるお便利ツールです。Github の Pull Request とも連携していて、プルリクがあがってくると、即座にプルリクを取り込んだレビュー環境が立ち上がり、テストすることが可能という仕組みも持っています。とにかく便利です。Githubで開発されている開発者は、今まで通りの開発手法を使って、Heroku の CDワークフローを利用できるということです。
Heroku Pipelines を途中から利用する場合
さて、Heroku Pipelines
は一般的に開発を始める前に、先に Heroku Appを準備して、パイプラインを準備してないとならなそうですが、すでに作成済みの Heroku App を元にパイプライン
を作成したり、既に作成済みのパイプライン
へ、そのApp環境を組み込むこともできます。
Heroku App をパイプライン化すると
それでは、すでに稼働中の Heroku App を元に、Pipelines 化するとどうなるでしょうか。実際にやってみましょう。
こちらは、すでに存在している production-001
という Heroku App です。phpのWeb Dynoが一つ動いています。
次に Deploy
メニューに移りますと、New Pipeline...
というボタンがありますので、おもむろにこちらをクリックします。
すると Pipeline Name
を入力する欄が出てきますので、ここに好きなパイプライン名を入れます。Heroku App名と異なり、Heroku 上で唯一(unique)である必要はなく、英文字から始まる3文字以上なら、全く同じ名前でも良いです。が、同じ名前のパイプラインをたくさん作ると意味不明になりますので、あとで区別できるようにしておきましょう。
ここで、素直に Create Pipeline
をクリックすると、元の Heroku App
が Production
(本番) となるパイプライン
を作成できました。
なお、パイプラインを削除するときは、パイプライン
を指定した状態で、右上の Mange
→ Delete Pipeline...
で削除できます。パイプライン内のHeroku App
は「削除されません」。
既にあるパイプラインへ、既存の Appを登録するには
2つ方法があります。
Heroku App からパイプラインへ登録する
パイプラインへ移したい Heroku App
から Deploy
を開いて Add to a Pipeline
で移動先のパイプラインを選択すると、パイプライン内の Production
へ移動されます。
移動後は、必要に応じて該当の Appを development
や staging
へ移します。Remove from pipeline
を指定すれば、元の単独のAppへ戻ります。
パイプラインから登録する
登録したいパイプラインを開いてから、該当の環境(development
やstaging
)から Add Existing App...
をクリックします。検索フォームが出てくるので、登録したい Heroku App
名を入力するとドロップダウンメニューにでてきますので、そちらから選択します。
かんたんですね!