




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
萬字長文丨1分36秒,100億,支付寶技術(shù)雙11答卷:沒有不可能4支付寶雙十一支付峰值背后的技術(shù)2111年天貓雙11對支付寶技術(shù)有什么意義?342019雙11,支付寶有哪些“秘密武器”?45金融級云原生如何助力雙十一?螞蟻金服的實(shí)踐經(jīng)驗(yàn)是這樣57OceanBase創(chuàng)始人陽振坤:什么是面向未來的數(shù)據(jù)庫?69螞蟻金服資深總監(jiān)韓鴻源:企業(yè)級數(shù)據(jù)庫平臺的持續(xù)與創(chuàng)新81作者:螞蟻金服科技2019年雙11來了。1分36秒100億,5分25秒超過300億,12分49秒超500億……如果沒有雙11,中國的互聯(lián)網(wǎng)技術(shù)要發(fā)展到今天的水平,或許要再多花20年。從雙11誕生至今的11年里,有一個(gè)場景始終在支付寶技術(shù)團(tuán)隊(duì)之中循環(huán)往復(fù)——每一年確定目標(biāo)時(shí),大家都將信將疑,或驚呼或腹誹:“不可能!太夸張了吧!”但每一年的夸張目標(biāo),到最后都能奇跡般地成為現(xiàn)實(shí)。前一年需要拼命躍起才能夠到的果實(shí),后一年就會成為再普通不過的日常。不知不覺之間,雙11已經(jīng)從最初啟航時(shí)的小船,成為了承載數(shù)十億人快樂和夢想的巨艦。在這個(gè)舉世矚目的“奇跡工程”背后,是技術(shù)和技術(shù)人一起,十余年如一日,以難以置信的“中國速度”在不知疲倦地向前奔跑。技術(shù)人的初衷往往極致單純——既然決定要做,那就全力以赴,一往無前,但當(dāng)他們一步一個(gè)腳印風(fēng)雨兼程地走來,驀然回首,就發(fā)現(xiàn)奇跡已經(jīng)在那里了。那時(shí)距離宕機(jī)只有幾十秒2009年11月11日,對于支付寶工程師陳亮而言,本來是與往常沒有任何不同的一天。那年還沒有支付寶大樓,更沒有Z空間,他趟過早高峰的車流,坐到華星時(shí)代廣場的工位上時(shí),一封來自CTO程立的郵件發(fā)到了他的電腦里:今天淘寶商城要搞一個(gè)促銷活動,預(yù)估交易量比較大,大家盯著點(diǎn)系統(tǒng)。陳亮當(dāng)時(shí)所在的團(tuán)隊(duì)主要職責(zé)是保障整個(gè)系統(tǒng)的穩(wěn)定可靠。在促銷活動的場景下,通俗地說來,就是要保障服務(wù)器“堅(jiān)挺”,別被蜂擁而來的用戶擠爆了。淘寶商城在2009年的8月剛剛重組上線,日均交易量對于當(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)不尋常,一片安靜的辦公室里本來只有鍵盤聲,忽然有人高喊一聲:“我秒到了!”緊接著又有人跟著喊:“我也秒到了!”辦公室里嗡地一下,熱鬧了起來。原來有人很好奇淘寶商城究竟在做什么促銷讓交易量漲成這樣,點(diǎn)過去一看,發(fā)現(xiàn)有折扣高達(dá)50%以上的“秒殺”,忍不住出手一試?!耙呀?jīng)想不起當(dāng)時(shí)究竟秒到了什么,只記得大家都特別快樂。”陳亮說。 快樂,是陳亮對于這個(gè)促銷活動最初、也最鮮明的印象。不過除了一整天都忙于擴(kuò)容的同學(xué)之外,當(dāng)時(shí)支付寶的大多數(shù)人都對這場促銷并無感知?!笆潞蟛胖狼耙惶煊写黉N,同事說流量有點(diǎn)猛。”現(xiàn)在已成為螞蟻金服研究員的李俊奎說,運(yùn)維負(fù)責(zé)人很緊張地在第二天的復(fù)盤會議上提出“抗議”:“淘寶商城那邊在搞什么?支付量一下子提升了這么多,萬一我們提前準(zhǔn)備的量不夠,就危險(xiǎn)了?!碧詫毶坛歉懔耸裁矗空驹诮裉旎仡^去看,他們只是搞了一件不算很大的事:在“光棍節(jié)”當(dāng)天,聯(lián)合27個(gè)品牌做了一場促銷活動,單日GMV5000萬。當(dāng)時(shí)沒有任何人能夠預(yù)計(jì)這個(gè)促銷活動日后會成長為什么模樣,不過支付寶從數(shù)據(jù)的增長之中嗅到了山雨欲來的氣息:這個(gè)活動帶來的交易峰值超過平日的5倍,雖然這次平穩(wěn)過關(guān),但已經(jīng)逼近了當(dāng)時(shí)支付寶的承載極限。2010年的年中剛過,支付寶就去跟淘寶商城通氣:去年那個(gè)促銷,今年還搞嗎?淘寶商城說,搞。好漢不打無準(zhǔn)備之仗,如何籌備“雙11”被提上了支付寶每周穩(wěn)定性會議的議程。首當(dāng)其沖的是要準(zhǔn)備充足的容量。但是按多少準(zhǔn)備呢?誰都沒經(jīng)驗(yàn)?!芭哪X袋估個(gè)數(shù)據(jù),然后按預(yù)估數(shù)據(jù)乘以三去買機(jī)器,簡單粗暴?!崩羁】毖圆恢M。為了檢驗(yàn)這樣拍腦袋的決策行不行,他還和團(tuán)隊(duì)一起搞了個(gè)測試:通過手動更改配置,把多臺機(jī)器上的流量導(dǎo)到一臺機(jī)器上,測試一臺機(jī)器的能接住多大的流量?!艾F(xiàn)在想起來,那就是壓測最早的雛形?!彼麄兩踔翜?zhǔn)備了一個(gè)備用的工作聯(lián)絡(luò)群。當(dāng)時(shí)還沒有釘釘,工作群都搭在旺旺上,“萬一旺旺服務(wù)器也出問題了,不能及時(shí)聯(lián)絡(luò)怎么辦?”籌備的時(shí)間雖不長,倒也方方面面都有兼顧,“但是不管事先做了怎樣萬全的準(zhǔn)備,每年總有意外發(fā)生。”金融核心技術(shù)部工程師趙尊奎說。他當(dāng)年所在的團(tuán)隊(duì)是賬務(wù)會計(jì)組,一舉一動都關(guān)系到錢,絲毫不容有錯(cuò)。意外真的來了。11日凌晨,促銷活動剛開始不久,支付寶的賬務(wù)數(shù)據(jù)庫就容量告急。病來如山倒。發(fā)現(xiàn)問題時(shí),狀況已經(jīng)十分危急,“只能再撐幾分鐘!”運(yùn)維心急如焚,如果不能馬上找到解決辦法,支付寶就面臨宕機(jī)風(fēng)險(xiǎn),交易鏈路一斷,誰也買不成。怎么辦?運(yùn)維把心一橫,說,砍了會計(jì)系統(tǒng)吧,給核心的賬務(wù)系統(tǒng)騰空間。時(shí)間已經(jīng)容不得多加斟酌,一群高管站在背后,支付寶中間件團(tuán)隊(duì)的工程師蔣濤感到前所未有地緊張,“操作的時(shí)候手都在抖?!边@個(gè)當(dāng)機(jī)立斷的決策將支付寶從距離宕機(jī)只差幾十秒的懸崖邊挽救了回來。事后的數(shù)據(jù)顯示,2010年的雙11,參與用戶達(dá)到2100萬,總GMV達(dá)到10億,是上一年的20倍,這是任何人都很難在事先預(yù)估到的漲幅?!澳芟氲綍q,但誰也想不到漲勢會這么猛烈?!壁w尊奎說,“也就是從那年起,我們開始隱隱覺得,更猛烈的還在后頭?!贝a的力量85后的肖涵和90后的鄭洋飛,都是在讀大學(xué)時(shí)就知道了雙11。肖涵喜歡網(wǎng)購,09年就成了第一批嘗鮮雙11的剁手族,還在一個(gè)技術(shù)交流群里認(rèn)識了參與過雙11的支付寶工程師;鄭洋飛常買《電腦報(bào)》,那上面說2010年雙11一天的銷售額等于香港一天的零售總額,他一邊驚嘆,一邊心生向往?!坝X得好牛B,想進(jìn)去看看。” 當(dāng)年互不相識的兩個(gè)年輕人,不約而同地產(chǎn)生了這樣的想法。肖涵在2011年加入了支付寶,那一年支付寶已經(jīng)開啟了“上半年搞建設(shè)、下半年搞大促”的模式,籌備工作從5、6月起就著手進(jìn)行,他剛一入職,就被調(diào)去開發(fā)流量接入和調(diào)撥系統(tǒng)spanner。這個(gè)系統(tǒng)相當(dāng)于支付寶交易鏈路的第一道門戶,“好比餐廳上菜的推車。一般餐廳,一個(gè)服務(wù)員只能每次上一盤菜,但雙11的挑戰(zhàn),就是要讓一位服務(wù)員同時(shí)能上十盤菜,因此我們需要一個(gè)推車。不過業(yè)界沒有現(xiàn)成的推車能滿足支付寶的需求,我們得自己造?!辈畈欢嘁徽甑臅r(shí)間中,肖涵和團(tuán)隊(duì)為這個(gè)項(xiàng)目廢寢忘食,spanner終于在2012年的雙11迎來了第一次大考。誰曾想,意外又發(fā)生了。那一年支付寶的大促監(jiān)控系統(tǒng)也已經(jīng)上線,流量曲線能夠秒級實(shí)時(shí)顯示,零點(diǎn)將近時(shí),所有人都緊盯著屏幕,翹首以盼?!泓c(diǎn)一到,流量進(jìn)來了,曲線開始增長,形成很漂亮的弧度,所有人開始?xì)g呼,但是忽然,它跌了下去,然后開始像心電圖那樣抖動。監(jiān)控系統(tǒng)沒有問題,也沒有報(bào)錯(cuò),為什么流量會進(jìn)不來呢?一石激起千層浪。他所能看到的抖動,同樣實(shí)時(shí)顯示在了淘寶的作戰(zhàn)指揮室里。支付寶工程師賀巖正作為支付寶的唯一“代表”,在那里和淘寶的技術(shù)同學(xué)一起備戰(zhàn)。這是個(gè)極其考驗(yàn)心理承受能力的工作,在支付曲線發(fā)生抖動的時(shí)刻,“淘寶的技術(shù)同學(xué)們一下子就把我圍在了中間。連問‘支付寶出什么事了’?”賀巖回憶道。肖涵腦子里一片空白,唯一的念頭是,“不能讓交易停下?!?:00到0:20,短短的20分鐘里,10分鐘用來定位問題,10分鐘用來解決問題;同樣在這短短的20分鐘里,外面已經(jīng)天翻地覆:“‘支付寶不能付款了’登上了微博熱搜,家人、親戚、朋友都給我打電話問是什么情況,手機(jī)都要被打爆了?!标P(guān)掉了一個(gè)健康監(jiān)控模塊之后,系統(tǒng)終于恢復(fù)了穩(wěn)定。比起緊張,肖涵感到的更是前所未有的震撼:原來自己所做的事已經(jīng)和千萬人息息相關(guān),每一點(diǎn)微小的疏漏,所影響的都是難以估量的龐大群體?!皼]有身在其中過,就很難意識到自己敲下的每一行代碼有著怎樣的分量?!编嵮箫w說。他在2013年加入支付寶實(shí)習(xí),帶他的師兄鞏杰說了一句令他印象極深的話:你看看那些客服mm,你敲代碼時(shí)仔細(xì)一點(diǎn),少出一個(gè)錯(cuò),她們就不知能少接多少個(gè)報(bào)錯(cuò)電話。架構(gòu)革命跨過了2012年的坎兒,DBA就再三給出警告:擴(kuò)容已經(jīng)到頭了,頂多再撐幾個(gè)月,按這個(gè)增速,如果不想點(diǎn)別的辦法,肯定堅(jiān)持不到明年雙11。禍不單行。另外的“緊箍咒”也接連落下:Oracle數(shù)據(jù)庫的連接數(shù)上限成為擴(kuò)容的瓶頸,更要命的是,由于機(jī)房的一再擴(kuò)容,杭州的電力已不足以支撐。有時(shí)候?yàn)榱吮C(jī)房供電,“大夏天的,辦公室都會停電,不得不運(yùn)冰塊過來降溫?!膘柦芸嘈χf,杭州的盛夏,誰過誰知道。治標(biāo)的方法快要山窮水盡,必須要從治本的角度出發(fā)尋找新的解決方案,比如,從架構(gòu)層面“搞革命”,做單元化。革命不是請客吃飯,要從架構(gòu)層面做根本性的調(diào)整,舉步維艱:一來沒有任何成功經(jīng)驗(yàn)可以借鑒,只能摸索著走;二來牽涉到眾多部門,大家需求不同,意見難免相左;三來,既然要革命,那目光必須放得更加長遠(yuǎn),不能只是為了解決今年或明年的問題,至少也要做未來三年的規(guī)劃。與此同時(shí),在和淘寶商城——現(xiàn)在叫天貓了——溝通之后,支付寶毫不意外地定下了又一個(gè)令人驚呼“不可能”的目標(biāo):支付峰值每秒2萬筆。 事關(guān)重大,人人都很謹(jǐn)慎?!肮馐羌軜?gòu)調(diào)整的方案就討論了很久?!标惲琳f,作為項(xiàng)目的架構(gòu)師,他費(fèi)了不知多少口舌去說服所有人都認(rèn)同這個(gè)方案。重?fù)?dān)的一頭落在他的肩上,另一頭則交給了2010年抖著手化解危機(jī)的蔣濤,蔣濤更愁穩(wěn)定性問題:“做技術(shù)架構(gòu)變更的同時(shí)還得穩(wěn)住業(yè)務(wù),這件事非常復(fù)雜,技術(shù)風(fēng)險(xiǎn)也很高?!绷艚o他們的時(shí)間也不多了。LDC架構(gòu)的立項(xiàng)已是2012年年底,距離2013年的雙11不足一年,對于這樣浩大的工程來說,就一個(gè)字,緊。陳亮最初構(gòu)想了一個(gè)宏大的體系,要把所有系統(tǒng)都一口氣單元化,但這個(gè)方案被程立否了:“主要問題在淘寶的交易上,先把淘寶做了?!卑此囊馑迹呐孪茸龅谝黄冢?013年也必須上線。一堆不可能的目標(biāo)聚集在了一起。但目標(biāo)既然定了,就只剩向前這唯一的方向?!傲㈨?xiàng)之后,我們幾乎每個(gè)月都做發(fā)布?!笔Y濤說,這個(gè)頻率是一般項(xiàng)目開發(fā)的好幾倍,但即便如此,直到雙11之前半個(gè)月,整套系統(tǒng)才算部署完成,小錯(cuò)仍然不斷,不過,隨著越來越多的小問題和被發(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)。“首先是不要慌,無論接到什么反饋,先說‘知道了,我看看’。因?yàn)槟阋粋€(gè)人在現(xiàn)場其實(shí)什么也做不了,你的職責(zé)其實(shí)是傳達(dá),以最快的速度,把問題傳達(dá)給后方的伙伴,然后,相信他們。”他說這是支付寶技術(shù)團(tuán)隊(duì)的重要制勝秘訣之一:你永遠(yuǎn)都不是一個(gè)人在戰(zhàn)斗,你也無法一個(gè)人戰(zhàn)斗,但你的身后永遠(yuǎn)有最靠譜的伙伴。至于這一年的戰(zhàn)果如何,按蔣濤的話說,“硬扛過去了”。新架構(gòu)有驚無險(xiǎn),走出了第一步。關(guān)公、靈隱寺和壓測2013年雙11的另一個(gè)特殊之處是,支付寶的備戰(zhàn)室里多出來一幅關(guān)老爺?shù)膾飚?。掛畫是鄭洋飛“請”來的,不過“拜關(guān)公”作為支付寶技術(shù)團(tuán)隊(duì)的一項(xiàng)傳統(tǒng),早在他入職之前就由來已久。源頭據(jù)說要追溯到支付寶建立之初,每到重要的系統(tǒng)更新時(shí),工程師們就會在旺旺群里轉(zhuǎn)發(fā)關(guān)公表情包,以求更新順利,“別出bug”。隔了一年之后,關(guān)公像“升級”了,有同學(xué)去西安校招時(shí)看到了關(guān)公的皮影藝術(shù)品,就“請”了一個(gè)回來放在備戰(zhàn)室。后來,程立買了一尊木質(zhì)關(guān)公像放過來,去 年,副CTO胡喜又買了一尊關(guān)公銅像。除了拜關(guān)公,去寺廟燒香也是例行項(xiàng)目,視目的地不同,還分為“靈隱寺派”和“法喜寺派”兩大派別。至于哪邊靈驗(yàn),說法不一,但據(jù)觀察,每年雙11過后,程立、胡喜就會親自率隊(duì)上山還愿,從支付寶大樓一路步行到上天竺法喜寺,回來的途中,還會沿途撿垃圾做公益。技術(shù)是純粹的科學(xué)。技術(shù)人難道真的相信求神拜佛能避免系統(tǒng)故障和bug嗎?“心理上,我覺得還是挺有用的。”陳亮說,“主要是表達(dá)對于不可預(yù)知之物的一種敬畏。雖然我們已經(jīng)做了多年技術(shù),但技術(shù)的道路上還是充滿了很多不可預(yù)知的東西。”不可預(yù)知,構(gòu)成了工程師們每年面對雙11最大的焦慮感來源。他們用各自的辦法緩解雙11迫近的壓力。有人是運(yùn)動派,用跑步或打球放空大腦,有人是“強(qiáng)迫癥”派,一遍又一遍地check代碼才能安心,還有人是“吃貨”派,迎戰(zhàn)之前必定要先組團(tuán)去吃海底撈。全程參加了過去11年全部雙11的趙尊奎,在被問到“哪年最不好搞”時(shí),秒答曰:“哪年都不好搞?!蓖瑯印叭凇钡年惲羷t表示:“14年之前,我們對于雙11零點(diǎn)的信心,如果非要說一個(gè)數(shù)字的話,60%吧。”但他很快補(bǔ)充:“不過2014年之后,這個(gè)數(shù)字就變成95%了?!标惲恋男判?,來自于當(dāng)年支付寶壓測體系的建立。這一次不再是手動調(diào)配置測單機(jī)了,而是創(chuàng)建出仿真環(huán)境讓系統(tǒng)去跑,提前找出系統(tǒng)的問題并及時(shí)修復(fù),以免在正式戰(zhàn)場被打個(gè)措手不及?!皦簻y讓雙11開始從一個(gè)不確定的事逐漸變成確定的事,它極大地改變了我們對于雙11穩(wěn)定性的保障方式?!庇小皦簻y小王子”之稱的鄭洋飛說。雖然2014年的壓測僅覆蓋核心系統(tǒng),但這個(gè)體系已經(jīng)幫了大忙。在雙11之前的一個(gè)月里,它至少讓一百多個(gè)致命的問題提前暴露出來。“如果其中有一個(gè)沒有修復(fù),我們2014年的雙11肯定就掛了?!标惲琳f。壓測這一“壓”,既壓出很多隱患,也壓出了一個(gè)大問題:支付寶所用的Oracle數(shù)據(jù)庫在壓測之中“抖”了起來,性能眼見得觸到了天花板。2014正是移動互聯(lián)網(wǎng)大爆發(fā)的年份。指數(shù)增長的移動支付比例勢必帶來比往年更洶涌的流量峰值,Oracle肉眼可見地支撐不住了。再買服務(wù)器?成本吃不消,而且為了應(yīng)對峰值而增添的機(jī)器,平日里沒有用武之地,完全是資源的浪費(fèi)。還有沒有別的辦法?有的。阿里自研的分布式數(shù)據(jù)庫OceanBase,從淘寶被劃到支付寶后,已經(jīng)沉寂了兩年,正在焦急地尋找一展身手的舞臺。 但是一聽說是自研的數(shù)據(jù)庫,業(yè)務(wù)滿臉都是狐疑。跟交易和金額直接相關(guān)的數(shù)據(jù)庫,只要錯(cuò)一個(gè)數(shù)據(jù),后果就不堪設(shè)想,別說雙11這么大的流量,即使平日,要不要用這個(gè)沒經(jīng)過驗(yàn)證的產(chǎn)品,也頗要斟酌一番。先切1%的流量給OceanBase試試吧。這是大家爭論了好一陣后得出的方案。但是Oracle在壓測中的表現(xiàn)顯示,缺口不止1%,而是10%。OceanBase說,我們來承接這10%。10%,聽起來不多,但雙11的10%,相當(dāng)于平日里的最高峰值。如果OceanBase能平安無事地接住這10%,就意味著它可以擔(dān)起支撐支付寶日常運(yùn)行的重任。OceanBase必須證明自己有這樣的能力?!拔覀冋伊颂詫毜耐瑢W(xué),協(xié)調(diào)了很多資源做了一個(gè)測試,主要校驗(yàn)淘寶訂單的金額和支付寶交易金額是否能吻合?!盌BA團(tuán)隊(duì)的工程師師文匯說,當(dāng)時(shí)的方案很謹(jǐn)慎,如果OceanBase出現(xiàn)了問題,隨時(shí)都可以切回來。測試結(jié)果,OceanBase沒有錯(cuò)漏一個(gè)數(shù)據(jù)。程立當(dāng)即拍了板:10%都切給你們。這個(gè)決定成就了OceanBase在雙11的首秀,“相當(dāng)于Oracle和魯肅(程立的花名)都幫了我們一把?!睅熚膮R笑著說。這時(shí)距離2014年的雙11,時(shí)間已經(jīng)不足兩周。可靠性雖然經(jīng)受住了考驗(yàn),但OceanBase畢竟是個(gè)誕生才四年的年輕數(shù)據(jù)庫,小問題層出不窮,比如響應(yīng)時(shí)間長達(dá)10毫秒,比Oracle差了好幾個(gè)數(shù)量級。最后十來天,師文匯和全團(tuán)隊(duì)的同學(xué)一起,硬是把它優(yōu)化到了1毫秒以下?!白隽诉@么些年,對它的容量和性能還是比較有信心的。”師文匯說。他說得輕描淡寫,但在這個(gè)曾經(jīng)面臨團(tuán)隊(duì)解散項(xiàng)目取消的產(chǎn)品身上,他和整個(gè)團(tuán)隊(duì)一起傾注了多少心血,除了他們自己之外,誰也說不清楚。OceanBase最初并不是為雙11而做的,但在雙11這個(gè)舞臺上,它第一次獲得了聚光燈下的位置,并且表現(xiàn)卓越,從此,支付寶開啟了核心交易系統(tǒng)完全搬遷上OceanBase的進(jìn)程。到今年,OceanBase對內(nèi)100%承載螞蟻業(yè)務(wù)的流量。對外,在被譽(yù)為“數(shù)據(jù)庫領(lǐng)域世界杯”的TPC-C基準(zhǔn)測試中,打破了由美國公司Oracle(甲骨文)保持了9年之久的世界記錄,成為首個(gè)登頂該榜單的中國數(shù)據(jù)庫產(chǎn)品?!疽曨l:使命必達(dá)——OceanBase登頂TPC-C測試】我贏了一只applewatch2015年,李俊奎去拜訪了上海證券交易所,那里的交易系統(tǒng)部署在6臺大型計(jì)算機(jī)上,交易峰值能達(dá)到每秒10萬筆。他大為驚嘆:10萬筆!何等高不可攀的數(shù)字!什么時(shí)候支付寶也能達(dá)到就好了!回到杭州,他馬上與同學(xué)們分享了這次見聞,結(jié)果同學(xué)們告訴他說,今年我們的目標(biāo)就要超過每秒10萬筆了。李俊奎一想,這種一聽就不可能的目標(biāo),是支付寶的作風(fēng),沒毛病。與此同時(shí),鄭洋飛則在為這個(gè)目標(biāo)頭痛不已。他剛剛跟他的主管打了一個(gè)賭,賭的是他作為2015年雙11全鏈路壓測的負(fù)責(zé)人,能不能保障雙11的支付不出任何問題。賭注是一只applewatch。這一年是90后的鄭洋飛第一次挑大梁,從雙11的參與者轉(zhuǎn)換角色成為一個(gè)項(xiàng)目的主導(dǎo)者。但這一年也是他和團(tuán)隊(duì)都“忍辱負(fù)重”的一年,上半年,因?yàn)轭l繁不斷的可用率問題,他們做穩(wěn)定性的團(tuán)隊(duì)也在頻繁遭受打擊,士氣不振,不少同學(xué)選擇了離開,內(nèi)外的質(zhì)疑聲也接連不斷,那幾個(gè)月,空氣里都仿佛寫滿了“難熬”二字。 “當(dāng)時(shí)團(tuán)隊(duì)沒幾個(gè)人了,但是人人都憋著一口氣,想著一定要把雙11這個(gè)事情搞好?!编嵮箫w說,“就是不想讓人覺得支付寶不行?!本置嬗腥绫乘粦?zhàn),如果失敗了,想要“翻盤雪恥”就要再等一年。因?yàn)殡p11每年只有一次,不僅是一年一度的大考,更是一年一度的舞臺。按照系統(tǒng)部資深技術(shù)專家楊海悌的說法,“人人都想把自己一年的努力拿到雙11去驗(yàn)證和展示,不讓上還不高興?!备?014年的全鏈路壓測比起來,2015年主要要做幾個(gè)方面大刀闊斧的改進(jìn):一是要從核心系統(tǒng)擴(kuò)展到全部系統(tǒng),二是要平臺化,也就是打造一個(gè)全鏈路壓測的平臺工具,三是要跟整個(gè)集團(tuán)的壓測打通聯(lián)動。“老實(shí)說,非常忐忑。”鄭洋飛心里沒底。當(dāng)雙11零點(diǎn)的洪峰撲面而來時(shí),他已經(jīng)忘掉了applewatch這回事。有一個(gè)壓測沒驗(yàn)證到的數(shù)據(jù)庫定時(shí)任務(wù),讓曲線看上去不那么平滑?!胺€(wěn)定壓倒一切”的宗旨之下,系統(tǒng)只要一抖,整個(gè)團(tuán)隊(duì)的心也跟著抖了起來。迅速排查的結(jié)果是,系統(tǒng)整體沒出問題,但壓測遺漏的一些細(xì)節(jié),讓結(jié)果不是那么完美?!扒€不是特別好看?!彼粺o遺憾地說。鄭洋飛最終贏得了這只applewatch,但對于他而言,除了獎品之外,這只applewatch更有了別樣的意義,時(shí)刻提醒他即使做了再充分的準(zhǔn)備,也沒有萬無一失。對“絲般順滑”的追求永無止境其實(shí)每一位支付寶工程師的心中,都有一條的“完美曲線”。理想之中,它應(yīng)該是這樣的:雙11零點(diǎn),洪峰來了,曲線漂亮地攀升,沒有驟升驟降,不要用頻繁的抖動去折磨大家脆弱的神經(jīng)。如果要濃縮成一個(gè)詞,那就是“絲般順滑”。但是,每一次為此而做的技術(shù)演進(jìn)和架構(gòu)變更進(jìn)行到一定階段,“你都會發(fā)現(xiàn)一開始可能設(shè)想得非常美好,但到了一定的規(guī)模之后,挑戰(zhàn)就接二連三地來了?!睏詈c└袊@道,“量變產(chǎn)生質(zhì)變,這句話不是虛的。”雙11的“量”,早已一騎絕塵地進(jìn)入前所未有的領(lǐng)域,2016年雙11僅用了6個(gè)多小時(shí),交易額就已超過2014年全天。這些年以來,都是自己在不斷刷新自己的紀(jì)錄。在這樣的量之下保障穩(wěn)定,難度不止提高了一個(gè)數(shù)量級。還記得2012年底制定的架構(gòu)革命之“三年計(jì)劃”嗎?它真的持續(xù)了三年,這場最初是為了解決數(shù)據(jù)庫連接數(shù)和機(jī)房限制而進(jìn)行的架構(gòu)革命,在三年的演進(jìn)過程中,又衍生出很多其他的架構(gòu),比如異地多活、容災(zāi),彈性的容量調(diào)度等,直到2016年,才算全部落地。這之中每一步的演進(jìn),都是為了讓系統(tǒng)具備動態(tài)擴(kuò)容能力,能夠順滑地進(jìn)行彈性的擴(kuò)展和伸縮。師文匯體會最深刻的瞬間,不是2014年OceanBase一舉成名的時(shí)刻,而是2016年一次小小的測試。在這個(gè)測試?yán)?,他發(fā)現(xiàn)了一個(gè)指標(biāo)有一點(diǎn)異?!浅2黄鹧?,2毫秒的偏差?!?毫秒而已,如果在別的地方,很可能就會被判斷為無關(guān)緊要,然后漏過了?!钡膱F(tuán)隊(duì)中的一位小伙伴,非常認(rèn)真地去檢查了這個(gè)問題——萬幸如此。后來事實(shí)證明如果不解決這個(gè)問題,那年的雙11就會有大麻煩。“即使資源不足、時(shí)間緊張、軟件有各種不完善的地方,但我們的小伙伴不會放過任何一個(gè)問題。”師文匯感慨。早些年,流量曾是實(shí)現(xiàn)完美曲線最主要的挑戰(zhàn),但是越到后來,隨著業(yè)務(wù)的不斷拓展,工程師們越來越清楚地認(rèn)識到,穩(wěn)定壓倒一切不假,但技術(shù)更要著眼于未來。 2017年,是賀巖加入支付寶的第九年。這一年支付寶實(shí)現(xiàn)了離線在線混布,離線任務(wù)的大量閑置資源可以被用于在線任務(wù),從而大大提升了資源的利用率?!霸谝恍┬〉膱鼍爸?,這種效率提升能帶來的節(jié)約可能不那么突出,但在我們這樣的體量上,它所帶來的就是不可估量的一整個(gè)未來。”賀巖說。有了前人積淀這么多年的基礎(chǔ),面向未來的路,就越走越順利了起來。2018年雙11,支付寶其實(shí)保障了兩個(gè)大促,天貓的大促,和支付寶自己的“碼上雙11”等玩法。這一年的故障數(shù)比前一年下降了70-80%,首次實(shí)現(xiàn)大促全天平穩(wěn)。大隊(duì)長李錚非常淡定:“說白了,就是我們把各種風(fēng)險(xiǎn)通過系統(tǒng)化或工程化的流程,控制得比較好。峰值出現(xiàn)的過程,也都在我們的預(yù)期之內(nèi)?!?019,則是雙11的“云原生”元年。如果說技術(shù)是像疊積木那樣一層一層累積起來的,那云原生就是最下面的基礎(chǔ),打好了這層基礎(chǔ),上層的應(yīng)用就像是站在了巨人的肩膀上,生來就具備了一系列強(qiáng)大的能力。業(yè)務(wù)無需再過多地?fù)?dān)憂技術(shù)問題,只需要專注于業(yè)務(wù)代碼即可。點(diǎn)亮全世界故事講到這里,不知大家是否還記得,當(dāng)年因?yàn)槊棵雰扇f筆的峰值目標(biāo)而驚呼“不可能”的同學(xué)們。當(dāng)年,每秒兩萬筆是他們舉全體之力奮斗半年才能沖上的高峰,而去年,每秒兩萬筆已經(jīng)成為支付寶再日常不過的狀況,隨隨便便,一秒鐘的事。這樣的巨變真實(shí)發(fā)生了,只是身處當(dāng)時(shí)當(dāng)?shù)?,誰也沒有想那么多。幾乎每一位工程師都表示:“每年搞完雙11,下一年的目標(biāo)就出來了,然后我們就為著下一年的目標(biāo)去進(jìn)行相應(yīng)的準(zhǔn)備和努力?!币粋€(gè)目標(biāo),又一個(gè)目標(biāo),在征服一個(gè)又一個(gè)“不可能”的過程中,曾經(jīng)以為遙不可及的標(biāo)高,都一一被甩到身后。當(dāng)年高不可攀的每秒10萬筆,今天看來不過小菜一碟。只有當(dāng)回頭的時(shí)候才有所感覺,在某一天忽然發(fā)現(xiàn),原來已經(jīng)走出了那么遠(yuǎn),原來已經(jīng)攀登到了那么高的地方。而當(dāng)年那些驚呼不可能卻又拼命將不可能變成現(xiàn)實(shí)的年輕人,已經(jīng)紛紛長大,他們現(xiàn)在有著更多的從容淡定,上限在哪里沒人知道,更大的可能是,沒有上限。流量數(shù)據(jù)的增長也早已不是雙11技術(shù)保障的全部。更多復(fù)雜的業(yè)務(wù)和玩法,在技術(shù)的成果之中生長起來,反過來又為技術(shù)的發(fā)展提供動力。走出雙11,它們還能走入很多的場景:新年紅包、五福集卡……——或者走出支付寶和阿里巴巴。那些由支付寶的工程師們創(chuàng)下的奇跡,正一一變成產(chǎn)品,服務(wù)更多的金融機(jī)構(gòu)。 至今已有數(shù)十家銀行和金融機(jī)構(gòu)用上了OceanBase,壓測平臺、云原生等技術(shù)也紛紛走向產(chǎn)品化,支付寶通過歷年雙11沉淀下的技術(shù)和經(jīng)驗(yàn),正在拉動整個(gè)中國的互聯(lián)網(wǎng)金融科技一起飛奔?!蛘咦呦蛉澜纭kp11早已不僅是中國的雙11,而是成為了一場全球的狂歡。與雙11一起,技術(shù)也在走向全世界?!安贿^要是說到我們的理想,那就是將來某一年雙11,整個(gè)備戰(zhàn)室空空蕩蕩,除了關(guān)公像之外,不需要有任何同學(xué)留守,智能化的系統(tǒng)能搞定一切問題,而我們只需要捧著茶杯或喝著酒,看著絲般順滑的曲線。”對于鞏杰所展望的這種未來,現(xiàn)場就有同學(xué)笑了?!安豢赡馨伞泵磕觌p11都如同打仗一般,救兵如救火。但是誰說不可能呢?畢竟,他們是那樣一群已經(jīng)把太多的不可能變?yōu)楝F(xiàn)實(shí)的人。支付寶雙十一支付峰值背后的技術(shù)作者:螞蟻金服科技和過去10年一樣,2019年天貓雙11又創(chuàng)造了一個(gè)全新的紀(jì)錄。這個(gè)數(shù)字背后,是數(shù)代支付寶工程師們殫精竭慮、不斷突破技術(shù)難關(guān)。今年雙11之前,小編邀請到11位經(jīng)歷雙11的技術(shù)同學(xué)口述實(shí)錄,特別籌備了紀(jì)錄片《一心一役》,講述這一路走來的那些隱秘往事。對于技術(shù)人員來說,維持雙11全天24小時(shí)穩(wěn)定流暢固然不易,但最為考驗(yàn)的時(shí)刻當(dāng)屬零點(diǎn)剛過,人們操起手機(jī),刷新早已存好的購物車,點(diǎn)擊支付的那一刻!11年,零點(diǎn)越來越平滑的雙11購物背后,支付寶有過哪些不為人知的技術(shù)探索,今天也特別放送。 從外部瓶頸說起事情從一開始就顯得不是很順利。2011年的雙十一,在高峰時(shí)期少數(shù)用戶無法付款,經(jīng)過調(diào)查發(fā)現(xiàn),這是因?yàn)樯贁?shù)銀行的網(wǎng)銀系統(tǒng)在壓力下出現(xiàn)故障。早年的支付寶交易,用戶點(diǎn)擊支付后需要從支付寶和銀行的接口去付款,而早年這個(gè)接口的性能很差,每秒只能支持幾十到上百筆交易,穩(wěn)定性也比較差,一旦流量上來,容易發(fā)生故障。如果不解決這個(gè)問題,今后的每次大促都會出現(xiàn)無法付款的情況,極大影響用戶體驗(yàn)。但是,這個(gè)問題單靠技術(shù)是很難解決的,銀行對網(wǎng)銀系統(tǒng)的演進(jìn)有自己的規(guī)劃,支付寶無法去干涉它們的系統(tǒng)。不過,聰明的運(yùn)營人員想出了一個(gè)變通的辦法。在2012年的雙十一,支付寶通過活動吸引用戶先充值后付款,讓用戶先將錢充值到支付寶余額上,到雙十一直接從余額里面扣款就行,這樣,外部的瓶頸就被轉(zhuǎn)換到內(nèi)部了。這樣做效果非常顯著,付款失敗的問題大為緩解。然而,外部的瓶頸始終存在,面對每年翻倍提升的流量峰值,支付對外部的依賴始終是一個(gè)隱患,不知道什么時(shí)候就會爆發(fā)。解決這個(gè)問題最好的辦法,就是不通過網(wǎng)銀,讓資金在內(nèi)部的系統(tǒng)中流轉(zhuǎn),先充值后付款就是這個(gè)原理。那么,有沒有一個(gè)方法,吸引用戶把錢放到支付寶里呢?2013年6月,支付寶推出余額寶,歪打正著的解決了這個(gè)問題,到2014年底余額寶就吸引了1.85億用戶,在13年和14年的雙十一,交易峰值也分別實(shí)現(xiàn)了4倍和3倍的增長。2018年5月,支付寶接入網(wǎng)聯(lián)清算平臺,同時(shí)在這些年里,銀行也在大力提升自己的系統(tǒng)能力,中大型銀行的網(wǎng)銀系統(tǒng)支持的交易筆數(shù)已經(jīng)達(dá)到2萬筆/秒以上,外部問題基本得以解決。解決了外部瓶頸之后,支付峰值的數(shù)字能有多高,就看支付寶的系統(tǒng)如何化解一年比一年更兇猛的流量洪峰。容量規(guī)劃:三軍未動糧草先行事實(shí)上,支持交易筆數(shù)峰值面臨的首要問題,并不是設(shè)計(jì)一個(gè)完美支持橫向擴(kuò)展的架構(gòu),而是對可能的流量峰值進(jìn)行準(zhǔn)確估計(jì),然后安排對應(yīng)的機(jī)器和資源。如果不做估計(jì),可能發(fā)生兩種情況:預(yù)備資源過多,架構(gòu)過度設(shè)計(jì),造成資源浪費(fèi);預(yù)備資源過少,無法完美支持大促,造成部分支付排隊(duì)或失敗。每年雙十一備戰(zhàn),負(fù)責(zé)大促的決策團(tuán)隊(duì)會根據(jù)歷史數(shù)據(jù)、大促目標(biāo)來擬定一個(gè)交易數(shù)值,然后將這個(gè)數(shù)值拆解為各個(gè)系統(tǒng)所需要應(yīng)對的流量,從而進(jìn)行系統(tǒng)容量規(guī)劃。雙11大促的場景指標(biāo)一般包括交易創(chuàng)建數(shù)、收銀臺展現(xiàn)數(shù)、交易支付數(shù)。總的支付目標(biāo)數(shù)已經(jīng)有了,運(yùn)維人員根據(jù)總tps/單機(jī)tps的算法計(jì)算出應(yīng)用在每個(gè)指標(biāo)下的單機(jī)能力,然后,參考?xì)v史活動數(shù)據(jù),可以計(jì)算應(yīng)用在不同場景鏈路下的單機(jī)tps。但是,這種做法人工干預(yù)較多,對于各個(gè)應(yīng)用的容量預(yù)估的粒度比較粗,后來,支付寶又建設(shè)了容量分析平臺,可以進(jìn)行自動化的細(xì)粒度的容量分析。它的原理是,如果我們把一個(gè)鏈路理解為一個(gè)業(yè)務(wù),鏈路根節(jié)點(diǎn)可以理解為業(yè)務(wù)的源頭流量請求,每個(gè)鏈路上的節(jié)點(diǎn)(這里的節(jié)點(diǎn)包括應(yīng)用、DB、tair等)都能計(jì)算出該節(jié)點(diǎn)調(diào)用次數(shù)相對于根節(jié)點(diǎn)流量的系數(shù)。因此,當(dāng)業(yè)務(wù)源頭的QPS確定時(shí),就可以基于鏈路數(shù)據(jù),計(jì)算出每個(gè)節(jié)點(diǎn)的QPS。2018年的雙十一,支付寶還建設(shè)了智能容量模型,不但可以根據(jù)業(yè)務(wù)流量進(jìn)行容量預(yù)估,還可以智能的產(chǎn)出應(yīng)用資源部署方案,使得在該方案下,部署單元在承載給定業(yè)務(wù)流量時(shí)的容量水平處于目標(biāo)范圍。 智能容量模型是支付寶對AIOps探索的一部分,也是對數(shù)據(jù)技術(shù)和人工智能在系統(tǒng)中落地實(shí)踐的一部分,這方面也是當(dāng)前支付寶技術(shù)探索的方向之一。LDC與彈性架構(gòu):大促最強(qiáng)武器對流量進(jìn)行預(yù)估并進(jìn)行合理的容量規(guī)劃之后,接下來就看我們的架構(gòu)是否能支持流量峰值了。首先需要說明的是,流量高峰涉及到一個(gè)系統(tǒng)的方方面面,支付寶的整個(gè)系統(tǒng)極其復(fù)雜,而且面向toC和toB都推出了很多業(yè)務(wù),即使只關(guān)注核心支付系統(tǒng),也包括支付清算、賬務(wù)、核算等子系統(tǒng)。系統(tǒng)部分組件由通用型的中間件提供支撐,如負(fù)載均衡中間件LVS/Spanner、阿里巴巴的分布式緩存中間件Tair等,其它則由支付寶自研的SOFAStack金融級分布式中間件負(fù)責(zé)。支付峰值的本質(zhì)是一個(gè)高并發(fā)問題,互聯(lián)網(wǎng)公司解決高并發(fā)的思路是橫向擴(kuò)展水平拆分,用分布式的方式來應(yīng)對流量洪峰,支付寶也不例外。支付寶很早完成了服務(wù)化架構(gòu)和核心數(shù)據(jù)庫的水平拆分,成功應(yīng)對了前幾年的雙十一。這個(gè)架構(gòu)的問題是,所有子應(yīng)用都需要訪問所有數(shù)據(jù)庫分庫,但是數(shù)據(jù)庫連接是有限的。當(dāng)時(shí)主流的商業(yè)數(shù)據(jù)庫,連接都不是共享的,就是說一個(gè)事務(wù)必須獨(dú)占一個(gè)連接。而連接卻又是數(shù)據(jù)庫非常寶貴的資源,不能無限增加。當(dāng)時(shí)的支付寶,面臨的問題是不能再對應(yīng)用集群擴(kuò)容,因?yàn)槊考右慌_機(jī)器,就需要在每個(gè)數(shù)據(jù)分庫上新增若干連接,而此時(shí)幾個(gè)核心數(shù)據(jù)庫的連接數(shù)已經(jīng)到達(dá)上限。應(yīng)用不能擴(kuò)容,意味著支付寶系統(tǒng)的容量定格了,不能再有任何業(yè)務(wù)量增長,別說大促,很可能再過一段時(shí)間連日常業(yè)務(wù)也支撐不了了。這個(gè)問題迫在眉睫,從2013年開始,支付寶開始新一輪的架構(gòu)改造,實(shí)施單元化的LDC邏輯數(shù)據(jù)中心,雙十一的流量峰值,終于還是成功的扛下來了。一個(gè)單元,是一個(gè)五臟俱全的縮小版整站,它是全能的,因?yàn)椴渴鹆怂袘?yīng)用;但它不是全量的,因?yàn)橹荒懿僮饕徊糠謹(jǐn)?shù)據(jù)。這樣,只要將數(shù)據(jù)分區(qū)增加單元,就可以提升整個(gè)系統(tǒng)的處理性能上限。 但是,并不是所有的數(shù)據(jù)都能拆分,比如部分底層數(shù)據(jù)是全局?jǐn)?shù)據(jù),所有單元的應(yīng)用都需要訪問。并且,支付寶經(jīng)過近十年建設(shè),有些架構(gòu)也并不能很好的拆分成單元。在這個(gè)前提下,支付寶設(shè)計(jì)了CRG的單元化架構(gòu),既能利用單元化的優(yōu)點(diǎn),也能支持現(xiàn)有的架構(gòu)。RZone(RegionZone最符合理論上單元定義的zone,每個(gè)RZone都是自包含的,擁有自己的數(shù)據(jù),能完成所有業(yè)務(wù)。GZone(GlobalZone部署了不可拆分的數(shù)據(jù)和服務(wù),這些數(shù)據(jù)或服務(wù)可能會被RZone依賴。GZone在全局只有一組,數(shù)據(jù)僅有一份。CZone(CityZone同樣部署了不可拆分的數(shù)據(jù)和服務(wù),也會被RZone依賴。跟GZone不同的是,CZone中的數(shù)據(jù)或服務(wù)會被RZone頻繁訪問,每一筆業(yè)務(wù)至少會訪問一次;而GZone被RZone訪問的頻率則低的多。CZone是為了解決異地延遲問題而特別設(shè)計(jì)的。CRG架構(gòu)示意圖關(guān)于支付寶單元化和LDC的更多信息可查看這篇文章。實(shí)施了LDC之后,系統(tǒng)容量實(shí)現(xiàn)水平擴(kuò)展,順利支持了2013年及之后的雙十一流量洪峰,并且系統(tǒng)不再受到單點(diǎn)故障限制,經(jīng)過完善之后還做到異地多活,最終形成了三地五中心的金融級架構(gòu)。理論上,只要無限擴(kuò)展LDC的計(jì)算資源,就可以應(yīng)對無限大的流量,但是,這樣做的話,大部分機(jī)器只有在大促時(shí)才能派上用場,平時(shí)就是閑置的,造成資源浪費(fèi)。最好能做到平時(shí)用少量資源支持常規(guī)流量,大促時(shí)經(jīng)過容量規(guī)劃,提前啟用部分空閑或第三方資源應(yīng)對高峰流量,這就是彈性架構(gòu)的由來。2016年,支付寶開始為大促進(jìn)行彈性架構(gòu)的改造。彈性架構(gòu)基于業(yè)務(wù)鏈路,因?yàn)榇蟠贂r(shí)只有部分鏈路的流量激增,因此只需要針對大促關(guān)鍵鏈路進(jìn)行彈性擴(kuò)容即可。彈性架構(gòu)涉及到多個(gè)層面的改造,首先是彈性機(jī)房和彈性單元,需要在LDC邏輯機(jī)房架構(gòu)上按照業(yè)務(wù)緯度繼續(xù)切片,保證單片業(yè)務(wù)可以獨(dú)立邏輯單元部署,并保持與非彈性單元的聯(lián)通性,并且可隨時(shí)彈出和回收。 其次是彈性存儲,包括流水型數(shù)據(jù)和狀態(tài)型數(shù)據(jù)的彈性。流水型數(shù)據(jù)包括支付訂單,為了支持這些數(shù)據(jù)的彈性,創(chuàng)建了彈性位+彈性UID,然后路由根據(jù)彈性UID將訂單分配至彈性單元中進(jìn)行處理。狀態(tài)型存儲比如用戶的賬戶余額,進(jìn)行整體彈出,具體實(shí)現(xiàn)方式是通過DB層的主備切換,將主庫壓力分流至備庫。然后是中間件層面的改造,包括路由、RPC、消息隊(duì)列、流量管理等等。應(yīng)用層面也需要進(jìn)行相應(yīng)的改造,因?yàn)槊總€(gè)彈性單元需要做到獨(dú)立邏輯單元部署,因此需要從服務(wù)到數(shù)據(jù)進(jìn)行梳理并剝離,同時(shí)添加彈性id等彈性邏輯處理。除了這些之外,還需要對運(yùn)維平臺、壓測工具進(jìn)行相應(yīng)的改造。2016年彈性架構(gòu)上線后,成功支撐了當(dāng)年雙十一,滿足大促要求和預(yù)定目標(biāo),節(jié)省了機(jī)房物理資源,成為應(yīng)對大促類流量洪峰最有力的武器。彈性架構(gòu)里的彈性單元都是新增的集群,但其實(shí)還可以進(jìn)一步的提高資源利用率。方法就是離在線混部技術(shù),因?yàn)橛行┘菏怯米麟x線的大數(shù)據(jù)分析,但并不是全天24小時(shí)都滿負(fù)荷工作,當(dāng)沒有任務(wù)時(shí),集群資源利用率極低。如果將離線的應(yīng)用和在線的業(yè)務(wù)應(yīng)用部署在一起,讓大促高峰時(shí)段能夠利用這些資源,就可以減少大促期間采購的資源,進(jìn)一步節(jié)省成本?;觳考夹g(shù)需要運(yùn)維的分時(shí)調(diào)度配合,在不同的時(shí)段將資源分配給不同的應(yīng)用。從2017年起,支付寶開始嘗試離在線混部和分時(shí)調(diào)度技術(shù),在大促時(shí)利用離線技術(shù)所使用的集群資源,大大提升了集群資源利用率。百萬支付:解決數(shù)據(jù)庫擴(kuò)展瓶頸2016年的雙十一,交易筆數(shù)峰值達(dá)到12萬筆每秒,這場高并發(fā)之戰(zhàn)仍在繼續(xù)。前面提到了很多應(yīng)對大促的技術(shù)手段,但其實(shí)漏掉了一個(gè)最重要的部分,那就是數(shù)據(jù)庫。在流量洪峰時(shí),受到壓力最大的就是數(shù)據(jù)庫。這是因?yàn)?,在前臺我們看到是一個(gè)成功交易,但拆解之后,一個(gè)交易可能平均要產(chǎn)生數(shù)百甚至上千個(gè)請求,數(shù)據(jù)庫的壓力要遠(yuǎn)遠(yuǎn)大于我們所能看到的數(shù)字。從最開始,數(shù)據(jù)庫就一直是支付寶系統(tǒng)的瓶頸之一,在之前,其實(shí)已經(jīng)配合架構(gòu)改造對數(shù)據(jù)庫做了諸多升級,除了上面提過的彈性化的改造,還包括:1.分庫分表,將原有的交易賬戶庫分離為交易庫和賬戶庫,并通過分布式事務(wù)解決數(shù)據(jù)一致性問題。2.數(shù)據(jù)庫水平拆分,將所有的用戶按照1%粒度分為100份,配合單元化的邏輯隔離。3.數(shù)據(jù)庫讀寫分離、多點(diǎn)寫入、數(shù)據(jù)復(fù)制,通過這些方式,可以大大提升性能。早年支付寶采用的商業(yè)數(shù)據(jù)庫能進(jìn)行的改進(jìn)是有極限的,為了成本考慮,不可能為了一年僅僅幾天的大促活動去采購額外的數(shù)據(jù)庫系統(tǒng)和設(shè)備。早在2014年的雙十一,支付寶自研數(shù)據(jù)庫OceanBase就開始承擔(dān)10%雙十一核心交易流量,隨后一步步承擔(dān)交易、支付、賬務(wù)等核心系統(tǒng)的100%流量,經(jīng)受住了極端條件下的嚴(yán)苛考驗(yàn)。OceanBase從第一天開始,就計(jì)劃成為一個(gè)分布式的關(guān)系數(shù)據(jù)庫,也就是天然支持大規(guī)模和高并發(fā)的場景。但是,支付寶本身的用戶體量太大,再加上雙十一所面臨的的系統(tǒng)壓力太大,到2017年雙十一的時(shí)候,即使采用了額外的彈性庫,數(shù)據(jù)庫CPU壓力也接近上限,成為繼續(xù)擴(kuò)容的瓶頸所在。 2018年的雙十一,支付寶在內(nèi)部提出了百萬支付架構(gòu),意思是這套架構(gòu)可以支持百萬筆/秒量級的系統(tǒng)壓力。而這套架構(gòu)的核心,就是OceanBase2.0分布式分區(qū)方案。過去架構(gòu)下的DB擴(kuò)展,由于DB單機(jī)存在極限,且一個(gè)UID最多對應(yīng)一臺機(jī)器,所以這里的擴(kuò)展能力是通過DB新增集群,應(yīng)用加數(shù)據(jù)源來實(shí)現(xiàn)的。這就會帶來一系列的問題,比如應(yīng)用的內(nèi)存增長、多數(shù)據(jù)源導(dǎo)致彈出彈回費(fèi)時(shí)費(fèi)力、多個(gè)DB集群的日常維護(hù)成本高等。為解決這個(gè)問題,考慮讓DB也能像應(yīng)用一樣可以動態(tài)擴(kuò)容,且必須突破一個(gè)UID最多一臺機(jī)器的限制,從而能達(dá)到應(yīng)用和DB同步擴(kuò)容,不用增加新DB集群就能達(dá)到新的容量支撐能力。由此,基于DB的分區(qū)功能,將DB的擴(kuò)展性大大增強(qiáng),避免了必須增加集群來擴(kuò)容的尷尬。同時(shí)對應(yīng)用進(jìn)行了相關(guān)的升級改造,如全站流水號架構(gòu)的升級,系列中間件的改造,以及任務(wù)撈取場景的改造等。OceanBase分區(qū)架構(gòu)傳統(tǒng)數(shù)據(jù)庫彈性架構(gòu),將數(shù)據(jù)進(jìn)行物理拆分到不同機(jī)器,業(yè)務(wù)在數(shù)據(jù)訪問/研發(fā)/后期維護(hù)及數(shù)據(jù)配套設(shè)施上非常繁瑣;同時(shí)拆分后資源很難快速回收,且數(shù)據(jù)拆分及聚合無法實(shí)現(xiàn)業(yè)務(wù)無損。相比于傳統(tǒng)數(shù)據(jù)庫的彈性架構(gòu),OceanBase2.0架構(gòu)完全不侵入業(yè)務(wù),內(nèi)部通過分區(qū)實(shí)現(xiàn)數(shù)據(jù)分片的自組織及負(fù)載均衡,通過生成列及分區(qū)規(guī)則實(shí)現(xiàn)自動路由,通過分區(qū)聚合(partition_group)消除分布式事務(wù)性能開銷以提升性能,從而實(shí)現(xiàn)無損線性伸縮。另數(shù)據(jù)分片間share_nothing的架構(gòu),實(shí)現(xiàn)分片故障隔離及單點(diǎn)故障消除的高可用架構(gòu)。2018年雙十一,OceanBase2.0成功上線,并支持了交易和支付的全部流量。并且,基于OceanBase2.0分區(qū)方案的這套架構(gòu)可以輕松擴(kuò)展到支持百萬級交易,關(guān)于應(yīng)對流量洪峰的戰(zhàn)役暫時(shí)告一段落。技術(shù)保障:大促技術(shù)標(biāo)準(zhǔn)化雙十一是新技術(shù)的演練場,那么怎么確定這些技術(shù)能有效支撐流量高峰呢?特別在支付寶,涉及到人們的資金安全,一旦發(fā)生問題后果極其嚴(yán)重,更是要慎之又慎。2014年,支付寶上線了全鏈路壓測,成為系統(tǒng)化技術(shù)驗(yàn)證的神器;從2017年起,支付寶開始打造自動化和智能化的技術(shù)風(fēng)險(xiǎn)防控體系;2018年的雙十一,大促中控上線,大促相關(guān)的技術(shù)開始走向標(biāo)準(zhǔn)化。 大促中控也就是一站式的大促保障解決方案,它的目的,就是將之前大促的經(jīng)驗(yàn)沉淀下來,形成套路和規(guī)范,最終向無人值守方向發(fā)展,搞大促不需要技術(shù)人再熬夜了。有了大促中控,可以進(jìn)行自動化的無損壓測,線上壓測能得到想要的結(jié)果的同時(shí),不影響正在進(jìn)行的業(yè)務(wù)。它的核心技術(shù)能力是對環(huán)境、機(jī)器、線程的隔離,以及在壓測異常時(shí)的智能熔斷。壓測并不是萬能的,有些問題可能在壓測中難以暴露,從2018年起,支付寶還展開了紅藍(lán)攻防演練,為了在大促峰值出現(xiàn)異常時(shí),檢查應(yīng)急策略、組織保障、響應(yīng)速度是否到位,以及驗(yàn)證新技術(shù)的穩(wěn)定性是否達(dá)標(biāo)。對于大促中的資金安全,支付寶自研了實(shí)時(shí)的資金核對系統(tǒng),實(shí)現(xiàn)峰值的資金安全實(shí)時(shí)驗(yàn)證,驗(yàn)證每一筆資金準(zhǔn)確無誤。當(dāng)所有技術(shù)準(zhǔn)備就緒并不是就可以了,每次大促之前還有很多配置需要切換,一旦出錯(cuò)就會造成嚴(yán)重影響,因此支付寶打造了面向終態(tài)的技術(shù)風(fēng)險(xiǎn)巡檢能力,在大促前一天進(jìn)行成百上千的配置自動化檢查,確認(rèn)所有系統(tǒng)進(jìn)入大促狀態(tài),確保萬無一失。隨著時(shí)鐘漸漸指向零點(diǎn),大促一觸即發(fā)。未來可期,我們一路同行總結(jié)起來,雙十一流量峰值考驗(yàn)的是架構(gòu)的可伸縮性、數(shù)據(jù)庫的承載能力、運(yùn)維的強(qiáng)大調(diào)度能力,以及完善的技術(shù)保障能力。為了確保大促順利完成,需要做的技術(shù)準(zhǔn)備也遠(yuǎn)遠(yuǎn)不只文中提到的,諸如全鏈路壓測這樣的幕后功臣還有很多,由于篇幅所限,這里就不再一一介紹了。支付寶也在持續(xù)更新著自己的技術(shù)裝備庫。今年的雙十一,支付寶也有幾項(xiàng)新能力得到實(shí)戰(zhàn)檢驗(yàn):OceanBase2.2上線,該版本在TPC-C基準(zhǔn)測試中取得第一名,平穩(wěn)支撐了新大促;自研的ServiceMesh首次登上大促舞臺,目前已經(jīng)100%覆蓋支付寶核心支付鏈路,是業(yè)界最大的ServiceMesh集群。使命必達(dá)——OceanBase登頂TPC-C測試隨著普惠金融的落地,以及萬物互聯(lián)的發(fā)展,支付平臺面臨的流量壓力會進(jìn)一步提升?,F(xiàn)在我們看到的峰值,未來也許稀松平常;未來的峰值,也許比今天還要高幾個(gè)量級。支付峰值這場戰(zhàn)役仍會繼續(xù)下去,其中的技術(shù)也將不斷的更新進(jìn)化,未來雙十一的技術(shù)之戰(zhàn)將更加精彩。作者:螞蟻金服科技剛剛過去的雙十一全天交易額2684億,再創(chuàng)新高,支付寶自研分布式數(shù)據(jù)庫OceanBase每秒處理峰值達(dá)到6100萬次,再次展示世界級數(shù)字金融運(yùn)算能力。今年是支付寶參加雙十一的第十一年,也是一個(gè)新的起點(diǎn),我們將支付寶歷年重要技術(shù)制作成一張大圖,但圖所包含的信息畢竟有限,本文將這些技術(shù)分為三個(gè)階段,為你詳細(xì)解讀。2009-2013:被大促拽著前進(jìn)2009年光棍節(jié),第一次雙十一來的很突然,誰也沒有想到在網(wǎng)民自創(chuàng)的“節(jié)日”搞的促銷活動會成為中國最大的購物狂歡節(jié),當(dāng)天淘寶商城的成交額激增10倍。支付寶第一年參加雙十一,第一代對賬系統(tǒng)完成大促全量資金核對,同時(shí)整體完成面向服務(wù)的架構(gòu)SOA改造,雖然手忙腳亂,不過還是扛了下來。在2008年以前,支付寶用的是阿里的WebX框架,采用IOE商業(yè)系統(tǒng)+開源軟件的方式搭建后臺,但這套架構(gòu)是煙囪式架構(gòu),難以維護(hù)和擴(kuò)展。2007年開始,支付寶自研SOFA框架,并于2008年1月上線。SOFA分布式中間件早期架構(gòu)SOFA最開始的目標(biāo)是對后端架構(gòu)進(jìn)行分布式服務(wù)化改造,而雙十一大促將這個(gè)進(jìn)程大大加快,剛完成這項(xiàng)改造,團(tuán)隊(duì)又馬不停蹄的投入下一項(xiàng)任務(wù)中。2010年第二次雙十一,大家雖然有了準(zhǔn)備,但實(shí)際的流量和成交額仍然遠(yuǎn)超估計(jì),據(jù)當(dāng)年的參與者表示,雖然準(zhǔn)備了比平時(shí)多3倍的容量,但最后的流量是平時(shí)的20倍,在最后關(guān)頭,運(yùn)維人員將會計(jì)系統(tǒng)降級,避免核心系統(tǒng)崩潰。在這一年里,支付寶數(shù)據(jù)庫團(tuán)隊(duì)完成數(shù)據(jù)庫的垂直拆分和水平擴(kuò)展,將交易賬戶庫分為交易庫和賬戶庫,奠定了彈性擴(kuò)容的基礎(chǔ)。但是,拆分帶來了數(shù)據(jù)一致性問 題,中間件團(tuán)隊(duì)研發(fā)并上線了基于兩階段提交的分布式事務(wù)中間件XTS,解決了這個(gè)問題。XTS經(jīng)過不斷完善,現(xiàn)在已經(jīng)進(jìn)化為阿里巴巴和支付寶共建的Seata項(xiàng)目,并已經(jīng)在GitHub上開源。也正是在這一年,分布式關(guān)系數(shù)據(jù)庫OceanBase開始立項(xiàng),開始了技術(shù)長跑。2011年,支付寶運(yùn)維監(jiān)控系統(tǒng)xflush上線,實(shí)時(shí)秒級監(jiān)控大促的峰值,業(yè)務(wù)健康度不再是黑盒,后來,升級為全功能監(jiān)控平臺AntMonitor。2012年雙十一單日交易一億筆,在這背后,是支付寶緊急通過數(shù)據(jù)、網(wǎng)絡(luò)、機(jī)房的改造,將單日的支付能力從百萬級提升到了億級。當(dāng)時(shí),支付寶系統(tǒng)伸縮的瓶頸在基礎(chǔ)設(shè)施和應(yīng)用層面,首先是負(fù)責(zé)流量接入和調(diào)撥的負(fù)載均衡,支付寶自研了負(fù)載均衡中間件Spanner,2012年上線并成功支持大促,在不斷升級改造后,到今天也仍在支撐日漸高漲的巨大流量。其次的瓶頸在交易系統(tǒng)和賬務(wù)系統(tǒng),支付寶通過多IDC的改造,將交易系統(tǒng)和賬務(wù)系統(tǒng)進(jìn)一步拆分,擴(kuò)展了系統(tǒng)承載能力,并通過FailOver機(jī)制,避免單點(diǎn)故障。2013年,支付寶All-In無線,移動端首次在雙十一大促中承擔(dān)重要職責(zé)。但實(shí)際上這一年最重要的變化是,支付寶開始實(shí)施單元化的LDC邏輯數(shù)據(jù)中心,并在此基礎(chǔ)上實(shí)現(xiàn)了交易支付系統(tǒng)的異地雙活,有效提升了核心系統(tǒng)的持續(xù)服務(wù)能力。這里的單元是指一個(gè)能完成所有業(yè)務(wù)操作的自包含集合,在這個(gè)集合中包含了所有業(yè)務(wù)所需的所有服務(wù),以及分配給這個(gè)單元的數(shù)據(jù)。單元化架構(gòu)就是把單元作為系統(tǒng)部署的基本單位,在全站所有機(jī)房中部署數(shù)個(gè)單元,每個(gè)機(jī)房里的單元數(shù)目不定,任意一個(gè)單元都部署了系統(tǒng)所需的所有的應(yīng)用,數(shù)據(jù)則是全量數(shù)據(jù)按照某種維度劃分后的一部分。支付寶單元化改造并不是一蹴而就,過程十分艱辛,不過帶來的好處也非常多,包括理論上無限可伸縮微服務(wù)架構(gòu)、異地多活部署、全站藍(lán)綠發(fā)布和線上灰度仿真、異構(gòu)機(jī)房上的彈性混合云架構(gòu)等。從2009年到2013年的雙十一,支付峰值從數(shù)百筆增長到1.3萬筆每秒,每年的增長速度都是數(shù)倍甚至十幾倍的提升。為了支撐瘋漲的流量,這些年里,支付寶技術(shù)的最重要目標(biāo)是擴(kuò)展系統(tǒng)的承載能力,可以說是被大促拽著前進(jìn)。到2013年, LDC架構(gòu)實(shí)現(xiàn)了理論上無限伸縮的能力,技術(shù)團(tuán)隊(duì)終于可以稍作喘息,開始追求精細(xì)化,大促相關(guān)技術(shù)也開始走到新的階段。2014-2018:從去IOE到大促技術(shù)標(biāo)準(zhǔn)化2014年對于支付寶來說,是一個(gè)全新階段的開始:去IOE開始落地,大促神器全鏈路壓測正式啟用,最后大促中控平臺上線,標(biāo)志著支付寶雙十一大促相關(guān)技術(shù)走向標(biāo)準(zhǔn)化。首先是去IOE,OceanBase在TPC-C數(shù)據(jù)庫基準(zhǔn)測試取得第一名,這個(gè)螞蟻?zhàn)匝械姆植际疥P(guān)系數(shù)據(jù)庫一下子為世人所知,這里我們看一下這些年來它在幕后一路走過的里程碑:2014.11OceanBase承擔(dān)支付寶交易10%流量;2015.11OceanBase承擔(dān)支付寶交易100%、支付50%流量;2016.11OceanBase承擔(dān)支付寶交易100%、支付100%、花唄賬務(wù)30%流量;2017.11OceanBase承擔(dān)支付寶交易100%、支付100%、賬務(wù)100%流量,“去O”大功告成!并第一次走出阿里,應(yīng)用到南京銀行互聯(lián)網(wǎng)核心系統(tǒng);2018.11基于OceanBase2.0分區(qū)的百萬支付架構(gòu)上線,正式兼容Oracle;2019.11OceanBase取得TPC-C測試第一名,雙十一每秒處理峰值6100萬次;在2014年時(shí),支付寶決定將核心交易系統(tǒng)的10%流量放到OceanBase上,在今天看來是非常冒險(xiǎn)的舉動,不過當(dāng)時(shí)之所以這么做,是因?yàn)橹八捎玫腛racle數(shù)據(jù)庫已經(jīng)無法支撐下一次大促了。OceanBase也經(jīng)歷了非常多的優(yōu)化,在2018年的雙十一中,OceanBase2.0上線,并確立了以O(shè)ceanBase2.0分區(qū)為主的架構(gòu),徹底解決了數(shù)據(jù)庫層面的瓶頸,實(shí)現(xiàn)百萬支付架構(gòu)。OceanBase分區(qū)架構(gòu)2014年雙十一首次采用全鏈路壓測,這可以說是大促保障的核武器。全鏈路壓測解決了之前的大促規(guī)劃靠拍腦袋、成功看運(yùn)氣的問題,通過模擬用戶在大促時(shí)的行為和流量,將涉及到的每個(gè)系統(tǒng)、每項(xiàng)技術(shù)都測試到位,大大減少了大促出事故的概率。2016年,支付寶還在LDC邏輯數(shù)據(jù)中心的基礎(chǔ)上,在支付核心鏈路成功實(shí)現(xiàn)彈性架構(gòu),100%按照運(yùn)營需求彈性擴(kuò)充資源,極大節(jié)省了成本。彈性架構(gòu)可以讓系統(tǒng)隨流量自動化的伸縮,可以降低成本,提升運(yùn)維效率。 2017年,支付寶首次實(shí)現(xiàn)離在線混合部署,80%在線資源,20%離線資源。隨著大數(shù)據(jù)和機(jī)器學(xué)習(xí)的落地,支付寶平時(shí)有一些離線計(jì)算集群,通過調(diào)整工作時(shí)間,可以實(shí)現(xiàn)和大促高峰流量錯(cuò)峰,再和彈性架構(gòu)結(jié)合,就實(shí)現(xiàn)了分時(shí)調(diào)度,同一批資源在不同的時(shí)間運(yùn)行不同的應(yīng)用,最大程度提升資源利用率。2018年雙十一,支付寶推出系列活動,“碼上雙十一”聯(lián)動手淘拉新促活用戶,相當(dāng)于開啟了雙大促,如果按以前的做法,需要采購雙倍的服務(wù)器,有了混部和分時(shí)調(diào)度之后,才得以在新增少量服務(wù)器的情況下支撐,極大的節(jié)省了成本。2017年其它的新技術(shù)還包括:首次啟用智能客服系統(tǒng),單日服務(wù)總量超過500萬人次。智能風(fēng)控AlphaRisk多模式切換落地,確保賬戶資損率低于千萬分之五,遙遙領(lǐng)先于全球平均水平。首個(gè)在國內(nèi)自主研發(fā)的圖數(shù)據(jù)庫GeaBase及自研圖查詢語言第一次參加雙十一,實(shí)現(xiàn)了對百億級關(guān)系網(wǎng)絡(luò)毫秒級的查詢和變更。2018年雙十一的時(shí)候,關(guān)于大促保障的相關(guān)技術(shù)基本已經(jīng)成熟,但都比較零散,如果想更好的利用這些技術(shù),需要把它們整合到一起,大促中控平臺也正是在這個(gè)背景下出現(xiàn)的,它標(biāo)志著支付寶將之前的大促經(jīng)驗(yàn)沉淀,大促保障相關(guān)的技術(shù)實(shí)現(xiàn)標(biāo)準(zhǔn)化。2018年雙十一的新技術(shù)還有:首次在大促中進(jìn)行紅藍(lán)攻防演練,在全鏈路壓測的基礎(chǔ)上進(jìn)一步提升整個(gè)系統(tǒng)的可靠性。大促巡檢平臺上線,實(shí)現(xiàn)大促相關(guān)的配置的全面檢查,防止配置失誤。區(qū)塊鏈技術(shù)第一次全面參戰(zhàn),百余個(gè)國家和地區(qū)、1.5億跨境上牌的原產(chǎn)地溯源不再是難題。生物支付首次成為天貓雙十一主流支付方式,每10筆支付就有6筆采用生物支付,標(biāo)志著中國的生物支付時(shí)代來臨。2017年雙十一支付峰值25.6萬筆/秒,2018年支付寶內(nèi)部實(shí)現(xiàn)可擴(kuò)展的百萬支付架構(gòu),再加上大促中控平臺上線,我們可以看到,支付寶大促相關(guān)的技術(shù)已經(jīng)成熟,并在不斷打磨中追求可靠性、資源利用率、自動化、靈活性,把大促相關(guān)技術(shù)做到極致。 2019+:面向未來的金融科技從2018年起,支付寶開始嘗試和探索云原生架構(gòu)的落地,同時(shí)數(shù)據(jù)智能相關(guān)技術(shù)也在公司內(nèi)廣泛使用。2019年,相關(guān)的技術(shù)開始亮相大促舞臺,以支付寶自研產(chǎn)品SOFAMesh搭建的金融級云原生基礎(chǔ)設(shè)施首次登上雙十一,打造了業(yè)界最大的ServiceMesh集群。OceanBase2.2上線大促核心支付鏈路,每秒處理峰值6100萬次,這是OceanBase數(shù)據(jù)庫同時(shí)兼容MySQL以及Oracle兩種模式的一個(gè)里程碑的版本,性能和穩(wěn)定性上也相對2.0版本有大幅提升。最重要的是,支付寶技術(shù)開始走向無人區(qū),未來的道路只能靠自己開拓,沒有別人可以參考。支付寶開始自己描述面向未來的金融技術(shù)架構(gòu),推出了金融級云原生、開放計(jì)算架構(gòu)等技術(shù)和理念,打造面向未來的金融科技。金融級云原生是指在CNCF所定義的云原生基礎(chǔ)上,發(fā)展出適合金融機(jī)構(gòu)使用的一套技術(shù)棧,其中包括全面對外開放的SOFAStack金融級云原生分布式平臺,以及通過安全容器、TEE、ServiceMesh等構(gòu)建的全棧云原生安全架構(gòu)。SOFAStack不僅采用Kubernetes、容器等社區(qū)化的云原生基礎(chǔ)技術(shù),同時(shí)考慮金融行業(yè)的特殊性,支持之前的傳統(tǒng)架構(gòu),形成雙模技術(shù),包括:雙模PaaS:包括傳統(tǒng)PaaS和基于Kubernetes的PaaS,在PaaS中用容器來模擬VM的運(yùn)行模式,同時(shí)支持容器和虛擬機(jī);雙模微服務(wù):通過Mesh來統(tǒng)一基于Kubernetes的微服務(wù)和老的服務(wù)注冊中心式微服務(wù);雙模Serverless:同時(shí)支持基于云原生的NodejsServerless模式、基于JVM的Serverless模式,以及基于云原生的JavaServerless模式。在開放計(jì)算架構(gòu)方面,支付寶通過設(shè)計(jì)一套符合當(dāng)下計(jì)算體系,同時(shí)又能應(yīng)對未來計(jì)算趨勢的技術(shù)框架,來解決計(jì)算引擎更新、統(tǒng)一研發(fā)體系、數(shù)據(jù)共享互通、數(shù)據(jù)風(fēng)險(xiǎn)防控等幾方面問題。首先在計(jì)算引擎方面,針對不同的計(jì)算作業(yè)狀態(tài)進(jìn)行統(tǒng)一管理,達(dá)到兼容任何一種計(jì)算引擎,并且實(shí)現(xiàn)插件化能力;在研發(fā)層面,推出了SmartSQL,在標(biāo)準(zhǔn)SQL規(guī)范之上擴(kuò)展了部分功能及語法,希望用最簡單通用的語言,描述絕大部分的計(jì)算及機(jī)器學(xué)習(xí)作業(yè);在存儲層面,支付寶自主研發(fā)了統(tǒng)一存儲系統(tǒng),支持多種類型的數(shù)據(jù)存儲格式,同時(shí)支持一份數(shù)據(jù)不同格式之間的自動轉(zhuǎn)換及遷移,極大地簡化了引擎層對存儲的使用,同時(shí)節(jié)約了大量成本。另外,開放計(jì)算架構(gòu)之所以叫開放,就是它能包容不同的計(jì)算模式和引擎。在開放計(jì)算架構(gòu)之中,包含了離/在線一體的圖計(jì)算引擎及存儲,從使用場景,可以覆蓋在線、實(shí)時(shí)、離線各個(gè)場景,用于支持不同時(shí)效性的業(yè)務(wù)。從功能上,具備金融級圖數(shù)據(jù)庫,超大規(guī)模圖計(jì)算,流圖混合的動態(tài)圖計(jì)算以及超快內(nèi)存圖等計(jì)算能力,覆蓋了不同量級的數(shù)據(jù)計(jì)算能力。在機(jī)器學(xué)習(xí)方面,開放計(jì)算架構(gòu)還包含了之前已經(jīng)開源的SQLFlow以及前段推出的ElasticDL彈性深度學(xué)習(xí)框架。這一整套體系將BigData和DataBase的理念揉合在一起,又稱為BigData Base,是支付寶摸索出來的金融數(shù)據(jù)智能的最佳實(shí)踐,下一代大數(shù)據(jù)的基石。2019年,開放計(jì)算架構(gòu)在支付寶不同場景中落地。隨著圖計(jì)算在花唄,螞蟻森林等場景中大規(guī)模上線,圖數(shù)據(jù)庫Geabase突破萬億邊,在線圖分析百億關(guān)系特征計(jì)算秒級響應(yīng)。同時(shí),通過融合計(jì)算引擎,協(xié)同流、圖、并行計(jì)算、機(jī)器學(xué)習(xí)等不同計(jì)算模式,在支付過程中提供秒級智能決策能力。結(jié)語互聯(lián)網(wǎng)技術(shù)的更新迭代永無止境。對支付寶人來說,雖然已經(jīng)經(jīng)歷了這么多的大促,但每一年的雙十一仍然是全新的挑戰(zhàn)。這個(gè)挑戰(zhàn)不僅來自于不斷推陳出新的業(yè)務(wù)和運(yùn)營,也來自于技術(shù)人對自己的嚴(yán)格要求,就像那句話所說的,今天的最好表現(xiàn),是明天的最低要求。正是這樣的驅(qū)動力,驅(qū)使著支付寶的技術(shù)人不斷的超越自我,突破舒適區(qū),尋找下一場技術(shù)革命。也許,這也正是雙十一的意義所在。2019雙11,支付寶有哪些“秘密武器”?作者:螞蟻金服科技2019雙11,支付寶參戰(zhàn)的第十一年。與十一年前相比,雙11的許多東西都改變了。比如金額——2684億,差不多是十一年前的5000倍;比如流量——訂單峰值54.4萬筆/秒,曾經(jīng)是想都不敢想的數(shù)字;再比如層出不窮的新技術(shù),就是這些驚人數(shù)字背后的“秘密武器”,給迎戰(zhàn)雙11的戰(zhàn)士們作最完備的武裝。也有始終不變的東西。大戰(zhàn)來臨前的緊張、不安、如履薄冰,對每一個(gè)細(xì)節(jié)反復(fù)check的“強(qiáng)迫癥”,以及勝利之后的欣喜、釋然、滿心充實(shí),和下一步砥礪前行。支付寶的技術(shù)工作,就是“半年搞建設(shè),半年搞大促”。雖然是一句戲言,但足 夠從側(cè)面證明大促作為實(shí)踐戰(zhàn)場的重要性。而每當(dāng)雙11圓滿落下帷幕,技術(shù)人也就到了收獲的季節(jié)。那些歷經(jīng)雙11大考的新技術(shù),就像經(jīng)歷過了“成人式”一樣,一一走到臺前開始獨(dú)當(dāng)一面。SOFAMesh:金融級云原生第一步眾所周知,金融機(jī)構(gòu)因?yàn)榧缲?fù)的責(zé)任重大,面對新技術(shù)時(shí),普遍都是比較保守的。支付寶也不例外,尤其是在雙11這種場景下,流量大,峰值高,平時(shí)不管多小的問題,在這時(shí)候都可能被放大成不得了的大問題。于是,今年的大促迫在眉睫時(shí),SOFAMesh團(tuán)隊(duì)還在糾結(jié)。來自周圍的各種聲音,讓他們感到壓力很大。被問到的最多的問題,就是“這個(gè)靠不靠譜?”一個(gè)“行”字,在雙11的面前,可能有千鈞之重。能不能扛過零點(diǎn)的流量峰值?能不能保障穩(wěn)定?能不能保證不出差錯(cuò)?Mesh是一項(xiàng)很新的技術(shù),社區(qū)開源項(xiàng)目本就不成熟,而SOFAMesh是支付寶從第一行代碼就開源加自主開發(fā)的項(xiàng)目,在金融級的嚴(yán)苛要求面前,在雙11的極端場景之下,究竟行不行?誰心里都沒有底。然而此時(shí)不上,整整兩年的心血就白費(fèi)了。反過來說,如果能打贏這一仗,就證明云原生之路在雙11這種體量的考驗(yàn)之下都是可行的,這對于整個(gè)行業(yè)而言,會是一個(gè)很好的標(biāo)桿?!拔浵伣鸱鼋鹑谛袠I(yè)技術(shù)的拓荒者和實(shí)踐者。”資深技術(shù)專家楊海悌說。這已不是螞蟻金服第一次做“吃螃蟹的人”,在金融機(jī)構(gòu)普遍依賴IOE時(shí),他們率先開始探索分布式,現(xiàn)在分布式漸漸成為主流,他們又率先琢磨起云原生?!耙郧岸际菢I(yè)務(wù)推動技術(shù),現(xiàn)在到了技術(shù)為業(yè)務(wù)提供紅利的時(shí)候了?!睂τ谧约嚎粗L大的SOFAMesh,楊海悌一面很有信心,一面也十分忐忑。SOFAMesh是支付寶針對金融行業(yè)的特殊需求而開發(fā)的金融級中間件,屬于金融級云原生分布式框架SOFAStack的一部分,這個(gè)框架的開發(fā)始于2009年,幾乎是騾子是馬,總得遛過了才知道。SOFAMesh的第一份答卷很快交了出來——以往分時(shí)復(fù)用的資源切換需要4小時(shí),用上了SOFAMesh之后,不到4分鐘。性能提升將近百倍。分時(shí)復(fù)用,顧名思義,就是在不同的時(shí)間段里讓同一個(gè)資源能夠“復(fù)用”于多個(gè)應(yīng)用。這一技術(shù)能夠減少資源閑置,提高資源的利用效率。這一技術(shù)在2018年雙11就曾立過功——當(dāng)時(shí),支付寶面對這天貓雙11和自己的會員大促的“雙大促”挑戰(zhàn),為了節(jié)約成本少采購一些資源,上線了分時(shí)調(diào)度1.0,使用同一批資源同時(shí)支持兩個(gè)大促,在支撐天貓雙11和經(jīng)濟(jì)體用戶增長兩個(gè)大促的同時(shí),IT成本一分錢也沒有漲。但去年在彈性架構(gòu)模式下做分時(shí)調(diào)度,切換資源需要重新配置和部署相關(guān)系統(tǒng),4個(gè)小時(shí)的切換時(shí)間,雖然成功支持了“雙大促”,還是滿足不了對短時(shí)間內(nèi)快速調(diào)用資源有需求的業(yè)務(wù)。到了今年,由于SOFAMesh的上線,切換資源不再需要重新部署,切換時(shí)間縮短到了3分40秒。這意味著,像螞蟻森林那樣每天都會面臨流量小高峰的業(yè)務(wù),無需事先留足資源余量,提前10分鐘開始切換資源,都綽綽有余?!皩?,切換時(shí)間還有望縮短到秒級?!睏詈c┱f。2019年雙11,SOFAMesh扮演了非常重要角色——100%覆蓋螞蟻金服核心支付鏈路,幾十萬容器,峰值千萬QPS,平均RT(響應(yīng)時(shí)間)0.2ms,是業(yè)界最大的ServiceMesh集群。它在洪峰面前的穩(wěn)定性和平滑性,以及對效率的顯著提升,都是有目共睹的。 這張漂亮的成績單背后,其實(shí)就是一個(gè)字——行?!霸圃币呀?jīng)成為業(yè)界公認(rèn)的技術(shù)趨勢,它的目標(biāo)是提升運(yùn)維效率、降低資源使用成本、提升服務(wù)安全可靠性等。云原生帶來的基礎(chǔ)設(shè)施升級,為技術(shù)演進(jìn)提供基礎(chǔ)能力支撐,并且提升未來架構(gòu)空間的想象力。2019也是支付寶的金融級云原生落地元年,包括SOFAMesh在內(nèi)的一系列云原生技術(shù),經(jīng)歷雙11的考驗(yàn)之后,向整個(gè)業(yè)界證明——我們行,云原生這條路,也行。雙11之后,螞蟻金服舉辦的發(fā)布會上,副CTO胡喜宣布,會將SOFAMesh也對外公開。正如“元年”一詞所說,這只是螞蟻金服在新的開拓之路上邁出的第一步。OceanBase2.2:世界紀(jì)錄就是用來打破的OceanBase被人質(zhì)疑“行不行”的次數(shù),更是多到數(shù)不過來。數(shù)據(jù)庫是命脈,尤其是金融機(jī)構(gòu)的數(shù)據(jù)庫,出一點(diǎn)問題都是真金白銀的問題,哪個(gè)業(yè)務(wù)都不敢冒風(fēng)險(xiǎn),老老實(shí)實(shí)抱著老牌進(jìn)口貨Oracle,圖個(gè)太平。但Oracle也沒見過雙11這種陣仗,隨著雙11的流量連年翻番,它的性能眼見著碰到了天花板。2014年雙11前的壓測,Oracle出現(xiàn)了10%的流量缺口。OceanBase感到機(jī)會來了。在那之前,他們已經(jīng)“蟄伏”了四五年,沒有固定的業(yè)務(wù),最落魄的時(shí)候,甚至面臨團(tuán)隊(duì)解散和項(xiàng)目取消的境況。當(dāng)時(shí)的OceanBase將滿5歲,版本號卻還是0.x,外表看來甚至還是個(gè)demo,一上來就要承接雙11的10%的流量,相當(dāng)于支付寶平日流量的最高峰,而且要做的還是最核心的交易系統(tǒng)——一分錢都不能出錯(cuò)的那種。一時(shí)之間,“你們行不行”的質(zhì)疑聲此起彼伏?!皠e人說我們不行的時(shí)候,我們都非常堅(jiān)定地認(rèn)為,行?!蔽浵伣鸱芯繂T楊傳輝說。他是OceanBase開發(fā)團(tuán)隊(duì)的初期成員之一,親眼見過OceanBase寫下第一行代碼。從拿下10%的任務(wù),到雙11的正式大考,時(shí)間不足兩周。最后十來天,資深運(yùn)維專家?guī)熚膮R帶著全團(tuán)隊(duì)幾乎不眠不休地做優(yōu)化,硬是把長達(dá)10毫秒的響應(yīng)時(shí)間降低到了1毫秒以下。那一年的雙11,OceanBase沒出一個(gè)差錯(cuò),一戰(zhàn)成名。今年的雙11,OceanBase的版本號是2.2。在為版本命名方面,他們的謹(jǐn)慎作風(fēng)一如既往。 但是OceanBase的每一次版本迭代,發(fā)生的都是“脫胎換骨”的變化,自己創(chuàng)下的紀(jì)錄,也由自己不斷刷新——2018年雙11,基于OceanBase2.0分區(qū)方案的架構(gòu)正式上線,這一架構(gòu)解決了數(shù)據(jù)庫可擴(kuò)展的瓶頸,將每秒交易的承載能力提升到百萬級,并讓性能提升了50%。50%的提升不是個(gè)小數(shù)目,但更令人驚訝的是,僅僅一年之隔,在2019年的雙11中,全新上線的OceanBase2.2版本,在2.0的基礎(chǔ)上,又讓性能提高了50%。就在今年的10月3日,權(quán)威機(jī)構(gòu)國際事務(wù)處理性能委員會TPC披露:螞蟻金服的分布式關(guān)系數(shù)據(jù)庫OceanBase,打破美國甲骨文公司保持了9年的世界紀(jì)錄,登頂TPC-C榜單,同時(shí)也成為首個(gè)登上該榜單的中國數(shù)據(jù)庫系統(tǒng)。短短的一個(gè)月之后,在2019年雙11的考場之上,OceanBase2.2又再次刷新了數(shù)據(jù)庫處理峰值,達(dá)6100萬次/秒,創(chuàng)造了新的世界紀(jì)錄。在金融級核心數(shù)據(jù)庫的嚴(yán)格要求之下,OceanBase為何還能有這樣跨越式的性關(guān)鍵的秘密在于,OceanBase背后是原生的分布式數(shù)據(jù)庫設(shè)計(jì)以及PAXOS協(xié)議,通過水平擴(kuò)展x86服務(wù)器就可以達(dá)到無限伸縮,支持大規(guī)模高并發(fā)的效果。另一方面,今年為了進(jìn)一步提升性能和降低延遲,OceanBase還通過中間件的優(yōu)化,自動將多條SQL聚合成輕量級的存儲過程,這個(gè)過程讓原本需要數(shù)十次SQL網(wǎng)絡(luò)交互的任務(wù)降低為單次網(wǎng)絡(luò)交互,整體RT降低了20%?,F(xiàn)在,支付寶的業(yè)務(wù)已經(jīng)100%跑在OceanBase上,作為我國第一個(gè)自研的金融級分布式數(shù)據(jù)庫,經(jīng)過六年的雙11錘煉,它也已經(jīng)具備了走出螞蟻金服、走向更廣闊天地的底氣。今年雙11中,支付寶支付業(yè)務(wù)100%切換到OceanBase內(nèi)置的Oracle兼容模式上,支持Oracle語法以及存儲過程優(yōu)化的同時(shí),又兼具OceanBase的分布式能力,如分布式分區(qū)表、全局事務(wù)等,響應(yīng)時(shí)間也更加平穩(wěn)。雙11之后,OceanBase2.2也將正式公開發(fā)布?!安贿^,在別人覺得我們什么都行的時(shí)候,我們反而會冷靜下來,想想自己還有哪些不行的地方?!睏顐鬏x說,對技術(shù)上一切未知的敬畏,才能讓大家走得更遠(yuǎn)。圖智能:復(fù)雜金融關(guān)系的最優(yōu)解“過去很長一段時(shí)間圖數(shù)據(jù)庫和圖計(jì)算一直停留在學(xué)術(shù)研究階段,行業(yè)應(yīng)用場景不多,是因?yàn)闆]有強(qiáng)的場景驅(qū)動,所以市場沒有太多發(fā)展”,螞蟻金服計(jì)算存儲首席架構(gòu)師何昌華指出。但是反過來看,圖相關(guān)的產(chǎn)品近年來熱度不斷攀升,其核心原因是因?yàn)閺?qiáng)場景的驅(qū)動,特別是金融場景,它非常善于處理大量的、復(fù)雜的、關(guān)聯(lián)的、多變的網(wǎng)狀數(shù)據(jù),通過節(jié)點(diǎn)和關(guān)聯(lián)的數(shù)據(jù)模型去快速解決復(fù)雜的關(guān)系問題。螞蟻的一站式圖平臺的誕生,也有著鮮明的螞蟻金服特色,同樣是“被業(yè)務(wù)倒逼出來的”。螞蟻金服在2014年左右就開始跟進(jìn)社區(qū)的圖計(jì)算的研究,當(dāng)時(shí)的團(tuán)隊(duì)在一些開源產(chǎn)品基礎(chǔ)上進(jìn)行了小規(guī)模的嘗試,做了之后發(fā)現(xiàn)效果很好,圖數(shù)據(jù)庫能夠很好地和金融、社交業(yè)務(wù)結(jié)合起來。但是,螞蟻金服有著巨大的數(shù)據(jù)量,需要以分布式架構(gòu)來支撐高并發(fā)的大數(shù)據(jù)量和大吞吐量,但當(dāng)時(shí)無論是開源還是商業(yè)數(shù)據(jù)庫產(chǎn)品都只是單機(jī)版,都難以適應(yīng)螞蟻金服如此大的數(shù)據(jù)量和復(fù)雜的環(huán)境。于是,艱難而又步步扎實(shí)的自研之路開始了。最開始,要解決的是圖數(shù)據(jù)的存儲和在線查詢的問題。從數(shù)據(jù)量來看,分布式架構(gòu)是唯一的選擇。從滿足金融場景高并發(fā)低延時(shí)的需求來看,選擇原生圖結(jié)構(gòu)而非基于關(guān)系型數(shù)據(jù)庫基礎(chǔ)上封裝圖數(shù)據(jù),成為必然。但也因?yàn)橐陨蟽牲c(diǎn),導(dǎo)致整個(gè)開發(fā)難度大大增加。 從2015年初團(tuán)隊(duì)開始組建,經(jīng)過“冬練三九、夏練三伏”的苦修,以及在代碼、運(yùn)維、穩(wěn)定性等每一環(huán)節(jié)的極致追求,第一個(gè)圖數(shù)據(jù)庫版本GeaBase在2016年初發(fā)布。而這時(shí)候,剛好遇到支付寶史上最大一次改版,模塊化功能被替換成信息流,大大強(qiáng)化了社交關(guān)系屬性,GeaBase開始接入支付寶鏈路。百煉成鋼,經(jīng)過幾個(gè)月的壓測,2016年6月,新版支付寶上線,GeaBase迎來了第一筆流量。接著幾年,從支付寶大改版到新春紅包再到雙11,GeaBase迎來了業(yè)務(wù)的綻放期,到2019年雙11,GeaBase雙11主鏈路上單集群規(guī)模突破萬億邊,點(diǎn)邊查詢突破800萬QPS,平均時(shí)延小于10ms;成為支付寶核心鏈路上非常重要的一環(huán);數(shù)據(jù)存儲和查詢的問題解決了,緊接著要解決的是分析計(jì)算的問題。在一開始,我們思考的是如何在海量的圖數(shù)據(jù)里做數(shù)據(jù)挖掘的問題。在面對千億乃至萬億級規(guī)模,幾TB到幾百TB的數(shù)據(jù),用超大內(nèi)存物理機(jī)和高速網(wǎng)絡(luò)來實(shí)現(xiàn)離線全圖計(jì)算,對企業(yè)來說不太現(xiàn)實(shí),資源也存在極大的浪費(fèi)。因此,我們重點(diǎn)放在如何在滿足業(yè)務(wù)功能/性能需求的同時(shí),利用碎片化的現(xiàn)有資源,實(shí)現(xiàn)“按需計(jì)算”的能力。因此,2017年,我們在海量數(shù)據(jù)基礎(chǔ)上,設(shè)計(jì)了一套離線計(jì)算的框架,提供自適應(yīng)的分區(qū)策略,資源消耗能比同類產(chǎn)品降低一個(gè)數(shù)量級,同時(shí)性能還能遠(yuǎn)遠(yuǎn)優(yōu)于GraphX等開源產(chǎn)品。同時(shí),為了方便業(yè)務(wù)算法人員根據(jù)其業(yè)務(wù)進(jìn)行二次開發(fā),還開放了C++和JAVA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘南課件資源
- 瓷磚基礎(chǔ)專業(yè)知識培訓(xùn)課件
- 2025工程承包合同的種類
- 基于創(chuàng)新技術(shù)的桑枝屑含水率快速檢測體系構(gòu)建與應(yīng)用研究
- 停車場收費(fèi)及一卡通門禁系統(tǒng)施工方案及主要系統(tǒng)安裝方法
- 購房貸款合同范本5篇
- 愛蓮說周敦頤課件
- 愛耳日講座教學(xué)課件
- 愛梅乙知識培訓(xùn)課件
- 記賬實(shí)操-煙氣回收裝置成本核算
- 華潤興光燃?xì)夤菊衅腹P試題庫
- “浙江大學(xué)2025年公共衛(wèi)生(流行病學(xué))試題及答案”
- 2025廣西送變電建設(shè)有限責(zé)任公司第二批項(xiàng)目制用工招聘89人考試參考題庫及答案解析
- 村委換屆培訓(xùn)課件講義
- 2025-2026學(xué)年譯林版(2024)八年級英語上學(xué)期第一次月考模擬卷(含答案)
- 中信銀行答題題庫及答案
- 華為供應(yīng)商質(zhì)量認(rèn)可標(biāo)準(zhǔn)實(shí)施細(xì)則
- 超全高中化學(xué)經(jīng)典知識點(diǎn)總結(jié)(必屬)
- 煤礦三級安全培訓(xùn)方案課件
- 八上數(shù)學(xué)預(yù)習(xí)每日一練小紙條 30天【空白】
- 時(shí)間在流逝課件圖文
評論
0/150
提交評論