在 SAP BTP Cloud Foundry 运行时中实施扩展功能

学习目标

  • 在 SAP BTP Cloud Foundry 运行时中有效实施扩缩功能。

简介

贵公司最近在 SAP BTP Cloud Foundry 运行时上部署了应用程序,并且需要了解扩展功能以有效处理应用程序流量和需求的波动。

水平和垂直缩放

SAP BTP Cloud Foundry 运行时提供强大的扩展功能,包括水平和垂直扩展。水平和垂直缩放之间的选择取决于应用程序的特定要求。以下是有关 SAP BTP Cloud Foundry 运行时中扩展功能的一些关键详细信息:

水平缩放

也称为向外扩展,它是添加更多实例以支持应用程序处理增加负载的过程。在 SAP BTP 和 Cloud Foundry 的上下文中,这意味着增加应用程序实例的数量,即使应用程序负载增加,也确保应用程序保持响应能力和性能。

在 SAP BTP Cloud Foundry 中,您可以使用 SAP BTP Cloud Foundry 运行时命令行接口 (CLI)、SAP BTP 主控室或 Application Autoscaler 服务轻松水平扩展应用程序。平台会自动在不同虚拟机和可用性区域之间分配实例,以确保高可用性和容错。

垂直缩放

也称为向上扩展,是将更多资源(例如内存、磁盘和 CPU)添加到应用程序以处理增加负载的进程。在 SAP BTP Cloud Foundry 上下文中,这意味着增加应用程序实例的内存和磁盘配额。CPU 量由平台自动提供,使应用程序获得保证的 CPU 份额,即每 GB 实例内存的内核为 ½。每个应用程序的最大实例内存为 16 GB,最多允许垂直扩展 4 个 CPU。有关更多最新的内存限制,请参阅"限制"部分。

在 SAP BTP Cloud Foundry 中,您可以使用 SAP BTP Cloud Foundry 运行时命令行接口 (CLI) 和 SAP BTP 主控室有效地垂直扩展应用程序。推送或扩展应用程序时,您可以为每个应用程序实例定义内存和磁盘空间。垂直缩放会自动调整分配给应用程序的资源,从而提高其性能。但是,必须指出,由于使用了额外资源,这可能导致成本增加。

在多租户应用程序的上下文中,每个租户或使用者都通过专用 URL 访问应用程序。应用程序环境通过唯一的租户标识识别它们,通过根据租户标识区分来自不同使用者租户的请求来确保数据隔离。

可以在 mta.yaml 文件中定义每个模块的资源,例如内存和磁盘配额。部署 MTA 时,平台会自动将指定资源分配到每个应用程序实例。

限制

SAP BTP Cloud Foundry 运行时对资源使用和扩展施加特定限制,以确保应用程序之间的高效资源分配和合理使用。这些限制可以通过使用组织和空间配额进行定制,使管理员能够为内存、CPU、磁盘空间以及每个应用程序的实例数量定义最大资源分配。在 SAP BTP Cloud Foundry 运行时环境中,在扩缩应用程序方面存在某些限制:

  • 内存 :可分配给应用程序实例的最大内存为 16 GB。

  • 磁盘配额 :可分配给应用程序实例的最大磁盘配额为 10 GB。

  • 应用程序包大小 :最大应用程序包大小为 1.5 GB。如果您的应用程序大于该值,部署将失败。

  • MTA 归档大小 :多目标应用程序 (MTA) 归档的最大大小限制为 500 MB。拒绝对较大大小的归档进行部署。

  • 实例数 :您可以向外扩展到的实例数量将取决于 SAP BTP Cloud Foundry 运行时环境中分配给组织和空间的配额。

有关 SAP BTP Cloud Foundry 运行时的限制配置的最新信息,请参阅 SAP BTP 特定配置文档。

这些限制旨在确保公平使用并维护平台的性能和稳定性。如果您的应用程序需要附加资源,请考虑优化应用程序或在多个应用程序或服务之间分配工作负载。

自动扩缩

