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