IBM Cloud Docs
什么是模块和可部署体系结构?

什么是模块和可部署体系结构?

创建安全,合规且可扩展的应用基础架构可能难以设置,维护成本高昂。 您可以利用模块和可部署的体系结构,而不是自行了解如何组装合规的基础架构。 模块和可部署体系结构可帮助您围绕如何在组织的帐户中部署资源创建框架。 通过使用这些可复用的配置,您可以定义一次部署标准,并确保该标准易于对组织中的每个成员重复。

比如,想想一个正在建设公寓综合体的建筑师。 这些设计通常以模块化方式执行。 有标准的一居室,两居室或三居室的模式。 建筑商可以将标准公寓,每个功能都以自己的方式,组合成一个更大的,更复杂的,但功能上的生活安排。 IBM 将此类推应用于在云上部署解决方案。 您可以使用 IBM Cloud的精心设计的模式,而不是组织花几个月时间来琢磨如何让服务和软件协同工作。 每种模式都被打包成可组合的自动化构件,称为模块和可部署架构。

什么是模块?

模块是可由开发者复用并作为更大系统的一部分共享的独立自动化代码单元。 与 Node.js 或 Python 包类似,模块是管理相关资源的开发者的方便。 虽然可以单独使用模块,但当您将它们组合在一起以构建可部署的体系结构时,它们会更强大。 IBM Cloud 创建的模块在 IBM Terraform 模块公共 GitHub 组织中可用。 例如,Red Hat® OpenShift® IBM Cloud 模块 会在 IBM Cloud上安装并配置 Red Hat OpenShift 集群。

什么是可部署的体系结构?

可部署体系结构是云自动化,用于部署用于组合一个或多个云资源的公共体系结构模式。 它旨在提供用户简化的部署,可扩展性和模块化。 可部署体系结构包含一个或多个模块。 可部署体系结构以 Terraform 编码,您使用输入变量对其进行配置以实现所需的行为。 要创建更复杂的可部署架构,可以将可部署架构堆叠在一起,而无需编辑 Terraform 代码。

包含模块的可部署架构
包含
的可部署架构*

可部署架构的一个例子是 Secrets Manager 的云自动化。 这种可部署架构将 IBM Cloud Secrets Manager 实例作为模块化解决方案提供。 您可以使用此架构通过 IBM Cloud 账户安全地管理机密。 Secrets Manager 的云自动化范围较窄。 它只部署一个 Secrets Manager 实例,不过,如果不存在 IBM Key Protect 密钥环和密钥,可部署架构也可以选择创建 密钥环和密钥来加密数据。

可部署架构的范围可以更广,例如 VPC landing zone. VPC landing zone 在由中转网关连接的辐辏网络模式中提供多个虚拟私有云。 它包含许多支持服务,用于监视和保护在 VPC 上运行的工作负载。

由专家在 IBM Cloud 上构建和维护的可部署体系结构可供您在 IBM Cloud 目录中使用。 如果选择创建您自己的可部署体系结构版本,或者从头开始构建可部署体系结构,那么可以将可部署体系结构加载到专用目录中,并通过目录与组织共享可部署的解决方案。

堆叠可部署架构意味着什么?

试验版

对于更复杂的用例,您可以将架构堆叠在一起,形成一个完整的端到端解决方案,用于部署复杂的应用程序或基础架构。 与提供特定功能的单个模块或可部署架构不同,堆叠将多个可部署架构结合起来,形成一个易于部署和管理的综合解决方案。 正如模块可以组合起来创建可部署架构一样,可部署架构也可以堆叠起来创建更广泛的解决方案。 堆叠包括将架构连接在一起,以创建复杂的可部署架构。 这种链接是通过使用引用符号在每个可部署架构的输入中指定引用来实现的。 你不需要成为 Terraform 专家,也不需要掌握任何 Terraform 编码技能,就能将架构堆叠在一起并进行部署。

例如,考虑一下 Secrets Manager 的云自动化。 该可部署架构包括 Secrets Manager 模块,该模块创建 Secrets Manager 实例。 如果您只需要 Secrets Manager 的一个实例,那么可部署架构是一个合适的选择。 然而,安全地管理机密只是维护云安全的一个环节。 如何运行合规性扫描,以便始终了解资源的状况? 或者接收 IBM Cloud 帐户中的关键事件通知?IBM Cloud 基本安全和可观察性服务可部署架构利用 IBM Cloud 提供的全部安全服务。 它是通过将 Secrets Manager 的云自动化与提供其他 IBM Cloud 服务(如 Security and Compliance Center 和 Event Notifications )的可部署架构堆叠在一起而创建的。 这种可部署的架构可提供更全面的安全解决方案,而 Secrets Manager 本身无法提供这种解决方案。

堆叠可部署架构
堆叠可部署架构以构建端到端解决方案

您可以在 IBM Cloud 项目中堆叠可部署架构,并将它们一起发布到目录中,而无需许多额外的验证步骤。 或者,您也可以在将解决方案加入私有目录时堆叠架构。 这样,您就可以与他人共享,省去他们自己重建的时间。

