说明部署过程

学习目标

  • 描述 CAP 应用程序的 Cloud Foundry 部署过程

  • 描述 MTA 开发项目的基本概念,并理解 mta.yaml 文件中包含的信息

部署过程

使用场景

在 SAP Business Technology Platform 上部署 CAP 应用程序涉及若干步骤,包括设置所需的服务、配置部署环境以及部署应用程序本身。

  1. 设置 SAP BTP 环境:

  • 登录 SAP BTP Cockpit。

  • 为您需要的服务设置必要的子账户和权益。

  • 确保 Cloud Foundry 环境所需的权益可用。

  1. 准备您的 CAP 应用程序:

  • 创建您的 CAP 项目。

  • 确保应用程序已准备好部署,并具备目标环境所需的配置。

  • 在 mta.yaml 文件中配置部署设置。

  • 在部署描述符中定义所需的服务及其绑定。

  1. 构建应用程序:

  • 使用 CAP 工具或相应的构建工具来构建应用程序。

  • 确保应用程序在没有任何错误或警告的情况下成功构建。

  1. 部署应用程序:

  • 使用 Cloud Foundry CLI 或 SAP Business Application Studio 将应用程序部署到 SAP BTP。

  • 监控部署过程,以发现可能出现的任何错误或问题。

通过遵循这些步骤,您可以有效地在 SAP BTP 上部署 CAP 应用程序,并确保其在 SAP 云环境中平稳运行。

部署过程

  1. 假设第 1 步已就绪(可访问 SAP BTP、Cloud Foundry 环境,已创建 CF 空间,并已配置且正在运行 SAP HANA Cloud 数据库实例),接下来的重点将放在后续步骤上,从为部署准备应用程序开始。 该图展示了项目结构。

  2. 准备您的 CAP 应用程序: 为部署准备应用程序的先决条件:

  3. 在我们的 CAP 项目中配置了 SAP HANA Cloud 数据库: cds add hana --for production

  4. 通过使用 SAP Authorization and Trust Management Service 配置身份验证和授权: cds add xsuaa --for production 。这会生成一个 xs-security.json 文件,其中的角色/范围(roles/scopes)派生自已创建的 CDS 模型中与授权相关的注解。请确保重新运行 cds compile --to xsuaa 以应对项目中注解的更改。

  5. 使用基于多目标应用程序的部署来实际执行部署时,将使用 Cloud MTA Build 工具( cloud mta build tool )。 cds add mta 为了理解多目标应用程序项目,我们将深入探讨下一个主题:MTA 开发项目。

多目标应用程序(MTA)开发项目

编程语言的最新趋势与进展、诸如微服务之类的软件设计架构、诸如 OData 之类的协议,以及多层级和分布式部署平台的多样性,都加速了由更小、解耦且多样的模块构建应用程序的趋势。

如今,业务应用程序由多个部分组成,这些部分使用不同的语言和技术开发,并部署到各种目标运行时环境。这种多样性带来了许多生命周期方面的挑战。

观看视频,了解多目标应用程序的概念。

视频:本节含 SAP 官方视频(视频 ID 1_hh7ru524),需在 learning.sap.com 在线观看。

多目标应用程序(MTA)由多个部分(模块)组成,这些部分使用不同的技术创建并部署到不同的目标,但具有单一、共同的生命周期。

简而言之,MTA 在逻辑上是一个单一应用程序,由多个相关且相互依赖的部分(此处称为模块)组成,这些部分使用不同的技术或编程范式开发,并设计为在不同的目标运行时环境中运行,且具有单一、一致的生命周期。

SAP 提供的开发工具允许您在一个独特的开发项目中管理多个应用程序(作为“模块”),并通过一个独特的归档文件(MTA archive(MTAR))部署它们。

在 SAP Business Application Studio 中,我们可以选择创建 Basic MTA 项目或 SAP Cloud Application Programming Model(CAP)项目。在整个课程中,我们使用 CAP 类型的项目开发了业务应用程序和相关工件,其文件夹结构如下:

  • db :用于数据库级别的模式模型

  • srv :用于服务定义层

  • app :用于 UI 工件

观看视频,了解 MTA 的设计时和运行时。

视频:本节含 SAP 官方视频(视频 ID 1_g1ozyrik),需在 learning.sap.com 在线观看。

描述 MTA 开发描述符文件

MTA 模型是对不同应用程序模块、它们之间的相互依赖关系、它们所公开的配置数据以及它们运行所需资源的平台无关描述。此模型使用 YAML 在伴随开发和部署过程的描述符文件中进行指定。

MTA 模型有以下用途:

  1. 定义由多个(异构)子组件组成的应用程序(好处:工具可以为这些子组件建立唯一的生命周期)。

  2. 声明应用程序在运行时和/或部署时所依赖的资源(好处:工具可以分配并绑定此类资源)。

  3. 定义配置变量(及其关系),其值用于区分应用程序的不同部署(好处:工具可以绑定子组件,可以基于默认设置自动执行部署,或以交互方式请求缺失的必填值)。 该图展示了分布式应用程序的生命周期管理。 观看视频,了解从开发到部署的流程。

