不是很了解 LeanCloud 的开发者经常会问「LeanCloud 与已有的很多云服务有什么区别呢?」下面我们就以国内比较有代表性的阿里云为例,跟我们做下对比。
产品的区别
进入阿里云网站可以看到阿里云的产品介绍。产品列表有弹性计算、数据库、存储与 CDN、网络、大规模计算、云盾、管理与监控、应用服务、互联网中间件、移动服务、域名与网站等,每个选项下面又有非常多的子产品列表,提供的服务种类繁多。个人感觉几乎开发中需要使用的服务器产品,阿里云应该都提供了。这些产品更偏向于较底层的服务,用户要想使用起来需要具备一定的能力。
LeanCloud 则完全不同。它提供了四项产品,分别是 LeanStorage(数据、文件存储及云引擎)、LeanMessage(短信、推送及实时通讯服务)、LeanAnalytics(统计分析服务)、LeanModules(各种其他通用组件)。看起来很精简却有些抽象,那这些产品具体又能满足什么需求呢?
概念上的区别
阿里云提供的是类似于 AWS(亚马逊的云服务)一样的传统云服务。使用了阿里云你就不用再去操心那些与硬件和底层运维相关的事情,比如硬盘损坏、主机托管、服务器配置网络等等。
但如果想要开发一个自己的 App,你仍然需要在阿里云上购买机器,选择部署到哪个机房,还要购买数据库,选择数据具体是怎样的规格,然后还要对这台机器进行完整的配置。虽然比没有云服务的日子已经轻松了许多,但这些操作仍然需要一个专业的工程师才能很好地完成。
而使用 LeanCloud 用户却不需要操心这些事情,可以说基本上不用考虑服务器的细节。
LeanCloud 提供的是 BaaS 服务(Backend as a Service 后端即服务),又被称为云服务 2.0。简而言之,云服务 1.0 解决的是不再让你担心服务器,而 BaaS 的目标是帮你解决全部服务器运维,甚至是部分后端业务逻辑。那 LeanCloud 究竟是怎么做到的呢?回答这个问题之前,我们看下一个 App 一般都是什么样子。
以 LeanCloud 的用户「懂球帝」为参考,不论什么产品基本上都需要一套账号系统,目前较通用的做法是使用手机号码注册,发送短信验证;基于这个账号还要存储一些数据项,如昵称、头像等信息,再到真正的主业务逻辑,需要通过服务器基于某个逻辑运算出结果交给客户端做展示。
那么我们再考虑一个问题,为什么我们每次做一个产品都要反反复复地开发这些差不多一样的逻辑呢?比如账号系统、数据存储、短信验证、邮件验证、推送服务甚至是即时聊天,有没有办法让这些东西拿来就用,让自己能够最快速地投入开发呢?当然有办法,这就是 LeanCloud 所做的事情。
具体使用 LeanCloud
来举个具体例子。在 LeanCloud 中想要实现一套账号系统共分为三步:注册账号、创建一个应用、下载对应的 SDK。就这三步?难道不用写代码吗?是的,不用写代码你其实已经拥有了一套支持 ACL(访问权限控制)、支持短信验证注册、支持邮件注册这样具备完整安全体系的账号系统,客户端工程师只需直接使用即可。例如,Web 前端通过 JavaScript SDK 在浏览器使用账户系统,具体代码如下:
// 创建一个实例
const user = new AV.User();
// 设置用户名
user.set('username', 'wangxiao);
// 设置密码
user.set('password', 123456789);
// 注册
user.signUp().then(user => {
// 注册成功
}, error => {
// 注册失败
});
再如经常被使用的短信验证功能,你不需要去找服务端工程师去开发一个专用接口,而是直接在浏览器中调用 JavaScript SDK 的方法(支持模板来定制短信内容),具体代码如下:
// 发送手机验证码
AV.Cloud.requestSmsCode({
mobilePhoneNumber: '182xxxx5548'
}).then(() => {
// 发送成功
}, error => {
// 发送失败
});
// 校验验证码
AV.Cloud.verifySmsCode('1234', '182xxxx5548')
.then(() => {
// 验证成功
}, error => {
// 验证失败
});
// 短信模板
AV.Cloud.requestSmsCode({
mobilePhoneNumber: '182xxxx5548',
template: 'Template_Name',
ttttName: '自定义模板变量名'
}).then(() => {
// 发送成功
}, error => {
// 发送失败
});
短信验证仅仅是我们所开放的众多功能中的一项,你还可以使用 SDK 轻松实现数据存储、文件存储(CDN)、推送、即时聊天等实用功能。如此以来你的开发效率会大幅提升,服务器端对于你来说完全是透明的,这样就能把所有精力集中到研发核心产品上去,而后续的数据运营和管理工作可以直接在 LeanCloud 的控制台中进行,甚至在初期你都不需要给运营人员编写一个对应的管理后台。
成本的区别
选择传统的云服务,你可能需要更多地去了解服务端的结构,要综合考虑在云服务上搭建出一套自己的系统所付出的成本,还需要找到合适的工程师去维护这些服务,找到后端工程师来开发服务端很多通用的业务逻辑。
如果使用 LeanCloud 这些事情都不用去考虑,直接使用相应的服务即可。同时我们的云服务按照使用量计费,并提供了一定额度的免费使用量,在初期用户量少的时候基本不会产生什么费用,只有当用户量增长到一定量级时才会产生相应的费用。总之使用 LeanCloud 不仅仅省去了后期运维的成本,还减少了后端工程师的工作量,加速产品迭代。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。