App Hub の概要

多くのクラウド アプリケーションは、1 つ以上の Google Cloud プロジェクトの複数のインフラストラクチャ リソースを含めるように進化するため、デベロッパーと運用者の両方がこれらのリソースを管理し、理解することが難しくなる場合があります。App Hub では、アプリケーションを中心とした方法によってこれらのリソースを整理し、リソースのやり取りの理解とビジネス機能のサポートを提供できます。

このドキュメントは、App Hub アプリケーションを設定、管理、使用するユーザーを対象としています。

アプリケーション中心の組織

App Hub は、ビジネス機能を検討する場合と同じように、アプリケーション中心の方法で Google Cloud リソースを整理することで、ビジネス目標に合わせることができます。App Hub は Google Cloud によって完全に管理されるため、追加のインフラストラクチャをインストールする必要はありません。

App Hub は、1 つ以上の Google Cloud プロジェクトから取得したインフラストラクチャ リソースを簡単に管理し、複雑なビジネス オペレーションと大規模なガバナンスを簡素化できます。App Hub は、これらのリソースを App Hub サービスとワークロードとして含む App Hub アプリケーションを作成することで、これらのインフラストラクチャ リソースを整理するのに役立ちます。アプリケーションにサービスとワークロードを登録すると、次の問題の解決に役立ちます。

  • プロジェクト全体に存在するアプリケーションの数。
  • アプリケーションのサービスとワークロードは互いにどのように依存しているか。
  • これらのアプリケーション、サービス、ワークロードの所有者は誰か。
  • 重要なアプリケーションの数。
  • 本番環境にあるアプリケーションの数。

たとえば、ビジネス用のアプリケーションの開発に複数のチームが関わっているとします。このようなチームが、多数の Google Cloud プロジェクトに分散した数百、数千の Google Cloud リソースを作成できます。App Hub はインフラストラクチャ リソースを自動的に検出し、サービスとワークロードの抽象化として表します。これらのサービスとワークロードをアプリケーションに登録して、リソースの所有権と重要度を明確にできます。詳細については、App Hub のコンセプトとデータモデルをご覧ください。

リソースをアプリケーションに整理すると、ビジネス ロジックとポリシーをアプリケーションに適用できるため、そのアプリケーションのみが影響を受け、組織内のどの担当者がそのアプリケーションを担当するかを把握できます。たとえば、特定の環境(本番環境など)用のアプリケーションを作成し、その所有者に高い権限を付与できます。

チーム構造の変更が発生した場合は、App Hub を使用して、アプリケーションの所有権を簡単に移行できます。また、App Hub を使用すると、さまざまなリソースやアプリケーション間の依存関係をより簡単に判断できます。

ユースケース

App Hub は、次のようなユースケースをサポートしています。

  • アプリケーションの整理と分類 - App Hub では、OwnerCriticalityEnvironment などの属性を使用してアプリケーションの整理と分類ができます。これにより、特定のアプリケーションと関連するリソースを簡単に探して管理できるようになります。

  • アプリケーション内のリソースを把握する - App Hub は、アプリケーションの構成を把握するのに役立ちます。これにより、デベロッパーや運用者はアプリケーションの仕組みと依存関係を理解できます。

コンセプトとデータモデル

App Hub には 3 つの主要なコンセプトがあります。

  • アプリケーションはエンドツーエンドのビジネス機能になるサービスワークロードの機能グループです。
  • ワークロードは、ビジネス機能の最小の論理サブセットを実行するバイナリ デプロイメントを表します。たとえば、マネージド インスタンス グループ(MIG)や Google Kubernetes Engine(GKE)のデプロイなどです。
  • サービスは、ネットワークを介して使用できるように、クライアントに機能を公開するネットワークまたは API インターフェースです。たとえば、ロードバランサの転送ルールです。

App Hub は、アプリケーションのコンセプトに基づいて構築されています。

アプリケーションとそれに関連する属性を使用して、サービスとワークロードの抽象化に関するガバナンスとオペレーションの境界を作成できます。これらの属性を使用して、オブザーバビリティ、監査、ガバナンスなどのアクティビティを実行しながら、アプリケーションや関連するサービスとワークロードを整理して配置できます。

App Hub のデータモデル
図 1。 App Hub データモデル。

