「雙十一」

2015年11月12日零點剛過,螞蟻金服首席技術官程立從阿里巴巴西溪園區一號樓五層的支付寶團隊技術保障室出來,繞過建築中的天井,快步向位於建築物五層中部的「雙十一」總指揮室走去,在他身旁還有支付寶技術保障團隊的其他同事。

零點的鐘聲響過,意味著他們度過了一年當中最重要的一天。

這時,「雙十一」的總指揮室裡已是一片歡樂的海洋。在指揮部的大屏幕前,身著紅色天貓文化衫的程立,和同事老苗、玄德、童玲等人一起面帶微笑地舉起雙手,用大拇指和小拇指擺出了代表「雙十一」的手勢,在他們背後的大屏幕上,顯示的是剛剛過去的這個「雙十一」的戰果:912.17億元。

對於程立和支付寶技術團隊來說,這是一個值得驕傲的時刻,在「雙十一」凌晨高峰期時,支付寶和二百多家銀行合作夥伴一起,扛起了每秒鐘8.59萬筆的交易洪峰。這個數字遠超目前全球領先的支付機構的限流值,甚至比壓測時候的峰值還要高出一萬多筆。

短短幾年,支付寶的交易筆數從千萬級到億級,數據處理從PB[1]級到EB[2]級的規模,可用性達到了99.99%。「異地多活」架構的支付平台、OceanBase數據庫和金融雲平台,一起成功地應對了「雙十一」的支付「洪流」。

作為支付寶技術發展的見證人,程立既興奮又感動,他最清楚這一路走來的艱辛,在人們為此歡呼慶祝的時候,他的思緒卻不由自主地回到了五年前……

那是2010年的「雙十一」。

2010年11月11日零點剛過,坐在電腦旁邊的程立突然發現,支付寶的業務量正在快速攀升,一下子高出了平時最高值的三倍,程立清楚,這時系統只有一倍的余量。

剛開始,程立有些僥倖,他覺得大促剛開始時用戶最活躍,等白天時,情況會慢慢好轉起來,然而直到當天早上六七點,業務量還沒有降下來,依然是平時的幾倍。

這時,支付寶的技術人員開始著急了,大家意識到,當天的交易量一定會遠遠超出系統的容量。

淘寶第一次搞「雙十一」大促是在2009年。那時,「雙十一」還不像現在這樣廣為人知,所以2009年的交易量並不大。在此之前,支付寶也剛完成二代架構的升級改造,在二代架構做完之後,支付寶的技術團隊感覺能解決的技術問題都已經解決了。很多人認為,未來系統也許就可以這樣發展下去。因此,在2010年「雙十一」大促之前,支付寶的系統規劃是按照每年增長100%余量預估的,即系統永遠有一倍的余量。按照當時的估測,大家覺得一倍餘量一定夠用。退一步說,即使出現問題,也可以等到交易量增長到一定程度時再繼續增加資源。

因此,當天突如其來的巨大交易量讓人措手不及。

情急之下,支付寶技術團隊開始不停地「搬資源」,哪裡有富餘的計算資源就搬過來應急。如核心交易系統容量不足了,就把一些相對不重要的業務資源拿過來,到後來再不夠了,就採用「砍業務」的方法,將那些暫時可以犧牲的業務砍掉,再把資源搬過來。

那天,所有開發人員都坐在電腦前,如臨大敵般地處理問題:「到底這個機器是否要重啟一下?……這個系統容量不夠我要不要調一些機器過來?……」

直到當天的23時59分30秒,眼看2010年「雙十一」大促就要結束,突然,核心賬務系統報警。

「嘀、嘀、嘀……」短促清晰的警報聲讓在場的每個人都打了一個寒戰。

「資源馬上耗盡,趕緊殺掉非關鍵應用!」聽到報警聲後,負責數據庫的同事一邊衝過來,一邊大喊。

程立倒吸一口冷氣,他清楚可能產生的後果。那時支付寶的賬務數據庫還沒有做拆分,而所有交易都經過虛擬賬戶,一旦核心賬目系統出現問題,支付寶所有的業務都會停掉,數據庫再想恢復就需要經過很長的時間。如果出現這種情況,對淘寶和支付寶都將是災難性的。

急中生智,技術團隊決定臨時把會計的應用殺掉。因為當時支付寶的賬務應用和會計應用是在一個數據庫中,而會計的應用更多是在交易之後進行,暫時停用還可以恢復過來,這樣便可騰出系統的資源,把賬務系統的性能提升50%。

情急之下,負責消息系統的文若和幾個同事衝上去,爭分奪秒地在每台機器上敲上一行行的代碼,緊急殺掉非關鍵應用,確保核心數據庫資源。當時,文若是入職剛剛一年的應屆畢業生,從沒有經歷過這樣的大陣仗,他敲代碼的手一直在抖,靠身體的本能在完成一步步的操作。最後,文若和同事將一個會計系統的應用殺掉,將資源釋放了出來,當他敲完最後一行代碼,身子便癱軟到了椅子上。

這時,離數據庫崩潰只剩下四秒。

儘管過程很驚險,但是那一年的交易量很亮眼。2010年的「雙十一」,支付寶全天成功交易1261萬筆,平均每分鐘有1萬筆成功交易。但經過了這次「大考」之後,所有人都在反思,以後每年的「雙十一」大促,業務量的增長只會更快,支付寶的系統怎樣才能頂得住呢?

事後復盤,當時支付寶的CTO李靜明在和技術團隊總結時說,所有的資源彈性工作,應該是底層基礎設施去做,但是支付寶當時不具備這樣的技術能力,只能通過人工來「削峰填谷」,看哪邊需要資源,就靠人工去搬資源,做各種各樣的調整。

在李靜明看來,對於2010年的「雙十一」,整個團隊都是在做「人肉的雲計算」,而系統接下來的改造方向就是使「人肉的雲計算」真正變成「底層系統的雲計算」,這正是支付寶系統的第三代架構「雲支付」的開始。

《螞蟻金服》