由某公司云服務(wù)到對(duì)移動(dòng)端開(kāi)發(fā)和運(yùn)維思考
之前hobo在36ker上了解到一家提供云服務(wù)的公司AVOS Cloud,他們對(duì)外提供了提供一站式app后端云服務(wù),可以大大提升app應(yīng)用的開(kāi)發(fā)效率。
下面先對(duì)他們提供的服務(wù)和工作機(jī)制做一個(gè)簡(jiǎn)單介紹:
1. 數(shù)據(jù)存儲(chǔ)服務(wù)
對(duì)外提供的數(shù)據(jù)存儲(chǔ)服務(wù),可以讓你用 RESTful API 和各種 SDK 增刪改查任意數(shù)據(jù)。基于文檔類(lèi)型的 schema-free 的對(duì)象級(jí)別存儲(chǔ),幫助您存儲(chǔ)各類(lèi)應(yīng)用信息。我們還提供包括圖片、視頻等多媒體文件在內(nèi)的分布式存儲(chǔ)服務(wù)。
2. 消息服務(wù)
支持一對(duì)一,群聊,只需幾行代碼,就可以給你的應(yīng)用插上移動(dòng) IM 的翅膀;IM 系統(tǒng)與當(dāng)前用戶系統(tǒng)完全解耦,無(wú)需同步或修改現(xiàn)有用戶體系,即可使用;除移動(dòng)開(kāi)發(fā)的原生 SDK 之外,我們也支持網(wǎng)頁(yè)內(nèi)聊天。
3. 消息PUSH服務(wù)
iOS、Android、Window Phone,每個(gè)平臺(tái)都各有特色,技術(shù)方案各不相同,該怎么辦?我們提供了一套簡(jiǎn)單、高效的解決方案。你可以通過(guò) Web 控制臺(tái)、也可以通過(guò) Restful API 以及原生 SDK來(lái)發(fā)送通知。
4. 數(shù)據(jù)分析服務(wù)
AVOS Cloud 提供實(shí)時(shí)、免費(fèi)、專(zhuān)業(yè)的移動(dòng)應(yīng)用統(tǒng)計(jì)分析服務(wù),幫助你了解運(yùn)營(yíng)概況、應(yīng)用趨勢(shì)分析、用戶行為分析等關(guān)鍵指標(biāo),也可以追蹤不同渠道的推廣效果。
5.社交網(wǎng)絡(luò)服務(wù)
一行代碼實(shí)現(xiàn)第三方登錄,體驗(yàn)差的注冊(cè)流程會(huì)帶來(lái)三成以上的用戶流失。想簡(jiǎn)化流程,直接使用微博、微信、Twitter、Facebook 一鍵登錄?沒(méi)有問(wèn)題,使用我們的 Social 組件,最少只需一行代碼,輕松搞定第三方賬戶登錄!
如果基于AVOS Cloud開(kāi)發(fā)普通的app應(yīng)用的話,我想基本可以省去大部分后臺(tái)服務(wù)了,而且可以大大節(jié)省開(kāi)發(fā)時(shí)間,對(duì)于分秒必爭(zhēng)的移動(dòng)互聯(lián)網(wǎng)來(lái)說(shuō),節(jié)省開(kāi)發(fā)時(shí)間就意味著你可以比競(jìng)爭(zhēng)對(duì)手提前發(fā)布應(yīng)用,占領(lǐng)市場(chǎng)。
反觀我們SNG目前的應(yīng)用開(kāi)發(fā)和部署流程,要開(kāi)發(fā)一款app的話,可能先是客戶端的同學(xué)和后臺(tái)開(kāi)發(fā)同學(xué)一起,商量好接口,后臺(tái)的同學(xué)開(kāi)始開(kāi)發(fā),然后開(kāi)始使用各種前端的接入框架(wns,msf)等,聯(lián)調(diào)各種接口(cmem,L5,各種權(quán)限),上線部署的時(shí)候又開(kāi)始找運(yùn)維申請(qǐng)機(jī)器,申請(qǐng)tgw,cmem,L5,各種權(quán)限等等,而且移動(dòng)端很多都是直連ip的私有協(xié)議,這樣又要自己去實(shí)現(xiàn)一套調(diào)度的接口,用來(lái)保證用戶能夠接入到最優(yōu)的服務(wù)ip,而這時(shí)候客戶端的同學(xué)可能又要去折騰公司各種平臺(tái)登錄問(wèn)題了。
對(duì)比上面的兩種開(kāi)發(fā)方式,我想我們?cè)谝苿?dòng)端上開(kāi)發(fā)效率可能還真沒(méi)有使用AVOS Cloud的創(chuàng)業(yè)公司的效率高了,之前PC端的運(yùn)維方式,開(kāi)發(fā)完成cgi和邏輯server的開(kāi)發(fā)和聯(lián)調(diào),找到運(yùn)維去申請(qǐng)tgw,部署qzhttp,部署spp,申請(qǐng)cmem,雖說(shuō)有很多自動(dòng)化的工具,但畢竟要走這么長(zhǎng)的一個(gè)流程才能上線。
其實(shí)AVOS對(duì)外提供的服務(wù),我們公司內(nèi)部都是可以支持,比如存儲(chǔ)服務(wù)我們cmem這樣支持海量高并發(fā)的內(nèi)存數(shù)據(jù)庫(kù),對(duì)外接入我們tgw,消息推送和數(shù)據(jù)分析我們有信鴿和TA等等,但問(wèn)題就在于我們沒(méi)有把這么整合起來(lái),對(duì)開(kāi)發(fā)以云服務(wù)的方式提供出來(lái),還是由運(yùn)維和開(kāi)發(fā)來(lái)一步一步去對(duì)接和實(shí)施,鑒于此hobo大膽設(shè)想下,我們應(yīng)該怎么去改進(jìn)我們目前開(kāi)發(fā)運(yùn)維方式:
1.整合公司現(xiàn)有的服務(wù),對(duì)外提供一個(gè)操作界面,開(kāi)發(fā)的同學(xué)直接可以在同一個(gè)站點(diǎn)完成關(guān)于app開(kāi)發(fā)需要所有的操作,不需要來(lái)回去公司各種系統(tǒng)去申請(qǐng)權(quán)限,聯(lián)調(diào)接口等等。
2.針對(duì)接入,把tgw和接入調(diào)度封裝成服務(wù),對(duì)外提供sdk,開(kāi)發(fā)只需要自助申請(qǐng)一個(gè)接入ID,然后把SDK集成app就可以實(shí)現(xiàn)與服務(wù)端交互以及獲取到最優(yōu)的接入ip。由運(yùn)維后臺(tái)自動(dòng)化去申請(qǐng)后端接入機(jī)器,部署接入框架。
3.關(guān)于存儲(chǔ),最好能直接對(duì)外提供存儲(chǔ)的服務(wù),支持restful api 和 sdk的方式,把cmem和tfs的接口封裝對(duì)外的服務(wù),讓app直接在客戶端操作存儲(chǔ)。
4.數(shù)據(jù)分析服務(wù)和消息推送,可以直接和公司現(xiàn)有信鴿,TA對(duì)接下即可,因?yàn)樗麄円呀?jīng)有現(xiàn)成的sdk和服務(wù)了。
總之就是把我們目前的系統(tǒng)、接口、服務(wù)進(jìn)行封裝和優(yōu)化,以云服務(wù)的方式提供出來(lái),節(jié)省app開(kāi)發(fā)時(shí)間,提升開(kāi)發(fā)效率。
最后套用一個(gè)大神說(shuō)過(guò)的一句話結(jié)尾:
如果一個(gè)公司內(nèi)的運(yùn)維團(tuán)隊(duì)開(kāi)發(fā)出一堆工具,讓做應(yīng)用開(kāi)發(fā)團(tuán)隊(duì)可以很容易地申請(qǐng)機(jī)器、存儲(chǔ)、網(wǎng)絡(luò)、中間件、安全等資源,并很容易管理、監(jiān)控和部署應(yīng)用,并提供運(yùn)維資詢(xún)。而不是幫應(yīng)用開(kāi)發(fā)團(tuán)隊(duì)干活擦屁股當(dāng)保姆。那么,這個(gè)公司就會(huì)不經(jīng)意地做出一個(gè)云計(jì)算平臺(tái)來(lái)了。