Heroku Flow は、Heroku Pipeline、レビューアプリ、Heroku CI、GitHub を構造化された使いやすいワークフローに統合し、継続的デリバリーを実現します。
開発者向けに最適化されたアプリケーション中心の継続的デリバリー
継続的デリバリーについてもっと詳しく知りたいとお考えですか?
6 つの主要機能をまとめて提供することにより継続的デリバリーを実現する Heroku Flow
![Heroku Pipelines](/assets/continuous-delivery/feature-pipelines-de621d99df653222f83e17ebdc8e2dec484746b7c1b850f8efa6b620487e8df6.png)
Heroku Pipelines
Pipeline は、共通のコードベースを持つ Heroku アプリをレビュー環境、開発環境、ステージング環境、本番環境にまとめて、継続的デリバリーのサポート、管理、可視化を可能にする方法です。テスト済みのコードを次のステージに昇格させる作業は手動でも自動でもほぼ一瞬で完了します。これは、コンパイルされた中間生成物が次のステージに送られるからです。Heroku ダッシュボードの Pipeline 概要ページでは、コードや機能の進捗状況を、開発から本稼働までリアルタイムで追跡できます。Heroku Pipelines 関連資料→
![Heroku CI](/assets/continuous-delivery/feature-ci-daed6342ef89b72df75f8c8de3401ddbf067d60c4f2b5484334a09efc8c0ae33.png)
Heroku CI
Heroku CI は、Heroku Pipeline に統合された低コンフィグレーションのテストランナーです。Heroku CI では、ステージング環境と本番環境で強力なパリティを持つ即席のアプリを使用して、待ち時間なしでテストスクリプトを実行し、迅速に結果を得ることができます。テスト結果には Heroku からも GitHub からもアクセスでき、CI の結果に応じてデプロイを自動化することもできます。また、ビジュアルインターフェースも用意されているので、チーム単位の継続的デリバリーにおける CI の役割をサポートすることもできます。Heroku CI 関連資料→
![Heroku Review Apps](/assets/continuous-delivery/feature-review-apps-b9334aacbd628ffe1ce032cff8638addbfb713958bd1a019e2d414d2d6682e79.png)
Heroku Review Apps
レビューアプリは、変更点をコードベースにマージするかどうかを提案、検討、決定するための新しい方法です。GitHub に接続された Heroku アプリの場合、未解決のプルリクエスト (PR) ごとの専用 URL で一時的なテストアプリを手動でスピンアップすることも、PR ごとに異なる URL で自動的にスピンアップすることもできます。PR をマージすると、レビューアプリは破棄されます。また、Heroku Pipelines で使用した場合、コードは自動的にステージングに昇格します。Heroku Platform API への拡張である Review App API によって、ワークフローを自動化したり Review Apps を様々な CI ツールから利用することもできます。Heroku Review Apps 関連資料→
![Heroku GitHub Integration](/assets/continuous-delivery/feature-github-42a2254d8794bef09c3ebf726238b6e1a7040375938f7c256fd719f85798e17e.png)
GitHub Integration
GitHub リポジトリを Heroku アプリに接続すると、GitHub push のたびに、特定のブランチを手動または自動的にデプロイできます。その都度、Heroku ダッシュボードにある該当アプリの[活動]タブに、現在のリリースと直前のコミットの差分が表示されるので、アプリでどのようなコードが使われているかを推測する必要はありません。外部の継続的インテグレーション(CI)サーバーを使用するように GitHub リポジトリを構成した場合は、CI が特定のコミットを通過させた後、ブランチの自動導入だけを行うように Heroku を構成できます。 GitHub Integration 関連資料→
![Heroku ChatOps](/assets/continuous-delivery/feature-chatops-bb6e84cc82f09159714788034fc699e32ffdbdaccae8199b952a2b6b3fe70fbe.png)
Heroku ChatOps
Heroku ChatOps は、Heroku Pipeline の機能を利用して、共同デプロイワークフローを Slack に拡張します。これにより、開発者は、ステージングへのデプロイや本稼働への昇格を Slack から行えるようになります。また、各チームは Heroku ChatOps を利用してチーム専用の Slack ルームにすべてのコード変更の記録を残すことができます。プルリクエストの通知、マージ、CI ビルド結果が Slack にすべて表示されるので、コンテキストを切り替えなくても、ビルドの結果や、本稼働への昇格が正常に終了したかどうかを確認できます。Heroku ChatOps 関連資料→
![Heroku Release Phase](/assets/continuous-delivery/feature-release-phase-83eec3b6cd934a7d1196ff5245c3056c68d455f64f601e0f3e07e2fd4d853e06.png)
リリースフェーズ
リリースフェーズ機能を使用すると、リリースを本番環境にデプロイする前に、タスクを実行することができます。これにより、保守時間をなくし、デプロイリスクを低減することが可能になります。データベースの移行、CDN への資産のアップロード、キャッシュの無効化など、アプリの本稼働準備に必要なことを何でも実行できます。リリースフェーズのタスクが失敗した場合、新しいリリースは導入されず、現在の本稼働リリースがそのまま維持されます。リリースフェーズ関連資料→