2019年雙11來(lái)了。1分36秒100億,5分25秒超過(guò)300億,12分49秒超500億……如果沒(méi)有雙11,中國(guó)的互聯(lián)網(wǎng)技術(shù)要發(fā)展到今天的水平,或許要再多花20年?! ?/p>
從雙11誕生至今的11年里,有一個(gè)場(chǎng)景始終在支付寶技術(shù)團(tuán)隊(duì)之中循環(huán)往復(fù)——每一年確定目標(biāo)時(shí),大家都將信將疑,或驚呼或腹誹:“不可能!太夸張了吧!”但每一年的夸張目標(biāo),到最后都能奇跡般地成為現(xiàn)實(shí)。
前一年需要拼命躍起才能夠到的果實(shí),后一年就會(huì)成為再普通不過(guò)的日常。不知不覺(jué)之間,雙11已經(jīng)從最初啟航時(shí)的小船,成為了承載數(shù)十億人快樂(lè)和夢(mèng)想的巨艦。在這個(gè)舉世矚目的“奇跡工程”背后,是技術(shù)和技術(shù)人一起,十余年如一日,以難以置信的“中國(guó)速度”在不知疲倦地向前奔跑?! ?/p>
技術(shù)人的初衷往往極致單純——既然決定要做,那就全力以赴,一往無(wú)前,但當(dāng)他們一步一個(gè)腳印風(fēng)雨兼程地走來(lái),驀然回首,就發(fā)現(xiàn)奇跡已經(jīng)在那里了。
【一】那時(shí)距離宕機(jī)只有幾十秒
2009年11月11日,對(duì)于支付寶工程師陳亮而言,本來(lái)是與往常沒(méi)有任何不同的一天。
那年還沒(méi)有支付寶大樓,更沒(méi)有Z空間,他趟過(guò)早高峰的車流,坐到華星時(shí)代廣場(chǎng)的工位上時(shí),一封來(lái)自CTO程立的郵件發(fā)到了他的電腦里:今天淘寶商城要搞一個(gè)促銷活動(dòng),預(yù)估交易量比較大,大家盯著點(diǎn)系統(tǒng)。
陳亮當(dāng)時(shí)所在的團(tuán)隊(duì)主要職責(zé)是保障整個(gè)系統(tǒng)的穩(wěn)定可靠。在促銷活動(dòng)的場(chǎng)景下,通俗地說(shuō)來(lái),就是要保障服務(wù)器“堅(jiān)挺”,別被蜂擁而來(lái)的用戶擠爆了。
淘寶商城在2009年的8月剛剛重組上線,日均交易量對(duì)于當(dāng)時(shí)的支付寶而言,要穩(wěn)穩(wěn)接住不在話下。就算搞促銷臨時(shí)出現(xiàn)洪峰,不怕,擴(kuò)容就好。
事實(shí)上也就是這么操作的。全團(tuán)隊(duì)的同學(xué)聚在辦公室里,盯著電腦屏幕,只要發(fā)現(xiàn)交易量逼近系統(tǒng)承載上限,就馬上進(jìn)行擴(kuò)容。
交易量的上漲有點(diǎn)不尋常,一片安靜的辦公室里本來(lái)只有鍵盤聲,忽然有人高喊一聲:“我秒到了!”緊接著又有人跟著喊:“我也秒到了!”辦公室里嗡地一下,熱鬧了起來(lái)。
原來(lái)有人很好奇淘寶商城究竟在做什么促銷讓交易量漲成這樣,點(diǎn)過(guò)去一看,發(fā)現(xiàn)有折扣高達(dá)50%以上的“秒殺”,忍不住出手一試。
“已經(jīng)想不起當(dāng)時(shí)究竟秒到了什么,只記得大家都特別快樂(lè)。”陳亮說(shuō)。
快樂(lè),是陳亮對(duì)于這個(gè)促銷活動(dòng)最初、也最鮮明的印象。
不過(guò)除了一整天都忙于擴(kuò)容的同學(xué)之外,當(dāng)時(shí)支付寶的大多數(shù)人都對(duì)這場(chǎng)促銷并無(wú)感知。“事后才知道前一天有促銷,同事說(shuō)流量有點(diǎn)猛。”現(xiàn)在已成為螞蟻金服研究員的李俊奎說(shuō),運(yùn)維負(fù)責(zé)人很緊張地在第二天的復(fù)盤會(huì)議上提出“抗議”:“淘寶商城那邊在搞什么?支付量一下子提升了這么多,萬(wàn)一我們提前準(zhǔn)備的量不夠,就危險(xiǎn)了。”
淘寶商城搞了什么?站在今天回頭去看,他們只是搞了一件不算很大的事:在“光棍節(jié)”當(dāng)天,聯(lián)合27個(gè)品牌做了一場(chǎng)促銷活動(dòng),單日GMV 5000萬(wàn)。
當(dāng)時(shí)沒(méi)有任何人能夠預(yù)計(jì)這個(gè)促銷活動(dòng)日后會(huì)成長(zhǎng)為什么模樣,不過(guò)支付寶從數(shù)據(jù)的增長(zhǎng)之中嗅到了山雨欲來(lái)的氣息:這個(gè)活動(dòng)帶來(lái)的交易峰值超過(guò)平日的5倍,雖然這次平穩(wěn)過(guò)關(guān),但已經(jīng)逼近了當(dāng)時(shí)支付寶的承載極限。
2010年的年中剛過(guò),支付寶就去跟淘寶商城通氣:去年那個(gè)促銷,今年還搞嗎?淘寶商城說(shuō),搞。
好漢不打無(wú)準(zhǔn)備之仗,如何籌備“雙11”被提上了支付寶每周穩(wěn)定性會(huì)議的議程。首當(dāng)其沖的是要準(zhǔn)備充足的容量。但是按多少準(zhǔn)備呢?誰(shuí)都沒(méi)經(jīng)驗(yàn)。
“拍腦袋估個(gè)數(shù)據(jù),然后按預(yù)估數(shù)據(jù)乘以三去買機(jī)器,簡(jiǎn)單粗暴。”李俊奎直言不諱。
為了檢驗(yàn)這樣拍腦袋的決策行不行,他還和團(tuán)隊(duì)一起搞了個(gè)測(cè)試:通過(guò)手動(dòng)更改配置,把多臺(tái)機(jī)器上的流量導(dǎo)到一臺(tái)機(jī)器上,測(cè)試一臺(tái)機(jī)器的能接住多大的流量。“現(xiàn)在想起來(lái),那就是壓測(cè)最早的雛形。”
他們甚至準(zhǔn)備了一個(gè)備用的工作聯(lián)絡(luò)群。當(dāng)時(shí)還沒(méi)有釘釘,工作群都搭在旺旺上,“萬(wàn)一旺旺服務(wù)器也出問(wèn)題了,不能及時(shí)聯(lián)絡(luò)怎么辦?”
籌備的時(shí)間雖不長(zhǎng),倒也方方面面都有兼顧,“但是不管事先做了怎樣萬(wàn)全的準(zhǔn)備,每年總有意外發(fā)生。”金融核心技術(shù)部工程師趙尊奎說(shuō)。他當(dāng)年所在的團(tuán)隊(duì)是賬務(wù)會(huì)計(jì)組,一舉一動(dòng)都關(guān)系到錢,絲毫不容有錯(cuò)。
意外真的來(lái)了。
11日凌晨,促銷活動(dòng)剛開(kāi)始不久,支付寶的賬務(wù)數(shù)據(jù)庫(kù)就容量告急。
病來(lái)如山倒。發(fā)現(xiàn)問(wèn)題時(shí),狀況已經(jīng)十分危急,“只能再撐幾分鐘!”運(yùn)維心急如焚,如果不能馬上找到解決辦法,支付寶就面臨宕機(jī)風(fēng)險(xiǎn),交易鏈路一斷,誰(shuí)也買不成。
怎么辦?運(yùn)維把心一橫,說(shuō),砍了會(huì)計(jì)系統(tǒng)吧,給核心的賬務(wù)系統(tǒng)騰空間。
時(shí)間已經(jīng)容不得多加斟酌,一群高管站在背后,支付寶中間件團(tuán)隊(duì)的工程師蔣濤感到前所未有地緊張,“操作的時(shí)候手都在抖。”
這個(gè)當(dāng)機(jī)立斷的決策將支付寶從距離宕機(jī)只差幾十秒的懸崖邊挽救了回來(lái)。事后的數(shù)據(jù)顯示,2010年的雙11,參與用戶達(dá)到2100萬(wàn),總GMV達(dá)到10億,是上一年的20倍,這是任何人都很難在事先預(yù)估到的漲幅。
“能想到會(huì)漲,但誰(shuí)也想不到漲勢(shì)會(huì)這么猛烈。”趙尊奎說(shuō),“也就是從那年起,我們開(kāi)始隱隱覺(jué)得,更猛烈的還在后頭。”
【二】代碼的分量
85后的肖涵和90后的鄭洋飛,都是在讀大學(xué)時(shí)就知道了雙11。
肖涵喜歡網(wǎng)購(gòu),09年就成了第一批嘗鮮雙11的剁手族,還在一個(gè)技術(shù)交流群里認(rèn)識(shí)了參與過(guò)雙11的支付寶工程師;鄭洋飛常買《電腦報(bào)》,那上面說(shuō)2010年雙11一天的銷售額等于香港一天的零售總額,他一邊驚嘆,一邊心生向往。
“覺(jué)得好牛B,想進(jìn)去看看。”
當(dāng)年互不相識(shí)的兩個(gè)年輕人,不約而同地產(chǎn)生了這樣的想法。
肖涵在2011年加入了支付寶,那一年支付寶已經(jīng)開(kāi)啟了“上半年搞建設(shè)、下半年搞大促”的模式,籌備工作從5、6月起就著手進(jìn)行,他剛一入職,就被調(diào)去開(kāi)發(fā)流量接入和調(diào)撥系統(tǒng)spanner。
這個(gè)系統(tǒng)相當(dāng)于支付寶交易鏈路的第一道門戶,“好比餐廳上菜的推車。一般餐廳,一個(gè)服務(wù)員只能每次上一盤菜,但雙11的挑戰(zhàn),就是要讓一位服務(wù)員同時(shí)能上十盤菜,因此我們需要一個(gè)推車。不過(guò)業(yè)界沒(méi)有現(xiàn)成的推車能滿足支付寶的需求,我們得自己造。”
差不多一整年的時(shí)間中,肖涵和團(tuán)隊(duì)為這個(gè)項(xiàng)目廢寢忘食,spanner終于在2012年的雙11迎來(lái)了第一次大考。
誰(shuí)曾想,意外又發(fā)生了。
那一年支付寶的大促監(jiān)控系統(tǒng)也已經(jīng)上線,流量曲線能夠秒級(jí)實(shí)時(shí)顯示,零點(diǎn)將近時(shí),所有人都緊盯著屏幕,翹首以盼。
——零點(diǎn)一到,流量進(jìn)來(lái)了,曲線開(kāi)始增長(zhǎng),形成很漂亮的弧度,所有人開(kāi)始?xì)g呼,但是忽然,它跌了下去,然后開(kāi)始像心電圖那樣抖動(dòng)。
監(jiān)控系統(tǒng)沒(méi)有問(wèn)題,也沒(méi)有報(bào)錯(cuò),為什么流量會(huì)進(jìn)不來(lái)呢?
一石激起千層浪。他所能看到的抖動(dòng),同樣實(shí)時(shí)顯示在了淘寶的作戰(zhàn)指揮室里。支付寶工程師賀巖正作為支付寶的唯一“代表”,在那里和淘寶的技術(shù)同學(xué)一起備戰(zhàn)。這是個(gè)極其考驗(yàn)心理承受能力的工作,在支付曲線發(fā)生抖動(dòng)的時(shí)刻,“淘寶的技術(shù)同學(xué)們一下子就把我圍在了中間。連問(wèn)‘支付寶出什么事了’?”賀巖回憶道。
肖涵腦子里一片空白,唯一的念頭是,“不能讓交易停下。”
0:00到0:20,短短的20分鐘里,10分鐘用來(lái)定位問(wèn)題,10分鐘用來(lái)解決問(wèn)題;同樣在這短短的20分鐘里,外面已經(jīng)天翻地覆:“‘支付寶不能付款了’登上了微博熱搜,家人、親戚、朋友都給我打電話問(wèn)是什么情況,手機(jī)都要被打爆了。”
關(guān)掉了一個(gè)健康監(jiān)控模塊之后,系統(tǒng)終于恢復(fù)了穩(wěn)定。比起緊張,肖涵感到的更是前所未有的震撼:原來(lái)自己所做的事已經(jīng)和千萬(wàn)人息息相關(guān),每一點(diǎn)微小的疏漏,所影響的都是難以估量的龐大群體。
“沒(méi)有身在其中過(guò),就很難意識(shí)到自己敲下的每一行代碼有著怎樣的分量。”鄭洋飛說(shuō)。他在2013年加入支付寶實(shí)習(xí),帶他的師兄鞏杰說(shuō)了一句令他印象極深的話:你看看那些客服mm,你敲代碼時(shí)仔細(xì)一點(diǎn),少出一個(gè)錯(cuò),她們就不知能少接多少個(gè)報(bào)錯(cuò)電話。
【三】架構(gòu)革命
跨過(guò)了2012年的坎兒,DBA就再三給出警告:擴(kuò)容已經(jīng)到頭了,頂多再撐幾個(gè)月,按這個(gè)增速,如果不想點(diǎn)別的辦法,肯定堅(jiān)持不到明年雙11。
禍不單行。另外的“緊箍咒”也接連落下:Oracle數(shù)據(jù)庫(kù)的連接數(shù)上限成為擴(kuò)容的瓶頸,更要命的是,由于機(jī)房的一再擴(kuò)容,杭州的電力已不足以支撐。有時(shí)候?yàn)榱吮C(jī)房供電,“大夏天的,辦公室都會(huì)停電,不得不運(yùn)冰塊過(guò)來(lái)降溫。”鞏杰苦笑著說(shuō),杭州的盛夏,誰(shuí)過(guò)誰(shuí)知道。
治標(biāo)的方法快要山窮水盡,必須要從治本的角度出發(fā)尋找新的解決方案,比如,從架構(gòu)層面“搞革命”,做單元化。
革命不是請(qǐng)客吃飯,要從架構(gòu)層面做根本性的調(diào)整,舉步維艱:一來(lái)沒(méi)有任何成功經(jīng)驗(yàn)可以借鑒,只能摸索著走;二來(lái)牽涉到眾多部門,大家需求不同,意見(jiàn)難免相左;三來(lái),既然要革命,那目光必須放得更加長(zhǎng)遠(yuǎn),不能只是為了解決今年或明年的問(wèn)題,至少也要做未來(lái)三年的規(guī)劃。
與此同時(shí),在和淘寶商城——現(xiàn)在叫天貓了——溝通之后,支付寶毫不意外地定下了又一個(gè)令人驚呼“不可能”的目標(biāo):支付峰值每秒2萬(wàn)筆。
事關(guān)重大,人人都很謹(jǐn)慎。“光是架構(gòu)調(diào)整的方案就討論了很久。”陳亮說(shuō),作為項(xiàng)目的架構(gòu)師,他費(fèi)了不知多少口舌去說(shuō)服所有人都認(rèn)同這個(gè)方案。
重?fù)?dān)的一頭落在他的肩上,另一頭則交給了2010年抖著手化解危機(jī)的蔣濤,蔣濤更愁穩(wěn)定性問(wèn)題:“做技術(shù)架構(gòu)變更的同時(shí)還得穩(wěn)住業(yè)務(wù),這件事非常復(fù)雜,技術(shù)風(fēng)險(xiǎn)也很高。”
留給他們的時(shí)間也不多了。LDC架構(gòu)的立項(xiàng)已是2012年年底,距離2013年的雙11不足一年,對(duì)于這樣浩大的工程來(lái)說(shuō),就一個(gè)字,緊。
陳亮最初構(gòu)想了一個(gè)宏大的體系,要把所有系統(tǒng)都一口氣單元化,但這個(gè)方案被程立否了:“主要問(wèn)題在淘寶的交易上,先把淘寶做了。”按他的意思,哪怕先做第一期,2013年也必須上線。
一堆不可能的目標(biāo)聚集在了一起。但目標(biāo)既然定了,就只剩向前這唯一的方向。
“立項(xiàng)之后,我們幾乎每個(gè)月都做發(fā)布。”蔣濤說(shuō),這個(gè)頻率是一般項(xiàng)目開(kāi)發(fā)的好幾倍,但即便如此,直到雙11之前半個(gè)月,整套系統(tǒng)才算部署完成,小錯(cuò)仍然不斷,不過(guò),隨著越來(lái)越多的小問(wèn)題和被發(fā)現(xiàn)和修正,他終于感到,“心里總算慢慢有點(diǎn)底氣了”。
2013年,支付寶LDC架構(gòu)首次在雙11亮相,支付寶也第一次派“代表”前往雙11的總指揮室——阿里巴巴西溪園區(qū)的“光明頂”。
這位“幸運(yùn)”的代表就是李俊奎。“我就是去當(dāng)‘炮灰’的。”他笑稱自己一走進(jìn)光明頂就感受到了熱烈的壓力。當(dāng)年的總指揮李津當(dāng)著全集團(tuán)幾百位工程師的面,指著大屏幕點(diǎn)名喊他:“向秀(李俊奎的花名)!你看看支付寶!”
這項(xiàng)壓力山大的任務(wù),李俊奎連做了好幾年,乃至于做出了經(jīng)驗(yàn)。“首先是不要慌,無(wú)論接到什么反饋,先說(shuō)‘知道了,我看看’。因?yàn)槟阋粋€(gè)人在現(xiàn)場(chǎng)其實(shí)什么也做不了,你的職責(zé)其實(shí)是傳達(dá),以最快的速度,把問(wèn)題傳達(dá)給后方的伙伴,然后,相信他們。”
他說(shuō)這是支付寶技術(shù)團(tuán)隊(duì)的重要制勝秘訣之一:你永遠(yuǎn)都不是一個(gè)人在戰(zhàn)斗,你也無(wú)法一個(gè)人戰(zhàn)斗,但你的身后永遠(yuǎn)有最靠譜的伙伴。
至于這一年的戰(zhàn)果如何,按蔣濤的話說(shuō),“硬扛過(guò)去了”。新架構(gòu)有驚無(wú)險(xiǎn),走出了第一步。
【四】關(guān)公、靈隱寺和壓測(cè)
2013年雙11的另一個(gè)特殊之處是,支付寶的備戰(zhàn)室里多出來(lái)一幅關(guān)老爺?shù)膾飚嫛?/p>
掛畫是鄭洋飛“請(qǐng)”來(lái)的,不過(guò)“拜關(guān)公”作為支付寶技術(shù)團(tuán)隊(duì)的一項(xiàng)傳統(tǒng),早在他入職之前就由來(lái)已久。源頭據(jù)說(shuō)要追溯到支付寶建立之初,每到重要的系統(tǒng)更新時(shí),工程師們就會(huì)在旺旺群里轉(zhuǎn)發(fā)關(guān)公表情包,以求更新順利,“別出bug”。
隔了一年之后,關(guān)公像“升級(jí)”了,有同學(xué)去西安校招時(shí)看到了關(guān)公的皮影藝術(shù)品,就“請(qǐng)”了一個(gè)回來(lái)放在備戰(zhàn)室。后來(lái),程立買了一尊木質(zhì)關(guān)公像放過(guò)來(lái),去年,副CTO胡喜又買了一尊關(guān)公銅像?! ?/p>
除了拜關(guān)公,去寺廟燒香也是例行項(xiàng)目,視目的地不同,還分為“靈隱寺派”和“法喜寺派”兩大派別。至于哪邊靈驗(yàn),說(shuō)法不一,但據(jù)觀察,每年雙11過(guò)后,程立、胡喜就會(huì)親自率隊(duì)上山還愿,從支付寶大樓一路步行到上天竺法喜寺,回來(lái)的途中,還會(huì)沿途撿垃圾做公益。
技術(shù)是純粹的科學(xué)。技術(shù)人難道真的相信求神拜佛能避免系統(tǒng)故障和bug嗎?
“心理上,我覺(jué)得還是挺有用的。”陳亮說(shuō),“主要是表達(dá)對(duì)于不可預(yù)知之物的一種敬畏。雖然我們已經(jīng)做了多年技術(shù),但技術(shù)的道路上還是充滿了很多不可預(yù)知的東西。”
不可預(yù)知,構(gòu)成了工程師們每年面對(duì)雙11最大的焦慮感來(lái)源。
他們用各自的辦法緩解雙11迫近的壓力。有人是運(yùn)動(dòng)派,用跑步或打球放空大腦,有人是“強(qiáng)迫癥”派,一遍又一遍地check代碼才能安心,還有人是“吃貨”派,迎戰(zhàn)之前必定要先組團(tuán)去吃海底撈。
全程參加了過(guò)去11年全部雙11的趙尊奎,在被問(wèn)到“哪年最不好搞”時(shí),秒答曰:“哪年都不好搞。”同樣“全勤”的陳亮則表示:“14年之前,我們對(duì)于雙11零點(diǎn)的信心,如果非要說(shuō)一個(gè)數(shù)字的話,60%吧。”
但他很快補(bǔ)充:“不過(guò)2014年之后,這個(gè)數(shù)字就變成95%了。”
陳亮的信心,來(lái)自于當(dāng)年支付寶壓測(cè)體系的建立。這一次不再是手動(dòng)調(diào)配置測(cè)單機(jī)了,而是創(chuàng)建出仿真環(huán)境讓系統(tǒng)去跑,提前找出系統(tǒng)的問(wèn)題并及時(shí)修復(fù),以免在正式戰(zhàn)場(chǎng)被打個(gè)措手不及。
“壓測(cè)讓雙11開(kāi)始從一個(gè)不確定的事逐漸變成確定的事,它極大地改變了我們對(duì)于雙11穩(wěn)定性的保障方式。”有“壓測(cè)小王子”之稱的鄭洋飛說(shuō)。
雖然2014年的壓測(cè)僅覆蓋核心系統(tǒng),但這個(gè)體系已經(jīng)幫了大忙。在雙11之前的一個(gè)月里,它至少讓一百多個(gè)致命的問(wèn)題提前暴露出來(lái)。“如果其中有一個(gè)沒(méi)有修復(fù),我們2014年的雙11肯定就掛了。”陳亮說(shuō)。
【五】1%?或10%?
壓測(cè)這一“壓”,既壓出和很多隱患,也壓出了一個(gè)大問(wèn)題:支付寶所用的Oracle數(shù)據(jù)庫(kù)在壓測(cè)之中“抖”了起來(lái),性能眼見(jiàn)得觸到了天花板。
2014正是移動(dòng)互聯(lián)網(wǎng)大爆發(fā)的年份。指數(shù)增長(zhǎng)的移動(dòng)支付比例勢(shì)必帶來(lái)比往年更洶涌的流量峰值,Oracle肉眼可見(jiàn)地支撐不住了。
再買服務(wù)器?成本吃不消,而且為了應(yīng)對(duì)峰值而增添的機(jī)器,平日里沒(méi)有用武之地,完全是資源的浪費(fèi)。
還有沒(méi)有別的辦法?有的。阿里自研的分布式數(shù)據(jù)庫(kù)OceanBase,從淘寶被劃到支付寶后,已經(jīng)沉寂了兩年,正在焦急地尋找一展身手的舞臺(tái)。
但是一聽(tīng)說(shuō)是自研的數(shù)據(jù)庫(kù),業(yè)務(wù)滿臉都是狐疑。跟交易和金額直接相關(guān)的數(shù)據(jù)庫(kù),只要錯(cuò)一個(gè)數(shù)據(jù),后果就不堪設(shè)想,別說(shuō)雙11這么大的流量,即使平日,要不要用這個(gè)沒(méi)經(jīng)過(guò)驗(yàn)證的產(chǎn)品,也頗要斟酌一番。
先切1%的流量給OceanBase試試吧。這是大家爭(zhēng)論了好一陣后得出的方案。
但是Oracle在壓測(cè)中的表現(xiàn)顯示,缺口不止1%,而是10%。
OceanBase說(shuō),我們來(lái)承接這10%。
10%,聽(tīng)起來(lái)不多,但雙11的10%,相當(dāng)于平日里的最高峰值。如果OceanBase能平安無(wú)事地接住這10%,就意味著它可以擔(dān)起支撐支付寶日常運(yùn)行的重任。
OceanBase必須證明自己有這樣的能力。“我們找了淘寶的同學(xué),協(xié)調(diào)了很多資源做了一個(gè)測(cè)試,主要校驗(yàn)淘寶訂單的金額和支付寶交易金額是否能吻合。”DBA團(tuán)隊(duì)的工程師師文匯說(shuō),當(dāng)時(shí)的方案很謹(jǐn)慎,如果OceanBase出現(xiàn)了問(wèn)題,隨時(shí)都可以切回來(lái)。
測(cè)試結(jié)果,OceanBase沒(méi)有錯(cuò)漏一個(gè)數(shù)據(jù)。程立當(dāng)即拍了板:10%都切給你們。
這個(gè)決定成就了OceanBase在雙11的首秀,“相當(dāng)于Oracle和魯肅(程立的花名)都幫了我們一把。”師文匯笑著說(shuō)。
這時(shí)距離2014年的雙11,時(shí)間已經(jīng)不足兩周??煽啃噪m然經(jīng)受住了考驗(yàn),但OceanBase畢竟是個(gè)誕生才四年的年輕數(shù)據(jù)庫(kù),小問(wèn)題層出不窮,比如響應(yīng)時(shí)間長(zhǎng)達(dá)10毫秒,比Oracle差了好幾個(gè)數(shù)量級(jí)。最后十來(lái)天,師文匯和全團(tuán)隊(duì)的同學(xué)一起,硬是把它優(yōu)化到了1毫秒以下。
“做了這么些年,對(duì)它的容量和性能還是比較有信心的。”師文匯說(shuō)。
他說(shuō)得輕描淡寫,但在這個(gè)曾經(jīng)面臨團(tuán)隊(duì)解散項(xiàng)目取消的產(chǎn)品身上,他和整個(gè)團(tuán)隊(duì)一起傾注了多少心血,除了他們自己之外,誰(shuí)也說(shuō)不清楚。
OceanBase最初并不是為雙11而做的,但在雙11這個(gè)舞臺(tái)上,它第一次獲得了聚光燈下的位置,并且表現(xiàn)卓越,從此,支付寶開(kāi)啟了核心交易系統(tǒng)完全搬遷上OceanBase的進(jìn)程。
到今年,OceanBase對(duì)內(nèi)100%承載螞蟻業(yè)務(wù)的流量。對(duì)外,在被譽(yù)為“數(shù)據(jù)庫(kù)領(lǐng)域世界杯”的TPC-C基準(zhǔn)測(cè)試中,打破了由美國(guó)公司Oracle(甲骨文)保持了9年之久的世界紀(jì)錄,成為首個(gè)登頂該榜單的中國(guó)數(shù)據(jù)庫(kù)產(chǎn)品。
點(diǎn)擊鏈接觀看《使命必達(dá)——OceanBase登頂TPC-C測(cè)試》https://v.qq.com/x/page/l3019boh97i.html
【六】我贏了一只apple watch
2015年,李俊奎去拜訪了上海證券交易所,那里的交易系統(tǒng)部署在6臺(tái)大型計(jì)算機(jī)上,交易峰值能達(dá)到每秒10萬(wàn)筆。
他大為驚嘆:10萬(wàn)筆!何等高不可攀的數(shù)字!什么時(shí)候支付寶也能達(dá)到就好了!
回到杭州,他馬上與同學(xué)們分享了這次見(jiàn)聞,結(jié)果同學(xué)們告訴他說(shuō),今年我們的目標(biāo)就要超過(guò)每秒10萬(wàn)筆了。
李俊奎一想,這種一聽(tīng)就不可能的目標(biāo),是支付寶的作風(fēng),沒(méi)毛病。
與此同時(shí),鄭洋飛則在為這個(gè)目標(biāo)頭痛不已。他剛剛跟他的主管打了一個(gè)賭,賭的是他作為2015年雙11全鏈路壓測(cè)的負(fù)責(zé)人,能不能保障雙11的支付不出任何問(wèn)題。賭注是一只apple watch。
這一年是90后的鄭洋飛第一次挑大梁,從雙11的參與者轉(zhuǎn)換角色成為一個(gè)項(xiàng)目的主導(dǎo)者。但這一年也是他和團(tuán)隊(duì)都“忍辱負(fù)重”的一年,上半年,因?yàn)轭l繁不斷的可用率問(wèn)題,他們做穩(wěn)定性的團(tuán)隊(duì)也在頻繁遭受打擊,士氣不振,不少同學(xué)選擇了離開(kāi),內(nèi)外的質(zhì)疑聲也接連不斷,那幾個(gè)月,空氣里都仿佛寫滿了“難熬”二字。
“當(dāng)時(shí)團(tuán)隊(duì)沒(méi)幾個(gè)人了,但是人人都憋著一口氣,想著一定要把雙11這個(gè)事情搞好。”鄭洋飛說(shuō),“就是不想讓人覺(jué)得支付寶不行。”
局面有如背水一戰(zhàn),如果失敗了,想要“翻盤雪恥”就要再等一年。因?yàn)殡p11每年只有一次,不僅是一年一度的大考,更是一年一度的舞臺(tái)。按照系統(tǒng)部資深技術(shù)專家楊海悌的說(shuō)法,“人人都想把自己一年的努力拿到雙11去驗(yàn)證和展示,不讓上還不高興。”
跟2014年的全鏈路壓測(cè)比起來(lái),2015年主要要做幾個(gè)方面大刀闊斧的改進(jìn):一是要從核心系統(tǒng)擴(kuò)展到全部系統(tǒng),二是要平臺(tái)化,也就是打造一個(gè)全鏈路壓測(cè)的平臺(tái)工具,三是要跟整個(gè)集團(tuán)的壓測(cè)打通聯(lián)動(dòng)。
“老實(shí)說(shuō),非常忐忑。”鄭洋飛心里沒(méi)底。
當(dāng)雙11零點(diǎn)的洪峰撲面而來(lái)時(shí),他已經(jīng)忘掉了apple watch這回事。有一個(gè)壓測(cè)沒(méi)驗(yàn)證到的數(shù)據(jù)庫(kù)定時(shí)任務(wù),讓曲線看上去不那么平滑。“穩(wěn)定壓倒一切”的宗旨之下,系統(tǒng)只要一抖,整個(gè)團(tuán)隊(duì)的心也跟著抖了起來(lái)。迅速排查的結(jié)果是,系統(tǒng)整體沒(méi)出問(wèn)題,但壓測(cè)遺漏的一些細(xì)節(jié),讓結(jié)果不是那么完美。
“曲線不是特別好看。”他不無(wú)遺憾地說(shuō)。
鄭洋飛最終贏得了這只apple watch,但對(duì)于他而言,除了獎(jiǎng)品之外,這只apple watch更有了別樣的意義,時(shí)刻提醒他即使做了再充分的準(zhǔn)備,也沒(méi)有萬(wàn)無(wú)一失。
【七】對(duì)“絲般順滑”的追求永無(wú)止境
其實(shí)每一位支付寶工程師的心中,都有一條的“完美曲線”。
理想之中,它應(yīng)該是這樣的:雙11零點(diǎn),洪峰來(lái)了,曲線漂亮地攀升,沒(méi)有驟升驟降,不要用頻繁的抖動(dòng)去折磨大家脆弱的神經(jīng)。
如果要濃縮成一個(gè)詞,那就是“絲般順滑”。
但是,每一次為此而做的技術(shù)演進(jìn)和架構(gòu)變更進(jìn)行到一定階段,“你都會(huì)發(fā)現(xiàn)一開(kāi)始可能設(shè)想得非常美好,但到了一定的規(guī)模之后,挑戰(zhàn)就接二連三地來(lái)了。”楊海悌感嘆道,“量變產(chǎn)生質(zhì)變,這句話不是虛的。”
雙11的“量”,早已一騎絕塵地進(jìn)入前所未有的領(lǐng)域,2016年雙11僅用了6個(gè)多小時(shí),交易額就已超過(guò)2014年全天。這些年以來(lái),都是自己在不斷刷新自己的紀(jì)錄。
在這樣的量之下保障穩(wěn)定,難度不止提高了一個(gè)數(shù)量級(jí)。
還記得2012年底制定的架構(gòu)革命之“三年計(jì)劃”嗎?它真的持續(xù)了三年,這場(chǎng)最初是為了解決數(shù)據(jù)庫(kù)連接數(shù)和機(jī)房限制而進(jìn)行的架構(gòu)革命,在三年的演進(jìn)過(guò)程中,又衍生出很多其他的架構(gòu),比如異地多活、容災(zāi),彈性的容量調(diào)度等,直到2016年,才算全部落地。這之中每一步的演進(jìn),都是為了讓系統(tǒng)具備動(dòng)態(tài)擴(kuò)容能力,能夠順滑地進(jìn)行彈性的擴(kuò)展和伸縮。
“大”是考驗(yàn),“小”也是考驗(yàn)。
師文匯體會(huì)最深刻的瞬間,不是2014年OceanBase一舉成名的時(shí)刻,而是2016年一次小小的測(cè)試。在這個(gè)測(cè)試?yán)?,他發(fā)現(xiàn)了一個(gè)指標(biāo)有一點(diǎn)異常——非常不起眼,2毫秒的偏差。
“2毫秒而已,如果在別的地方,很可能就會(huì)被判斷為無(wú)關(guān)緊要,然后漏過(guò)了。”但他的團(tuán)隊(duì)中的一位小伙伴,非常認(rèn)真地去檢查了這個(gè)問(wèn)題——萬(wàn)幸如此。后來(lái)事實(shí)證明如果不解決這個(gè)問(wèn)題,那年的雙11就會(huì)有大麻煩。
“即使資源不足、時(shí)間緊張、軟件有各種不完善的地方,但我們的小伙伴不會(huì)放過(guò)任何一個(gè)問(wèn)題。”師文匯感慨。
早些年,流量曾是實(shí)現(xiàn)完美曲線最主要的挑戰(zhàn),但是越到后來(lái),隨著業(yè)務(wù)的不斷拓展,工程師們?cè)絹?lái)越清楚地認(rèn)識(shí)到,穩(wěn)定壓倒一切不假,但技術(shù)更要著眼于未來(lái)。
2017年,是賀巖加入支付寶的第九年。這一年支付寶實(shí)現(xiàn)了離線在線混布,離線任務(wù)的大量閑置資源可以被用于在線任務(wù),從而大大提升了資源的利用率。
“在一些小的場(chǎng)景中,這種效率提升能帶來(lái)的節(jié)約可能不那么突出,但在我們這樣的體量上,它所帶來(lái)的就是不可估量的一整個(gè)未來(lái)。”賀巖說(shuō)。
有了前人積淀這么多年的基礎(chǔ),面向未來(lái)的路,就越走越順利了起來(lái)。
2018年雙11,支付寶其實(shí)保障了兩個(gè)大促,天貓的大促,和支付寶自己的“碼上雙11”等玩法。這一年的故障數(shù)比前一年下降了70-80%,首次實(shí)現(xiàn)大促全天平穩(wěn)。
大隊(duì)長(zhǎng)李錚非常淡定:“說(shuō)白了,就是我們把各種風(fēng)險(xiǎn)通過(guò)系統(tǒng)化或工程化的流程,控制得比較好。峰值出現(xiàn)的過(guò)程,也都在我們的預(yù)期之內(nèi)。”
2019,則是雙11的“云原生”元年。
如果說(shuō)技術(shù)是像疊積木那樣一層一層累積起來(lái)的,那云原生就是最下面的基礎(chǔ),打好了這層基礎(chǔ),上層的應(yīng)用就像是站在了巨人的肩膀上,生來(lái)就具備了一系列強(qiáng)大的能力。業(yè)務(wù)無(wú)需再過(guò)多地?fù)?dān)憂技術(shù)問(wèn)題,只需要專注于業(yè)務(wù)代碼即可。
【八】點(diǎn)亮全世界
故事講到這里,不知大家是否還記得,當(dāng)年因?yàn)槊棵雰扇f(wàn)筆的峰值目標(biāo)而驚呼“不可能”的同學(xué)們。
當(dāng)年,每秒兩萬(wàn)筆是他們舉全體之力奮斗半年才能沖上的高峰,而去年,每秒兩萬(wàn)筆已經(jīng)成為支付寶再日常不過(guò)的狀況,隨隨便便,一秒鐘的事。
這樣的巨變真實(shí)發(fā)生了,只是身處當(dāng)時(shí)當(dāng)?shù)兀l(shuí)也沒(méi)有想那么多。幾乎每一位工程師都表示:“每年搞完雙11,下一年的目標(biāo)就出來(lái)了,然后我們就為著下一年的目標(biāo)去進(jìn)行相應(yīng)的準(zhǔn)備和努力。”
一個(gè)目標(biāo),又一個(gè)目標(biāo),在征服一個(gè)又一個(gè)“不可能”的過(guò)程中,曾經(jīng)以為遙不可及的標(biāo)高,都一一被甩到身后。當(dāng)年高不可攀的每秒10萬(wàn)筆,今天看來(lái)不過(guò)小菜一碟。
只有當(dāng)回頭的時(shí)候才有所感覺(jué),在某一天忽然發(fā)現(xiàn),原來(lái)已經(jīng)走出了那么遠(yuǎn),原來(lái)已經(jīng)攀登到了那么高的地方。
而當(dāng)年那些驚呼不可能卻又拼命將不可能變成現(xiàn)實(shí)的年輕人,已經(jīng)紛紛長(zhǎng)大,他們現(xiàn)在有著更多的從容淡定,上限在哪里沒(méi)人知道,更大的可能是,沒(méi)有上限?! ?/p>
流量數(shù)據(jù)的增長(zhǎng)也早已不是雙11技術(shù)保障的全部。更多復(fù)雜的業(yè)務(wù)和玩法,在技術(shù)的成果之中生長(zhǎng)起來(lái),反過(guò)來(lái)又為技術(shù)的發(fā)展提供動(dòng)力。走出雙11,它們還能走入很多的場(chǎng)景:新年紅包、五福集卡……
——或者走出支付寶和阿里巴巴。
那些由支付寶的工程師們創(chuàng)下的奇跡,正一一變成產(chǎn)品,服務(wù)更多的金融機(jī)構(gòu)。至今已有數(shù)十家銀行和金融機(jī)構(gòu)用上了OceanBase,壓測(cè)平臺(tái)、云原生等技術(shù)也紛紛走向產(chǎn)品化,支付寶通過(guò)歷年雙11沉淀下的技術(shù)和經(jīng)驗(yàn),正在拉動(dòng)整個(gè)中國(guó)的互聯(lián)網(wǎng)金融科技一起飛奔。
——或者走向全世界。
雙11早已不僅是中國(guó)的雙11,而是成為了一場(chǎng)全球的狂歡。與雙11一起,技術(shù)也在走向全世界。
“不過(guò)要是說(shuō)到我們的理想,那就是將來(lái)某一年雙11,整個(gè)備戰(zhàn)室空空蕩蕩,除了關(guān)公像之外,不需要有任何同學(xué)留守,智能化的系統(tǒng)能搞定一切問(wèn)題,而我們只需要捧著茶杯或喝著酒,看著絲般順滑的曲線。”
對(duì)于鞏杰所展望的這種未來(lái),現(xiàn)場(chǎng)就有同學(xué)笑了。“不可能吧!?”每年雙11都如同打仗一般,救兵如救火。
但是誰(shuí)說(shuō)不可能呢?畢竟,他們是那樣一群已經(jīng)把太多的不可能變?yōu)楝F(xiàn)實(shí)的人。
- 為什么年輕人不愛(ài)換手機(jī)了
- 柔宇科技未履行金額近億元被曝已6個(gè)月發(fā)不出工資
- 柔宇科技被曝已6個(gè)月發(fā)不出工資 公司回應(yīng)欠薪有補(bǔ)償方案
- 第六座“綠動(dòng)未來(lái)”環(huán)保公益圖書(shū)館落地貴州山區(qū)小學(xué)
- 窺見(jiàn)“新紀(jì)元”,2021元宇宙產(chǎn)業(yè)發(fā)展高峰論壇“廣州啟幕”
- 以人為本,景悅科技解讀智慧城市發(fā)展新理念
- 紐迪瑞科技/NDT賦能黑鯊4 Pro游戲手機(jī)打造全新一代屏幕壓感
- 清潔家電新老玩家市場(chǎng)定位清晰,攜手共進(jìn),核心技術(shù)決定未來(lái)
- 新思科技與芯耀輝在IP產(chǎn)品領(lǐng)域達(dá)成戰(zhàn)略合作伙伴關(guān)系
- 芯耀輝加速全球化部署,任命原Intel高管出任全球總裁
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。