鑒于我們在web產(chǎn)品開發(fā)過程中采用了前后端分離(也是廣泛采用的新技術(shù))的技術(shù)侄非,前端開發(fā)與后端開發(fā)在約定完交互接口之后往往存在一定的開發(fā)時間差楣颠,也就是說移動端和頁面程序已經(jīng)開發(fā)出界面了,但是后端的接口還沒提供好,導(dǎo)致調(diào)試?yán)щy。于是我們很自然的就想到一個點子,為何不制作一個服務(wù)專門用來生成供前端調(diào)試調(diào)用的“假”接口呢侈贷?
于是我們很快就選用了MongoDB作為數(shù)據(jù)庫,基于nodejs開發(fā)了一個模擬各種數(shù)據(jù)增刪查改的接口等脂,符合RESTful標(biāo)準(zhǔn)俏蛮,可以通過web頁面隨時增加你想要模擬的接口,除了沒有業(yè)務(wù)邏輯之外上遥,可以滿足移動應(yīng)用和web前端頁面開發(fā)的數(shù)據(jù)模擬和接口訪問嫁蛇,解決了前后端開發(fā)的時間差問題。
后來我進(jìn)一步想了一下露该,為什么我們不能將這個服務(wù)增強(qiáng)睬棚,使之具有一定的業(yè)務(wù)擴(kuò)展能力(比如使用js腳本來插入業(yè)務(wù)邏輯),并配上我們的基礎(chǔ)服務(wù)(權(quán)限解幼、流程抑党、報表等),這樣我們是不是就不用開發(fā)純業(yè)務(wù)的后端程序了呢撵摆?
這個想法令我很興奮底靠,因為這就是傳說中的云計算PaaS落地的一個體現(xiàn),而且看起來像是一個偉大的產(chǎn)品的小時候特铝,于是我就上網(wǎng)搜索了一下暑中,看看有沒有類似產(chǎn)品,結(jié)果令人歡欣鼓舞鲫剿,原來Facebook早在兩年前就投資了一家創(chuàng)業(yè)公司開始做這個了(名字叫Parse鳄逾,有興趣可以搜索一下),谷歌公司也收購了類似產(chǎn)品灵莲。國內(nèi)也已經(jīng)有人做了雕凹,而且據(jù)說還不錯,比較出名的是LeanCloud政冻,我看了一下已經(jīng)是比較成熟的解決方案了枚抵。
在移動互聯(lián)網(wǎng)飛速發(fā)展的今天,后端服務(wù)的開發(fā)需求量非常之大(當(dāng)然很多風(fēng)投老板至今還認(rèn)為移動應(yīng)用的開發(fā)工作量只是手機(jī)上面的那些界面明场,這使得他們數(shù)次掉進(jìn)坑里)汽摹,上面那些廠商就是看準(zhǔn)了這個需求,開發(fā)了面向后端的PaaS服務(wù)苦锨,使得一大票創(chuàng)業(yè)團(tuán)隊不再為后臺服務(wù)發(fā)愁逼泣,找?guī)讉€app程序員專注于客戶端的應(yīng)用開發(fā)就行了嫌套。
云計算技術(shù)發(fā)展到今天,上層的軟件即服務(wù)(SaaS)和底層的基礎(chǔ)設(shè)施即服務(wù)(IaaS)發(fā)展的都特別好圾旨。一方面,軟件即服務(wù)已經(jīng)滲透到社會各行各業(yè)魏蔗,很多在線服務(wù)已經(jīng)成為了普通人生活中不可或缺的一部分(比如在線地圖)砍的,另一方面,基礎(chǔ)設(shè)施即服務(wù)也得到了廣大開發(fā)者的認(rèn)可莺治,幾乎每個上進(jìn)的開發(fā)者都在互聯(lián)網(wǎng)上租賃(或免費)有自己的虛擬服務(wù)器或存儲服務(wù)廓鞠。唯獨處在中間層的平臺即服務(wù)(PaaS)發(fā)展的不盡如人意,無論是國內(nèi)的SAE(新浪)還是國外的谷歌的GAE(現(xiàn)在改名叫GoogleCloudPlatform了)谣旁,用戶都沒有達(dá)到較大的規(guī)模床佳。因為現(xiàn)有PaaS仍沒有很好的提升后端開發(fā)的工作量,即使存在那么多的中間件榄审,仍然需要大量的后端開發(fā)工作要做砌们。這時候,上帝說:要有光搁进,于是就誕生了BaaS浪感。
BaaS(后端即服務(wù))是指專為移動應(yīng)用開發(fā)者提供整合云后端的服務(wù)。開發(fā)者無需過多研究服務(wù)器端程序饼问,而只需調(diào)用云計算平臺提供的API影兽,使用相應(yīng)SDK,就能迅速完成數(shù)據(jù)存儲莱革、賬戶管理峻堰、消息推送、社交網(wǎng)絡(luò)整合等功能盅视。
BaaS本質(zhì)上來說是PaaS的一個細(xì)分領(lǐng)域?qū)崿F(xiàn)捐名,但是基本解決了后端開發(fā)問題。鼓吹者甚至揚言用一個云平臺來解決所有互聯(lián)網(wǎng)產(chǎn)品后端服務(wù)的需求闹击。
想法有些激進(jìn)桐筏,但是可以回顧操作系統(tǒng)的發(fā)展歷史來借鑒。很久以前拇砰,所有的計算機(jī)都沒有通用操作系統(tǒng)梅忌,那個時候的軟件廠商提供給客戶的軟件是自帶操作系統(tǒng)的,完全從硬件底層做起除破,一直到業(yè)務(wù)功能開發(fā)牧氮。直到后來有了通用的操作系統(tǒng)如(windows、linux等)瑰枫,才將這些軟件廠商從底層解放出來踱葛,控制硬件的事情交給了操作系統(tǒng)丹莲,應(yīng)用軟件廠商專注于業(yè)務(wù)開發(fā)。
現(xiàn)在的情形跟當(dāng)年的操作系統(tǒng)誕生時很像尸诽,很多廠商還在自己解決后端服務(wù)的開發(fā)甥材,但是隨著后端技術(shù)的越來越成熟,必然出現(xiàn)像當(dāng)年微軟這樣的廠商徹底解決后端服務(wù)的問題性含。
所以現(xiàn)在還在編寫后端業(yè)務(wù)代碼的企業(yè)和技術(shù)人員洲赵,需要用發(fā)展的眼光來看自己的軟件架構(gòu),業(yè)務(wù)邏輯逐漸向前端傾斜商蕴,底層服務(wù)圍繞數(shù)據(jù)為中心叠萍,很有可能在未來的某一天后端開發(fā)(這里指俠義的業(yè)務(wù)邏輯開發(fā))將淡出應(yīng)用軟件開發(fā)的領(lǐng)域。