為什麼Twitter註定要失敗? - mos

banq發表於2022-11-21

編寫最少程式碼行的人通常在處理最難的問題。這是Twitter的運維人員釋出的貼子,馬斯克收購了Twitter以後,只留下會寫程式碼的工程師:

作為一個擁有10年以上行業經驗的SRE和系統管理員,下面是一些對bird網站的完整性構成真實的威脅的場景。 

就背景而言,我已經看到這些問題中的某些變體對一個10億使用者的應用程式構成了嚴重的威脅。我甚至自己也造成了幾個技術性較強的問題。我還參與了對更多問題的處理和修復。

1)隨機硬碟填滿了。
你不知道一個硬碟盒子被損壞導致整個系統的級聯故障有多常見,即使是設計良好的有主動維護的容錯系統也是如此。這個盒子在哪裡?是什麼在填充它?誰來弄清楚?

2)網路的物理問題導致DC癱瘓。
我知道Twitter主要是在內部,我已經看到了在一個大的新聞事件中,當一棵樹撞斷了關鍵的光纖線路時會發生什麼。

3) 錯誤的程式碼推送導致網站癱瘓。
防止這種情況的發生是我的日常工作,我可以告訴你,對於任何一個SRE團隊來說,這都是最可怕的情況之一,更何況是一個完全人手不足、疲憊不堪的團隊。

4) 錯誤的程式碼同時也破壞了推送新程式碼的能力。
對於像我這樣的團隊來說,這絕對是噩夢般的情況。當這樣的事情發生時,所有的人都在努力。如果沒有對系統的深入瞭解,你可能永遠無法恢復它。

5)神秘的SEV。
突然間,網站變黑了。儀表板是紅色的。一切看起來都很糟糕。沒有任何跡象表明原因。你需要召集大部隊。那些名字以基金會結尾的團隊。他們是誰?你怎麼稱呼他們?

6) 資料庫被破壞了。
這是個大問題。所有東西都著火了。誰是這個問題的專家?

7)發現了iOS應用中的一個關鍵安全漏洞。你需要快速修復。
你有一個專家團隊,他們知道如何在蘋果的卡夫卡式的官僚機構中進行應用更新,對嗎?我當然希望你有。

8)有人注意到,透過載入一個特定的URL,可以閱讀其他人的DMs。
這是一個SEV1,大規模的,全員參與的關鍵問題。你需要那些深刻理解你的隱私抽象是如何工作的人,以及如何修復它們。

9) 網站在凌晨4點就會變黑。
值班人員不知道出了什麼問題。你*需要*一個IMOC(事件經理待命),他知道該叫醒誰,為什麼,以及如何叫醒。這個人瞭解你的系統,能夠以閃電般的速度綜合資訊,並協調恢復工作。

10)你用來*找其他系統*的系統內部發生故障。
你的所有系統都不能相互交談。該網站和你的所有工具都立即失效。你所需要的用於恢復突發變化的工具都被搞壞了。你能用一個骨幹團隊來解決這個問題嗎?

11) 現在是星期五下午5點。儀表盤一下子全部變紅。
網路艦隊出現了級聯式重啟。磁碟從星期三開始就被填滿了。週三,在多個相互關聯的系統中,有數百次的程式碼修改。撤銷其中任何一項,風險自負......

12)哦,該死。你恢復了其中一個。
現在每個鎖定賬戶的推文對所有人都是可見的。人們可能真的會因為他們的帖子而被人用砍刀殺害。這不是一個假設性的問題。現在是晚上9點。該網站已經完蛋了。你打算給誰打電話?

13)確保伺服器的變化可以安全地推送到prod的系統正在失效。
你有,比如,30000個必須執行的測試,以確保隱私/安全/合規/可靠。其中一個測試導致了失敗。你能找到它嗎?另外,現在是世界盃期間。

