Heroku Flow は、Heroku Pipeline、レビューアプリ、Heroku CI、GitHub を構造化された使いやすいワークフローに統合し、継続的デリバリーを実現します。

開発者向けに最適化されたアプリケーション中心の継続的デリバリー

瞬時に実行できるプロフェッショナルなワークフロー

GitHub リポジトリを接続し、自動または手動で Heroku アプリケーションを開発環境、ステージング環境、または本番環境に配置することによってパイプラインを整理できます。また、使い捨て型のレビュー用アプリに反映される開発ブランチで複数の機能を同時に開発したり、GitHub push のたびに Heroku CI でテストを実行したり、プルリクエストをマージしたり、ステージングへのデプロイを自動化したり、本番環境に昇格させることができるユーザーを制御したりすることもできます。

コードデリバリーを完全に可視化

本稼働に向けて開発が続けられている特定の機能が今どの程度完成しているかを Heroku ダッシュボードの Pipeline 概要ページでリアルタイムに把握できます。また、Pipeline の概要ページでは、アプリケーション同士の関係が 1 ページにまとめられ、すべての環境における開発状況をひと目で確認することができます。さらに、Heroku CI を利用すれば、GitHub push の際に実行されたテストの結果をすべて表示することもできます。

反復頻度を上げて高品質を実現

Heroku は、プルリクエストが発行されるたびに、レビューアプリと呼ばれる使い捨て型の環境を専用の URL でスピンアップします。ブランチへの GitHub push のたびに Heroku CI がトリガーされてテストが行われます。製品ライフサイクルの早い段階でチームメンバー全員が機能テストに関与できるようになったことで、意思決定が迅速になり、高品質を実現できるようになりました。ステージング環境と本番環境を同一の条件に保つことで、お客様よりも先に不具合を発見することもできます。

リリースを早めてコラボレーションを促進

Heroku Teams と ChatOps に Heroku Pipeline、レビューアプリ、GitHub を組み合わせると、継続的デリバリーをさらに簡単に実現できます。Heroku Teams では、適切な権限を持つメンバーが Pipeline 内での変更を共同で行うことができます。また、Heroku ChatOps を使用すると、Pipeline に関係するコード変更やデプロイに関する通知を Slack に投稿してコミュニケーションをさらに円滑化できます。チームメンバーは Heroku CI の結果を確認してパイプラインのアプリケーションにデプロイするなど、さまざまな作業を Slack から行えます。

継続的デリバリーについてもっと詳しく知りたいとお考えですか?

継続的デリバリーの詳細はこちら→

6 つの主要機能をまとめて提供することにより継続的デリバリーを実現する Heroku Flow

Heroku Pipelines

Heroku Pipelines

Pipeline は、共通のコードベースを持つ Heroku アプリをレビュー環境、開発環境、ステージング環境、本番環境にまとめて、継続的デリバリーのサポート、管理、可視化を可能にする方法です。テスト済みのコードを次のステージに昇格させる作業は手動でも自動でもほぼ一瞬で完了します。これは、コンパイルされた中間生成物が次のステージに送られるからです。Heroku ダッシュボードの Pipeline 概要ページでは、コードや機能の進捗状況を、開発から本稼働までリアルタイムで追跡できます。Heroku Pipelines 関連資料→

Heroku CI

Heroku CI

Heroku CI は、Heroku Pipeline に統合された低コンフィグレーションのテストランナーです。Heroku CI では、ステージング環境と本番環境で強力なパリティを持つ即席のアプリを使用して、待ち時間なしでテストスクリプトを実行し、迅速に結果を得ることができます。テスト結果には Heroku からも GitHub からもアクセスでき、CI の結果に応じてデプロイを自動化することもできます。また、ビジュアルインターフェースも用意されているので、チーム単位の継続的デリバリーにおける CI の役割をサポートすることもできます。Heroku CI 関連資料→

Heroku Review Apps

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

GitHub Integration

GitHub リポジトリを Heroku アプリに接続すると、GitHub push のたびに、特定のブランチを手動または自動的にデプロイできます。その都度、Heroku ダッシュボードにある該当アプリの[活動]タブに、現在のリリースと直前のコミットの差分が表示されるので、アプリでどのようなコードが使われているかを推測する必要はありません。外部の継続的インテグレーション(CI)サーバーを使用するように GitHub リポジトリを構成した場合は、CI が特定のコミットを通過させた後、ブランチの自動導入だけを行うように Heroku を構成できます。 GitHub Integration 関連資料→

Heroku ChatOps

Heroku ChatOps

Heroku ChatOps は、Heroku Pipeline の機能を利用して、共同デプロイワークフローを Slack に拡張します。これにより、開発者は、ステージングへのデプロイや本稼働への昇格を Slack から行えるようになります。また、各チームは Heroku ChatOps を利用してチーム専用の Slack ルームにすべてのコード変更の記録を残すことができます。プルリクエストの通知、マージ、CI ビルド結果が Slack にすべて表示されるので、コンテキストを切り替えなくても、ビルドの結果や、本稼働への昇格が正常に終了したかどうかを確認できます。Heroku ChatOps 関連資料→

Heroku Release Phase

リリースフェーズ

リリースフェーズ機能を使用すると、リリースを本番環境にデプロイする前に、タスクを実行することができます。これにより、保守時間をなくし、デプロイリスクを低減することが可能になります。データベースの移行、CDN への資産のアップロード、キャッシュの無効化など、アプリの本稼働準備に必要なことを何でも実行できます。リリースフェーズのタスクが失敗した場合、新しいリリースは導入されず、現在の本稼働リリースがそのまま維持されます。リリースフェーズ関連資料→

「Heroku の CI/CD ツール、そして、Review Apps、Pipelines、CI によって、私たちの品質基準を保つことができ、地域の医師にいつも使っているブラウザから地域専用のアプリを試してもらうこともできます。」

Alex Broussard
THINKMD 社 CTO
THINKMD 様事例→

「私たちの CI/CD ワークフローを素早く簡単に Heroku に設定することができました。プラットフォームのツールは私たちの時間を節約してくれます。スタートアップとして私たちは時間への最適化が必要なのです。」

Marc Vanderstigel
RocketChart 社共同創業者
RocketChart 様事例→

「Heroku Review Apps はお客様と共同作業をして受け入れ試験を管理する素晴しい方法です。お客様がどこに居ても、開発中の新機能を簡単に共有し、すばやくフィードバックや承認をもらうことができます。」

Joe Leo
Def Method 社創業者
Def Method 様事例→

「Heroku Release Phase によって、デプロイ中にデータベースマイグレーションを手動で走らせたり Elasticsearch のスキーマを変更したりする必要がなくなりました。デプロイを自動化しコードの出荷を簡単にする一助になっています。」

TONY CASSANEGO
DocSend 社共同創業者兼 CTO
DocSend 様事例→