识别 CAP 中的部署选项

学习目标

  • 识别 CAP 应用的部署选项

引言

你已经开发出 CAP 项目的稳定版本,现在希望将其部署到 SAP BTP。部署项目有多种选项。在本课中,你将了解不同的部署选项。

部署选项

部署 CAP 应用时有多种选项。下图"CAP 应用的部署选项"展示了这些不同的选项。

该图展示了 CAP 应用的部署选项。相关信息在下文中提供。

在 SAP Business Technology Platform(SAP BTP)上,部署可以针对 SAP BTP, Kyma Runtime 和 SAP BTP, Cloud Foundry Runtime 这两种运行时。除了将其部署到特定子账户上的运行时之外,还可以将 CAP 应用作为服务(SaaS)部署到 SAP BTP, Cloud Foundry Runtime 或 SAP BTP, Kyma 环境。随后,多个 SaaS 使用者(其他子账户)可以从服务市场中订阅该应用。

SAP BTP 开发人员指南也概述了 SAP BTP 上可用的不同方法。

SAP BTP, Cloud Foundry Runtime

部署到 Cloud Foundry 非常直接。CAP 使用**多目标应用(MTA)**方式将应用部署到 Cloud Foundry 环境。MTA 在逻辑上是一个单一应用,由多个相关且相互依赖的部分(模块)组成,这些部分使用不同的技术或编程范式开发,并被设计为在具有单一一致生命周期的不同目标运行时环境中运行。

本课程稍后会更详细地介绍 MTA。有关完整的 Cloud Foundry 部署指南,请参阅 CAP 文档。

SAP BTP, Kyma Runtime

可以部署到 SAP BTP, Kyma Runtime。CAP 使用 PackHelm Charts 来简化部署过程。你无需自行创建 Dockerfile 和容器镜像。这套工具会为你处理这些工作。如果你刚接触 Kyma 和 Kubernetes,请务必查看免费的 Kyma 学习之旅

请在 CAP 文档中阅读有关 Kyma 部署过程的更多内容。

多租户(SaaS)

将 CAP(SAP Cloud Application Programming Model)应用部署为软件即服务(SaaS)应用,意味着让你的应用可供共享基础设施内的多个租户访问。此类应用旨在为每个租户提供数据隔离、定制、安全性和可扩展性,同时高效利用共享资源。这种方式在软件即服务(SaaS)和基于云的企业应用中很常见,即多个客户或组织使用同一个应用实例,同时各自独立维护其数据和配置。

CAP 通过 @sap/cds-mtxs 库内置了对多租户的支持,提供了一组实现多租户、功能开关(features)、切换开关(toggles)和扩展性的 CAP 服务。

为你的 SaaS 应用启用多租户的步骤如下:

  1. npm add @sap/cds-mtxs

  2. 导航到 package.json,并根据需求添加以下一个或多个标志:

"cds": {
"requires": {
"multitenancy": true,
"extensibility": true,
"toggles": true
}
}

SaaS 应用必须向 SAP BTP SaaS Provisioning 服务注册,才能允许不同租户订阅或取消订阅该应用。除此之外,还可以使用 Service Manager 为每个租户创建新的 SAP HANA Deployment Infrastructure(HDI)容器,并获取租户特定的数据库连接。

由于这是一个多租户应用,使用独立应用路由器(Standalone App Router)是在 SAP BTP 上创建多租户应用的最佳实践。应用路由器是一个 Node.js 库,用作 SAP BTP 上应用运行的单一入口点。更多细节将在下一课中介绍。

请在 CAP 文档中阅读有关使用 CAP 构建 SaaS 应用MTX 服务的更多内容。

自定义部署

为部署创建 SAP Cloud Application Programming(CAP)应用的自定义构建,通常涉及将 CAP 应用的源代码和资源编译并打包成一个可用于生产环境的捆绑包,以便部署到你选择的部署环境。

cds build 会在你的项目文件夹上执行构建任务,使其为部署做好准备。你可以通过项目设置中的选项、标志或配置文件,或者通过命令行参数来自定义 cds build 过程的行为。

带选项的命令示例:cds build --production

请在 CAP 文档中阅读有关用于部署的自定义构建的更多内容。

总结

部署 SAP Cloud Application Programming(CAP)应用时,根据你的具体需求、基础设施和偏好,有多种部署选项。如果选择 SAP BTP 作为云平台,那么 Cloud Foundry 或 Kyma 环境既可用于多租户(SaaS)应用,也可用于单租户应用。当你需要更简单的部署模型和高级抽象时,请选择 Cloud Foundry。当你需要对容器化应用和微服务进行广泛控制(尤其是在 Kubernetes 生态系统中)时,请选择 Kyma。