ホスト プロジェクトのサービスまたはワークロードの登録ステータスは、次のいずれかの値になります。

  • 検出済み: アプリケーションに登録できるサービスとワークロード。検出されたサービスとワークロードには、アプリケーションから削除または登録を解除するサービスやワークロードも含まれます。
  • 登録済み: アプリケーションに登録されているサービスとワークロード。登録できるのは、検出されたサービスまたはワークロードのみです。サービスまたはワークロードを登録すると、登録ステータスが [検出済み] から [登録済み] に更新されます。
  • 接続解除: アプリケーションに登録されているサービスとワークロード、基盤となるリソースが削除されています。たとえば、サービスによって表される転送ルールが削除されると、サービスの [登録のステータス] は [接続解除] に更新されます。接続が解除されたサービスとワークロードは、登録を解除するまでアプリケーションに残ります。

ホスト プロジェクト

ホスト プロジェクトは App Hub リソース(アプリケーション、サービス、ワークロード)をホストします。App Hub のサービスとワークロードは、ホスト プロジェクトに接続されているサービス プロジェクトで検出されたリソースを抽象化します。ホスト プロジェクトは、その境界の一部であるアプリケーションの管理境界として機能します。特定のビジネスニーズに対応する複数のホスト プロジェクトとアプリケーションについては、個別の境界を作成できます。ホスト プロジェクトでは、アプリケーションのサービスとワークロードが複数のプロジェクトに存在する場合、プロジェクトをまたぐアプリケーションを管理することもできます。

基盤となるインフラストラクチャ リソースと App Hub データモデルのコンセプトを区別するために、新しい Google Cloud プロジェクトをホスト プロジェクトとして作成することをおすすめします。複数のホスト プロジェクト(たとえば、独立したビジネス ユニットごとに 1 つのホスト プロジェクト)が必要な場合は、新しいフォルダを作成して、プロジェクトを追加することをおすすめします。

ホスト プロジェクト(apphub.adminapphub.editorapphub.viewer)に付与された Identity and Access Management(IAM)ロールに基づいて、アプリケーションを作成し、アプリケーションに属性を割り当てることができます。サービスとワークロードの登録、表示を行います。詳細については、App Hub のロールと権限をご覧ください。

ホスト プロジェクト作成の詳細については、App Hub を設定するをご覧ください。

サービス プロジェクト

サービス プロジェクトとは、基盤となるインフラストラクチャのリソースを含む Google Cloud プロジェクトです。サービス プロジェクトをホスト プロジェクトに接続して、インフラストラクチャ リソースをアプリケーションにグループ化できるようにします。

サービス プロジェクトを複数のホスト プロジェクトに接続することはできません。ホスト プロジェクトは、それ自体のサービス プロジェクトにできますが、別のホスト プロジェクトのサービス プロジェクトにすることはできません。

プロパティと属性

App Hub データモデルには、アプリケーション、サービス、ワークロードの機能を強化するプロパティと属性も用意されています。

プロパティは、サービスまたはワークロードの基盤となるインフラストラクチャ リソースを記述するフィールドです。プロパティは、サービスやワークロードの登録エクスペリエンスに役立つ、基盤となるインフラストラクチャ リソース内の意味のある情報を識別するのに役立ちます。プロパティは不変で、基になるリソースで更新されます。たとえば、プロジェクト ID、ロケーション、ゾーンなどです。

属性は、アプリケーション、サービス、ワークロードに設定可能な変更可能なフィールドで、識別と整理が容易になります。サポートされている App Hub 属性には次のものがあります。

  • オーナー属性には、アプリケーション、サービス、ワークロードの連絡先情報が含まれます。サポートされているオーナータイプは次のとおりです。
    • developer_owners: 開発とコーディングを担当する開発チーム。
    • operator_owners: ランタイムとオペレーションの整合性を確保するオペレーター チーム。
    • business_owners: 品質を確保し、ユーザーの期待に応えるビジネスチーム。
  • アプリケーション、サービス、ワークロードの重要度は、ビジネスにとっての重要性を示します。サポートされている値は次のとおりです。

    • ミッション クリティカル
  • アプリケーション、サービス、ワークロードの環境とは、ソフトウェア ライフサイクルのステージ(本番環境、ステージング環境、開発環境など)のことです。サポートされている値は次のとおりです。

    • 本番環境
    • ステージング中
    • テスト
    • 開発環境

API と gcloud リファレンス

App Hub のプロパティの詳細については、次のリファレンスをご覧ください。

次のステップ