|
7月24日,2015WOT互聯(lián)網(wǎng)開發(fā)者大會在富力萬麗酒店隆重召開。阿里巴巴/高級無線技術(shù)專家徐昭(花名:長恭)帶來的主題演講《以小見大,見微知著 —— 億萬級APP架構(gòu)演進之路》。 我是來自阿里巴巴無線事業(yè)部的徐昭,今天我演講題目是以小見大,見微知著,和大家分享阿里巴巴以手機淘寶為代表的移動架構(gòu)體系的演進過程和背后的思考,以及這其中大家最感興趣的在大規(guī)模復(fù)雜應(yīng)用場景下的關(guān)鍵架構(gòu)技術(shù)。 手機淘寶是誕生于移動互聯(lián)網(wǎng)時代的一個超級APP,并已成長為日活上億級別、全球最大的移動消費生活平臺。以之為代表的阿里無線應(yīng)用體現(xiàn)的是一個高度多樣化的生態(tài),承載了大淘寶業(yè)務(wù)群之中幾乎所有的業(yè)務(wù)形態(tài)??上攵?,在小小的屏幕背后,手淘面臨著怎樣強大的技術(shù)挑戰(zhàn):
手機淘寶技術(shù)之路
這個過程中在前期階段隨著客戶端模式的變化,以及PC業(yè)務(wù)的無線化遷移過程,經(jīng)歷了從工具到應(yīng)用到平臺的逐步演進。過去一年多來阿里無線PC業(yè)務(wù)遷移過程中遇到的挑戰(zhàn)包括: 第一,PC業(yè)務(wù)大量遷徙和無線特色并行,這個過程中如何更好地的和無線特色結(jié)合,發(fā)揮移動端的特性是一個重點。 第二,今天客戶端承載的架構(gòu)體系越來越重,原來服務(wù)端的PC模式是否適合新的無線架構(gòu),無線架構(gòu)和PC架構(gòu)的差異性到底在哪里?
同時,隨著體量增大,我們在越來越意識到今天整個移動設(shè)備市場的碎片化是非常嚴(yán)重的。如何更好地的適應(yīng)多端支持、跨端的適配?如何從APP單一入口,進行APP群之間的連接和互通、互用?如何適應(yīng)技術(shù)體系從工具到平臺進而到APP開放生態(tài)群的支撐和進化?手淘技術(shù)團隊圍繞這些進行了大量的思考、研究和嘗試。
無線架構(gòu)治理的思考
客戶端重構(gòu):破而后立從端的角度出發(fā),我們結(jié)合移動端的特性進行架構(gòu)特征分析和思考。我們考慮架構(gòu)設(shè)計的時候遇到幾個挑戰(zhàn)。對于這個過程中我們的解法是“破而后立”,今天打造超級APP,重要的一點是如何利用技術(shù)手段提供持續(xù)的交付能力,目標(biāo)是讓大象能跳舞。小團隊研發(fā)團隊類似田園式的自主研發(fā)模式,對比超級APP和超大規(guī)模團隊研發(fā),后者這只大象的轉(zhuǎn)身非常緩慢。這個過程中我們擁有的架構(gòu)體系,如何將不同的業(yè)務(wù)體系進行更好的隔離,技術(shù)在業(yè)務(wù)間更好復(fù)用,業(yè)務(wù)與業(yè)務(wù)和技術(shù)與技術(shù)間如何減少緊耦,手淘團隊從不同的技術(shù)路徑嘗試給出相應(yīng)的解法。我們對整個開發(fā)模式、工程結(jié)構(gòu)、架構(gòu)模型進行了徹底的改造和深入探索:一是圍繞容器架構(gòu)為核心出發(fā)做了深度改造?;谠谝苿佣松系淖钚〔渴饐卧覀儦w一化統(tǒng)稱為“組件”,包括相對獨立的Libraries也可以是其他的獨立部署業(yè)務(wù)/UI模塊。我們能夠支撐這些單元以動態(tài)靈活的方式加載,并以統(tǒng)一的方式管理其生命周期,使得每個組件可以獨立的開發(fā)、獨立的部署、獨立的調(diào)試、獨立的發(fā)布。底層采用總線方式支撐這樣的模式,分別在UI、服務(wù)、消息的層面上提供總線機制。從而在UI層可使用統(tǒng)一的方式進行跳轉(zhuǎn)管理、橫向攔截以及統(tǒng)一降級策略;在消息層面基于系統(tǒng)本身機制,構(gòu)建不同模塊之間通訊能力,保證每個獨立的組件單元可被感知和彼此交互
沿容器化思路,基于組件的研發(fā)體系本身也發(fā)生了相應(yīng)變化。在工程角度,對于手淘工程進行相應(yīng)解耦,按照業(yè)務(wù)、單元歸屬不同的研發(fā)團隊拆分成具體的組件模塊。在容器化支撐下,我們做到模塊單元的動態(tài)部署、動態(tài)補丁能力,將不同的業(yè)務(wù)、技術(shù)模塊充分解耦,以適應(yīng)更靈活、更合理的迭代演進節(jié)奏。 在管道層面,我們對網(wǎng)絡(luò)層進行針對性優(yōu)化。首先在接入層統(tǒng)一了阿里移動端接入體系。針對設(shè)備和web接入提供了更高效,更規(guī)范、高可用的接入層。針對內(nèi)部云端服務(wù),基于API網(wǎng)關(guān)我們提供了統(tǒng)一接入模式,并充分復(fù)用長連通道,整合業(yè)務(wù)層對RPC、IM、PUSH幾種數(shù)據(jù)消費模式提供完整的客戶端消費模式支持。 此外,很多移動開發(fā)者關(guān)心具體的UI層技術(shù),以及最終的業(yè)務(wù)功能開發(fā)框架,我們也進行了不一樣的探索。面對H5靈活性,以及Native的用戶體驗,到底是選擇研發(fā)效率、降低成本?還是提供適應(yīng)原生平臺本身的用戶體驗,用戶為先?技術(shù)界一直存在各種爭論。我們認為:只有最適合的技術(shù),針對合適的場景做最佳的選擇。在H5以及Native兩個模式下,我們都做了很多有益并且領(lǐng)先業(yè)界的嘗試。 H5方面,我們構(gòu)建了平臺化的研發(fā)和工具后臺體系。依托阿里的整個研發(fā)和運維能力,將移動端Webapp的發(fā)布機制、緩存部署、控制策略等集成在統(tǒng)一的后臺,使得H5研發(fā)效率得以標(biāo)準(zhǔn)化和高效保障,并進而采用PackageApp的方式支持離線化的web應(yīng)用模式,大大提高用戶體驗。Native方面,我們自主創(chuàng)造了一個動態(tài)化的UI渲染框架,基于自己設(shè)計的一套數(shù)據(jù)協(xié)議,配備相應(yīng)的可視化工具,可以滿足后臺編輯模塊化的頁面,并指定綁定數(shù)據(jù)源,以模板數(shù)據(jù)方式推送給客戶端。客戶端則動態(tài)接收和實時加載、渲染,動態(tài)進行數(shù)據(jù)變更。一套數(shù)據(jù),iOS/Android/H5三端復(fù)用,動態(tài)輸出。在手淘移動端看到的(裝修過的)店鋪和寶貝詳情等場景就是基于這套框架實現(xiàn)的。 最終整個技術(shù)手段的目標(biāo)是拓展商業(yè)邊界。這個過程中我們所有演進過程都希望構(gòu)建業(yè)務(wù),遷移商業(yè)形態(tài)的同時,更多將技術(shù)和商業(yè)形態(tài)本身開放給開發(fā)者。在這個過程中我們看到阿里無線也提供了相應(yīng)的技術(shù)和業(yè)務(wù)開放平臺,我們通過前面所說的技術(shù)輸出,今天能夠支持到阿里的商業(yè)服務(wù)市場中整個店鋪的模板、互動游戲,都可以用開放的方式支持第三方應(yīng)用者開發(fā),并無縫的接入到淘系移動業(yè)務(wù)。移動小屏幕代表了很大的技術(shù)和商業(yè)生態(tài)。商業(yè)變現(xiàn)過程中,技術(shù)起到核心重要的作用。今天手機淘寶代表了阿里整個電商生態(tài)的旗艦產(chǎn)品,未來我們希望隨無線技術(shù)體系的進一步開放,逐步構(gòu)建和孵化一個新的無線開放生態(tài)。其底層的核心技術(shù)一方面支撐阿里內(nèi)部包括天貓、聚劃算等等APP群的不斷成熟和壯大,同時也希望通過手淘開源項目、阿里百川計劃等技術(shù)結(jié)合商業(yè)手段的多樣化方式,給移動第三方開發(fā)者更多的選擇,以更快更好的構(gòu)建自己的應(yīng)用和用戶體驗,實現(xiàn)移動價值。 展望未來,概括一下我們對移動技術(shù)體系的思考,對于移動架構(gòu)的思路,概括的說就是云、管、端一體化。云、管、端一體化的架構(gòu)思維也可以從安全、性能、可運維等多方面全面為移動電商業(yè)務(wù)保駕護航。具體而言,類似網(wǎng)絡(luò)的模型可被拆分成七個層次,在每個層次上以更聚焦和更標(biāo)準(zhǔn)化的方式提供最佳實踐,并在縱向上各層次打通以支撐上層多樣的業(yè)務(wù)形態(tài)。
開放合作,反哺生態(tài)。我們現(xiàn)在在進行中的一些項目,都逐漸在實現(xiàn)開源,歡迎大家在github持續(xù)關(guān)注阿里開源社區(qū)。我們7月份已經(jīng)開源了安卓的動態(tài)AOP技術(shù),支持動態(tài)模塊部署和加載,包括熱補丁方式的實現(xiàn)和應(yīng)用,今天在線的故障可以基于這套框架來實現(xiàn)更加
關(guān)注Android 動態(tài)AOP技術(shù)點擊【閱讀原文】 https://github.com/alibaba/dexposed
MTT是手機淘寶技術(shù)團隊(Mobile Taobao Tech team)的英文縮寫,歡迎關(guān)注手機淘寶技術(shù)團隊,一起交流分享無線技術(shù),共創(chuàng)移動開發(fā)無限未來!掃描微信二維碼關(guān)注我們!我們將分享更多的獨家技術(shù)細節(jié)!
|
|
|
來自: 命運之輪 > 《網(wǎng)站架構(gòu)》