DigitalOcean 应用平台上的专用实例可以使用基于 CPU 的自动扩展功能,通过自动水平扩展功能增强我们的托管平台即服务解决方案。这项新功能使开发人员能够构建无需人工干预即可有效处理不同负载的应用程序,从而优化性能和成本。
DigitalOcean 应用平台因其简单性和免提体验而受到开发者和初创公司的喜爱。它是一个完全托管的平台即服务 (PAAS) 解决方案,允许用户只需提供代码(通过 git 存储库)或预构建的容器映像即可轻松部署应用程序。应用平台负责整个应用程序生命周期,从构建和部署到监控和扩展,消除了管理底层基础设施的复杂性。
过去,客户必须手动扩展他们的应用程序或编写自己的脚本来自动扩展。这使得在 App Platform 上管理动态应用程序成为一种困难的体验。
App Platform 现在提供基于 CPU 的自动扩展,这是一项强大的功能,可让您根据 CPU 利用率指标自动水平扩展应用程序组件。此功能有助于确保您的应用程序能够无缝处理波动的需求,同时优化资源使用并最大限度地降低成本。您可以使用用户界面或通过 appspec 配置自动缩放。
基于 CPU 的自动缩放工作原理如下:
指标收集:应用程序平台不断从运行应用程序组件的容器收集 CPU 使用率指标。
阈值监控:自动缩放系统将给定组件的所有容器的平均 CPU 利用率与配置的 CPU 阈值进行比较。
自动扩展:当平均CPU使用率超过配置的阈值时,App Platform会通过克隆当前部署并添加更多容器实例来自动扩展组件。相反,如果CPU使用率低于阈值,系统会通过删除多余的实例来缩小规模。自动缩放范围介于配置的最小实例数和最大实例数之间。
配置基于CPU的自动伸缩
配置基于 CPU 的自动缩放非常简单。任何具有专用实例的应用程序平台组件都支持它。您可以使用用户界面或appspec来配置最小和最大实例计数以及 CPU 阈值。
应用程序平台控制台提供了一个用户友好的界面,用于为具有专用实例的任何组件配置自动缩放设置,如下所示:
您还可以在应用程序规范中配置自动缩放参数(通过创建新应用程序或更新应用程序)。在下面的示例中,my-service 组件将根据所有实例的平均 CPU 利用率自动在 2 到 10 个实例之间扩展。如果平均CPU使用率超过80%,系统将添加更多实例,如果低于80%,系统将删除实例。
alerts:
- rule: DEPLOYMENT_FAILED
- rule: DOMAIN_FAILED
ingress
rules:
- component:
name: sample-nodejs
match:
path:
prefix: /
name: plankton-app-2
region: nyc
services:
- autoscaling:
max_instance_count: 10
min_instance_count: 2
metrics:
cpu:
percent: 80
environment_slug: node-js
github:
branch: main
deploy_on_push: true
repo: digitalocean/sample-nodejs
http_port: 8080
instance_size_slug: professional-xs
name: sample-nodejs
run_command: yarn start
source_dir: /