16小時(shí)31分,天貓雙11再破2018年全天記錄!
-
物聯(lián)網(wǎng)智庫
2019-11-11 18:07 -
文:
carey
經(jīng)過16小時(shí)31分12秒,天貓雙11再次突破去年全天2135億元的總成交額。
俗話說,“躲得過初一,躲不過雙十一”。
這筆堪稱天文數(shù)字的成交額意味著全球最大的流量洪峰——對數(shù)以億計(jì)的消費(fèi)者來說,從提交訂單到付款成功不過是指尖下短短的幾秒而已;對阿里后臺(tái)的服務(wù)器來說,要承受的卻是數(shù)據(jù)巖漿的瞬間噴發(fā)——只有扛住了這一流量洪峰,剁手黨們才能夠支付順暢、購物不卡殼。
據(jù)天貓最新數(shù)據(jù),2019天貓雙11交易峰值創(chuàng)下新紀(jì)錄,達(dá)到54.4萬筆/秒,是2009年第一次雙11的1360倍,這一數(shù)字在2018年為48萬筆/秒。
在度過2019天貓雙11流量峰值后,阿里巴巴正式宣布,其核心系統(tǒng)已100%跑在阿里云公共云上。由此,阿里巴巴成為全球首個(gè)將核心交易系統(tǒng)100%運(yùn)行在公共云上的大型互聯(lián)網(wǎng)公司。

當(dāng)年阿里在搞“去IOE”的時(shí)候可能并沒有一定要讓中國在數(shù)據(jù)庫領(lǐng)域?qū)崿F(xiàn)自主可控的雄心,反而,這項(xiàng)策略一開始頗有些迫于無奈的意味。
與傳統(tǒng)數(shù)據(jù)庫相比,OceanBase的另外一個(gè)關(guān)鍵特征是軟件版本的灰度升級(jí)。
然而,大家高興還沒多久,有不少業(yè)內(nèi)人士開始出來“潑冷水”:按照性能的測試結(jié)果,螞蟻金服的確排名第一,從每分鐘能處理的事務(wù)數(shù)量來看,“螞蟻”的60,880,800 tpmC的確是“甲骨文”30,249,688 tpmC的兩倍。但值得注意的是,這份榜單中的測試結(jié)果有效期僅為3年,除了“螞蟻”意外,其他公司因?yàn)樘脹]有參與測試,以前的測試結(jié)果統(tǒng)統(tǒng)過期了。
吃吃吃、買買買,永遠(yuǎn)是能讓人心情變好的事物,用自己賺的錢在這樣一個(gè)節(jié)日里獎(jiǎng)勵(lì)一下自己,又有什么不可呢?

俗話說,“躲得過初一,躲不過雙十一”。
無論之前我們怎么拼命捂緊錢包以窮為名指天發(fā)誓說要當(dāng)“東方不buy”,最后八成會(huì)在全民狂熱購物氛圍的影響下忍不住按下提交訂單的按鈕。為了榨干大家銀行卡里的余額,各種滿減廣告鋪天蓋地而來,仿佛在大聲吆喝“快看這四舍五入簡直是不要錢”,信用卡和花唄也都煞費(fèi)苦心的悄悄提高了消費(fèi)額度,簡直是全世界都在慫恿人們買!買!買!
“昨天的最好表現(xiàn),是今天的最低要求”,毫無懸念的,今年的天貓雙11再次延續(xù)了“神話”——0點(diǎn)開啟,幾乎每1秒都有新的記錄誕生。
1分36秒破100億,比去年用時(shí)快29秒;
12分49秒突破500億,用時(shí)較去年縮短一半;
1小時(shí)03分59秒沖破1000億大關(guān),比去年快了43分鐘27秒;
14時(shí)21分27秒沖破2000億大關(guān),比去年提前8小時(shí)7分10秒;
剛剛,經(jīng)過16小時(shí)31分12秒,天貓雙11再次突破去年全天2135億元的總成交額。

