2月28号,号稱「亞馬遜aws最穩定」的雲存儲服務s3出現“超高錯誤率”的當機事件。
接着,半個網際網路都跟着癱瘓了。
一個字母造成的血案
aws在昨天給出了确切的解釋:一名程式員在調試系統的時候,運作了一條原本打算删除少量伺服器的腳本,結果輸錯了一個字母,導緻大量伺服器被删。為了修複這個錯誤,亞馬遜不得不重新開機整個系統(在此之前已經幾年都沒有重新開機過了),最終導緻了震驚全球的amazon s3當機4個小時事件。

我想這名程式猿當時的表情應該是這樣的
曾經有人計算過,aws每當機一分鐘,對亞馬遜造成的損失是$66,240美元...而這還不包括那些依靠aws來運作自家服務的公司們的損失。是以這次接近4小時的當機造成多大的損失,隻能請大家自行腦補了。
程式員的世界就是這樣的不近人情,一丁點兒錯誤就足以釀成大錯。在這次“一個字母造成的血案”之前,剛剛發生了gitlab程式猿用錯一條指令誤删了整個資料庫的悲劇。再久一點以前,歐洲宇航局的的火星探測器因為傳感器失靈了僅僅一秒鐘,就造成探測器在火星表面墜毀,曆時數年的探測計劃功虧一篑。
是以,當你身邊的程式員為了一點點小事較真的時候,你一定要了解:魔鬼都藏在細節裡啊!
當s3當機時,你才明白aws多麼強大
幾年前,google.com曾有一次當機了一個小時。在那一個小時的時間裡,整個網際網路的流量減少了40%。當時有人感慨:google一家就是半個網際網路。如今,“半壁江山”的江湖地位似乎要歸屬于亞馬遜了。
aws是雲計算領域全球的上司者,而s3又是aws曆史最久的服務,可以說是aws的基石。很多aws提供的其他服務都依賴于s3雲存儲,比如ec2,lambda 和 ebs 等,是以這次當機影響巨大。據最近的統計顯示,全球共有148213個網站和121761個獨立域名在使用aws s3服務。
就拿這次事故來說,很多人一覺起來發現手機裡的歌聽不了,電影看不了,股票不能交易,app也沒法下載下傳,就連家裡的智能電器都紛紛罷工(首頁君家裡的電子門鎖都失靈了!)雲計算聽上去離生活很遠,其實離我們很近。
這次s3當機影響到無數家公司和服務
在這裡羅列了幾個著名的:
apple app store & icloud
airbnb
expedia
netflix
quora
amazon echo
amazon.com
nasdaq
就連aws自己用來公布服務狀态的 aws dashboard 都受到了影響,在一段時間内隻能通過twitter賬戶來釋出更新狀态。這次s3當機事件的影響範圍之廣,可見一斑。
“打錯一個字母癱瘓半個網際網路”是怎樣的感受?
在今天亞馬遜披露了這起事故背後的原因後,很多人心裡都會有一個疑問:
這個倒黴的程式員會被開除嗎?
關于這一點,雖然首頁君肯定沒法做出準确的判斷,但還是願意給出我們的猜測:不會。
首先,這名程式猿打錯指令有沒有責任?肯定有。但是,在處理高度可靠的雲服務時,每一次操作都應該按照嚴格的程式,每一個指令都要經過足夠的稽核。除非這名程式員在操作過程中因為偷懶省略了一些必要的步驟,否則,這次事故更多是系統的責任,因為系統沒有足夠的機制來防止錯誤的發生。人,都是會犯錯的,隻有機器不會。
其次,oncall(值班)的程式員一邊操作着影響巨大的的系統,一邊還需要争分奪秒的解決問題,肩上的壓力之大難以想象。雖然這次事故确實是由于一個打錯的字母造成的,但如果事故發生後,作為雲服務領航者的亞馬遜不是勇敢的承擔這筆學費,而是把鍋甩給某一個程式員身上,那就太讓人寒心了。
我甚至敢斷言:如果亞馬遜真的做出這樣的決定,那麼他們在日後的招聘過程中會遇到很大的困難——每個程式員都會三思:我會不會成為下一個背鍋的人?
當然,如果這哥們(也可能是姐們)
真的是以被解雇了,想想看——我打錯了一個字母,就癱瘓了半個網際網路
這牛逼也夠吹一輩子了!
最後,首頁君想說:程式員這行真的不容易,做雲服務的尤其如此,大家且行且珍惜。對受到這次事故影響而心驚膽戰了好幾幾天的程式員們說一句:加油,你們挺住!