【深度】解密阿里巴巴的技術發展路徑
2008年的一天,阿里巴巴集團(下稱“阿里”)開了一次內部會議。在這次當時看來很平常的會議上,明確了兩個議題:一,阿里是一家數據公司;二,阿里要把“計算”變成一種像水和電一樣的公共品。當時在中國還沒有人談“大數據”的概念;更沒有人想到云計算會和一家互聯網公司未來發展如此緊密。
1999年阿里成立之初,創始人“十八羅漢”中就不乏技術基因。公開資料顯示,創始人之一吳泳銘1996年畢業于浙江工業大學計算機系,后成為支付寶的技術總監。盛一飛有多年用戶體驗設計經驗。周悅虹,java架構師,技術精湛,傳言是一名極客。
隨著淘寶網的成立,2003年阿里開始與IBM合作,解決用戶、商品和消費信息分散的問題。當時的阿里已經從十幾個人的小公司延展出很多新業務,技術系統也變得龐大復雜。到了2007年,阿里在IT上的投入之大,一度成為IBM、Oracle等國外IT廠商在中國的標桿用戶。當年,阿里首席數據庫管理員馮春培甚至受到了Oracle公司亞太區高級副總裁Brian Mitchell親切接待,并被授予甲骨文全球第100個ACE(Oracle ACE 是指那些通過撰寫書籍、文章或博客,分享Oracle經驗的技術專家)。
但實際上,這種甜蜜的合作關系并沒有持續太久。
2008年前后,用戶激增與用戶產生的數據越來越多,阿里業務高速發展使已有的IT設備使用到達瓶頸。淘寶和支付寶等擁有大量IBM小型機和Oracle數據庫等高端設備,這些小型機價格昂貴,與Oracle簽訂的數據庫軟件費用也極高,加之一大筆維護費,阿里的技術發展進入一個壓力很大的時期。
緊迫之中,阿里在尋找一名技術高管,要為龐大復雜的業務搭建起全新的技術架構,建立全球頂尖IT團隊。在2008年的這次內部會議上,阿里確定了“數據”和“云計算”兩個重要的新戰略。
時任阿里巴巴首席架構師的王堅成為接受這個挑戰的不二人選。
“去IOE”念頭萌生
阿里巴巴CTO王堅
加入阿里巴巴之前,王堅任微軟亞洲研究院常務副院長;再之前,他是浙江大學心理學系教授、系主任。加盟阿里后,王堅馬上著手第一個重要工作——籌劃集團全年的IT預算。他反復琢磨,發現一個重要問題:即便追加巨額IT投資,阿里購買的軟硬件也未必能滿足其業務的高速增長。
“雙十一”大促對IT計算資源要求龐大,很難預測業務爆發點所需要的計算資源峰值。但過了高峰期,IT資源空下來,又會造成浪費。這些實實在在的難題是為阿里提供軟硬件服務的廠商從沒遇到過的,IBM、Oracle和他們的客戶都不能為阿里IT提供任何可供借鑒的經驗。其次,整個IT就像是一個黑箱子,一旦出現技術故障后,阿里的技術團隊要打電話給廠商等待事故處理,而且高端存儲設備的性能數據都是由廠商掌控,阿里自己的技術團隊并沒有太大的控制權。技術維護變成極其繁瑣的工作,支撐業務的效率大大下降。
而在地球的另一端,Google和Amazon是和阿里業務相近,并值得學習的兩個好榜樣——Google是世界上少有的能擁有大規模分布式架構技術的互聯網公司,Amazon是第一個將自己云計算技術對外提供服務,實現營收的公司。
在一次預算討論中,阿里巴巴集團負責技術保障的副總裁劉振飛和阿里技術保障部DBA負責人周寶方偶然提到:“阿里應該嘗試用PC技術替代小型機技術。”一聽這句話,王堅一下子激動起來:“既然已經思考了這個問題,為什么我們不鄭重寫下來?明確阿里再也不購買小型機。”
“去IOE”(在IT設備中去除IBM小機、Oracle數據庫及EMC存儲)由此得名。
在2009年到2013年整個“去IOE”的過程中,阿里技術發展策略逐漸從“商業軟件”、“開源軟件”發展到自主技術和云計算構成的綜合技術服務能力。便宜的Commodity PC替換掉過去昂貴的硬件設備,淘寶、支付寶等重要業務將舊的“IOE”集中式架構轉變為分布化架構,這種架構是把IT后臺遷移到云計算平臺上的基礎工作。
在“去IOE”過程中,阿里技術團隊也完成了一次成熟的轉型,這為阿里向外提供云服務打下了基礎。王堅來阿里之前,阿里各業務技術后臺是獨立運營的,他將阿里運維團隊、平臺技術部、大淘寶運維團隊、云計算運維團隊等整合到一起,成立了集團統一的IT技術保障部。阿里旗下子業務模式差別巨大,IT工具和價值理念也完全不同,所以統一團隊經歷了很大的技術挑戰和組織挑戰。這項工作實際為后期阿里云向外提供服務打下了很好的基礎,阿里后期推出的“聚石塔”、 “聚寶盆”業務,與這支在“去IOE”過程中鍛煉出的隊伍密不可分。
除了團隊,技術人員也面臨著個人轉型。王堅曾多次說:“‘去IOE’最難的就在于人。每一次的技術轉換,我們都是在革自己的命。如果沒有同事們當時敢于嘗試的勇氣,阿里的技術難題都可能扛不過去。”曾有一位技藝精湛、對業務非常熟悉的淘寶數據庫管理員,在“去IOE”過程中,他從Oracle數據庫技術,轉到MySQL數據庫,最后去研發阿里自有技術OceanBase數據庫。
技術的重新選擇讓阿里最有價值的一批技術人才,隨時要面對熟練的技術突然沒有用的情況。曾參與IBM小機下線的技術人員樓方鑫曾說過這樣一段話:“去掉一兩個系統的IOE不是最難的,也不能代表成功;通過‘去IOE’提升和鍛煉團隊的能力,協調好運維和開發團隊間的工作才是關鍵。”
小機,再見!
阿里巴巴最后一臺下線的IBM小機
淘寶是首先推行“去IOE”戰略的業務部門之一。“去IOE”之所以能從淘寶開始,是因為淘寶擁有阿里最大的Oracle數據庫,成本和技術壓力最大。淘寶技術專家余鋒曾說:盡管Oracle數據庫性能穩定,但是對于淘寶來講,Oracle數據庫本身已經不能滿足業務需求。淘寶的數據庫專家從IT前端逐漸過渡到后端,弱化Oracle數據庫,把“Oracle數據庫+IBM小型機+EMC存儲設備”切換到“MySQL數據庫+PC Server的模式”。到2013年7月10日,淘寶重中之重的廣告系統的Oracle數據庫全部下線。
2013年5月17日,阿里集團最后一臺IBM小機在支付寶下線時也使阿里“去IOE”運動越發受到關注。
在“去IOE”的進程中,支付寶首席架構師程立有自己的苦衷。支付寶有阿里最后一臺IBM小機,這臺小機管理著支付寶用戶的所有資金。如果這臺小機出現故障,用戶將會無法支付,甚至連自己賬戶里有多少錢都看不到了,后果將不堪設想,因此對這臺小機的任何改動都要確保萬無一失。去除支付寶IBM小機的第二個難點在于,去除小機的前提是實現技術架構分布化,為支付寶IT遷移到云平臺打下基礎。但將技術架構從集中變成分布后,很難保證強一致性,比如客戶A給客戶B轉了一筆錢,不能出現A的錢扣了,但B的錢沒增加的情況。如何在一個分布的系統中保證交易處理的一致性是一個要攻克的技術難題。
“在王堅博士梳理整個阿里技術架構的時候,支付寶曾經是他‘去IOE’最大的一個‘障礙’”程立向《商業價值》記者說道。“我們必須要保證每天處理的大量資金,一分錢都不能錯,一筆都不能差。”出于謹慎,程立和團隊在去掉支付寶系統中其它所有的IBM小型機后,還保留著這臺小機管理最重要的賬戶資金。”
時間回溯到2012的“雙十一”大促的凌晨,很多消費者不斷點擊支付按鈕,卻常常看到支付寶的排隊頁面。消費者以為支付寶系統崩潰了,實際上,當時是因為支付寶僅存的這臺小機的承載能力有限,在高峰交易期,系統只能對來不及處理的請求進行排隊,這種排隊帶來的延遲產生了巨大的用戶體驗障礙。
“雙十一”的痛苦經歷,讓程立最后下定決心去掉這最后一臺小機,最終,支付寶技術團隊設計出了基于互聯網技術的分布式交易處理方案,通過一次完美的項目執行去除了支付寶、同時也是阿里的最后一臺IBM小機。
2013年的雙十一是程立經歷過的最輕松一次“大促”,再也不擔心有任何技術節點會制約業務的發展了。
一臺超級計算機
在阿里進行“去IOE”同時,另外一項重要的技術研發也在同時上演。2008年10月24日,飛天研發啟動。“飛天”是什么?飛天是阿里的大規模分布式系統,幾乎等同于整個阿里云的整個技術體系。
技術網站博客園對飛天——這種分布式技術有一段生動的描述:當你只有六七條魚的時候, 一個小型魚缸就夠了;可是過一段時間新生了30多條小魚,這個小缸顯然不夠大了。如果買一個大缸,把所有水草啊、布景、加熱棒、溫度計都從小缸里拿出來,重新布置到大缸。這個工程要花費很多時間,尤其水草,糾結在一起很難分開。分布式系統可以幫你在這個小缸旁邊接了一個同樣的小缸,兩個缸聯通。魚可以自動分散到兩個缸。幫你越過復雜的系統擴建過程,省掉了很多時間和設備成本。
阿里舊的“IOE”架構,本質上代表著基于傳統高端設備、大型數據庫等軟硬件的集中式架構。陳舊集中的技術無法應對阿里爆炸式業務增長,如果在IT系統中有一點出現問題,整個架構都面臨危險。飛天這種分布式系統集中大量的通用服務器在一個系統中,比單個的大型集中式系統運行速度更快。而且,把計算能力分散到眾多機器上,單個節點的故障只會影響一臺機器,其它機器可以照常工作。
2013年3月,阿里技術保障部給公司高層突然發信一封:“云梯1要撞墻了!”云梯1是阿里內部另一個基于Hadoop的分布式集群系統。保障部的員工發現按照現有數據增量和未來業務增長的情況,阿里的存儲和計算能力將在3個月內達到瓶頸,數據業務面臨停滯,必須將飛天系統快速擴建起來。
飛天的快速擴建要克服很多難題,國內有大規模分布式系統經驗的人不多,阿里的技術團隊里只有少數做過或用過分布式系統,所以整個研發的過程是一個探索學習的過程,只有遇到實際的問題,團隊才會對工程上的難題有所領悟。
其次,在系統設計的時候,工程師會設定相應的工作場景、硬件環境的完備性。但在實際生產環境下,各種硬件環境、參數配置,往往會打破設計時的假設,因此總是會碰到各種問題。在解決這些問題過程中積累的經驗,顯然不是教科書上可以學到的理論。這個超大計算機也有自己的軟肋,她要比單個服務器的可用性和可靠性要高很多,才能保證服務“永遠”不中斷,數據“永遠”不丟失。
經過4個月的不懈努力,飛天資深技術總監唐洪和他的團隊將5000臺飛天集群部署成功。阿里成為國內首個單集群達到5000臺規模的公司,在此之前,全球也只有Google、Facebook等頂級公司可以按照5000臺機器來劃分集群規模。
飛天能做什么?用唐洪的話來說:“它有100PB級別的硬盤,可以存放幾百億的網頁;可以給幾十萬的用戶,每人提供幾百G的存儲;再或者是擁有了一臺萬核以上的超級計算機,普通計算機一個月需要完成的渲染作業在這個計算機上只需要幾分鐘就可以完成。”
“雙十一”云備戰
飛天資深技術總監唐洪
“去IOE”與“飛天5K”技術成功后,阿里集團內部所有的重量級業務都已遷移到云計算平臺上。
“聚石塔”、 “聚寶盆”、“阿里金融”的大數據研發以及YunOS智能移動操作系統等,都運行在阿里云飛天平臺上。淘寶、支付寶等各業務部門的底層技術也架設在飛天平臺上。阿里金融基于云計算,幾分鐘之內就能讓貸款發出,每天處理上百TB的交易數據,而且保證了每一筆貸款發放的計算成本相同。淘寶也基于阿里云推出電商云——聚石塔,為“雙十一”服務。阿里云推出電商云—聚石塔,為“雙十一”服務。2012年“雙十一”,通過聚石塔,阿里云支撐了天貓20%的交易額, 2013年這一數字上升到75%。
2013年“雙十一”大戰前3個禮拜,天貓技術總監莊卓然接到集團通知:大促結束后,他將要被抽調到無線事業部。對他而言,3年的“雙十一”備戰完美收官,又將迎接新的挑戰。2013年,阿里第5個“雙十一”,天貓和淘寶單日成交額達到362億元(根據招股書數據),網站PV過百億,76%的商家處理工作在聚石塔云計算平臺完成,且無一漏單,無一故障。支付寶成功支付1.88億筆,最高每2分鐘支付79萬筆。用莊卓然的話:“瘋狂業務數據的背后,是對阿里技術團隊一次整體大閱兵。”這場閱兵檢驗了阿里“去IOE”和云計算的成果。
3年備戰“雙十一”,莊卓然每年都重復著高效的工作時間表。5月底,投入產品和技術準備?;I劃新的突破點和創意同時啟動,投入到一些較長周期的研發工作。8月底,真正的考驗來臨,沖刺時間段,他每晚習慣性要到兩點多才能睡著。有時候,想一些技術難題覺得有突破時,一睜眼就到天亮。莊卓然自己形容自己的工作狀態像“精神分裂”一樣,左腦思考的是系統的穩定性建設,右腦不停地找尋當前系統的命門和瓶頸。每一次大促都是對團隊技術能力的考驗。
2011年和2012年的“雙十一”前夜,莊卓然和技術團隊都非常不踏實,即便該做的技術準備都做了,但面對“雙十一”巨大的突發流量,只能盡力保證一個完善的技術機制,抓大放小。“雙十一”的最大難點在于峰值流量一壓過來,系統要扛得住千萬人同時在線和每秒數億筆交易。
淘寶和天貓的技術體系非常龐雜。每一筆交易都涉及到銀行、商家、淘寶自身和網絡等多個系統的處理能力。交易信息層層傳遞過程中,某一個技術細節執行不到位,交易就可能失敗。比如,當用戶量大到一定程度,系統讓用戶排隊,如果這個功能失效,一連串的上下游系統都會受到影響。淘寶的幾萬臺機器,上千個應用系統復雜交錯,很難實景模擬所有的用戶行為,比如1000萬人同時在線,同時下單。2013年,莊卓然對“雙十一”技術的確定和把握,一部分來源于技術團隊已經能實現在短期內集結一大批虛擬用戶去做壓力測試;另一部分是淘寶天貓后臺和大多數商家后臺已經上云。
淘寶、天貓上大概近千萬家商家,其中大部分的商家都有自己的ERP系統。消費者買一個東西需要點擊購買,然后進行支付。這個動作會指向兩條IT路徑:一是連接支付寶,保證有錢可以完成支付;另一條則是進入賣家的ERP,賣家需要知道自己是否有庫存,并減掉相應的貨品數量。交易從淘寶或天貓鏈接到賣家后臺系統的過程中,如果賣家IT系統薄弱,數據交換可能會因為網絡等原因不通暢導致交易失敗。
莊卓然詳細講解了這一過程:“聚石塔提供的云推送功能在第一時間將交易訂單同步部署進商家的ERP、物流、CRM軟件中,并提供動態彈性擴容和安全保護。消費者下單到發貨、發票打印,所有信息流轉都在云上完成。”
云上生態系統
阿里云業務總經理陳金培
天貓技術總監莊卓然
聚石塔只是阿里云應用的一個側面,阿里長在云上的商業生態體系已經初步形成。
王堅曾說過:“阿里云平臺在內部的代碼就是飛天。一個平臺的力量有多大,可以造就的東西就有多大,這是過去阿里云為什么花費這么大力氣做飛天的原因。”飛天以Web API的方式,向外提供計算、存儲和大規模數據處理等云計算服務,建立起龐大的云計算生態體系。
未來的互聯網將成為一個果園,各行各業像是一棵棵果樹,如何為果樹提供良好的養分服務,決定了果園生態的豐富程度。云計算就是牽引傳統行業互聯網化的引擎。數據將成為云生態里的生產資料,通過強大的計算能力進行實時分析和交互,可以催生出無數新的商業模式。
在阿里剛剛遞交的招股說明書中寫道:2013年1~9月,阿里云計算服務等收入達5.6億人民幣,占總收入的1.4%,同比增長15.7%,并且已經擁有98萬用戶。阿里云快速地將阿里和不同行業企業聯系到一起,比如消費電子、公共衛生、能源管理、媒體、電子商務、電子政務、移動互聯網等。阿里云客戶中有傳統的互聯網公司,也有移動互聯網公司,比如手游公司;還有一些傳統企業,比如杭州九陽股份有限公司,這些傳統企業的IT逐漸向云遷徙。例如,2013年,阿里與美的集團的深入合作,是基于天貓商城、大數據和阿里云計算平臺的多維度合作,這種借助云和數據的能力,讓傳統企業能與互聯網走向更深的耦合。
阿里云還在借助ISV合作伙伴,幫助更多的傳統企業上云。2013年,東軟將旗下SaCa、UniEAP等軟件產品部署在阿里云上;普元推出基于阿里云的EOS-Cloud平臺,直接在云上支撐企業軟件開發。這些ISV廠商有大量傳統企業用戶積累,這種深入合作撬動了一批傳統企業上云。2014年,5月8日,阿里云宣布香港數據中心正式投入使用,阿里云正與Amazon AWS、、微軟Azure展開正面競爭,阿里的云生態體系部署已經蔓延到國外。阿里云業務總經理陳金培認為:“所有的產業競爭都是生態系統的競爭,你要么依存于一個生態,要么自己發展出來一個生態。”馬云搭建的基于數據和云的生態,已初步形成。
2013年初開始,阿里將其戰略調整為“平臺、金融、數據”三大業務。云計算是金融、數據的基礎。2014年春,馬云的內部信件再次明確了阿里的未來戰略:走向激活生產力為目的的DT(data technology)數據時代。馬云的策略是讓數據、云計算成為中國商業的基礎設施。(文/張宇婷)
阿里巴巴的技術節奏
2007年
以互聯網為平臺的商務管理軟件公司阿里軟件成立。
2008年
王堅加盟阿里成為集團首席架構師
阿里巴巴集團研發院成立
飛天研發工作開始
2009年
阿里軟件與阿里巴巴集團研發院合并
阿里云計算成立,在杭州、北京、硅谷設研發中心和運營機構
Oracle產品構建的RAC集群成為國內最大的數據倉庫
淘寶擁有第一個分布式計算系統Hadoop集群,規模300臺
2010年
阿里云第一個云計算機房啟用
阿里巴巴數據量大爆炸的一年,RAC集群不能滿足業務發展速度,遷移到Hadoop
2011年
阿里云官網上線,“飛天”開始對外提供云服務
阿里巴巴云智能手機操作系統云OS正式發布
2012年
“冰火鳥”啟動建立支持集團數據化運營,自主研發的分布式計算平臺對全集團提供服務
2013年
阿里云計算與萬網合并為新的阿里云計算公司
“飛天”集群達到5000臺,100T數據TearSort算法30分鐘完成,比當時的世界紀錄快2倍以上
2014年
阿里云發布移動云平臺-聚無線
香港數據中心正式啟用
責任編輯:葉雨田
-
權威發布 | 新能源汽車產業頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業,設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數據中心 打造融合型綜合能源系統
2020-06-16綜合能源服務,新能源消納,能源互聯網
-
新基建助推 數據中心建設將迎爆發期
2020-06-16數據中心,能源互聯網,電力新基建 -
泛在電力物聯網建設下看電網企業數據變現之路
2019-11-12泛在電力物聯網 -
泛在電力物聯網建設典型實踐案例
2019-10-15泛在電力物聯網案例
-
權威發布 | 新能源汽車產業頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業,設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲能行業發展
-
探索 | 既耗能又可供能的數據中心 打造融合型綜合能源系統
2020-06-16綜合能源服務,新能源消納,能源互聯網 -
5G新基建助力智能電網發展
2020-06-125G,智能電網,配電網 -
從智能電網到智能城市