天天看點

關于EMAS的一點想法

EMAS

    關于阿裡的EMAS的平台架構,公司馬上就要使用,聽了之後,有些想法。

    産品層面,關于這個架構,對于阿裡應該說是一個産品。阿裡的商業嗅覺,商業發展應該是網際網路行業中包括BAT最厲害的一個。可以說阿裡的商業發展最強。可能一般會以為阿裡隻有淘寶,天貓,支付寶等業務。在面向中小型企業産品以及提供中小公司架構平台支援方面的業務已經存在很久了。兩年前吧,有次電腦壞掉了,去電腦店修,老闆說你們做開發的能不能給我做一個網站,多少錢,阿裡也做網站,不過一年1500... 這一塊業務很有市場,而且很容易搶占。可以說是有需求,藍海市場。給一些沒有也不需要開發的實體公司和企業提供網站技術的支援。  扯的有點遠了,這裡EMAS架構平台為一些公司提供可靠的包括代碼管理,原生自動打包,上傳各個管道,熱更新,H5原生版本控制,背景推送,埋點統計 HTTPDNS...一些可以想到的背景管理平台所有可以做的事情。推廣到客戶公司。這樣,一個背景管理平台可以所有客戶公司一同使用。而且這方面基本需求是一緻的,複用性比較強。

      H5方面,阿裡有自己的html核心——阿裡核心,阿裡核心是時時更新的,把它打入到原生包裡面,優化了原生web核心的問題,使h5與原生的适配度比較高,在h5原生混合開發中,實際的頁面顯示問題特别多,使用阿裡的核心可以有效的防止和避免這些問題發生,因為html ios的核心是Webkit,而Android 核心版本更多Android 4.4之前的Android系統浏覽器核心是WebKit,Android4.4系統浏覽器切換到了Chromium(核心是Webkit的分支Blink),Windows Phone 8系統浏覽器核心是Trident。而且阿裡核心複用于其他阿裡旗下的項目中,這個對于阿裡來說基本相當于免費拿過來用。h5和原生互相調用的架構開源的架構很多,各有優缺點,這裡阿裡技術優化的h5和原生互動架構。而且,像facebook的 ReactNative開源架構一樣,h5方面支援 普通的h5包和阿裡自己的語言--    。這種語言相當于在原生上面封裝一層,h5 dom樹直接底層調用了Andorid和ios原生的方法,這樣可以實作純h5開發。

     原生方面。內建了阿裡的包括推送,HTTPDNS...等架構。這樣實作了原生包括埋點,緩存h5js,推送,統計等功能。而且阿裡的HTTPDNS繞過了營運商的Local DNS,能夠避免Local DNS造成的域名劫持問題和排程不精準問題,最為主要的是能夠實作ios緩存h5的問題解決,不被蘋果平台限制。原生方面主要還是實作了兩個功能,線上的打包和crash崩潰上傳。關于自動打包,Android 一般使用的是python腳本調用adb指令實作...具體的實作細節都是筆者猜想。有可能是java和 pyhton腳本的調用也有可能是自己java架構進行打包自動打包。 對于Android 比較吸引人的是熱更新功能, 阿裡EMAS平台真正實作了熱更新功能,市面上熱更新的開源架構都存在着或多或少的問題。阿裡應該優化了這些架構,實作熱更新。對于Android版本控制,這個就不必過多叙述,比較簡單。

    關于服務端,畫個圖吧(圖是本人猜想的實作方式,但是大概也隻能是這樣實作):  

關于EMAS的一點想法

   這裡,從大的角度方面去分析EMAS系統,其實是一種資源的合理利用,如果不使用EMAS系統的話,可能需要的人員:産品,設計,美工,java工程師,Android工程師,IOS工程師,前端工程師,python工程師,C語言工程師。這樣一個團隊進行協作,具體多少人月,筆者無法估計。但是如果使用EMAS平台架構的話,就會節約很多這樣的資源,當然,節約的資源的收益都歸阿裡,但對于社會來說是資源節約了。假如有10家公司運用了EMAS系統,那麼加入阿裡的開發資源投入相當于3家公司開發資源(考慮到阿裡的代碼品質和開發品質這麼說應該不為過) 那麼對于社會來說是節約了7家公司的開發資源。