這筆堪稱天文數(shù)字的成交額意味著全球最大的流量洪峰——對數(shù)以億計(jì)的消費(fèi)者來說,從提交訂單到付款成功不過是指尖下短短的幾秒而已;對阿里后臺(tái)的服務(wù)器來說,要承受的卻是數(shù)據(jù)巖漿的瞬間噴發(fā)——只有扛住了這一流量洪峰,剁手黨們才能夠支付順暢、購物不卡殼。
這是一場購買力極限與技術(shù)極限的戰(zhàn)爭,也是支付寶新技術(shù)的最佳演練場。正如阿里巴巴董事局主席張勇說的那樣,“過去11年我們從不回答預(yù)測雙11銷售額的問題,我最關(guān)心的是,我們的技術(shù)每秒鐘能夠支撐多少筆訂單的處理。”

據(jù)天貓最新數(shù)據(jù),2019天貓雙11交易峰值創(chuàng)下新紀(jì)錄,達(dá)到54.4萬筆/秒,是2009年第一次雙11的1360倍,這一數(shù)字在2018年為48萬筆/秒。
“我們抗住了!”阿里云官方微信號(hào)如此表示。

在度過2019天貓雙11流量峰值后,阿里巴巴正式宣布,其核心系統(tǒng)已100%跑在阿里云公共云上。由此,阿里巴巴成為全球首個(gè)將核心交易系統(tǒng)100%運(yùn)行在公共云上的大型互聯(lián)網(wǎng)公司。
站在11年前遙望今天,沒有幾個(gè)人曾料想到這一切能夠照進(jìn)現(xiàn)實(shí)。
阿里的“去IOE”革命
10月25日,阿里巴巴副總裁劉振飛發(fā)表了名為《十年磨一劍:從2009啟動(dòng)“去IOE”工程到2019年OceanBase拿下TPC-C世界第一》的文章,回顧了阿里巴巴“去IOE”的完整歷史。
據(jù)劉振飛回憶,十年前(2009年)的9月,他奉命組建當(dāng)時(shí)的淘寶技術(shù)保障部,隨即啟動(dòng)了2010年的技術(shù)預(yù)算工作。當(dāng)他第一次給時(shí)任集團(tuán)首席架構(gòu)師的王堅(jiān)博士匯報(bào)預(yù)算的時(shí)候,曾得意地說到:“(淘寶)2010年不再購買小型機(jī)”。
不料,這句話非但沒有取得王堅(jiān)的贊賞,反而被王博士狠狠批評(píng)了一頓:“既然2010年可以不再購買小型機(jī),為何還要給自己留下活口,2011年以后還可以買呢?加一個(gè)字:2010年起不再購買小型機(jī)!”
由此,阿里啟動(dòng)了后面幾年備受爭議的“去IOE”工程。
所謂“去IOE”,是對去IBM、Oracle、EMC的簡稱,三者均為海外IT巨頭,其中IBM代表硬件以及整體解決方案服務(wù)商,Oracle代表數(shù)據(jù)庫,EMC代表數(shù)據(jù)存儲(chǔ)。IOE 這個(gè)說法最初來自阿里技術(shù)團(tuán)隊(duì)內(nèi)部的稱謂,然后才在整個(gè)業(yè)界流傳開來,并且有了更加廣泛的含義——即對一些核心領(lǐng)域要求其IT系統(tǒng)及設(shè)備做到自主可控,比如金融、電信、能源等領(lǐng)域。在這些領(lǐng)域,“IOE”為代表的國外IT廠商占據(jù)絕對優(yōu)勢,其中尤以IBM大型服務(wù)器壟斷地位尤為明顯。
為了滿足王博士的要求,劉振飛只好“攢出”一條去IOE的技術(shù)路線:“低成本、線性可控、去中心化(分布式):去IBM,PC Sever替代小型機(jī);去Oracle,用MySQL替代;去EMC,用中低端存儲(chǔ)”。
他最后以驚嘆號(hào)結(jié)尾,粗體寫上一句:“淘寶2010年起不再購買小型機(jī)了!”第二年,劉振飛進(jìn)一步提出用MySQL+自研數(shù)據(jù)庫(OceanBase)替代Oracle,并不再使用高端存儲(chǔ)。


