# 关于云开发

# 什么是云开发?

云开发 是云端一体化的后端云服务 ,采用 serverless 架构,免去了移动应用构建中繁琐的服务器搭建和运维。同时云开发提供的静态托管、CloudSDK 等能力降低了应用开发的门槛。使用云开发可以构建完整的小程序/小游戏、H5、Web、移动 App 等应用。

# 传统开发模式 vs 云开发模式

云开发与传统的前后端开发模式天然互补。基于云开发构建应用层/服务中台,能够弥补传统开发模式的“效率低、耗时多、依赖后台、不够灵活”等问题,更快响应业务需求。

云开发提供完整的后端云服务,提供数据库、存储、函数、静态托管等基础能力,以及扩展能力;无需管理基础架构。相比较传统的开发模式,云开发至少可节省 50%的人力成本、交付效率提升 70%。

# 什么是 serverless?

很早之前,搭建一个网站需要准备:

  • 1、程序开发
  • 2、购买服务器(实体服务器)
  • 3、搭建机房
  • 4、购买企业版固定 ip 带宽(很贵)
  • 5、硬件维护(机房维护)
  • 6、软件维护(网站维护)
  • 等等

近几年,阿里云和腾讯云的崛起,变成了 PaaS(平台即服务)

开发者无需自己搭建机房,直接购买云服务器,通过 web 可视化操作界面,对服务器进行管理。服务器维护交给平台专业人员统一处理。

此时搭建一个网站需要准备:

  • 1、程序开发
  • 2、购买云服务器
  • 3、软件维护(网站维护)

其实到这个阶段,已经省去了很多事,但是,你依然需要懂服务器相关知识,如果你的网站用户量很大,你还需要考虑

  • 1、服务器集群、负载均衡
  • 2、数据库分库分表
  • 3、数据库集群
  • 4、数据库主备切换
  • 5、DNS 负载均衡
  • 6、静态资源 CDN
  • 7、数据库缓存(redis)
  • 8、redis 集群
  • 9、防火墙(防 DDoS 攻击、sql 注入等攻击手段)

而 Serverless 就是来解决上诉的问题而生。简称无服务时代。

无服务并不是真的没有服务,而是服务由云服务商提供,对于你来说,你只需要关注业务就好。而与 Serveless 相伴而来的则是 FaaS,也就是函数即服务。

云开发为开发者提供一站式后端 Serverless 服务,开发者无需购买数据库、存储等基础设施服务,无需搭建服务器即可使用。

  • 1、免服务器运维
  • 2、自动弹性扩容
  • 3、大并发承载
  • 4、防 DDoS 攻击
  • 5、低成本(按需按量付费)
  • 6、高效开发

# 什么是 uniCloud?

uniCloud 是 DCloud 联合各大云厂商(阿里云、腾讯云、支付宝云),为开发者提供的基于 serverless 模式和 js 编程的云开发平台。

uniCloud 的 web 控制台地址:https://unicloud.dcloud.net.cn (opens new window)

# uniCloud 的价值

  • 对于程序员,从此你又 get 一个新技能,用熟悉的 js,轻松搞定前后台整体业务。
  • 对于开发商:
    1. 开发成本大幅下降、开发效率大幅提升、上线和迭代速度大幅提速;
    2. 如果你是新创公司,将无需雇佣 php 或 java 等服务器工程师,每年至少节省几十万;
    3. 如果你已拥有掌握 php 和 js 的全栈,那么改用新的技术栈,一样可以大幅提升开发效率、降低成本;
    4. 你只需专注于你的业务,其他什么服务器运维、弹性扩容、大并发承载、防 DDoS 攻击,全都不需要操心;
    5. 除了开发成本,云资源租用成本也将大幅下降
    6. 如果不发布 H5 版,你将不需要购买备案域名。小程序和 App 可以免域名使用服务器;

# uniCloud 是什么和不是什么

uniCloud 是 DCloud 在阿里云、腾讯云、支付宝云的 serverless 服务上封装而成的。

它包含 IaaS 层(由阿里云、腾讯云、支付宝云提供硬件和网络)和 PaaS 层(由 DCloud 提供开发环境)。

开发者可以自主选择 uniCloud 的硬件和网络资源的供应商,在阿里云版、腾讯云版、支付宝云版之间切换。

开户和付费虽然通过 DCloud 渠道,但实际上开发者自动在云厂商处建立了账户和充值了余额。DCloud 只获取云服务厂商的返佣。

开发时虽使用 DCloud 的工具,但应用上线时,手机端是直连阿里云、腾讯云、支付宝云的 serverless,不经由 DCloud 的服务器。

# uniCloud 为何可降低云服务成本

1、传统云服务的租用,按占用的硬件资源的上限值+固定时长来租用。

选择 CPU 和内存的配置,不到满配时,资源是浪费的,接近满配就需要立即扩容新的配置。

serverless 不是传统云,它不需要开发者选择 CPU 和内存配置,也没有操作系统的选择。开发者编写云函数代码,上传到 uniCloud 即可

阿里云、腾讯云、支付宝云搭建了巨大的 serverless 资源池,有众多 node 进程用于云函数的运行。

这些资源是复用和共享的,并不存在某个开发者租用了 3G CPU 和 8G 内存,这些硬件就只能为他所用。

因为共享大资源池,云服务厂商的成本大幅下降,开发者无需为闲置资源付费,云函数被调用才计费。

从技术原理上 serverless 就有明显成本优势,所以租用 serverless 比租用传统云要便宜的多。

2、没有名目繁多的收费项

在传统云的世界里,有大量的收费产品。

在阿里云和腾讯云的官网可以看到长长的收费产品列表,比如负载均衡、高防、安全中心...

在 uniCloud 的世界,简单清晰,没有这些收费项。

只需按对计算资源、存储资源的消耗计费,只需关心业务,无需关心其他各种名目的增值产品,也无需为它们付费。

要知道一个用于防 DDoS 的高防套餐,每个月至少几万元。而这些费用,在 uniCloud 中无需支付。

展开说下 uniCloud 为什么不用买高防也不害怕 DDoS:由于阿里云、腾讯云、支付宝云的 serverless 有巨大的资源池,且 serverless 没有固定入口 ip,云函数使用的是阿里云、腾讯云、支付宝云的自有域名,DDoS 攻击者打不起、也打不挂 uniCloud。

3、人工成本,开发效率

传统开发由于前后端一般使用不同的语言开发,因此需要前端开发人员、后端开发人员,前后端互相扯皮的事情经常会发生

而 uniCloud 只需要学会 js 一门语言即可进行全栈开发,不再区分前端和后端,而是以业务板块纬度进行开发,如 A 负责开发 A 业务,B 负责开发 B 业务,A 不需要等 B,B 不需要等 A,不再扯皮浪费时间,甚至仅需 1 人即可完成整个中小型项目。