小程序推出云开发已经有一段时间了,我本身也已经深度的体验了小程序云开发,自此,写下一篇文章来谈一谈我眼中的云开发。html
小程序云开发是由腾讯云和微信团队联合开发的产品。腾讯云官网上的对应产品名叫 云开发 TCB。数据库
想要了解云开发,首先要了解云开发是一个什么样的东西,其原型又是什么?小程序
云开发为开发者提供了云存储、云数据库、云函数,帮助开发者快速构建一个微信小程序,是一个完善的基于云端构建可拓展应用实现的方式。后端
这种方式咱们将其称为「BaaS(Backend as a Service)」。经过组合云平台内的各项能力,BaaS 为开发者提供了整个后端的能力,包括结构化数据存储的数据库和非结构化数据存储的对象存储,以及复杂逻辑运行的函数服务。微信小程序
BaaS 知道的最多的即是被 Facebook 收归旗下的 Parse 平台,这个平台可以帮助开发者完成数据存储、云端存储、云端逻辑的支持,惋惜,被 Facebook 收归旗下后没多久,Parse 便中止了运行。缓存
Parse 目前做为开源的产品,开放在 Github 上,开发者能够自行下载源码进行部署。不过,对于绝大多数开发者来讲, Parse 的中止运行,让它的故事就此落幕。实际上,开发者们使用 Parse 即是为了将架构、云计算、弹性等能力交由服务商来完成,开发者专一核心逻辑。开源之后的自部署模式,已经失去了其意义。现在的 Parse 更可能是以一个被研究者的身份出如今开发者的服务器当中。服务器
其次,广为开发者所熟知的即是 Google 收归旗下的 Firebase 了。Firebase 本来是初创公司 Envolve 的聊天产品背后的服务,为其提供了实时数据库、API等能力,后来, Envolve 公司发现开发者们对这种能力很是好奇,便将其开放出来,在 2012 年成立了一个独立的公司来运行 Firebase ,后由在 2014 年被 Google 收购。微信
与 Parse 不一样的是, Firebase 并无由于被收购而消失在人们的眼中,反而是由于被 Google 收入旗下,一路前行,吃掉了 Google 本来的一些服务,好比 Andord 中相似 iOS 消息推送的服务 GCM (Google Cloud Messageing ) 被 Firebase 收归旗下,并改名为 FCM (Firebase Cloud Messageing )。markdown
现在的 Firebase 整合了 Google 内部的大量的服务,打包出售给开发者们,帮助开发者们更好的实现本身的 App 。Firebase 的服务被分为了应用构建(Build your app)、质量提高 (Improve App Quality )、产品增加(Grow your Business ) ,为用户提供了接近 20 种不一样的能力,帮助开发者,一站式解决全部应用的开发问题。网络
Leancloud 的故事其创始人江宏先生写了一篇博客来说述 LeanCloud 诞生的故事,这里我就再也不复述一遍了。播客的连接我放在文章末尾的延展阅读中,若是你有兴趣,不妨去看一看。简单的来讲,就是原 AVCloud 的团队,为了可以更好的开发,进行了中国的落地,并改名为 LeanCloud ,让原有的 AVCloud 的团队以投资人的身份加入。
不了历史,我来讲一说我对于 LeanCloud 的见解。 就目前而言,LeanCloud 是市面上比较好用,用户也比较多的 BaaS 服务。不过, LeanCloud 也有其本身的问题,做为一个创业团队, LeanCloud 在技术的累积上是有缺陷的,没法知足开发者的各类各样的需求,目前所提供的服务仅有数据存储、云引擎、云缓存、即时通信、消息推送、短信,绝大多数场景是够用了,不过,与 Firebase 一比,仍是相形见绌。
> 我本身也一直很喜欢 LeanCloud 的团队,他们的团队建设、文化输出作的都很是的好。惋惜本身能力不足,没法前往这样的公司就任。
在 LeanCloud 以前,国内其实还有另一个提供了 BaaS 服务的服务商 —— Bmob 。Bmob 上线于 2012 年 ,其团队是来自华南师范大学的何少岳。从 Bomb 的官网还能够找到 2012 年发布的新闻动态。
Bmob 我用的很少,最先在研究 APICloud 时看过,不过现在,已经不多接触了。Bmob 给个人感受更加的贴近国人的需求,除了做为云服务的云数据库、云函数、短信服务之外,还为开发者提供了不少很简单可是颇有用的业务,好比 App 的落地页,软件著做权申请等等。这些小功能或许不是很复杂,可是面对一些国内的开发者来讲,仍是很是有用的。
在 LeanCloud 同期,还有另一个 BaaS 云服务商也很出名 —— Wilddog 野狗云服务。
野狗云服务和 LeanCloud 不一样,Leancloud 目标是提供全面的云计算能力,野狗则专一作好实时通讯云服务,仅提供了实时通信和短信两种服务。其公司花费了大量的时间来解决实时通信的问题,其服务的质量是很是好的。
我与 Wilddog 的缘分仍是源自 2016 年参加微信小程序内测,当时 Wilddog 推出其小程序 SDK ,我便去试了一下,的确不错。惋惜的是,今年的 3 月 16 日,其官方在公众号 ThinkWild 商发布了通知,由于资金问题中止了新用户的注册,也会在后续用户彻底迁出后,中止服务。
Wilddog 的产品、服务作的都很是不错,惋惜生不逢时,国内对于实时通信方面的投入仍是不够,野狗即便够野,最终也不得不黯然落幕。
不过,显然爱范儿的野心不止于此, 2017 年 5 月 31 日,知晓云上线了。知晓云主打的是专为小程序提供服务的 BaaS 服务,各项服务都围绕着小程序自身的能力进行构建,最基础的数据、存储、云函数自没必要说,还提供了邮件、短信、用户认证以及文章模块、支付模块等一些服务,彻底针对小程序开发者进行服务,知足小程序开发者所需。
不过,做为一个科技媒体起家的团队,最终能走多远,技术是否可以跟上他们的野心?咱们拭目以待。
实际上,腾讯云为移动开发者提供云服务进行过一次又一次的探索,做为一个外人,我关注到的就三次。
腾讯云最先的针对移动开发者提供的云服务叫 移动开发工具 TAB (Tencent App Builder ),TAB 上线时,小程序还仅仅是有风声要提供,并未正式上线。这款服务是腾讯云和咱们在上文提到过的 Leancloud 合做的产物,LeanCloud 在腾讯云的上海节点部署一套服务,这套服务由腾讯云的用户专享,此外,TAB 的数据、存储和流量也使用腾讯云的 MongoDB 、COS 对象存储和 CDN 来提供服务。
当时 TAB 出现后,我一度很是激动,认为是腾讯云抓起了移动端开发者,为移动端开发者提供服务。与 LeanCloud 的合做也是很是明智的,做为国内 BaaS 数一数二的团队,其产品质量也能够保证,合做可让 TAB 更增强大。
不过,计划赶不上变化,没过多久,TAB 就匆匆被下掉了,我现在还能找到的,就只有网络上的一些博客,还记录着当时的一些事情,告诉人们,腾讯云曾经和 LeanCloud 合做过一款产品,名字叫 TAB。
在腾讯云官网,至今还有一个活动页面能够访问,是 TAB 上线时为用户赠送 100G 存储 和 100G 流量的页面,算是 TAB 的一个记念吧。若是你有兴趣,能够在文章的尾部中的延展阅读中找到对应连接。
> 我猜这篇文章发出去之后,这个页面很快就要被下掉了:)
小程序上线后,腾讯云做为腾讯公司自家的云服务,天然是要抢占先机,为用户提供小程序的解决方案。便推出了 Wafer 的方案。
不过,在我看来 Wafer 算不上是一个什么好的产品,其组合形式极为奇葩,采用的是组合腾讯云内部的一系列服务,包括云服务器、云数据库、负载均衡、云缓存等业务,设计出了一套「高可用」、「高弹性」 的产品。并且,为了使用好其架构,你须要基于其提供的 Wafer SDK 来进行开发。如同带着镣铐跳舞。
虽然弹性能够辅助产品成功,可是,过早的进行架构设计以及从一开始就带着镣铐跳舞,使得这款产品从一开始就问题多多,用户使用极为困难。
后续,wafer 进行了迭代,迭代出了 Wafer 2 ,并将其集成进入了微信小程序的开发工具当中,惋惜,提早进行的过分设计使得这款产品依旧很差用。
终于,云开发出世了。云开发出如今人们的眼中仍是由于腾讯云联合微信团队推出了 「小程序 · 云开发」 产品,并免费提供给开发者们使用。
云开发这一次的设计就显得成熟了许多,再也不整合传统的云服务器、负载均衡等产品,而是直接使用云函数,并辅以 MongoDB 、对象存储,经过封装后为用户提供服务,让开发者能够更加容易的完成本身的开发工做。
同时,因为都是腾讯旗下的,云开发还可使用微信的一些私有 API,使得小程序的开发比传统的服务端开发更加的容易,能够预见到,云开发会携小程序之威,呼啸山林。
从其官网能够看到,云开发目前提供的小程序 SDK 是其整个体系的一部分,后续,还会为开发者提供更多的服务,除了文件管理、数据管理、函数服务、静态服务之外,还会逐渐提供触发器、用户管理、统计分析、信道服务、消息服务、AI 服务等。
在将来,云开发会成为腾讯云的 Firebase。
云开发的推出带来是对独立开发者、独立产品人的开发环境的优化,云开发的推出让更多的开发者能够独立完成一个项目,而不在受限于团队规模不足,找人难也再也不是问题。
长期来看,大的企业形态会逐渐变少,小而美的开发团队足以作成很大的事情,云开发的这种模式,正适合小的团队来完成项目:一个产品、一个开发、一个设计、一个市场,足以推出一款产品,找到本身的用户。
云开发采用的是 Serverless 中的 FaaS (Functions as a service ) 模式,这种模式的特性是以函数为弹性的单元,在面临流量波动时,能够更加容易的完成弹性的操做。
和 Wafer 相比,云开发的模式显然对开发者更加的友好,开发者无需关注背后复杂的架构,花费更多的时间在实际的项目上,研究产品的核心代码,为用户提供更好的服务。
BaaS 看起来,彷佛并无什么大公司在作,但实际上,BaaS 是属于大公司的赛道。对于小公司来讲,只可以在本身所能作到的点上,作到最好,让大公司也没法比拟。
可是,在产品的丰富度上,小公司是没法比拟的。好比,我使用的小程序的统计 SDK 是腾讯的另一款产品,MTA提供的,若是将其整合进入云开发,云开发的能力边界将再一次拓展。Firebase 为开发者提供了接近 20 项产品,这些产品大可能是 Google Cloud 其余产品能力的封装带来的,这种模式是小公司所没法实现的,只有大公司有足够的场景和团队来进行整合。
在 BaaS 这条赛道上,小公司也能够跑,大公司也能够跑,可是,想要跑的好,仍是要看大公司。
对于腾讯云,新的 CSIG 中的一员来讲,云开发多是下一个有力的增加点。
从流量的角度来看,小程序开发工具的内置和官方文档的集成,使得云开发从一开始就占据了流量的优点。小程序的火爆,会让云开发一同火爆。
从产品的角度来看,更加简单的开发与接入的方式,与原有开发模式并不冲突的开发方式,让云开发更加容易被开发者们所接受。
从现金流的角度来看,云开发的产品对于平台的依赖性极高,不会轻易被迁出,只要让用户养成了开发习惯,后续的收入是能够预见会愈来愈好的。
从社会趋势来看,云开发对于小团队、外包团队十分友好,能够快速的开发、上线一款新的应用,小程序开放的主体转移也为此提供了土壤,在将来,小程序的兴起会带着云开发一块儿,一飞冲天。
从对手来看,云开发的对手只有 Firebase ,云开发将来的彻底体,也会是 Firebase 。LeanCloud 、Bmob、知晓云之类的能够作的小而美,可是,大公司可以开放出来的底蕴,确实是小公司没法比拟的。