跳到內容
中文 - 繁體

IT災難 - 全球大當,機全怪CrowdStrike?

本篇文章探討了2024年全球IT大當機事件,強調業務連續性在雲架構設計中的重要性。作者分享了如何避免單點故障,並鼓勵讀者從中學習,以提升未來雲端和AI系統的穩健性。

img-nl3-1

開首

你一定知道近期最熱的IT話題,就是全球大當機事件

2024年7月19日,CrowdStrike發佈了一項錯誤的配置更新

導致全球的Windows系統出現重大當機(藍屏死機)

波及全球多個行業,包括航空、銀行和媒體等

造成了嚴重的業務中斷。

之後的這段時間,一半的IT人忙於救火修復,

另一半IT人則在抽水,嘲弄,及出Meme圖

我當然也不執輸,也要一起抽水!

我指手劃腳食花生,直指是CrowdStrike的問題就好了🤨

好像很多受影響的IT部門一樣,責任從來都不是自己的 😤😤

有得賴真方便!

vid-nl3-2

講笑吧,我就會從雲架構師的角度,系統設計的角度來看這個事件

確實是會有些啟發的,一定要看到最後

作為一個有責任感的雲架構師,最好是能夠可以審視看看

有沒有什麼傳統觀念上的設計盲點

把今次事件作為教訓,將來的設計就可以避免類似問題再發生

很奇怪,在今次的大災難,就算是國際航空大企業也是無法倖存

他們一定不缺優秀的系統和雲端架構師,為何仍會老貓燒鬚?

img-nl3-3

你好,我是Alvin,是一名IT雲技術教練與生命教練。幫助有相同志向的同伴走上雲技術的道路

我也幫助自己構建理想IT工作,同時成為我的興趣,做到工作自主, 時間自由

讓我以局外人的身份,由淺入深嘗試解構雲端架構師的想法和設計

雲端架構師要關注的角度有很多。今次讓我們只專注一點去設想

就是業務連續性(Business Continuity)

架構師會用盡辦法,去確保系統運作來支援業務

設計一: 基本的系統設計

最簡單的系統設計,在後端只需要一部伺服器和一個數據庫就能為前端終端機服務

 

設計二: High Availability的系統設計

架構師會擔心任何一個伺服器或數據庫運作異常

所以我們有High Availability的設計

就是用兩台伺服器同時運作,前面配合一個Load Balancer 分配工作

當一台伺服器有異常,另一台伺服器就會迎接所有工作

在數據庫方面,則會有一個後備的作準備

當主數據庫有異常時,後備數據庫就已準備就緒

有着主數據庫最更新的資料,出來補上工作

設計三: Multi-AZ 的系統設計

架構師想多了一想,如果出問題的是Data Centre呢?

於是,他就會把這個架構分散在不同的Availability Zones (AZ)

在雲端世界, AZ 就是Data Centre

以AWS為例,香港就有3個AZ, 星加坡就有2個AZ

這個架構,如放在香港的其中兩個AZ

就算港島區的AZ有事,新界區的AZ仍能維持服務

業務連續性已升到很高的水平

 

設計四: Multi-region 的系統設計

架構師無事做,錢又多,又會再想

我是超大型國際企業,系統是又需要二十四小時運作的

我們不能承受有任何停運作風險

如果香港的所的AZ都壞了,那就不得了

在這個情況,架構師就會設計 Multi-region

就是在星加坡也同樣設立和香港一樣的系統群

當香港的無法運作時,星加坡的就會補上來維持服務

(這個敘述省略了很多細節,我們在這裏就先跳過了吧)

設計五:Multi-planet 的系統設計

你可以想像,這架構是可以繼續無限放大的

如果不限制資金,架構師可以再增加Region的

如果架構師還是不滿意,可以把架構擴展至火星

當地球爆炸了,火星就會補上,不過 …

 … 用戶在那裏了??… 靜過太空 …

從以上的邏輯,你就可以見到底層的想法

就是要避免 Single Point of Failure

(喂, 你講了這麼久,幾時先講到正題?都已經講到上太空了!)

到了到了, 鋪陳已完成

從之前的邏輯, 我們會以向宏觀的方向,多準備後備

來盡可能解決 Single Point of Failure。

可是意料之外,今次問題竟然是在每一部伺服器和終端電腦之中

就算有多少後備都沒有用了!

 

我叫這個變種做:Distributed Single Point of Failure

(哈哈,改個名玩吓啫)

總結

在宏觀下我們難以察覺這個問題的可能性

但是加入了微觀之下, 我們就有新發現了

吸收了今次的教訓,我們下一次應該怎樣重新審視設計?

  1. 不能全用同一家系統保安軟件嗎?(減少用CrowdStrike,加入其他品牌?)
  2. 不能全用同一隻OS?(也用用 Linux, macOS?)
  3. 檢查有沒有用其他的關鍵軟件?
  4. 不要同一時間更新所有OS和軟件?
  5. 每天都全面備份包括OS在內所有系統?
  6. 不能全用同一個雲服務供應商?(用Multi cloud?)
  7. 不能完全用雲端,也要保留On Premise 的系統做後備?
  8. 有策略地準備完全冇腦的人手運作?

業務連續性(Business Continuity) 是Information Security 裏很重要的一環

但是不同的方法,適合不同的公司情況和不同的項目

這些方法都不能一概而論

你也有其他想法嗎? 歡迎繼續討論

與其怪責別人,不如自我進步!

做到持續改善 Continuous Improvement 才是王道

大家一起努力吧!

今天分享就到這裏

【Q&A互動時間】

Q&A 互動時間開始!以下是一些常見問題和我的回答:

這次大當機事件的原因是什麼?

這次事件主要是因為CrowdStrike的一項錯誤配置更新,導致全球多地的Windows系統出現藍屏死機,嚴重影響了多個行業的業務運作。

為什麼即使有高可用性(High Availability)的設計,還是無法避免這次當機?

高可用性設計主要針對硬體故障和數據中心的災難,這次事件是因為軟體配置錯誤,影響了每一部伺服器和終端電腦,所以高可用性設計無法避免這種問題。

是否應該完全避開使用CrowdStrike的產品?

不一定需要完全避開使用CrowdStrike的產品,但可以考慮多樣化安全軟件的選擇,減少依賴單一供應商。

如何在這種情況下保證業務連續性?

保證業務連續性的方法包括設計冗余系統、多地備份、分批次更新、使用多雲策略,以及準備手動操作方案等。

為什麼國際大企業也無法避免這次災難?

即使是大型企業,也可能會在意想不到的方面受到影響,例如這次的軟件配置錯誤。這次事件提醒我們,在設計系統時,不僅需要考慮宏觀層面的冗余和容錯設計,還需要注意微觀層面的細節,避免分布式單點故障(Distributed Single Point of Failure)。

還有其他避免這類問題的方法嗎?

此外,可以考慮加強測試和監控,在發布配置更新前進行更全面的測試,並且設立更嚴格的更新審核流程。此外,教育和培訓員工,提高其對潛在風險的識別

⭐️⭐️⭐️

有意進軍雲端和IT行業的鬥士們

如果有任何問題,歡迎大家在下方留言發問🗨,我很樂意與你分享更多經驗

祝好運並保持積極!

 

留言