App Hub 概览

许多云应用演变为包含来自一个或多个 Google Cloud 项目的多项基础架构资源,这可能会使开发者和运维人员更加难以管理和理解这些资源。App Hub 引入了以应用为中心的方法来组织这些资源,以帮助您了解资源交互并支持业务功能。

本文档面向设置、管理和使用 App Hub 应用的个人。

以应用为中心的组织

App Hub 使您能够以以应用为中心的方式整理 Google Cloud 资源,与您看待业务功能相同,因此有助于您实现业务目标。App Hub 完全由 Google Cloud 托管,您无需安装任何其他基础架构。

App Hub 管理员可以轻松管理从一个或多个 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 有三个关键概念:

  • 应用服务工作负载的功能性分组,可带来端到端的业务功能。
  • 工作负载表示执行业务功能的最小逻辑子集的二进制部署,例如代管式实例组 (MIG) 或 Google Kubernetes Engine (GKE) 部署。
  • 服务是一种网络或 API 接口,用于向客户端公开功能以便通过网络使用;例如负载均衡器的转发规则。

App Hub 是围绕应用的概念构建的。

您可以使用应用及其关联的属性围绕服务和工作负载抽象创建治理和操作边界。然后,您可以使用这些属性来组织和定位应用及其关联的服务和工作负载,同时执行可观测性、审核和治理等活动。

App Hub 数据模型
图 1.App Hub 数据模型。

宿主项目中服务或工作负载的注册状态具有以下值之一:

  • 已发现:可注册到应用的服务和工作负载。发现的服务和工作负载包括您从应用中删除或取消注册的服务或工作负载。
  • 已注册:已注册到应用的服务和工作负载。您只能注册已发现的服务或工作负载。注册服务或工作负载后,注册状态会从已发现更新为已注册。
  • 分离:已注册到其底层资源被删除的应用的服务和工作负载。例如,如果服务代表的转发规则被删除,则注册状态会更新为已分离。在您取消注册之前,已分离的服务和工作负载会保留在应用中。

宿主项目

宿主项目托管 App Hub 资源(应用、服务、工作负载)。App Hub 服务和工作负载充当您在连接到宿主项目的服务项目中发现的资源的抽象。宿主项目充当管理边界,这些应用属于此边界的一部分。您可以使用满足特定业务需求的多个宿主项目和应用创建单独的边界。借助宿主项目,您还可以管理跨项目应用,在此类应用中,应用的服务和工作负载存在于多个项目中。

我们建议您创建新的 Google Cloud 项目作为宿主项目,以便将底层基础架构资源与 App Hub 数据模型概念区分开来。如果您需要多个宿主项目(例如,每个独立业务部门一个宿主项目),我们建议您创建一个新文件夹并将项目添加到其中。

根据授予宿主项目的 Identity and Access Management (IAM) 角色(apphub.adminapphub.editorapphub.viewer),您可以创建应用、为应用分配特性,以及注册或查看服务和工作负载。如需了解详情,请参阅 App Hub 角色和权限

如需详细了解如何创建宿主项目,请参阅设置 App Hub

服务项目

服务项目是包含底层基础架构资源的 Google Cloud 项目。您可以将服务项目关联到宿主项目,使项目中的基础架构资源可用于组合到应用中。

您不能将一个服务项目关联到多个宿主项目。宿主项目可以是其自身的服务项目,但不能是其他宿主项目的服务项目。

属性和特性

App Hub 数据模型还提供了可增强应用、服务和工作负载的功能的属性属性

属性是描述服务或工作负载的底层基础架构资源的字段。属性有助于在底层基础架构资源中识别有助于改善服务或工作负载注册体验的有意义信息。属性是不可变的,并且通过底层资源进行更新。例如项目 ID、位置和可用区。

属性是可变字段,可为应用、服务和工作负载设置此字段,以便更好地识别和整理它们。受支持的 App Hub 属性包括:

  • Owners 属性包含应用、服务或工作负载的联系信息。支持的所有者类型如下:
    • developer_owners:负责开发和编码的开发团队。
    • operator_owners:确保运行时和操作完整性的运营商团队。
    • business_owners:负责确保质量并确保用户期望得到满足的业务团队。
  • 应用、服务或工作负载的重要性表明它对业务的重要性。支持的值如下:

    • 任务关键型
  • 应用、服务或工作负载的环境是软件生命周期的阶段,例如生产、预演或开发。支持的值如下所示:

    • 生产
    • 预演
    • 测试
    • 开发

API 与 gcloud 参考文档

如需详细了解 App Hub 属性,请参阅以下参考文档:

后续步骤