14)菲律賓的一個使用者即將在平臺上釋出CEI。
你*不能*讓這些內容存在。你的員工與菲律賓執法部門有關係嗎?你有你的內容稽核系統嗎?你有你的版主嗎?

15)聯邦調查局想檢查他們認為即將犯下911事件的人的DMs內容2:原子彈。
你是否有一個系統來准許他們訪問?你會拒絕他們的訪問嗎?你怎麼知道那真的是他們?

16) 你允許他們進入。現在,來自一個以可怕的國家的人正在敲門。他們有一張看起來很正式的傳票。你會讓他們看到一個持不同政見者的DMs嗎?你能說清楚原因嗎?你可能需要這樣做,在歐洲某地的一個非常正式的法庭上。

17)另一個國家告訴你,他們希望你所有的使用者資料都儲存在他們國家的伺服器上。你有那個國家的政策專家嗎?你有很多**積極的律師嗎?你有知道如何對你的資料進行分割槽的infra eng嗎?

18) GDPR。你被發現違反了。一個由100多名工程師、律師、政策專家、設計師和經理組成的團隊花了幾個月的 "硬核工程",才在一開始就符合規定。你能恢復嗎?我向你保證,不這樣做的代價將超過一個組織的人員數量。

19)每天都有一次,在凌晨12:13,你的資料管道中的一個特定服務會慢到爬。它似乎沒有造成任何問題,但你有點擔心,因為它似乎越來越糟糕。你是否指派了一個SRE來檢視一下?你還有人在嗎?

20)你用來發現其他服務的服務工作得很好,但你的一個最好的工程師做了一些計算,發現它不能擴充套件到更多的使用者和更多的服務,(假設)你想建立一個叫做X的超級應用,你會重寫嗎?怎麼做?

21) 你決定重寫。8個月後(笑),你的新系統已經準備好迎接第一批使用者了。誰在協調遷移工作?他們真的*瞭解複雜的系統嗎?他們擅長與人打交道嗎?他們能執行嗎?他們有他們需要的領域知識嗎?

22) 你剛剛從微軟為一個核心組織僱用了一個看起來不錯的工程總監。慢慢地,他們組織的生產力變慢了,減員率攀升了**。主任發誓說一切都很好。如果你解僱這個總監,你的一個副總裁突然有了18個報告。怎麼辦?

23) 一個工程師剛剛踢掉了重啟艦隊的命令。哎呀,他們沒有使用--慢速。現在你所有的快取都是空的。所有的。每一個請求都會直接進入資料庫。DB瞬間就超載了,有些開始OOM,重啟迴圈...。你如何重新填充快取?

24) 世界盃。這是**的決定性事件。我們曾經為流量排行榜開過觀看會。你的網站在一個星期內得到的流量是令人震驚的。它是在巨大的爆發中。它把你的每一個系統都測試到了極限。如果有一個系統壞了,希望它不會連帶影響。它將會。

25)新年前夕,美國東海岸。每年都是如此。我記得我坐在辦公室外面,煙花在遠處爆炸,瘋狂地打電話給影片oncall。每個人都會發布他們的焰火影片。*每個人*。這將填滿磁碟,並將你的頻寬測試到極限。

26) 我以前說過,但是... CEI。如果你處理不當,如果你的政策人員和律師不是他媽的頂尖的,你*會*被拉到國會面前,在法官面前,在晚間新聞中,如果你正在經營一家社交媒體公司,你不會想去的地方。

27) 你們辦公室的人身安全。保安告訴我,他們保留了*長的瘋子名單,把他們記在心裡。

28)種族滅絕。人們利用你的平臺來策劃大規模的謀殺,教堂裡的那種大砍刀。

29) 叛亂。數百萬人將利用你的平臺來策劃對政府的叛亂。你會使用第28條的工具來阻止他們嗎?你會任其發展嗎?你如何決定?如果你聽之任之,下週在一個你非常喜歡的國家發生同樣的事情怎麼辦?
 

相關文章