这种复杂的解决方案在成本、合规性、支持和质量保证方面的优势主要来自其包含的可部署架构。 然而,这种复杂的解决方案有其独特的版本、描述和架构图。 如果对与目录中其他组件堆叠在一起的可部署架构进行了更新,则整个解决方案都必须由上线人员进行更新,以使用该组件可部署架构的最新版本。 将整个解决方案更新到新版本有助于确保单个架构的最新更新在更广泛的解决方案中正常运行。

不过,每个可部署架构都有独立的配置状态,允许每个架构独立部署、更新或取消部署。 例如,您已经知道 IBM Cloud Essential Security and Observability Services 可部署架构包括 Cloud automation for Secrets Manager 可部署架构等。 如果更新了 Secrets Manager 的云自动化,则需要更新 IBM Cloud Essential Security and Observability Services 以使用 Secrets Manager 的最新版本。 但是,IBM Cloud Essential Security and Observability Services 中包含的每个架构都不需要由使用该解决方案的用户重新部署。 当用户更新项目以使用最新版本时,只需重新部署 Secrets Manager。

在更广泛的解决方案中更新可部署架构
在更广泛的解决方案中更新可部署架构

可部署架构包括哪些内容?

可部署体系结构可能包含变体,具有依赖关系或堆叠在一起以创建更复杂的解决方案。

变体

变体是一种可部署体系结构类型,用于将不同的功能或复杂性应用于现有可部署体系结构。 例如,可能存在可部署体系结构的快速启动变体,这些变体具有用于在内部测试的简单低成本部署的基本功能。 而且,您可能有一个标准变体,它更复杂一些,可以在生产中使用。

所需架构

可部署架构可能包含需要其他可部署架构输出才能成功部署的输入。 可部署架构与其所需的另一架构之间的这种关系通常称为依赖关系。 您可以通过两种方式满足依赖性要求:堆叠可部署架构,或将可部署架构加入私有目录,然后将其扩展到其他架构。

依赖于另一个可部署架构的可部署架构
依赖于另一个可部署架构的可部署架构
可部署架构

可选架构

可部署架构设计灵活,因此您可以轻松地将架构堆叠在一起,构建更完整的解决方案。 但是,一般有用的可部署架构可能不包括满足复杂用例所需的特定选项。 例如,哪个数据库与 Java 应用程序配套? 您是否需要事件通知、消息队列或其他默认不包含的可选服务? 可选的可部署架构可与所需的可部署架构堆叠在一起,为用户解决这一定制问题。

可互换架构

无论是要求架构满足依赖性,还是将其作为架构的可选扩展,用户都可能需要更多的灵活性。 您可能知道您的 Java 应用程序可使用可选数据库,但您的用户需要哪个数据库呢? 为用户指定可互换的架构有助于他们定制端到端解决方案,以满足他们的特定需求。 将任何可选或必需的架构堆叠在一起后,就可以将架构分组为可相互交换的架构。 然后,消费用户可以选择他们想要使用的必备架构来满足依赖关系,或者如果他们想要扩展用例,也可以选择可选架构。

当您 将可部署架构加入私有目录 时,可以添加可选和可交换的架构。 目前,在项目中堆叠可部署架构 不支持可选或可交换架构。

什么是项目以及它们如何使用可部署的体系结构?

IBM Cloud 项目是一个管理工具,旨在对组织中存在的现实世界项目进行组织和提供可视性。 项目管理可部署体系结构的所有已配置实例以及与部署这些实例的现实世界原因相关的资源。 项目存储版本化的可部署体系结构实例,并将实例和资源组织到环境中,以帮助提高对开发生命周期的可视性。 环境是一组相关的可部署体系结构实例,它们共享用于更轻松部署的值。 例如,开发,测试或生产。

项目负责确保只能部署已核准的可部署体系结构。 此外,它们可以帮助确保它们创建的体系结构和资源是最新的,合规的,并且不会随时间推移而发生漂移。 例如,您可能具有帐户管理应用程序项目。 此项目旨在管理帐户管理应用程序需要部署到开发,测试或生产环境中的所有资源。 每个环境都具有相同的变量 (例如区域或前缀),但具有不同的值。 通过项目将可部署体系结构分配给环境时,其输入值可以自动引用具有相同名称的任何环境属性。 虽然 IBM Cloud 项目易于创建和更新,但未对其进行模板化或优化以进行复制或共享。

如何知道要创建的解决方案?

如果您计划创建自己的解决方案,那么应考虑范围,耦合,是否可部署以及解决方案的用途。 有关帮助您确定计划构建内容的指导和用例,请参阅 规划和研究如何设计体系结构如何确定要创建的组件类型

下表提供了您可能要创建不同组件的原因的高级概述。

了解自动部署用例
用途 建议的方法 为什么?
创建可共享自动化组件的库 创建模块 模块提供可复用的组织自动化,以加速创建和配置可部署体系结构的人员的过程。
确保组织的云环境安全且合规 创建可部署的架构 可部署体系结构的打包方式使您可以一次性定义安全且合规的部署,并确保组织的所有成员都以相同方式重复部署。
构建自己的解决方案 将可部署架构堆叠在一起 通过组合体系结构,您可以为组织创建更复杂的端到端解决方案。