當(dāng)年阿里在搞“去IOE”的時(shí)候可能并沒有一定要讓中國在數(shù)據(jù)庫領(lǐng)域?qū)崿F(xiàn)自主可控的雄心,反而,這項(xiàng)策略一開始頗有些迫于無奈的意味。
財(cái)新發(fā)表的一篇題為《以阿里云去IOE》的文章講述了其中的故事:從2006年和2007年開始,業(yè)務(wù)快速增長的阿里開始面臨世界級(jí)難題——數(shù)據(jù)庫太大。2008年,阿里的數(shù)據(jù)庫已經(jīng)成為全亞洲最大的數(shù)據(jù)庫用戶。以當(dāng)時(shí)的技術(shù)能力,如此大的數(shù)據(jù)庫已經(jīng)幾乎不具備擴(kuò)展可能。
“我們把全中國最知名的頂尖的DBA(數(shù)據(jù)庫管理員)請到公司,一個(gè)晚上一張報(bào)表都做不出來,沒有任何一家公司包括IBM、微軟,能夠?yàn)槲覀兲峁┮徽椎募夹g(shù)服務(wù)。”阿里巴巴研發(fā)院業(yè)務(wù)發(fā)展專家孫黎明回憶道。
IOE架構(gòu)也無法滿足阿里電商平臺(tái)秒殺類營銷推廣,“為了準(zhǔn)備一次秒殺營銷,從社會(huì)采購到安裝部署至少需要半年的時(shí)間,才能完成IT系統(tǒng)寬容量的過程,但半年以后,這項(xiàng)業(yè)務(wù)幾乎已經(jīng)不存在了。”
對于“雙十一”這樣的業(yè)務(wù)暴增時(shí)點(diǎn),IOE架構(gòu)最讓人頭痛的則是需要估算交易量,到底需要多大的服務(wù)器和數(shù)據(jù)庫才能保證不宕機(jī)?一次性上馬太大服務(wù)器和數(shù)據(jù)庫等于浪費(fèi),但若買小了又無法保證業(yè)務(wù)。
治標(biāo)的方法快要山窮水盡,必須要從治本的角度出發(fā)尋找新的解決方案,比如,從架構(gòu)層面“搞革命”,做單元化。
2010年5月,正祥加盟淘寶,由此拉開了OceanBase的自主研發(fā)之路。站在十年后的今天回望過去,期間經(jīng)歷的種種磨難,遭遇的各種反對,忍受的諷刺挖苦,都已經(jīng)成了長篇傳奇故事中的動(dòng)人細(xì)節(jié)。這十年間,有無數(shù)次可能讓OceanBase夭折,但OceanBase還是堅(jiān)持了下來:
2011.11 OceanBase第一次支持雙十一,服務(wù)淘寶收藏夾
2012.11 OceanBase轉(zhuǎn)戰(zhàn)支付寶
2014.11 OceanBase承擔(dān)支付寶交易10%流量
2015.11 OceanBase承擔(dān)支付寶交易100%、支付50%流量
2016.11 OceanBase承擔(dān)支付寶交易100%、支付100%、花唄賬務(wù)30%流量
2017.11 OceanBase承擔(dān)支付寶交易100%、支付100%、賬務(wù)100%流量,“去O”大功告成!并第一次走出阿里,應(yīng)用到南京銀行互聯(lián)網(wǎng)核心系統(tǒng)
2018.09 云棲大會(huì)發(fā)布了OceanBase 2.0,正式宣布兼容Oracle
2019.10 OceanBase發(fā)布Oracle兼容版本2.2,并公布TPC-C結(jié)果
OceanBase到底是如何做到的?
與傳統(tǒng)企業(yè)相比,以阿里為代表的互聯(lián)網(wǎng)企業(yè)最大的不同之一是并發(fā)訪問量非常大。傳統(tǒng)商業(yè)企業(yè)、銀行,用戶需要通過收銀臺(tái)、銀行終端、ATM柜員機(jī)、POS機(jī)等專用設(shè)備開展業(yè)務(wù)并訪問數(shù)據(jù)庫,幾百和幾千的數(shù)據(jù)庫并發(fā)訪問比較常見,幾萬以上的并發(fā)訪問相當(dāng)少見。在互聯(lián)網(wǎng)上,每一個(gè)草根網(wǎng)民都可以發(fā)起購物交易并訪問數(shù)據(jù)庫,幾十萬的數(shù)據(jù)庫并發(fā)訪問時(shí)常可見,幾百萬甚至千萬的并發(fā)訪問都可以見到(例如雙11下的淘寶、天貓和支付寶)。如此之大的并發(fā)訪問下,商業(yè)數(shù)據(jù)庫軟件及其高可靠的數(shù)據(jù)庫服務(wù)器和共享存儲(chǔ)的成本成為了不可承擔(dān)之重。
所以就像上文中說的那樣,傳統(tǒng)的數(shù)據(jù)庫架構(gòu)搞不定阿里的實(shí)際需求。那么,IBM、微軟等公司都做不到的事情,阿里自研的OceanBase是如何做到的呢?
螞蟻金服高級(jí)研究員陽振坤曾在《揭秘阿里服務(wù)互聯(lián)網(wǎng)金融的關(guān)系數(shù)據(jù)庫——OceanBase》中詳細(xì)介紹了OceanBase背后用到的技術(shù)。
OceanBase的一個(gè)基本假設(shè)就是硬件(服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò)等)是不可靠的,另一個(gè)基本假設(shè)是單機(jī)(數(shù)據(jù)庫服務(wù)器及共享存儲(chǔ))無法滿足互聯(lián)網(wǎng)業(yè)務(wù)的需求。因此,OceanBase必須是一個(gè)多機(jī)(分布式)系統(tǒng),并且必須保證任何時(shí)刻出現(xiàn)的少量硬件(服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò)等)異常不影響業(yè)務(wù)。
為此,OceanBase引入了Paxos協(xié)議,每一筆事務(wù),主庫執(zhí)行完成后,要同步到半數(shù)以上庫(包括主庫自身),例如3個(gè)庫中的2個(gè)庫,或者5個(gè)庫中的3個(gè)庫,事務(wù)才成功。這樣,少數(shù)庫(例如3個(gè)庫中的1個(gè)庫,或者5個(gè)庫中的2個(gè)庫)異常后業(yè)務(wù)并不受影響:

