每年雙11前后,知乎總會出現(xiàn)這樣的提問:
如果雙11當天,阿里的數(shù)據(jù)中心同時斷電斷網(wǎng)/被黑客攻擊,是不是就不用付尾款了?
要是支付寶炸了,就不用還花唄了?
足以見得,當代人在雙十一過后,錢包被洗劫一空的拮據(jù)狀況。
但筆者不得不說,想象一下晚上回家買彩票中個5塊錢,都比想這個靠譜。
雙11倒逼阿里技術(shù)成長
到2020年,雙11已經(jīng)走過了整整11個年頭,雙11這個越來越受到重視的節(jié)日,成就了一次次奇跡般的流量高峰,也倒逼了阿里歷史上的很多次業(yè)務(wù)改革。
2009年的第一次雙11,只是淘寶商城臨時決定的一次活動,彼時,程序員們還沒有感受到雙11的威力。
但2010年,雙11給平臺帶來的流量一下漲了好幾倍,服務(wù)器根本就撐不住。阿里只能將支付寶系統(tǒng)一再“瘦身”,只留下核心的支付通道,才總算扛了過去。
想象一下,如果說我們平時的網(wǎng)購,是分散在不同時間點,所點燃的一團團火焰,那么雙11,就是所有的火集中在同一時間點燃,是一場爆炸!
此后,雙11不斷倒逼阿里巴巴的技術(shù)成長。
為了支撐雙11的流量,支付寶一個不到100人的團隊,研發(fā)出了可代替甲骨文數(shù)據(jù)庫的OceanBase數(shù)據(jù)庫。
而自從去年雙11核心系統(tǒng)100%上云后,飛天云操作系統(tǒng)、神龍服務(wù)器集群、中臺等數(shù)字新基建還在不斷升級,峰值已經(jīng)不再是雙11最大的技術(shù)挑戰(zhàn)。
而對系統(tǒng)最頂級的考驗,其實是斷網(wǎng)斷電。
2013年,杭州將近40℃的高溫,讓阿里系統(tǒng)警鈴大響。
當時,全城的電力供應(yīng)極度緊張,阿里的服務(wù)器機房又是耗電大戶,拉閘限電的威脅迫在眉睫……
如果當時有人問,阿里的服務(wù)器機房停電,會不會對用戶產(chǎn)生影響?得到的答案或許就不一樣了。
2000年,美國8大網(wǎng)站遭到攻擊,部分停頓高達3天,損失總額達到12億美元;
2009年,機場EMC系統(tǒng)硬盤損壞,導(dǎo)致臺北桃園機場宕機36小時;
2013年,由于電腦系統(tǒng)癱瘓,倫敦交易所停盤將近7小時。
阿里絕不能成為反面案例中的一份子,于是進一步完善災(zāi)備系統(tǒng)的搭建,以應(yīng)對斷電、斷網(wǎng)之類的引起系統(tǒng)非正常停機的“災(zāi)難”。
世上第一個建立災(zāi)備中心的IT公司——SunGard的主席羅伯特·博格爾曾說:任何計算機事故發(fā)生后的4小時之內(nèi),我們的備份都能讓你再次上線,并平穩(wěn)運行210天。
如今,阿里已經(jīng)把故障修復(fù)時間,縮短成了10分鐘。
阿里的備災(zāi)系統(tǒng)有多牛?
就在11月11日晚,阿里巴巴CTO程立公布了一段實錄視頻。
11月5日凌晨,在一輪全鏈路壓測結(jié)束后,技術(shù)人員們該吃飯的吃飯,該休息的休息。
然而,凌晨兩點左右,有人在背后開始悄悄“搗鬼”,直接按下了最高級別的突襲鍵。
網(wǎng)絡(luò)故障注入成功后,中心交易下單直接跌0。
簡單來說,就是在這一兩分鐘的時間內(nèi),系統(tǒng)會告訴下單的用戶,由于限流或類似的報錯,無法成功下單。
但是很快,應(yīng)急小組就啟動了緊急響應(yīng)處理,完成了主備切換。在遭受攻擊后的第1分28秒,故障修復(fù),網(wǎng)絡(luò)恢復(fù)。
緊接著,第二次攻擊又來了,有人一聲令下:“現(xiàn)在執(zhí)行斷電。”
一瞬間,辦公大樓照明全滅、空調(diào)停轉(zhuǎn)。幾乎同一時刻,災(zāi)備系統(tǒng)自主啟動,蓄電池立刻為服務(wù)器供電,僅僅4秒鐘,一切都恢復(fù)了正常,業(yè)務(wù)絲毫未受到影響。
發(fā)動這兩次攻擊的,不是別人,正是阿里巴巴合伙人、雙11新零售技術(shù)負責(zé)人吳澤明(花名范禹)。
這則視頻,正好回答了知乎上的提問:
就算蜘蛛俠火力全開潛入了阿里的配電房,就算頂級黑客僥幸殺入了阿里的數(shù)據(jù)中心,該付的還是得付。
而且,即使阿里正好在雙11的0點斷電,你也可以沖一沖前100名半價。
這一切,都要歸功于阿里的災(zāi)備系統(tǒng)。
首先,在斷網(wǎng)的情況下。
阿里巴巴早在好幾年前,就開始研究“異地多活”技術(shù)。
阿里已經(jīng)建立了多個跨地域的數(shù)據(jù)中心。簡單來說,就是阿里已經(jīng)找好了多個、且遍布全國各地的“備胎”,任何一個出問題,其他數(shù)據(jù)中心分分鐘可以接管。
就算有人吃飽了沒事干,抬著施瓦辛格的大炮,把阿里杭州的數(shù)據(jù)中心一炮轟了,影響也不大。
其次,在斷電的情況下。
我國的A類電子信息系統(tǒng)機房,都配有后備柴油發(fā)電機系統(tǒng),切斷電源后,柴油發(fā)電機會立刻開始發(fā)電,支持滿載12小時以上。
退一萬步說,就算柴油耗完了,阿里至少還和附近的兩個加油站簽訂了協(xié)議,在4小時內(nèi)為數(shù)據(jù)中心供給柴油。不僅有Plan B,甚至有Plan C!
阿里紅藍軍:以戰(zhàn)養(yǎng)兵
在阿里的技術(shù)系統(tǒng)中,有一個特別的機制——紅藍軍對抗。
藍軍負責(zé)生產(chǎn)彈藥,紅軍負責(zé)抵御突襲,雙方在一次又一次的演練、對抗中共同成長,就連故障恢復(fù)機制都形成了“1-5-10”的方法論,在1分鐘內(nèi)發(fā)出警報、5分鐘內(nèi)定位故障、10分鐘內(nèi)修復(fù)故障。
藍軍為了突襲,也是拼盡了全力,甚至還專門設(shè)置了App,串聯(lián)了阿里巴巴經(jīng)濟體的各種技術(shù)框架和業(yè)務(wù),將其簡化成一個按鈕,就是為了打紅軍一個出其不意。
這次雙十一前的突襲,就來源于吳澤明輕松按下的“最高級別突襲鍵”。
截至今年雙11,紅藍兩軍已經(jīng)交戰(zhàn)了164次。
一方想破頭“找茬”發(fā)起進攻,一方拼了命抵御突襲,這種典型的“我打我自己”戰(zhàn)術(shù),正印證了尼采的那句話:殺不死我的,必將使我更強大。
今年的雙11,攜58.3萬筆/秒流量洪峰如約而至,GMV4982億,增速26%,長達11天的雙波峰以零故障完美收官。
面對阿里這么一個龐大的系統(tǒng),平常我們使用時,只關(guān)注體驗夠不夠流暢,功能夠不夠齊全,等你想深入到其背后一探究竟時,才細思極恐:原來保障一個系統(tǒng)的正常運轉(zhuǎn),要耗費如此大的心血。
不然你以為,程序員們?yōu)楹螘?96?為何會頭禿?又如何實現(xiàn)財富自由?
作者:劉峰