LeanCloud 與阿里云到底有什么區(qū)別?

不是很了解 LeanCloud(LeanCloud)的開發(fā)者經(jīng)常會問「LeanCloud 與已有的很多云服務有什么區(qū)別呢?」下面我們就以國內(nèi)比較有代表性的阿里云為例,跟 LeanCloud 做下對比。

產(chǎn)品的區(qū)別

進入阿里云網(wǎng)站可以看到阿里云的產(chǎn)品介紹。產(chǎn)品列表有彈性計算、數(shù)據(jù)庫、存儲與 CDN、網(wǎng)絡、大規(guī)模計算、云盾、管理與監(jiān)控、應用服務、互聯(lián)網(wǎng)中間件、移動服務、域名與網(wǎng)站等,每個選項下面又有非常多的子產(chǎn)品列表,提供的服務種類繁多。個人感覺幾乎開發(fā)中需要使用的服務器產(chǎn)品,阿里云應該都提供了。這些產(chǎn)品更偏向于較底層的服務,用戶要想使用起來需要具備一定的能力。

阿里云官網(wǎng)部分截圖

LeanCloud 則完全不同。它提供了四項產(chǎn)品,分別是 LeanStorage(數(shù)據(jù)、文件存儲及云引擎)、LeanMessage(短信、推送及實時通訊服務)、LeanAnalytics(統(tǒng)計分析服務)、LeanModules(各種其他通用組件)。看起來很精簡卻有些抽象,那這些產(chǎn)品具體又能滿足什么需求呢?

概念上的區(qū)別

阿里云提供的是類似于 AWS(亞馬遜的云服務)一樣的傳統(tǒng)云服務。使用了阿里云你就不用再去操心那些與硬件和底層運維相關的事情,比如硬盤損壞、主機托管、服務器配置網(wǎng)絡等等。

但如果想要開發(fā)一個自己的 App,你仍然需要在阿里云上購買機器,選擇部署到哪個機房,還要購買數(shù)據(jù)庫,選擇數(shù)據(jù)具體是怎樣的規(guī)格,然后還要對這臺機器進行完整的配置。雖然比沒有云服務的日子已經(jīng)輕松了許多,但這些操作仍然需要一個專業(yè)的工程師才能很好地完成。

而使用 LeanCloud 用戶卻不需要操心這些事情,可以說基本上不用考慮服務器的細節(jié)。

LeanCloud 提供的是 BaaS 服務(Backend as a Service 后端即服務),又被稱為云服務 2.0。簡而言之,云服務 1.0 解決的是不再讓你擔心服務器,而 BaaS 的目標是幫你解決全部服務器運維,甚至是部分后端業(yè)務邏輯。那 LeanCloud 究竟是怎么做到的呢?回答這個問題之前,我們看下一個 App 一般都是什么樣子。

以 LeanCloud 的用戶「懂球帝」為參考,不論什么產(chǎn)品基本上都需要一套賬號系統(tǒng),目前較通用的做法是使用手機號碼注冊,發(fā)送短信驗證;基于這個賬號還要存儲一些數(shù)據(jù)項,如昵稱、頭像等信息,再到真正的主業(yè)務邏輯,需要通過服務器基于某個邏輯運算出結果交給客戶端做展示。

那么我們再考慮一個問題,為什么我們每次做一個產(chǎn)品都要反反復復地開發(fā)這些差不多一樣的邏輯呢?比如賬號系統(tǒng)、數(shù)據(jù)存儲、短信驗證、郵件驗證、推送服務甚至是即時聊天,有沒有辦法讓這些東西拿來就用,讓自己能夠最快速地投入開發(fā)呢?當然有辦法,這就是 LeanCloud 所做的事情。

具體使用 LeanCloud

來舉個具體例子。在 LeanCloud 中想要實現(xiàn)一套賬號系統(tǒng)共分為三步:注冊賬號、創(chuàng)建一個應用、下載對應的 SDK。就這三步?難道不用寫代碼嗎?是的,不用寫代碼你其實已經(jīng)擁有了一套支持 ACL(訪問權限控制)、支持短信驗證注冊、支持郵件注冊這樣具備完整安全體系的賬號系統(tǒng),客戶端工程師只需直接使用即可。例如,Web 前端通過 JavaScript SDK 在瀏覽器使用賬戶系統(tǒng),具體代碼如下:

// 創(chuàng)建一個實例
const user = new AV.User();
// 設置用戶名
user.set('username', 'wangxiao');
// 設置密碼
user.set('password', 123456789);
// 注冊
user.signUp().then(user => {
  // 注冊成功
}, error => {
  // 注冊失敗
});

再如經(jīng)常被使用的短信驗證功能,你不需要去找服務端工程師去開發(fā)一個專用接口,而是直接在瀏覽器中調(diào)用 JavaScript SDK 的方法(支持模板來定制短信內(nèi)容),具體代碼如下:

// 發(fā)送手機驗證碼
AV.Cloud.requestSmsCode({
  mobilePhoneNumber: '182xxxx5548'
}).then(() => {
  // 發(fā)送成功
}, error => {
  // 發(fā)送失敗
});

// 校驗驗證碼
AV.Cloud.verifySmsCode('1234', '182xxxx5548')
.then(() => {
  // 驗證成功
}, error => {
  // 驗證失敗
});

// 短信模板
AV.Cloud.requestSmsCode({
  mobilePhoneNumber: '182xxxx5548',
  template: 'Template_Name',
  ttttName: '自定義模板變量名'
}).then(() => {
  // 發(fā)送成功
}, error => {
  // 發(fā)送失敗
});

短信驗證僅僅是 LeanCloud 所開放的眾多功能中的一項,你還可以使用 SDK 輕松實現(xiàn)數(shù)據(jù)存儲、文件存儲(CDN)、推送、即時聊天等實用功能。如此以來你的開發(fā)效率會大幅提升,服務器端對于你來說完全是透明的,這樣就能把所有精力集中到研發(fā)核心產(chǎn)品上去,而后續(xù)的數(shù)據(jù)運營和管理工作可以直接在 LeanCloud 的控制臺中進行,甚至在初期你都不需要給運營人員編寫一個對應的管理后臺。

控制臺中的數(shù)據(jù)管理界面

成本的區(qū)別

選擇傳統(tǒng)的云服務,你可能需要更多地去了解服務端的結構,要綜合考慮在云服務上搭建出一套自己的系統(tǒng)所付出的成本,還需要找到合適的工程師去維護這些服務,找到后端工程師來開發(fā)服務端很多通用的業(yè)務邏輯。

如果使用 LeanCloud 這些事情都不用去考慮,直接使用相應的服務即可。同時 LeanCloud 所提供的服務均按照使用量計費,并提供了一定額度的免費使用量,在初期用戶量少的時候基本不會產(chǎn)生什么費用,只有當用戶量增長到一定量級時才會產(chǎn)生相應的費用??傊褂?LeanCloud 不僅僅省去了后期運維的成本,還減少了后端工程師的工作量,加速產(chǎn)品迭代。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容