视频:本节含 SAP 官方视频(视频 ID 1_cr8mm9b4),需在 learning.sap.com 在线观看。 如图所示,应用程序开发者使用开发工具创建 MTA 的模块以及相应的 MTA 描述符(mta.yaml)。 然后,应用程序可以以 MTA 归档的形式分发,其中包含 MTA 部署描述符(mtad.yaml)。该规范将归档格式描述为一种便捷的分发文件。如从开发工具到部署器的直接箭头所示。 MTA 部署器也可以接受此格式的纯内容,即带有部署描述符(mtad.yaml)的文件目录结构。 管理员可选地使用扩展描述符(mtaext.yaml)在部署描述符中扩充 MTA 模型,并使用 MTA 部署器来编排实际部署。

  • 全局元素 :这些包括应用程序标识符和版本、描述(可选)、版权、作者等。

  • 模块 :应用程序中创建的模块,例如 SAP HANA 数据库模块和 Node.js 模块,包括名称、类型、路径以及对其他模块的要求。

  • 资源 :资源(resource)是 MTA 的某个模块在运行时或部署时所需、但未在 MTA 内部提供的东西。更准确地说,MTA 描述符声明的是一种资源依赖关系,而不是资源本身。有时它们被称为后端服务(Backing Services),即应用程序未提供的依赖服务,例如 XS Advanced User Account and Authentication(XSUAA)、XS Advanced HANA Deployment Infrastructure(XSHDI)容器以及 XSJob-Scheduler。

  • 属性 :当值必须在部署期间确定时可以指定这些属性,例如用于其他服务生成的 URL 或 API 密钥。

  • 参数 :模块的保留变量,可被其他模块访问,例如使用占位符表示法的 user、app-name、default-host 或 default-uri。参数可以是只读的,也可以启用读/写。

  1. 使用 App Router 其任务是: App Router 充当单一入口网关,用于将请求路由到目标。特别是,它结合 XSUAA 确保用户登录和身份验证。其任务是:

  • App Router 将请求分派到我们的后端微服务,从而充当反向代理。后端微服务不应被客户端直接访问。

  • App Router 可以提供静态内容,例如网页、SAPUI5 或其他客户端代码。

  • App Router 管理我们整个应用程序的身份验证流程。对于身份验证(用户是谁)和授权(允许用户做什么),App Router 接收所有传入的、未经身份验证的请求,并与 Cloud Foundry 环境中 SAP BTP 的 Extended Services for User Account and Authentication(XSUAA)服务发起 OAuth2 流程(授权代码授予)。 在 Cloud Foundry 环境中使用 Approuter 时,SAP 提供两种主要选项:SAP Managed Approuter 和 Standalone Approuter。 SAP Managed Approuter 适用于 launchpad 作为访问应用程序入口的场景。托管 Approuter 功能随 SAP Build Workzone 的订阅一同提供。使用托管 Approuter 部署的应用程序可在 HTML5 repository 中使用。Standalone App Router:适用于必须实现 Approuter 可扩展性的特殊场景,或在 SAP BTP 上构建多租户应用程序(SAAS)的场景。使用此自定义 Approuter 部署的应用程序将在 CF 空间中可用。 使用以下命令增强应用程序配置:cds add approuter – for production 使用以下命令增强应用程序配置:cds add approuter --for production

  1. 构建应用程序 运行以下命令以生成更多部署工件,并在本地 ./gen 文件夹(作为暂存区)中为生产环境准备好一切。虽然 cds build 已包含在运行 mbt build 时的下一步中,但您也可以选择性地运行它以进行测试,并检查生成的内容。

cds build --production
  1. 部署到 Cloud Foundry

通过运行 mbt build,会在 gen 文件夹中创建一个归档文件(MTA archive(MTAR))。要部署生成的归档,您必须运行 cf deploy gen/mta.tar。approuter 应用程序的 URL 会在日志输出末尾显示。

图形化 MTA 编辑器

作为 MTA 文件代码编辑器的替代方案,SAP Business Application Studio 还提供使用图形化 MTA 编辑器进行更改的可能性。您可以在 mta.yaml 文件的上下文菜单中找到基于表单的编辑器。

小结

要将 CAP 应用程序部署到 Cloud Foundry,必须确保完成一些特定步骤:BTP Cloud Foundry 环境已正确设置、CAP 应用程序已准备就绪,并且在配置 MTA 描述符文件时考虑到所有必要的绑定。完成这些后,应用程序即可成功构建和部署。

延伸阅读

示例:

  • CF 环境中的多目标应用程序

  • CAP 部署