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 Pipeline ドキュメントを読む

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

Heroku CI

Heroku CI ドキュメントを読む

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

Heroku Review Apps

レビューアプリ ドキュメントを読む

レビューアプリは、変更点をコードベースにマージするかどうかを提案、検討、決定するための新しい方法です。GitHub に接続された Heroku アプリの場合、未解決のプルリクエスト(PR)ごとの専用 URL で一時的なテストアプリを手動または自動でスピンアップできます。この一時的なアプリはコミットのたびに自動更新されるため、レビュー担当者はコードの動作を推測するのではなく、ブラウザーで実際に試してみることができます。PR をマージすると、レビューアプリは破棄されます。また、パイプラインで使用した場合、コードは自動的にステージングに昇格します。

Heroku GitHub Integration

GitHub との連携 ドキュメントを読む

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

Heroku ChatOps

Heroku ChatOps ドキュメントを読む

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

Heroku Release Phase

リリースフェーズ ドキュメントを読む

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

「私は新しい Review Apps をとても楽しんでいます。これまでも好きだったものが、使うのも見るのもさらに楽しいものになりました。」

CHRIS CASTLE
Heroku デベロッパーアドボケイト

「Heroku Pipeline で私たちの小さなチームの生産性が上がりました。それぞれのプルリクエストに続いて作成される review app で、全ての開発者はそれぞれの試験環境を手に入れて、ほとんど干渉せず同時に同じアプリに取り組むことができます。」

JANE PHILIPPS
The Information 社エンジニア

「Heroku によって、素晴らしい create-react-app buildpack アプリを GitHub から自動的にデプロイできます。」

JOHN XIE
Taskade 共同創業者兼 CEO

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

TONY CASSANEGO
DocSend 社共同創業者兼 CTO
お客様事例を読む→