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