Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
取酒独倾
unidocs-zh
提交
0091edca
U
unidocs-zh
项目概览
取酒独倾
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0091edca
编写于
1月 04, 2023
作者:
hbcui1984
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update aliyun-migrate-business.md
上级
a224541b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
257 addition
and
0 deletion
+257
-0
docs/uniCloud/aliyun-migrate-business.md
docs/uniCloud/aliyun-migrate-business.md
+257
-0
未找到文件。
docs/uniCloud/aliyun-migrate-business.md
浏览文件 @
0091edca
...
...
@@ -203,3 +203,260 @@ url化访问时不管是默认域名还是自定义域名均和上述转发逻
```
结论:如果你的
`短信`
和
`一键登录`
业务平均每天发送条数为10000条,使用阿里云正式版云服务空间后,对应云函数每天大概消耗0.139元,对比之前的短信和一键登录费用,平均每次调用多花0.0000139元,几乎可忽略不计。
### App升级中心消耗资源评估@uni-upgrade-center
近期,uniCloud阿里云版开始正式商用,部分开发者对基于uniCloud的
`uni-upgrade-center`
等云端一体业务,开始纠结,不清楚这些业务预计会花费多少钱,不清楚相比传统服务器而言,何种方案性价比更好。
本文尝试算细账、算总账,以阿里云
[
按量计费
](
https://uniapp.dcloud.net.cn/uniCloud/price.html#aliyun-postpay
)
为例,详细预测
`uni-upgrade-center`
在不同用户规模下的资源消耗及对应费用,帮助大家明智选择,无忧开发。
本文主要分为三个部分:
-
`uni-upgrade-center`
消耗的资源费用测算
-
`uni-upgrade-center`
给你带来的收益
-
综合考虑,你该如何选择
#### uni-upgrade-center 消耗的资源费用测算
`uni-upgrade-center`
升级中心涉及费用的部分主要分为:
-
云函数:
`uni-upgrade-center`
云函数,将客户端版本和服务端最新版本进行对比,返回是否需升级的逻辑
-
云数据库:
`opendb-app-versions`
表,存储版本信息
-
云存储:放置近期的升级包资源(apk/ipa/wgt)
-
前端网站托管:部署
`uni-admin`
,管理员发布新版本
接下来,我们对不同资源,分别进行费用评估。
##### 云函数
启用
`uni-upgrade-center`
升级中心后,你的App每次启动,会请求一次
`uni-upgrade-center`
云函数。
我们按照
[
uniCloud官网
](
https://uniapp.dcloud.net.cn/uniCloud/price.html#aliyun-postpay
)
列出的按量计费规则,计算一下云函数的资源消耗。
![](
https://mp-8ca8132b-2139-4831-aff2-582d4c8385da.cdn.bspapp.com/cloudstorage/8492ba8e-f4c6-45de-abf2-f9d6825ceefb.png
)
我们可以简单得出如下公式:
`云函数费用 = 资源使用量 * 0.000110592 + 调用次数 * 0.0133 / 10000 + 出网流量 * 0.8`
其中:
-
资源使用量 = 云函数内存(单位为G)
* 云函数平均单次执行时长(单位为秒) *
调用次数
-
调用次数 = App日活
*
每日活用户平均每天启动App次数,因为App每次启动,均会执行检查更新逻辑
我们假设如下数据模型:
-
云函数内存:256M,即0.25G;注意云函数内存默认为512M,
`uni-upgrade-center`
云函数建议设置为256M
-
云函数平均单次执行时长:100毫秒,即0.1秒
-
每日活用户平均每天启动App次数:2次
-
出网流量:0,升级中心无需链接外网
按照如上公式,你的App若有100个日活用户,其升级中心云函数每天的费用为:
```
云函数费用(天) = 资源使用量 * 0.000110592 + 调用次数 * 0.0133 / 10000 + 出网流量 * 0.8
= 云函数内存(单位为G) * 云函数平均单次执行时长(单位为秒) * 调用次数 + 调用次数 * 0.0133 / 10000 + 出网流量 * 0.8
= 0.25G * 0.1S * 100 * 2 * 0.000110592 + 100 * 2 * 0.0133/10000 + 0
= 0.00081896(元)
```
即:你的App日活为100,使用
`uni-upgrade-center`
商业版后,对应云函数每天大概消耗0.00081896元。
据此,可计算其每月的费用为:0.00081896
*
30 = 0.0245688,即每月只需2分钱;
同理,我们可推导出日活为1000、10000、10万的App,其升级中心云函数每月费用如下表:
|日活 |资源使用量计费 |调用次数计费 |出网流量计费 |合计 |
|100 |0.0165888 |0.00798 |0 |0.0245688 |
|1000 |0.165888 |0.0798 |0 |0.245688 |
|10000 |1.65888 |0.798 |0 |2.45688 |
|100000 |16.5888 |7.98 |0 |24.5688 |
日活1000的App,月度消耗才2毛钱,真是毛毛雨了。
##### 云数据库
按照
[
uniCloud官网
](
https://uniapp.dcloud.net.cn/uniCloud/price.html#aliyun-postpay
)
介绍,云数据库费用 =
`容量费用 + 读操作次数费用 + 写操作次数费用`
,其中:
-
容量费用:数据库存储容量(单位为G)
*
0.07
-
读操作次数费用:读操作次数(万次)
*
0.015
-
写操作次数:写操作次数(万次)
*
0.015;
###### 容量费用
我们以
`hello uni-app`
为例,
`opendb-app-versions`
数据表中共存储30条升级记录,容量大小为8K。
据此可计算出
`opendb-app-versions`
表的日存储费用为:
`8/1024/1024 * 0.07 = 0.000000534`
> 容量计费单位是G,故需先将8K折算成M,再折算成G,故上述公式中连续除了两个1024
1月按30天算,则月存储费用为
`0.000000534 * 30 = 0.000016`
,还不到1分钱,可忽略。
注意:数据库容量仅跟发布版本多少有关系,跟日活用户无关。
###### 读操作次数
在uni升级中心业务中,云函数
`uni-upgrade-center`
每次执行,仅调用一次数据库读取(读取一次
`opendb-app-versions`
表),故数据库的读操作次数等同于云函数的
`调用次数`
,前文有过公式,云函数调用次数 =
`App日活 * 每日活用户平均每天启动App次数`
,每日活用户平均每天启动App次数我们假设为2次。
我们即可推算,如果一个App的日活为100,则uni升级中心每日云数据库读操作次数费用计算如下:
```
读操作次数费用 = 读操作次数(万次) * 0.015
= 云函数调用次数(万次) * 0.015
= App日活 * 每日活用户平均每天启动App次数 / 10000 * 0.015
= 100 * 2 / 10000 * 0.015
= 0.0003
```
1月按30天算,则每月云数据库读操作次数费用为
`0.0003 * 30 = 0.009`
,还不到1分钱。
同理,我们可推导出日活为1000、10000的App,其uni升级中心每月云数据库读操作次数费用为9分钱、9毛钱。
###### 写操作次数
`uni-upgrade-center`
升级中心,写数据库操作很少;管理员仅在每次发布新版时,通过
`uni-admin`
向
`opendb-app-versions`
表插入一条新版本信息;用户端App每次启动检查升级,无需数据表的写入操作,故写操作次数可忽略为0;
###### 小结
因为容量费和写操作次数费用均可忽略为0,根据公式:
```
云数据库费用 = 容量费(忽略为0) + 读操作费用 + 写操作费用(忽略为0)
= 读操作费用
```
可推导,uni升级中心的云数据库计费主要是读操作次数计费,因此我们进一步得出如下预测:
|日活 |容量费 |读操作次数费用 |写操作次数费用 |合计 |
|100 |0 |0.009 |0 |0.009 |
|1000 |0 |0.09 |0 |0.09 |
|10000 |0 |0.9 |0 |0.9 |
|100000 |0 |9 |0 |9 |
##### 云存储
按照
[
uniCloud官网
](
https://uniapp.dcloud.net.cn/uniCloud/price.html#aliyun-postpay
)
介绍,云存储费用 =
`容量费 + 下载操作次数计费点 + 上传操作次数计费点 + CDN流量费`
。
如果您的应用每次均上架到apple store或安卓各应用商店,升级时从应用商店下载安装,则云存储费用为0,因为使用的是应用商店的存储和CDN下载流量,本计费点测评章节可直接跳过。
> uni-upgrade-center 支持设置应用新版安装包下载地址为应用商店地址,这样就可以使用应用商店的存储和CDN,不消耗uniCloud的云存储资源。
现阶段,iOS平台均需上架apple store,我们可以忽略iOS平台的云存储消耗。
如果您的安卓apk安装包及wgt差量升级包全部托管在uniCloud云存储中,我们也可以算算这笔账。
###### 容量费
容量费主要是存储费用,我们可以定期将过期版本删除,从而节省容量费。
假设我们在云存储中保留最近5个版本的文件,apk/wgt全部保留,大小假设分别为:40M、10M。
>如前所言,ipa需上架apple store,不使用云存储,测评可忽略。
则每天容量费用为:
`5 * (40+10)/1024 * 0.0043 = 0.0010498`
据此,可计算其每月30天的容量费用为:
`0.0010498 * 30 = 0.031494`
,即只需3分钱;
注意:云存储容量仅跟保留的历史升级包多少有关系,跟日活用户无关。
###### 下载操作次数计费点
下载操作次数计费点:仅触发文件下载时会触发,若无新版本下载,则不会触发。
假设你的App日活为100、月活为1500,每月发一次版本;月活用户中,50%会选择升级到新版本,我们可计算下载次数为:
`1500*50% = 750次`
。
而云存储的下载操作次数计费规则为:每万次0.01元,即每万次下载1分钱,750次下载远还不到1分钱,故下载操作计费点可直接忽略。
###### 上传操作次数计费点
每次App发版,仅需管理员上传一次新的资源包,用户App端检查升级时,不涉及上传操作,故上传操作次数计费点亦可忽略。
###### CDN流量费
CDN流量费:我们假设50%概率启用wgt资源包升级(升级包为10M),50%概率为整包升级;而整包升级中,20%为苹果用户(使用apple store流量),80%为安卓用户(升级包为40M)。
则按照如上数据模型,日活为100的App,假期其月活为1500,而月活用户中,50%会选择升级到新版本,即750人选择升级,不同升级包消耗CDN流量如下:
-
wgt资源包CDN流量:750
* 50% *
10 / 1024 = 3.662G
-
苹果整包升级CDN流量:使用apple store流量,uniCloud云存储流量为0
-
安卓整包升级CDN流量:750
* 50% *
80%
*
40 /1024 = 11.719G
即:日活为100的App,月度CDN流量为:
`3.662 + 0 + 11.719 = 15.381G`
,对应费用则为:
`15.381 * 0.18 = 2.76858`
(元)
同理,我们可推导出日活为1000的App,其升级中心云存储每月的CDN费用为27.6858元。
###### 和传统 OSS + CDN 对比
如果你不用
`uni-upgrade-center`
,选择如阿里云的传统
`OSS + CDN`
方案,同样按量计费的情况下,1PB流量以内,传统CDN都没有价格优势;传统CDN每GB的起步价为0.24元,而uniCloud云存储CDN每GB的费用为0.18元。
![](
https://mp-8ca8132b-2139-4831-aff2-582d4c8385da.cdn.bspapp.com/cloudstorage/d9ff593a-fb54-43fd-a58e-bbcb3294a82c.jpg
)
详见:
[
阿里云官网CDN定价详情
](
https://www.aliyun.com/price/product?spm=a2c4g.11186623.0.0.4a6f31c9cwW5vQ#/cdn/detail/cdn
)
1PB流量是什么概念?我们以每个安卓安装包为40M为例,需要
`1 * 1024 * 1024 * 1024 / 40 = 26843546`
,即需要2600万人次安装包下载才能达到1PB流量,你可以评估一下你的App何时可以达到这个量级。
> 具体解释一下:1PB = 1024TB,1TB = 1024G,1G = 1024M,故上面公式连乘3个1024
也有人说了,购买阿里云CDN资源包可以更便宜。确实,购买大额资源包会更便宜,但这个方案有两个缺点:
-
这个资源包仅仅是CDN流量包,你还需要购买OSS回源流量包,而uniCloud直接将回源流量费用包在CDN费用之内了,无需额外购买回源流量。
-
预付费,在业务发展不明朗的情况下,一次性投入太多钱;一旦业务失败,CDN资源包未消耗完毕,也不能退款,浪费资金;而按量计费则没有这个问题,真实用多少资源,就花多少钱;
综合来看,uniCloud云存储相比传统云厂商的
`OSS + CDN`
方案:
-
都选择按量计费,uniCloud版CDN默认0.18元更具价格优势;
-
预付费方式,选购云厂商CDN资源包,需额外购买回源流量包,对普通开发者,特别是中小开发者,并不友好,此时依然是uniCloud按量计费的云存储更具性价比。
##### 前端网页托管
`uni-upgrade-center`
需要和
`uni-admin`
配合使用,
`uni-admin`
需要部署在前端网页托管中。
`uni-admin`
主要是管理员使用,使用频次较少,流量也较低。
按照
[
uniCloud官网
](
https://uniapp.dcloud.net.cn/uniCloud/price.html#aliyun-postpay
)
介绍,前端网页托管费用 =
`容量费 + 流量费`
。
###### 容量费
`uni-admin`
编译后为4.7M,按照官网每GB每天0.0043元的规则,
`uni-admin`
的月度容量费为:
`4.7 / 1024 * 0.0043 * 30 = 0.00059`
,不到1分钱,可忽略。
###### 流量费
管理员登录
`uni-admin`
,到升级中心管理页面浏览并发布新版,所需流量不超过3M,即使每月发布2次更新,流量费预估为:
`3 / 1024 * 0.18 * 2 = 0.00105`
,也不到1分钱,也可忽略。
##### 合并总结
细项对比完了,我们来合并看看,使用uniCloud升级中心,到底需要花多少钱,相比传统自己研发升级逻辑、搭建升级中心,哪些地方都需要花钱,差异点在哪里?
不管是开发者自研的升级方案,还是
`uni-upgrade-center`
,存储+CDN的费用都是必需的,前文也将传统
`OSS+CDN`
和uniCloud云存储的性价比进行了对比,均按量计费的模式下,uniCloud更具性价比;以资源包方式购买传统CDN模式下,各有优劣。
既然两个方案,都绕不开云存储,那我们暂时抛开云存储对比,将其他各项按照日活用户规模罗列一下,看看
`uni-upgrade-center`
在其他维度所需费用。
|日活 |云函数 |云数据库 |云存储 |前端网页托管 |合计 |
|100 |0.0245688 |0.009 |忽略 |0 |0.0335688 |
|1000 |0.245688 |0.09 |忽略 |0 |0.335688 |
|10000 |2.45688 |0.9 |忽略 |0 |3.35688 |
|100000 |24.5688 |9 |忽略 |0 |33.5688 |
#### uni-upgrade-center 给你带来的收益
使用
`uni-upgrade-center`
,免费获取、一键安装,你将获得:
-
经受大量App验证的、完备的检查升级逻辑,同时支持整包/资源包升级,支持静默升级,支持强制升级;
-
完备的管理功能,分平台发布新版、下线老版,关联应用商店,分渠道发布等。
-
代码开源,随意定制
如上功能,如果你使用传统模式自研,需要前后端配合开发,后端使用php/java做接口,前端发起Ajax请求,处理服务端的各种响应和错误码,处理升级弹窗提醒,这些功能做完善至少需要4个工作日。
假设工程师月薪18K,社保等综合管理成本是薪资的1.4倍,则4个工作日的综合成本为:
`18*1000*1.4/22 * 4 = 4582元`
。
#### 总结
再次说回
`uni-upgrade-center`
,相比传统方式自研升级中心,存储+CDN的钱都是要花的,我们忽略它。
其它云函数、云数据库等,虽然看起来是额外增加的费用,但实际上你使用传统php/java自研升级逻辑,除了自研人力费用,后期也是需要消耗CPU、内存、带宽资源的,只是这些费用合并到虚拟机的整体租用成本中,你无法拆出来计算罢了。
再看回刚才的计算表,以1000日活用户来说,云函数、云数据库每月才多了0.34元,每年才多了4块钱(不考虑云存储CDN的情况下),一年多花4块钱,可以省掉自研的4500多元人工费用,可以让工程师将更多精力投入核心业务中。这5块钱的买卖,不划算吗?它不香吗?
|日活 |云函数 |云数据库 |云存储 |前端网页托管 |合计 |
|100 |0.0245688 |0.009 |忽略 |0 |0.0335688 |
|1000 |0.245688 |0.09 |忽略 |0 |0.335688 |
|10000 |2.45688 |0.9 |忽略 |0 |3.35688 |
|100000 |24.5688 |9 |忽略 |0 |33.5688 |
不重复制造轮子,聚焦业务,快速验证模式,实现商业增长,才应该是聪明工程师的追求。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录