云引擎运行方案
这篇文档主要介绍云引擎的付费方案、如何管理云引擎的资源、如何使用组管理功能。
云引擎的计费独立于开发版 / 商用版方案,开通或取消商用版不影响云引擎的实例和计费。
标准实例
对于商业项目和正式上线的产品,我们建议开发者购买标准实例。标准实例 24 小时运行随时待命,无请求时也不会休眠,并配有预备环境方便测试。如果购买了两个或更多的实例,还能进行负载均衡和故障切换,充分保障服务的可用性。
- 预备环境
云引擎会为标准实例赠送一个预备环境,它有着和生产环境几乎完全一样的运行环境。在正式上线前,开发者可以先将代码发布到预备环境,使用线上的环境和数据进行模拟测试。
- 负载均衡
云引擎的网关会将客户端的请求轮流分配给每个实例,随着业务请求量的增加,开发者可以简单地通过增加实例数量来提升处理能力。
- 故障切换(高可用)
在同一分组的同一环境中有两个或更多的实例时,便可实现故障切换。当其中一个实例出现故障无法工作时,云引擎的网关会自动将接下来的请求转发到其他可以正常工作的实例上,等待故障的实例恢复后复原。
使用单个实例无法实现故障切换,当这个唯一的实例出现故障时,该实例会在几分钟之内被重新部署,在此期间该实例无法对客户端的请求做出响应。因此,我们建议对服务可用性要求较高的应用使用两个以上的云引擎实例。
- 平滑部署
在部署新版本或其他运维操作时,系统会让新旧版本的实例同时运行一段时间,再关闭旧版本的实例,让服务保持零中断。
- 创建分组
将实例分组可以实现在访问同一数据源的情况下,部署多份云引擎代码,满足不同的业务需求。每个组可以绑定独立域名。详见 [组管理](#组管理)。
体验实例
云引擎对于每个应用都默认赠送一个 0.5 CPU / 256 MB 的体验实例,可以免费使用,供开发者学习和测试云引擎。
云引擎对于每个购买了标准实例的分组还会赠送一个包含相同规格体验实例的预备环境,可以用作正式上线前的测试。
体验实例在进行部署等管理操作时会暂停服务。
同时 **体验实例会执行休眠策略**,没有请求时会休眠,有请求时启动(首次启动可能需要十几秒的时间),每天最多运行 18 个小时,详见[云引擎 FAQ](/v2/sdk/engine/guide/faq)。如果不希望预备环境的体验实例因为强制休眠而中断服务,或需要多个实例来完整模拟生产环境,可以在预备环境根据需要购买标准实例。
实例管理
我们为标准版实例提供了几种不同的规格,差别主要体现在可供使用的内存上:
规格 | 内存 | CPU |
---|---|---|
standard-512 | 512 MB | 1 Core |
standard-1024 | 1024 MB | 1 Core |
standard-2048 | 2048 MB | 1 Core |
standard-4096 | 4096 MB | 1 Core |
开发者可以根据自己的程序运行时所需要的最大内存来选择实例规格,然后通过调整实例数量来应对请求量的增加。
为了防止实例因为资源使用超限而受到影响,我们建议:
- 一天内平均 内存 使用超过可用资源的 70%(例如对于 1 个 standard-1024 来说就是 717 MB)就建议提高实例规格。
- 一天内平均 CPU 使用超过可用资源的 30%(例如对于 1 个 standard-1024 来说就是 30% CPU)就建议增加实例数量。
要了解实例资源的耗用程度,请阅读 查看资源用量。
修改实例规格(升级到标准版)
在云引擎的资源页面,点击实例规格旁边的「更改」按钮,选择需要的规格。
在从免费版切换到标准版时,还需要选择要购买的标准实例数量。
修改实例数量
在云引擎的资源页面,点击预备环境或生产环境旁边的「更改」按钮,设置需要的数量。
退回免费版
如果不想继续付费,可以在所有分组中将实例规格修改为「免费版」,标准实例会被删除,系统会停止扣费,并在最后一个分组下赠送一个 0.5 CPU / 256 MB 的体验实例。
多实例运行
当一个分组中的一个环境里有多个实例时,我们称之为「多实例运行」。在部署或者运维操作(如重启)期间,也会有多个实例短暂地同时运行。
多个实例的内存和文件系统是独立的,这意味着在一个实例中写入全局变量或文件,其他实例无法读取,建议在首次切换到多实例运行时进行充分的测试。
如果需要在多个实例间低延迟地共享数据,可以使用 LeanCache。
查看资源用量
云服务控制台 > 云引擎 > 云引擎分组 > 统计 页面显示出当前应用下所有实例资源的使用情况,开发者由此可以判断实例资源是否即将或已经超限。
- 每分钟请求数
一段时间内云引擎每分钟处理的请求数。可以通过左上角的下拉菜单选择按不同请求类型(网站托管、云函数)和不同 HTTP 状态码分别查看。
- 响应时间
若曲线图升高,说明 CPU 使用量达到或超过限制,实例的 CPU 资源紧张。同样可以按不同请求类型(网站托管、云函数)和不同 HTTP 状态码分别查看。
- CPU
曲线图展现出在一段时间内应用实际 CPU 的使用量。如果 CPU 接近或达到限制,应用表现为请求响应时间延长。
- 内存
曲线图展现出在一段时间内应用内存的实际使用量。如果内存使用量达到限制,则相关的业务进程(比如 Node.js 进程或者 Python 进程)会因为内存溢出(OOM)而重启,从而导致业务处理中断,并且该实例在启动期间服务不可用。如果内存曲线图频繁地接近限制然后忽然下降,就说明内存使用超限导致了进程重启。
- 显示各实例详情(勾选框)
勾选后会在 CPU、内存图表中为每个实例单独绘制一条线(不勾选默认显示所有实例合计的数值)。
图表右上角可以切换时间范围:今天、昨天、过去 7 天。
组管理
开发者还可以使用云引擎的组管理功能,建立多个独立的云引擎分组,在访问同一数据源的情况下,部署多套不同的服务器端业务代码,并对每个分组绑定不同的自定义域名,实现更丰富的业务需求:
- 将用户界面和管理后台拆分为不同的项目,使用不同的域名。
- 单独部署主系统之外的边缘支持系统,以免边缘系统出现问题时影响主系统。
- 使用不同的服务器端语言来编写云函数和网站,例如你可以使用 Node.js 编写云函数,而用 PHP 来实现网站。
每个分组都可以部署云函数、Hook 和定时任务。但如果当前部署代码中部分云函数与其他组的同名,默认情况会提示错误并中断部署,防止意外重复定义云函数。
每个分组都有独立的预备环境用于测试代码、独立的域名供外部访问,每个分组的环境变量、代码仓库等设置也是独立的,你可以单独对一个组部署代码。你可以按照 实例管理 一节中的介绍,在分组中创建和管理实例,如果组中没有实例就无法响应请求,如果组中有多个实例便可以提供负载均衡和高可用的能力。
创建和管理组
你可以在 云服务控制台 > 云引擎 中点击左上角的分组选择框,点击「组管理」,即可创建新的分组、删除分组、设置主要分组。
在选择一个分组之后,便可以在设置界面中修改分组的代码仓库、环境变量等信息,也可以在资源页面下调整规格和实例数量。
新建的分组不包含任何实例(也无法提供服务),开发者可以点击实例规格旁边的「更改」按钮,选择一个标准版的规格,再选择要在生产环境创建的实例数量,之后云引擎会自动赠送一个包含体验实例的预备环境。
如不再需要这个分组,在删除分组前需要先点击实例规格旁边的「更改」按钮,将规格修改为免费版,之后的实例会被删除(无法再提供服务)。
价格
实例价格
体验实例不收取费用。
标准实例按天扣费,费用为每一种规格的 数量乘上对应的价格,各规格的价格可以在当前节点的价格页面查看,具体扣费信息可在云服务控制台的消费明细中查看。 云引擎 FAQ中介绍了扣费的实现细节。
超限流量价格
每个云引擎实例每天有 1 G 免费额度,超出部分价格可以在当前节点的价格页面查看。
一个应用下的流量额度会合并计算,即每天的免费额度为 max(n, 1)
GB,其中 n
为该应用所有云引擎分组下的标准实例总数。
云引擎不适合分发大文件之类的场景,有此需求的开发者可以使用文件服务。
在云服务控制台 > 云引擎 > 云引擎分组 > 统计 > 流量可以查看最近流量统计。