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 支持以下用例:

  • 整理和分类应用 - 借助应用中心,您可以使用 OwnerCriticalityEnvironment 等属性整理和分类应用。这样,您就可以轻松找到和管理特定应用及其关联的资源。

  • 了解应用中的资源 - App Hub 可帮助您了解应用的组成。这有助于开发者和运维人员了解应用的运作方式及其依赖项。

  • 监控应用中的资源预览版)- App Hub 提供了以下监控黄金信号的全面指标概览:流量、服务器错误率、P95 延迟时间、CPU 利用率和内存利用率。这些信号可帮助运营商了解应用性能并确定依赖项,以解决问题。

概念和数据模型

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 数据模型还提供可增强应用、服务和工作负载功能的属性特征

属性是用于描述服务或工作负载的底层基础架构资源的字段。属性有助于识别基础架构资源中具有意义的信息,这些信息有助于改善服务或工作负载的注册体验。通过 App Hub 创建的媒体资源是不可变的,只有在底层资源发生更改时才会更新。例如,项目 ID、位置和区域。

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

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

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

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

API 与 gcloud 参考文档

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

后续步骤