與傳統(tǒng)數(shù)據(jù)庫相比,OceanBase的另外一個(gè)關(guān)鍵特征是軟件版本的灰度升級(jí)。
主備方式的傳統(tǒng)數(shù)據(jù)庫是“單活”的,只有主庫可執(zhí)行寫事務(wù),盡管維護(hù)升級(jí)時(shí)可以先操作備庫,操作完成后備庫變成主庫并且接受用戶訪問是一步到位的,如果新版本有問題,則業(yè)務(wù)受到影響:

傳統(tǒng)數(shù)據(jù)庫:升級(jí)前

傳統(tǒng)數(shù)據(jù)庫:升級(jí)中

傳統(tǒng)數(shù)據(jù)庫:升級(jí)后只能一次性地引入全部讀寫流量
OceanBase則是“多活”設(shè)計(jì),即多個(gè)庫(3個(gè),5個(gè)等)每個(gè)都可以有部分讀寫流量,升級(jí)時(shí)先把要升級(jí)的庫的讀寫流量切走,升級(jí)后先進(jìn)行數(shù)據(jù)對比,正常后逐步引入讀寫流量(白名單,1%,5%,10%......),一切正常并運(yùn)行一段時(shí)間后再升級(jí)其他的庫:

OceanBase之3機(jī)群(3庫)部署:升級(jí)前

OceanBase之3機(jī)群(3庫)部署:切走讀寫流量,準(zhǔn)備升級(jí)

OceanBase之3機(jī)群(3庫)部署:升級(jí)一個(gè)機(jī)群(庫)

OceanBase之3機(jī)群(3庫)部署:升級(jí)一個(gè)機(jī)群(庫)后切回部分讀寫流量

