uniCloud
是 DCloud 联合阿里云、腾讯云,为 uni-app 的开发者提供的基于 serverless 模式和 js 编程的云开发平台。
从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 的底层环境,和微信小程序云开发、支付宝小程序云开发的基建环境相同。功能、性能、稳定性有足够的保障。腾讯云提供基础 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开发一云多端的整套业务。并对云开发的功能扩展、开发体验做了很多强化,是下一代开发技术的典型代表。
发现错误?想参与编辑?在 GitHub 上编辑此页面!