自动扩缩是应用程序开发的重要方面,尤其是在云环境中。SAP BTP Cloud Foundry 运行时支持通过 Application Autoscaler 服务自动扩缩,允许应用程序根据 CPU 使用量、内存利用率或自定义指标等预定义条件动态调整正在运行的实例数量。这使应用程序能够根据不断变化的负载条件自动放大或缩小,从而确保最佳性能和资源利用率。服务根据您定义的策略自动调整应用程序实例的数量,该策略可以使用特定调度或指标(例如 CPU 利用率、HTTP 吞吐量或 HTTP 延迟)进行配置。通过执行此操作,应用程序可以动态扩展或向外扩展,从而在不同加载条件下保持性能和资源效率。

Application Autoscaler 服务提供以下功能:

  • 动态缩放 :它基于实时应用程序性能指标自动调整应用程序实例的数量。

  • 已计划缩放 :它根据预定义计划自动调整应用程序实例的数量。这对于发生可预测的负载更改的场景非常有用。

  • RESTful API :提供用于管理自动扩缩策略和检索自动扩缩历史记录的 API。

  • 自动扩缩数据中心 :它为您提供管理自动扩缩策略和查看自动扩缩历史记录的用户界面。

要使用 Application Autoscaler 服务,必须将其绑定到应用程序并定义自动扩缩策略。自上而下评估具有多个规则的扩缩策略。匹配的第一个规则将确定政策评估的结果。

如果缩放仅基于一个指标(取决于停滞期),则通常可以接受。确保最关键的规则在策略顶部划分优先级。请注意,此方法不支持使用 AND 或 OR 等逻辑运算组合多个指标。配置扩缩策略时请牢记以下注意事项。

简化服务设置

  1. 创建服务实例。

  2. 定义扩缩策略。

  3. 使用策略将应用绑定到服务实例。

该图介绍了简化的服务设置:基于场景的教程。

如果标准指标不足,则应提交自定义指标。每个应用程序实例必须每 40 秒提交一次这些指标,以便与其他指标一致。请注意,对于自定义指标 API,每秒限制为 30 个请求。所有指标(包括自定义指标)都是随时间跨应用程序实例的平均值。因此,定期从每个应用程序实例提交计量非常重要。

负载平衡

SAP BTP Cloud Foundry 运行时包括内置负载平衡功能,用于在应用程序的所有运行实例中平均分配传入流量。通过有效利用可用资源并处理流量峰值,这有助于提高应用程序的整体性能、可用性和可靠性。

如果平台提供的自动负载平衡不足,SAP BTP Cloud Foundry 还提供不同的分配负载策略。这些策略包括循环连接和最小连接。缺省情况下,平台使用循环方法在应用程序的所有实例中平均分配传入请求。但是,如果应用程序具有特定需求或特征,则可以选择不同的负载平衡策略,以更好地满足您的需求。

例如,最小连接策略将传入请求定向到活动连接最少的实例,这对具有长时间连接或不均匀工作负载的应用程序非常有用。使用 Application Autoscaler 服务时,最低连接算法可能会产生更好的结果。此算法将流量定向到扩缩期间创建的新实例,因为它们最初没有活动连接。相反,循环算法会更均匀地分配流量,但可能需要更长时间来平衡负载,因为在新实例可用之前建立的连接需要完成。

摘要

SAP BTP Cloud Foundry 运行时提供强大的扩缩功能,包括水平扩展(增加实例数量)和垂直扩展(增加内存和磁盘空间)。资源使用也有限制,可通过组织和空间配额进行定制,以及自动扩缩功能,以根据预定义条件动态调整运行实例的数量。该平台还提供内置负载平衡,用于平均分配传入流量。这些功能对于维护最佳性能、资源利用率和应用程序可用性至关重要。

进一步阅读

  • 使用 Cloud Foundry CLI 扩展应用

  • SAP BTP 特定配置

  • 使用 Application Autoscaler 在 SAP Cloud Foundry 上高效管理工作负载

  • 使用 Application Autoscaler 的自定义指标功能扩缩应用程序

  • 支持 SAP BTP Cloud Foundry 中的负载平衡算法