在 SAP BTP Cloud Foundry 运行时中执行部署流程

学习目标

  • 在 SAP BTP Cloud Foundry 运行时中执行部署流程。

SAP BTP Cloud Foundry 运行时中的部署流程

随着企业不断发展,对旗舰应用的需求越来越高,对高效、顺畅的部署流程的需求变得至关重要。利用 SAP BTP Cloud Foundry 运行时,您旨在利用各种部署工具和策略来简化更新并更有效地管理应用程序。

部署流程

SAP BTP Cloud Foundry 运行时举例说明了其设计理念的简化,通过将本地代码转换为托管在隔离容器中的活动应用程序来简化部署流程。此自动化是通过自动配置必要的运行时和相关性的 buildpack 实现的,减少了从代码到部署的步骤到单个命令 - cf push。这不仅最大限度地减少了手动工作量,还迅速缩短了开发周期,使您能够更加专注于开发并减少运营物流,并简化从开发到生产的过渡。

部署流程概览

使用著名的 cf push 命令,您可以以最少的设置部署应用程序。其中包括:

  • 源上传:应用程序的源代码和配置上传到 SAP BTP Cloud Foundry 运行时。

  • Buildpack 选择:SAP BTP Cloud Foundry 运行时(自动或基于您的选择)为您的应用程序类型选择合适的 buildpack(例如 Node.js、Python)。

注意

或者,如果您的应用程序需要 buildpack 不支持的特定定制,则可以使用容器图像对其进行部署。本课稍后将介绍更多详细信息。

  • 暂存:编译或构建应用程序。SAP BTP Cloud Foundry 运行时执行所选 buildpack,它处理应用程序源代码以创建称为 droplet 的可运行部件,包括应用程序代码、运行时、库和任何其他相关性。

注意

在这里,与常见的容器映像不同,Droplet 不包括基础操作系统。

  • 启动:SAP BTP Cloud Foundry 运行时通过在 容器中将 droplet 与称为堆栈的基本操作系统相结合,分配资源(例如,内存、磁盘)并启动应用程序。

部署后管理

部署后,SAP BTP Cloud Foundry 运行时将处理应用程序的持续管理:

  • 路由 :根据您的应用程序名称和域自动分配 URL,以及指定自定义路由的选项。Cloud Foundry 的路由器有效地将流量定向到容器。

  • 生命周期管理 :执行定期健康检查,如果应用程序崩溃或出于任何原因不响应健康检查,则会自动重新启动应用程序。

  • 操作系统更新 :应用实例定期使用相同的 droplet 重新启动,但堆栈已更新,确保应用程序自动接收操作系统更新,无需任何进一步操作。这仅适用于操作系统更新。要接收所使用库的 buildpack 的更新,需要重新准备应用程序以重建 droplet 并包括 buildpack 提供/安装的已更新资产。

SAP BTP Cloud Foundry 运行时中的部署选项

在 SAP,您可以使用 Cloud Foundry 社区提供的命令行接口 (CLI) 或 SAP BTP 主控室(即我们基于 Web 的管理用户界面)来部署应用程序。

1. Cloud Foundry CLI

概览

由于简单、控制和直接反馈机制,Cloud Foundry CLI 是开发人员常用的工具。

cf push 命令是部署应用的网关。您有两种主要方法:

  • 使用默认值推送:让 SAP BTP Cloud Foundry 运行时自动处理配置。

  • 使用自定义设置推送:通过命令行标志或 manifest.yml 文件指定配置,例如路由、环境变量、服务绑定等。

部署流程

步骤 1:登录 SAP BTP Cloud Foundry 运行时

打开终端并使用 CF CLI 登录到 SAP BTP Cloud Foundry 运行时: cf login -a API_ENDPOINT

API_ENDPOINT 替换为 Cloud Foundry 环境的 API 端点,该端点可在子账户的 SAP BTP 主控室中找到。

SAP BTP 主控室概览页面,其中突出显示子账户 Cloud Foundry 环境页面和 API 端点字段。

然后,出现提示时输入凭据。

第 2 步:定位正确的组织和空间

登录后,配置目标组织和空间:cf target -o YOUR_ORG -s YOUR_SPACE。将 YOUR_ORGYOUR_SPACE 替换为相应名称。

步骤 3:部署应用程序