OceanBase之3機(jī)群(3庫)部署:升級(jí)一個(gè)機(jī)群(庫)后切回全部讀寫流量
基于硬件不可靠的假設(shè)并且能夠容忍少量服務(wù)器的故障,OceanBase使用了相對廉價(jià)的PC服務(wù)器代替高可靠服務(wù)器并且不再使用昂貴的共享存儲(chǔ),從而不僅提供了比使用高可靠服務(wù)器和共享存儲(chǔ)低得多的成本,容忍少數(shù)服務(wù)器乃至少數(shù)機(jī)群故障意味著比傳統(tǒng)數(shù)據(jù)庫更高的可靠性。通過灰度升級(jí),OceanBase避免了傳統(tǒng)數(shù)據(jù)庫的“一錘子買賣”的升級(jí),極大地降低了數(shù)據(jù)庫維護(hù)升級(jí)的風(fēng)險(xiǎn)。
OceanBase“擊敗”甲骨文?
10月2日,70年大慶的假日期間,國際權(quán)威的性能測試機(jī)構(gòu)TPC(TransactionProcessing Performance Council,事務(wù)處理性能委員會(huì))發(fā)布了最新的TPC-C性能測試結(jié)果排名(TPC-C - All Results - Sortedby Performance Version 5 Results)。
在這個(gè)最新排名中,名列第一的是阿里巴巴螞蟻金服集團(tuán)提交并經(jīng)過TPC嚴(yán)格審計(jì)的測試結(jié)果。
一時(shí)之間,“中國自研數(shù)據(jù)庫超越Oracle登頂全球第一”成為了各大媒體的頭條!

然而,大家高興還沒多久,有不少業(yè)內(nèi)人士開始出來“潑冷水”:按照性能的測試結(jié)果,螞蟻金服的確排名第一,從每分鐘能處理的事務(wù)數(shù)量來看,“螞蟻”的60,880,800 tpmC的確是“甲骨文”30,249,688 tpmC的兩倍。但值得注意的是,這份榜單中的測試結(jié)果有效期僅為3年,除了“螞蟻”意外,其他公司因?yàn)樘脹]有參與測試,以前的測試結(jié)果統(tǒng)統(tǒng)過期了。

所有灰色背景的測試結(jié)果,由于軟硬件升級(jí)的原因而過期,只有“螞蟻”一行背景是白色
所以,我們只能說——“螞蟻金服OceanBase現(xiàn)在的測試成績,達(dá)到了甲骨文Oracle數(shù)據(jù)庫在9年前測試成績的兩倍。”
但即便如此,OceanBase也依然值得贊賞。
過去,國產(chǎn)數(shù)據(jù)庫經(jīng)過了多年的發(fā)展,雖有很大長進(jìn),但一直被認(rèn)為三大基礎(chǔ)軟件中最薄弱的環(huán)節(jié),始終無法取代以O(shè)racle為代表的等國外數(shù)據(jù)庫,也始終沒有在國際權(quán)威的測試中取得過一些亮眼的成績。因此,OceanBase參與了TPC-C測試,也是國產(chǎn)數(shù)據(jù)庫在國際競技舞臺(tái)上的首次公開比武。就憑這份參與的勇氣,以及要為此付出的努力和成本,就足以使OceanBase讓業(yè)界刮目相看。更何況OceanBase的測試結(jié)果表明,它至少已達(dá)到Oracle九年前的水平,這也已大大縮短國產(chǎn)數(shù)據(jù)庫與國際頂級(jí)水平的差距。
結(jié)語
這是第十一個(gè)雙11 ,也是馬云卸任之后的第一個(gè)雙11。
看到如此的好成績,曾經(jīng)“悔創(chuàng)阿里”已于今年9月卸任阿里巴巴集團(tuán)董事局主席職位馬云在看臺(tái)上笑得合不攏嘴。

吃吃吃、買買買,永遠(yuǎn)是能讓人心情變好的事物,用自己賺的錢在這樣一個(gè)節(jié)日里獎(jiǎng)勵(lì)一下自己,又有什么不可呢?
于是,你為今年的雙11貢獻(xiàn)了多少【偷笑】?