`uniCloud` 是 DCloud 联合阿里云、腾讯云，为开发者提供的基于 serverless 模式和 js 编程的云开发平台。

`uniCloud` 的 web控制台地址：[https://unicloud.dcloud.net.cn](https://unicloud.dcloud.net.cn)

从[HBuilderX 2.5.8](https://www.dcloud.io/hbuilderx.html)起支持。阿里云、腾讯云均已开放注册使用。

### uniCloud 的价值

- 对于程序员，从此你又get一个新技能，用熟悉的js，轻松搞定前后台整体业务。
- 对于开发商：
    1. 开发成本大幅下降。不用再雇佣php或java等服务器工程师，每年至少节省几十万；
    2. 你只需专注于你的业务，其他什么服务器运维、弹性扩容、防DDoS攻击，全都不需要操心;
    3. 如果不发布H5版，你将不需要购买备案域名。小程序和App可以免域名使用服务器；
    4. 对于敏捷性业务，前后端分离的沟通成本实在没有必要。可以考虑按业务负责分工，而不是按前后台分工。

### 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开发一云多端的整套业务。并对云开发的功能扩展、开发体验做了很多强化，是下一代开发技术的典型代表。
