天天看點

阿裡的開源思想:與世界讨論中國的網際網路技術與場景

2016-12-15 來源:雲科技時代 作者:甯川

阿裡的開源思想:與世界讨論中國的網際網路技術與場景

自從2015年11月阿裡巴巴集團宣布正式加入apache基金會以來,阿裡技術已經向apache捐贈了三個開源項目,分别是jstorm、rocketmq和weex。其中weex于2016年12月15日正式捐贈給apache基金會,rocektmq有望成為首個來自中國的apache網際網路中間件頂級子項目,weex則有望成為中國的移動開發頂級子項目。截止到2016年9月,阿裡已經開源115個項目,加入了fsf基金會、apache基金會、linux 基金會和xen顧問團隊。阿裡雲還是mysql開源分支 webscalesql的第五位發起成員,該分支是由 facebook、 google、linkedin 和twitter 四家網際網路公司的資料庫團隊發起,是以适應網際網路場景為目标的mysql分支。

那麼,阿裡技術為什麼要開源?為什麼要向apache捐贈開源項目?憑什麼在實時計算、網際網路中間件和移動開發等核心技術領域,參與到apache這一全球開源技術社群的核心讨論中?

從最新捐贈的weex說起。weex是阿裡自研的高性能跨平台移動開發架構,最大的特點是解決了頻繁發版和多端研發兩大痛點,一套web代碼就能适配ios、android、h5、web等多端,極大解放開發者的同時又保證了使用者體驗。

阿裡資深技術總監莊卓然(南天)介紹說,weex是阿裡在無線技術時代的三駕馬車之一。阿裡無線技術三駕馬車分别是适于大規模開發的容器化架構atlas、移動網絡通信環境accs以及多端移動應用開發環境weex。這是自2013年開始,阿裡把移動和無線應用作為重點戰略提上日程,莊卓然負責對集團的無線技術業務再造之後的主要成果。

阿裡的手機版淘寶起步于2009年基于web版的淘寶,2010年開始開發了第一代app版的淘寶,從2010年到2013年可以說是淘寶的app 1.0時代。這個階段的app版淘寶隻是簡單的電商工具,可以完成搜尋、下單、查物流等工作,利用了手機和移動無線網線的便捷性,但沒有天貓、聚劃算、愛逛街、淘搶購等豐富的電商産品生态,也沒有店鋪。

阿裡為什麼要在2013年再造無線業務?莊卓然回憶,當時整個淘寶的業務都非常健壯,隻是在移動的時代裡,來自pc時代的阿裡無論在産品的設計思路、營運思路,還是技術平台都出現了各種不适應,是以從2013年開始解決真正移動網際網路時代的技術體系與技術架構。

以容器化架構為atlas為例,2013年全年釋出了42個手淘版本,2014年架構改造完成後釋出了204個版本、2015年發了500個版本,500個版本相當于365天每天釋出1.5個版本。這就是快速開發疊代的能力,讓阿裡技術團隊有一個想法就能快速上線、快速回報和更改。

weex是解決在ios、安卓和本地等多個終端開發的效率問題。這個項目在2015年雙11前幾周提出,由于當時隻有幾周的時間解決這個問題,因為項目被命名為weex(weeks的諧音)。weex從去年雙11開始使用,如今整個阿裡系移動端裡涉及到html5的開發,包括很多都是本地的開發都采用了weex。weex目前已經在手機淘寶、天貓等多個阿裡app中投入使用,并在大規模複雜應用場景下經曆了全面的錘煉打磨。在剛剛過去的2016雙11中,近2000個頁面采用weex渲染,會場覆寫率高達99.6%,主會場秒開率高達97%,性能和穩定性均表現優異。

再反過頭來看jstorm和rocketmq。jstorm是阿裡開源的實時計算系統,它使用java語言代替clojure語言重寫了apache storm。經過4年發展,阿裡jstorm叢集已經成為世界上最大的叢集之一,基于jstorm的應用數量超過1000個,jstorm叢集每天處理的消息數量達到1.5pb。rocketmq則是阿裡在2012年開源的第三代分布式消息中間件,曆年雙11都承擔了生産系統百分之百的消息流轉,2016年雙十一當天更是達到萬億級消息量、峰值達幾千萬tps,創造了國内乃至世界上最大的消息流轉記錄。

是以,jstorm、rocketmq和weex代表了阿裡超過115個開源項目,均是來自于阿裡多年來大規模網際網路應用和移動網際網路應用的技術沉澱。

在阿裡雲栖社群的部落格上,多位阿裡技術負責人多次撰寫部落格,真實記錄了這些阿裡技術開源後,由“小家”而登堂入室成為國際“大家”的故事。以最新開源的weex為例,這個項目在開源之初也遭到了很多質疑,被認為是“kpi項目”,一旦項目完成了就丢給了github社群,這就是所謂“棄坑”,即把源代碼丢到 github 就沒事了,而且業界很多開源項目都是這樣的結局。然而,這不是阿裡的态度。“最好的solution 是讨論出來的”,weex項目技術負責人、阿裡巴巴進階技術專家趙錦江(勾股)在部落格裡引用了一句同行的話,“開源最大的意義在于找到志同道合的人做出更偉大的事情”。

