解密阿里巴巴的技術發展路徑

jopen 10年前發布 | 38K 次閱讀 阿里巴巴

171222528814413.jpg

  2008 年的一天,阿里巴巴集團(下稱“阿里”)開了一次內部會議。在這次當時看來很平常的會議上,明確了兩個議題:一,阿里是一家數據公司;二,阿里要把“計 算”變成一種像水和電一樣的公共品。當時在中國還沒有人談“大數據”的概念;更沒有人想到云計算會和一家互聯網公司未來發展如此緊密。

  1999 年阿里成立之初,創始人“十八羅漢”中就不乏技術基因。公開資料顯示,創始人之一吳泳銘 1996 年畢業于浙江工業大學計算機系,后成為支付寶的技術總監。盛一飛有多年用戶體驗設計經驗。周悅虹,java 架構師,技術精湛,傳言是一名極客。

  隨著淘寶網的成立,2003 年阿里開始與 IBM 合作,解決用戶、商品和消費信息分散的問題。當時的阿里已經從十幾個人的小公司延展出很多新業務,技術系統也變得龐大復雜。到了 2007 年,阿里在 IT 上的投入之大,一度成為 IBM、Oracle 等國外 IT 廠商在中國的標桿用戶。當年,阿里首席數據庫管理員馮春培甚至受到了 Oracle 公司亞太區高級副總裁 Brian Mitchell 親切接待,并被授予甲骨文全球第 100 個 ACE(Oracle ACE 是指那些通過撰寫書籍、文章或博客,分享 Oracle 經驗的技術專家)。

  但實際上,這種甜蜜的合作關系并沒有持續太久。

  2008 年前后,阿里業務高速發展使已有的 IT 設備使用到達瓶頸。根據時任支付寶數據庫架構師、現丁香園 CTO 馮大輝的描述:“在阿里的 IT 架構中,淘寶和支付寶等擁有大量 IBM 小型機和 Oracle 數據庫,以及 EMC、戴爾存儲設備。用戶激增與用戶產生的數據越來越多,每年早上8:00~9:30 之間 CPU(中央處理器)要保持 98% 的使用率。”IBM 小型機價格從幾十萬到高達百萬級人民幣,與 Oracle 簽訂的數據庫軟件費用達數千萬,加之一大筆軟硬件支付和一大筆維護費,阿里的技術發展進入一個壓力很大的時期。

  緊迫之中,阿里在尋找一名技術高管,要為龐大復雜的業務搭建起全新的技術架構,建立全球頂尖 IT 團隊。在 2008 年的這次內部會議上,阿里確定了“數據”和“云計算”兩個重要的新戰略。

  時任阿里巴巴首席架構師的王堅成為接受這個挑戰的不二人選。

  “去 IOE”念頭萌生

  加入阿里巴巴之前,王堅任微軟亞洲研究院常務副院長;再之前,他是浙江大學心理學系教授、系主任。加盟阿里后,王堅馬上著手第一個重要工作—— 籌劃集團全年的 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’提升和鍛煉團隊的能力,協調好運維和開發團隊間的工作才是關鍵。”

  小機,再見!

  淘寶是首先推行“去 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、非死book 等頂級公司可以按照 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 月底,投入產品和技術準備。籌劃新的突破點和創意同時啟動,投入到一些較長周期的研發工作。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 年

  • 阿里云發布移動云平臺-聚無線;
  • 香港數據中心正式啟用。

       來自: 鈦媒體
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!