uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。并对云开发的功能扩展、开发体验做了很多强化,是下一代开发技术的典型代表。
uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。
uniCloud 的 web 控制台地址:https://unicloud.dcloud.net.cn
从 HBuilderX 2.5.8 起支持。阿里云、腾讯云均已开放注册使用。
uniCloud 的价值
- 对于程序员,从此你又 get 一个新技能,用熟悉的 js,轻松搞定前后台整体业务。
- 对于开发商:
- 开发成本大幅下降。不用再雇佣 php 或 java 等服务器工程师,每年至少节省几十万;
- 你只需专注于你的业务,其他什么服务器运维、弹性扩容、防 DDoS 攻击,全都不需要操心;
- 如果不发布 H5 版,你将不需要购买备案域名。小程序和 App 可以免域名使用服务器;
- 对于敏捷性业务,前后端分离的沟通成本实在没有必要。可以考虑按业务负责分工,而不是按前后台分工。
uniCloud 的运行原理
开发和运行流程
- 开发者在 HBuilderX 里为项目新建 uniCloud 云环境(可选择阿里云或腾讯云),在云函数目录下编写 js 代码,上传部署云函数到阿里云或腾讯云的 serverless 环境中。
- 前端代码通过
uniCloud.callFunction()
方法调用云函数。 - 云函数中可执行 js 运算、读写云化数据库(NoSQL)、读写存储和 CDN、操作网络,给前端返回数据
开发过程,连接 DCloud 服务器;运行过程是手机端直连阿里云或腾讯云 serverless 环境,不通过 DCloud 服务器中转。
uniCloud 的底层环境,和微信小程序云开发、支付宝小程序云开发的基建环境相同。功能、性能、稳定性有足够的保障。腾讯云云开发(CloudBase)提供基础 serverless 能力,微信团队基于该能力封装了微信云开发,而 DCloud 团队基于该能力封装了 uniCloud。阿里云类似。
小程序云开发已蔚然成风,微信小程序、支付宝小程序、百度小程序均提供了云开发。微信公布已有 50 万以上的开发者在使用云开发了,微信自己的生活缴费、乘车码等大日活应用均使用云开发。不过这个流行技术一直无法跨端,它们都只支持各自的小程序。uniCloud
解决了跨端问题,让 uni-app 的所有端应用,都可以使用云开发这个利器。
uniCloud 基建部分主要包括如下 3 部分:
- 云函数:在云端运行的 js 代码。运行在定制过的 node 环境中,有良好的性能和强大的功能。serverless 环境无需自行加购服务器处理增容,云函数按量付费,不管多大的并发都扛得住(阿里云 serverless 已经经过了双 11 的考验)。
- 数据库:可在云函数中读写的、基于 NoSQL 的 JSON 数据库。这种数据库对于前端工程师更自然,不需要学习 SQL、不需要理解关系型和设计主键。
- 存储和 CDN:不管在前端还是云函数中,都可以操作存储和 CDN。在
uniCloud
提供的安全机制下,可以实现应用前端直传 CDN,避免服务器中转的耗时和带宽占用,且不会发生盗传。
uniCloud 目前计费系统还未开发完毕,暂时免费。计费系统上线后,收费标准也会低于传统云主机租用费用。
serverless 和云的发展趋势
serverless 是目前很火的概念,它是下一代云技术,是真正的“云”。
之前的云服务,让开发者免于购买实体服务器硬件,改为购买虚拟机。但开发者仍然要自己装操作系统、web 服务器、数据库,自己处理热备,自己新购服务器来应对高并发,自己抗 DDOS 攻击...
这不够“云”!
下一代基于 serverless 的云,真正的把计算、存储的能力进行了云化,开发者只需要按量租用这些计算和存储能力,再也不用买虚拟机,自己装服务器了。
- serverless,让一个不懂服务器运维的开发者,可以只处理自己的业务,再不用关心热备、负载、增容、DDOS 等事情。
- serverless,让一个大学生,也可以享受世界最顶级的 IT 基础设置。
广义的 serverless,是泛语言的,PHP、JAVA、Node.js 都可以用 serverless。但基于 js 的 serverless,更被业内所看中。
nodejs 的性能本身就高于 PHP,serverless 又降低了 js 工程师进入后端领域的门槛,所以基于 Node.js 的 serverless 取得更大的发展,并被称为云开发
。
在 serverless 成熟后,紧接着出现了小程序云开发。微信、支付宝、百度都上线了自己的云开发,以帮助开发者云端一体的完成业务。根据微信公开的数据,已经有 50 万开发者在使用微信云开发了。
不过过去这些云开发,都无法跨端。使用它们,就意味着只能做一个端。
uniCloud,在腾讯云、阿里云的 serverless 基础能力之上,实现了真正的跨端。让 uni-app 的开发者使用 js 开发一云多端的整套业务。并对云开发的功能扩展、开发体验做了很多强化,是下一代开发技术的典型代表。