“開發者送出的每一個 pull request、每一條 issue、甚至每一句評論和吐槽,也是在為項目做貢獻。作為開源項目的參與者或作者,一定要在這方面有一個健康的心态,才能真正做出好的項目。” 2016年4月,阿裡宣布weex開源内測,短短兩周就有超過5000名開發者申請。6月30日正式開源首日就登上github趨勢榜首位,截止11月底在github上已經獲得了超過9000個star和1000次fork數,成為中國今年在github上最熱門的開源項目。

然而,在weex項目開源時,最早接觸開發者的時候,團隊對自己還是太過自信了。勾股回憶道:“心想我們一起研發并且準備了這麼久,開發者過來看過一定覺得很厲害。沒想到遇到了大家的各種挑戰。而且被問到最多的問題是完全沒有想到的:‘怎麼讓程式跑起來?’”然後就發現了一堆問題:比如 windows 環境下的指令行問題、路徑分隔符問題、node 版本問題、npm/cocoapods 鏡像的問題、ndk 的問題、x86 模拟器的問題等等……

“這裡面有些是團隊自己知道的,隻是覺得太順理成章了,沒覺得應該寫清楚,結果就讓開發者們誤解了;有些确實是自己的工作環境很單一,而社群裡開發者們的工作環境是千差萬别的;還有些是交代得不夠清楚,明明知道也寫了,但是沒能讓開發者很好的充分了解。”而經過了這個過程,weex團隊才發現:“原來 landing page、readme和文檔這麼重要,這給了團隊當頭一棒,大家認為最簡單的問題都折騰得很狼狽。”

是以在與世界讨論中國的網際網路應用之前,開源之路首先讓阿裡的技術人培養了很好的由内而外的素養,這也是阿裡技術能夠登上世界舞台的最基礎條件。除阿裡移動技術力量外,社群貢獻者也踴躍參與,包括著名前端架構vue.js創始人在内的多位技術大牛已經開始參與weex的改進;衆安保險、蘇甯、優酷、餓了麼等企業使用者也在積極的接入之中。阿裡巴巴開源委員會負責人劉昕表示,“apache嚴謹、開放的技術氛圍會帶給weex項目更多的研發思路。”

另一位rocketmq負責人、阿裡中間件技術貢獻者周新宇(塵央)也說道:“什麼樣的社群能讓alibaba的産品走上更健康的道路呢,思考來思考去,還真隻有apache。相信在apache這個平台上,沒有人會去偷懶,沒有會想着走捷徑。”rocketmq開源至今,國内擁有超大規模的活躍交流群,issue上更是收錄了來自全球數百個高品質的話題交流以及問題沉澱。在2015年中日韓開源論壇上,rocketmq獲得cjk oss大獎,2016年早些時候又進入歐美主流開源門戶網站awesome-java視野,帶有中國标簽的消息中間件正式走出國門。

“apache優秀的社群理念會驅動着更多立志打造世界級品牌的團隊不斷發展,促進其生态更加健康和活躍”,阿裡中間件團隊負責人蔣江偉(小邪)如是說。

随着阿裡技術的開源以及進入apache頂級子項目,基于中國網際網路場景孵化出來的技術,開始反哺世界技術社群。“阿裡巴巴捐獻jstorm給apache,意味着apache storm下一個重大版本會基于jstorm的java核心進行改造。阿裡巴巴的這一舉措也将帶動更多的開發者緻力于storm的開發,加速storm革新。” 阿裡巴巴共享事業部進階技術專家封仲淹表示。

據封仲淹介紹,在最近兩年内jstorm增加了backpressure、dynamic highlevel batch、stable nimbus ha、cgroup module、classloader、topologymaster等大量新的功能;在性能上,任何場景下jstorm運作速度都比storm快平均20%。而rocketmq捐贈給apache後成為apache 孵化項目,孵化成功後rocketmq有望成為全球分布式消息引擎家族中繼activemq、kafka之後的新成員。這也意味着以mq(消息隊列)為代表的網際網路中間件在新興物聯網、大資料領域會發揮着越來越大的作用。如今,rocketmq 已經被1000多家公司使用。

除了輕量、高性能、可擴充、一次撰寫多端運作等諸多優勢,weex還提供了強大的調試工具協助開發者排查問題。阿裡巴巴資深技術專家,weex負責人吳志華表示:“我們希望将weex做成移動開發傳遞的統一技術标準,正如pc時代從桌面軟體過渡到web一樣,weex希望通過自己的努力為移動時代的技術進步做出貢獻。”衆安保險技術總監陳天予回報說:“weex不僅應用靈活、性能強大,而且能讓前端開發者最大程度複用現有技術積累,幫助我們用最少成本設計全新的跨平台架構體系,并盡快進入實施階段。”

至于阿裡一開始為什麼會想到走開源之路。蔣江偉表示在阿裡建立之初,正是基于開源軟體,将整個電商平台的原型快速搭建起來的,這麼多年過去了,雖然阿裡的基礎平台還在不斷演進,但仍舊有開源軟體的身影。是以,阿裡推進開源技術和自有技術的開源,也是回饋全球技術社群。當然,開源和商業的協同效應,如何發揮到極緻?這是一個世界性難題。“以開源為核,商業為輔的形式,是我們目前得出的一個比較靠譜的可行之路。” 蔣江偉說。

<a href="http://mp.weixin.qq.com/s/x3fyyfs2rnbtbbk6mu8gtw" target="_blank"><b>原文連結</b></a>