WOT2016王慶友:聽首席構(gòu)架師論大型APP服務(wù)端架構(gòu)
原創(chuàng)WOT2016移動(dòng)互聯(lián)網(wǎng)技術(shù)峰會(huì)即將于2016年8月26-27日在北京粵財(cái)JW萬豪酒店隆重召開。本次大會(huì)將圍繞應(yīng)用架構(gòu)、平臺(tái)技術(shù)、性能優(yōu)化、創(chuàng)新技術(shù)、VR技術(shù)、前端技術(shù)、APP大賽、運(yùn)維與安全、數(shù)據(jù)分析、直播技術(shù)等話題展開討論,為廣大移動(dòng)互聯(lián)網(wǎng)技術(shù)從業(yè)人士指點(diǎn)迷津。
51CTO記者對(duì)即將參加大會(huì)演講的原1號(hào)店***構(gòu)架師 王慶友進(jìn)行了專訪,讓我們先睹為快,探聽一下他是如何看待大型APP服務(wù)端架構(gòu)演化及***實(shí)踐的。
【講師簡(jiǎn)介】
王慶友 2003年畢業(yè)于浙江大學(xué),計(jì)算機(jī)碩士。前1號(hào)店***架構(gòu)師,先后就職于ebay、騰訊、1號(hào)店等大型互聯(lián)網(wǎng)公司。精通電商業(yè)務(wù),擅長(zhǎng)復(fù)雜系統(tǒng)業(yè)務(wù)建模和架構(gòu)分析,尤其在大規(guī)模分布式系統(tǒng)的SOA/微服務(wù)改造方面有很深入的理論和實(shí)踐。
APP服務(wù)端架構(gòu)變遷及發(fā)展歷史
據(jù)王慶友老師介紹,APP是最近3-5年興起的,其服務(wù)端架構(gòu)大致經(jīng)歷了三個(gè)階段:
1. APP剛剛誕生時(shí),其功能非常簡(jiǎn)單,無線team負(fù)責(zé)服務(wù)端建設(shè),通過直接訪問各個(gè)業(yè)務(wù)系統(tǒng)庫表數(shù)據(jù)或調(diào)用接口,簡(jiǎn)單封裝后,提供給APP使用。
2. 隨著APP的功能逐漸豐富,APP服務(wù)端架構(gòu)開始全面拷貝web端的功能,服務(wù)端分散化,由各個(gè)業(yè)務(wù)系統(tǒng)直接對(duì)外提供。
3.之后,APP針對(duì)無線的特點(diǎn)獨(dú)立發(fā)展,由獨(dú)立的網(wǎng)關(guān)提供服務(wù)端服務(wù),無線team提供網(wǎng)關(guān)基礎(chǔ)設(shè)施和系統(tǒng)級(jí)功能,業(yè)務(wù)系統(tǒng)team提供業(yè)務(wù)功能,兩者無縫銜接,統(tǒng)分結(jié)合,支持APP高效擴(kuò)展。
如何分析APP系統(tǒng)級(jí)功能需求和結(jié)構(gòu)?
APP一般需要通信、協(xié)議數(shù)據(jù)封裝、信息上報(bào)(性能監(jiān)控和行為監(jiān)控),本地?cái)?shù)據(jù)存儲(chǔ),Native模塊和H5通信等功能。在結(jié)構(gòu)上,通信和協(xié)議數(shù)據(jù)封裝屬于底層,對(duì)業(yè)務(wù)系統(tǒng)透明,其它屬于公共模塊,業(yè)務(wù)模塊可以直接調(diào)用。
何為架構(gòu)的本質(zhì)?
一個(gè)軟件系統(tǒng)隨著功能越來越多,調(diào)用量急劇增長(zhǎng),整個(gè)系統(tǒng)逐漸碎片化,越來越無序,最終無法維護(hù)和擴(kuò)展,所以系統(tǒng)在一段時(shí)間的野蠻生長(zhǎng)后,也需要及時(shí)干預(yù),避免越來越無序。
在***架構(gòu)師眼里,架構(gòu)的本質(zhì)是“拆”和“合”。拆是把系統(tǒng)拆分為各個(gè)子系統(tǒng)/模塊/組件,拆的時(shí)候,首先要解決每個(gè)組件的定位問題,然后才能劃分彼此的邊界,實(shí)現(xiàn)合理的拆分。合就是根據(jù)最終要求,把各個(gè)分離的組件有機(jī)整合在一起,相對(duì)來說,***步的拆分更難。
拆分的結(jié)果使開發(fā)人員能夠做到業(yè)務(wù)聚焦、技能聚焦,實(shí)現(xiàn)開發(fā)敏捷,合的結(jié)果是系統(tǒng)變得柔性,可以因需而變,實(shí)現(xiàn)業(yè)務(wù)敏捷。
架構(gòu)師應(yīng)該具有的能力
王慶友老師表示,對(duì)架構(gòu)師能力要求比較全面,具體來說,需要以下能力:
1. 首先他必須是一個(gè)出色的程序員,對(duì)代碼和系統(tǒng)有很好的駕駑能力。
2. 要有技術(shù)的廣度(多領(lǐng)域知識(shí)),還要有深度(技術(shù)前瞻),對(duì)主流公司的系統(tǒng)設(shè)計(jì)非常了解,知道優(yōu)劣長(zhǎng)短,碰到實(shí)際問題,很快有多種方案可供評(píng)估。
3. 抽象思維是架構(gòu)師最重要的能力,架構(gòu)師要善于把實(shí)物概念化并歸類。
4. 透過問題看本質(zhì)則是由虛到實(shí),往深層次地挖掘,快速識(shí)別木桶的短板并解決。
5. 要有良好的溝通能力,確保各方對(duì)架構(gòu)達(dá)成共識(shí),愿意采取行動(dòng);
6. 要有良好的平衡取舍能力,確保架構(gòu)在現(xiàn)有資源約束下是最合理的,理想最終照進(jìn)現(xiàn)實(shí)。
作為電商,App服務(wù)端架構(gòu)有哪些特點(diǎn)?
1. 內(nèi)部功能的共性和個(gè)性
電商一般會(huì)同時(shí)有APP和WEB端,它們內(nèi)部共用一套服務(wù)。作為APP服務(wù)端,首先要統(tǒng)一對(duì)接內(nèi)部服務(wù),然后針對(duì)APP特點(diǎn)做適配,比如數(shù)據(jù)格式轉(zhuǎn)換,聚合內(nèi)部多個(gè)服務(wù)以提升傳輸效率等。
2. 統(tǒng)分結(jié)合,多團(tuán)隊(duì)合作
電商APP服務(wù)端的功能很多,單獨(dú)的一個(gè)團(tuán)隊(duì)(team)不可能包攬所有,一般會(huì)采用多團(tuán)隊(duì)合作的模式,無線團(tuán)隊(duì)負(fù)責(zé)系統(tǒng)級(jí)的功能(如通信協(xié)議/數(shù)據(jù)封裝、安全、監(jiān)控等),業(yè)務(wù)系統(tǒng)團(tuán)隊(duì)負(fù)責(zé)具體業(yè)務(wù)功能。
3. 故障隔離,高可用性
電商APP服務(wù)端接口由多個(gè)后端team提供支持,并且在大促的情況下,某些接口調(diào)用量急劇變大,服務(wù)端架構(gòu)必須支持接口資源的相互隔離,避免一個(gè)接口出問題,影響APP全部功能。
王慶友老師將在51CTO舉辦的WOT2016移動(dòng)互聯(lián)網(wǎng)技術(shù)峰會(huì)上發(fā)表主題為《大型App服務(wù)端架構(gòu)演化及***實(shí)踐》的演講,請(qǐng)大家持續(xù)關(guān)注。