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 から行えます。

  • Heroku CI では、コードのテスト、デプロイ、提供に同じサービスを利用できます。さらに、Heroku Pipeline と組み合わせると、複数のアプリケーションや環境にわたってすべての CI/CD 自動化を簡単に管理できます。

    SuperHi Rik Lomas SuperHi 社創業者兼 CEO
  • デプロイフローに関する情報を Heroku ChatOps に一元化することで重複を回避できるようになったため、私たちは自信を持って、手作業によるデプロイから、完全統合型の自動化されたデプロイフローに切り替えることができました。

    Drawbotics Stanislas Boyet Drawbotics 社 CTO
  • Heroku のレビューアプリは、私たちのデプロイプロセスに欠かせない機能です。エンジニアリングチーム、製品チームの両方が、コードやユーザーエクスペリエンス全般のテストにこの機能を利用しています。

    charity: water Matthew Eckstein charity: water エンジニアリング担当 VP お客様事例を読む >>
  • 私たちは 1 日に何度も本稼働向けの出荷を行っていますが、その中心にあるのが Heroku の レビューアプリ機能です。新機能の出荷前検証や承認にはレビューアプリが実に簡単で便利です。

    Bonobos Tim Julien Bonobos Inc. 社エンジニアリング担当 VP お客様事例を読む >>
  • 当社では Heroku Pipeline をリリースと同時に使い始め、今ではあらゆるマイクロサービスの継続的デリバリーに活用しています。

    ZeroCater Rob Adams ZeroCater 社エンジニアリングマネージャー お客様事例を読む >>
  • Heroku のリリースフェーズ機能のおかげで、データベースを手作業で移行する必要がなくなっただけでなく、デプロイ中に Elasticsearch スキーマを更新する必要もなくなりました。デプロイを自動化できるので、コードの出荷も本当に楽になりました。

    DocSend Tony Cassanego DocSend 社共同創業者兼 CTO お客様事例を読む >>
  • 当社では、Heroku Release Phase を利用してデータベーススキーマの更新を自動的に行っています。データベースの変更が完了するまでは新しいリクエストが更新済みのアプリケーションコードに干渉しないと保証されているので、デプロイに使える時間が大幅に増えました。本当にすばらしい機能です。

    Smile.io Bill Curtis Smile.io 社共同創業者兼 CTO お客様事例を読む >>

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

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

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 への資産のアップロード、キャッシュの無効化など、アプリの本稼働準備に必要なことを何でも実行できます。リリースフェーズのタスクが失敗した場合、新しいリリースは導入されず、現在の本稼働リリースがそのまま維持されます。