导航到包含 manifest.yml 文件的应用程序目录(如果需要自定义设置),然后运行:cf push

或者,您可以在应用程序目录中使用命令行标志通过自定义设置进行部署。例如,运行以下命令部署一个名为 myapp 的应用,其中包含两个实例,每个实例分配 512 MB 的内存,并分配一个自定义路由 myapp-custom-host.mydomain.comcf push myapp -i 2 -m 512M -n myapp-custom-host -d mydomain.com

步骤 4:验证部署

部署后,检查应用程序的状态:使用应用程序名称替换 YOUR_APP_NAME``cf app YOUR_APP_NAME。这提供了有关正在运行的实例、URL、内存使用情况等的详细信息。

用例

非常适合快速开发、测试和自动化,尤其适用于直接的单组件应用程序。

文档

  • 使用 Cloud Foundry CLI 推送应用(cf 推送)

  • 使用应用清单进行部署

  • 应用清单属性参考

2. SAP BTP 主控室

概览

SAP BTP 主控室提供了用户友好的图形界面,用于管理和部署应用程序。

部署流程

步骤 1:访问 SAP BTP 主控室

登录 SAP BTP 账户,然后导航到要部署应用程序的 Cloud Foundry 子账户。

第 2 步:上传您的应用程序

  • 导航到 SAP BTP 主控室中的 应用程序 页面。

  • 选择 部署应用程序 。 SAP BTP 主控室 - 已选择应用程序标签,并突出显示部署应用程序按钮。

  • 随即显示一个标记为 部署应用程序的 向导,提示您上载源代码。 部署应用程序弹出窗口,其中包含文件位置字段和使用清单复选框和清单位置字段。

  • 选择包含应用程序的文件的位置。选择包含应用程序的文件的位置。这可以是编译二进制,如 JAR 或 WAR 文件,也可以是源代码归档。

  • (可选) manifest.yml 文件:如果要使用 manifest.yml 文件指定应用程序属性,请选择此文件的位置。

  • (可选)如果不想使用 manifest.yml 文件,请取消选中 使用清单 框,然后手动输入应用程序详细信息,例如应用程序名称、路由等。

步骤 3:部署应用程序

  • 选择 部署 以启动部署流程。然后,平台将处理应用程序的构建和部署到指定空间。

  • SAP BTP 主控室将在应用程序列表中显示部署的进度和状态。一旦应用程序启动没有问题,应用程序的状态将变为绿色。 应用程序状态 已启动 以绿色显示。

用例

  • 适用于喜欢可视方法进行应用程序管理的用户。

  • 适用于非复杂应用程序的快速部署。

教程和文档

  • 部署应用程序

  • 教程:将应用程序部署到 SAP BTP Cloud Foundry 运行时

SAP BTP Cloud Foundry 运行时中的高级部署策略

观看以下视频,了解高级部署策略。

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

1. 多目标应用程序 (MTA)

概览

MTA 促进在 SAP BTP Cloud Foundry 运行时上部署涉及跨不同技术的多个组件的复杂应用程序。您可以根据开发环境和工具首选项从多种方法中进行选择。

MTA 部署选项

前提条件:访问已启用 Cloud Foundry 运行时的 SAP BTP 账户。

所有这些方法最终都旨在将您的 MTA 打包为可部署格式(.mtar 文件),并将其安装在 SAP BTP Cloud Foundry 运行时上。它们都需要描述符文件 (mta.yaml),该文件指定有关应用程序组件、其相关性和所需服务的所有必要详细信息。

  • 使用 Business Application Studio (BAS) 或 SAP Web IDE 全栈进行引导式部署:直接从开发环境自动部署。有关详细信息,请查看:

  • 在 BAS 中开发 MTA

  • 在 SAP Web IDE 全栈中开发 MTA |

  • 使用 Cloud MTA 构建工具 (MBT) 进行灵活部署:一种命令行工具,可根据您的配置构建和部署,轻松集成到任何 IDE 或 CI/CD 管道中。请查看以下文档以获取更多支持: 使用 MBT 开发 MTA

  • 使用手动配置的自定义部署:直接使用 Cloud Foundry CLI 并手动创建所有必要的部署部件,以实现对部署流程的最大灵活性和精细控制。以下是引导您完成此选项的一些文档: 面向 Cloud Foundry 的 MTA 命令

选择路径

根据您的特定情况决定正确的部署方法:

场景

推荐方法

首次 MTA 部署

BAS 或 Web IDE 全栈

除 IDE 选项外,还需要进行定制

MBT

高度专业化的部署要求

通过 CF CLI 手动配置

用例

  • 具有多个集成组件的大型企业应用程序。

  • 需要无缝交互的微服务体系结构。

教程和文档

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

  • 教程:使用 MBT 在 SAP BTP Cloud Foundry 运行时中部署

  • 教程:使用多目标 CF CLI 插件部署您的第一个 MTA(手动配置)

2. 容器图像部署

概览

容器映像可封装整个应用程序运行时环境,包括操作系统、库和依赖项。与 buildpack 相比,在 SAP BTP 中使用 Cloud Foundry 运行时上的容器图像部署应用程序可以对运行时环境进行精细控制,使您能够定制配置以满足应用程序的特定需求。另一方面,此方法要求您承担管理 Docker 镜像的全部责任,例如应用安全补丁、更新相关性等。

部署流程

前提条件:访问已启用 Cloud Foundry 运行时的 SAP BTP 账户。

使用带有 cf push 参数的 --docker-image 命令部署基于 Dock 的应用程序。例如:

cf push <APP-NAME> --docker-image <REPO>/<IMAGE>:<TAG>

<APP-NAME> 替换为所需的应用程序名称,将 <REPO>/<IMAGE>:<TAG> 替换为注册表中 Docker 镜像的位置和标签。

用例

标准 buildpack 不支持需要特定环境的应用程序。

文档

在 Cloud Foundry 环境中部署 Docker 镜像

3. 持续集成和交付

概览

持续集成和交付形成自动化软件开发和部署流程的基石方法,确保系统化且最大限度地减少错误的发布管道。

  • 持续集成 (CI):此实践涉及开发人员经常将其代码更改合并回共享资源库中的主分支。每次合并都会触发自动构建和测试,这有助于尽早检测错误并维护代码质量。它确保主分支始终处于可部署状态。

  • 持续交付 (CD):扩展 CI,持续交付会自动执行发布流程,以便通过选择按钮随时部署软件。它通常涉及自动测试阶段,该阶段验证更改是否可以发布到生产中,然后是自动或手动发布流程。

SAP 提供了两个主要解决方案,用于在 SAP BTP Cloud Foundry 运行时上实施 CI/CD:

  • SAP Continuous Integration and Delivery (CI/CD):一项托管服务,有助于直接设置和执行预定义的 CI/CD 管道,非常适合标准部署流程。有关详细信息,请参阅 SAP Continuous Integration and Delivery 的帮助门户。

  • 项目"Piper":提供可定制 Jenkins 管道和 Docker 镜像的开源计划,适用于需要特定配置调整的复杂工作流。查看 Piper 项目的 官方文档以获取更多支持。

部署流程

前提条件:访问已启用 Cloud Foundry 运行时的 SAP BTP 账户。

  • 步骤 1:代码集成开发人员将更改推送到版本控制系统(如 Git),然后通过 CI 服务器自动集成到主线。

  • 步骤 2:自动测试每个集成都会触发一个自动测试套件,包括单元、集成以及有时还包括验收测试,以确保功能和性能。

  • 第 3 步:预生产阶段成功构建部署到可反映生产的暂存环境,以测试实际行为和负载性能。

  • 第 4 步:生产部署在成功完成备料测试和最终审批后,将更改部署到生产环境。此步骤可以自动执行,也可以需要手动干预,具体取决于组织的部署策略。

用例

  • 适用于需要强大架构的大型企业应用程序,且需要频繁更新和多个开发人员。

  • 适用于需要变更的可追溯性和审计线索的受监管环境。

教程

  • 教程:为 SAP BTP Cloud Foundry 运行时设置 CI/CD 管道

  • 教程:配置并运行预定义的 SAP Continuous Integration and Delivery (CI/CD) 管道

摘要

本课全面介绍了 SAP BTP Cloud Foundry 运行时中的应用程序部署,重点介绍了 CF CLI 和 SAP BTP 主控室的通用性。它深入介绍了高级部署策略,包括多目标应用程序、持续集成/持续交付管道和 Docker 镜像,这有助于管理和部署复杂的应用程序。通过掌握这些工具和技术,您可以优化部署流程,确保跟上不断增长的运营需求。