# 关于云开发

# 什么是云开发?

云开发 是云端一体化的后端云服务 ,采用 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,云函数使用的是阿里云和腾讯云的自有域名,前端网页托管在cdn上,DDoS攻击者打不起、也打不挂uniCloud。

3、云厂商的促销补贴

目前阿里云为uniCloud提供了纯免费的云资源,不但云函数、云数据库免费,连存储和cdn都免费。

腾讯云也提供了一个免费服务空间,此外再建服务空间的收费也比传统云要低很多。

基于以上3点原因,uniCloud大幅降低了开发者云资源的租用成本。

除了云资源的成本,uniCloud还可以减少开发商的人工成本、招聘成本、沟通管理成本,这些成本往往远大于云资源成本。