盡量好懂的容器化技術演化史 (三):備份、備援、叢集

更新於 發佈於 閱讀時間約 8 分鐘



  有了客戶端,也有了伺服端,服務正式開始工作,接下來我們就會開始討論故障的問題了。

  如果有個客戶端故障,比如說你的智慧手機故障好了,那你會怎麼處理?

  換手機,故事結束。


  但是如果有個伺服端故障了,比如說證券交易伺服器故障好了,該公司會發生什麼事情?

  違約條款,好一點就是大家都沒有年終,壞一點就是大家都沒有工作,故事結束。


  所以說伺服端是絕對不能故障的。

  伺服端的故障是非常恐怖的事情。以 IT 建置來說,具規模的伺服端服務,都會花超過一倍的成本來維持服務的不故障,假設明明整個伺服器服務 100 萬的成本就可以順跑了,他們可能會出 300 萬來保證服務的安全。


  故障又有分兩種,一種是資料損壞,另一種是服務掉線。


  資料損壞這件事的嚴重性通常高於服務掉線,服務掉線的話,就是當服務從無法使用到恢復使用的時間有『閒置成本』,但資料損壞的話,如果壞到重要資料不可逆的情況,公司是很可能被一波帶走的。


  要避免資料損壞,最直觀的步驟稱為『備份』,就是當原始數據或系統遭遇問題,可以使用來恢復這些數據或系統運行的功能。


  常見的就是備份 321 了:3 份資料,2 種介質,1 個異地。


  『3 份資料』就是所有資料要存三份,至於要如何讓所有儲存的資料都保有一致性,而不會出現版本 1、版本 2、版本 3,這就是軟體工程師該努力的了。

  『2 種介質』就是為了因應對介質災難時可以使資料安全。比如說用光碟和磁碟去存同樣的資料,當地球被高強度電磁風暴掃到之時,全世界的磁碟統一報廢的類世界末日之際,光碟裏的資料也不會陣亡。

  『1 個異地』就是備份的資料起碼要放在兩個不同的位置 (異地)。有些機構會要求異地 30 公里的物理距離,據說是考慮到被核彈打到後的波及半徑,不要說資料被幹走,就算被一顆核彈打到,資料依然不能陣亡。


  好了,做到這一步,縱使其中一個機房被核彈打到,再同時加上被全球性電磁風暴掃到,資料還是可以活著。

  你說想太多?

  不,IT 沒有所謂想太多,只有「這件事的價值值不值得做這麼多」,所謂 IT 大程度上就是價值與金錢的權衡考量。



  我們保證了資料安全,接下來就輪到服務安定了。


  要如何保證服務不掉線呢?

  基本的策略其實很單純,就是多份。

  比如說每台伺服器裏面要有兩顆 CPU,每個伺服器服務程式要有兩個,網路線各自插兩條,硬碟兩個兩個一組 (Raid),電源供應器兩顆,同樣規格的伺服器要兩台,供電來源要接兩條來自不同供電廠的線,就連工程師都聘用兩個 (所以有些工程師就真的是招進去放著,跟買保險一樣)。

  這個步驟稱為『備援』,當主要系統或設備發生故障時,能夠無縫切換到備用系統。正在運作的電腦設備故障時,要有另外一個完全相同的設備可以撐一下,然後發 Alert 給職守的工程師,在備用的電腦設備正在撐一下的時候,偷偷地把故障的部件修好。


  當然不見得都是 2 的倍數。

  正常可能 5 台工作機配上 2 台備援機之類的,但備援的中心思想就是,假設其中一個單點 (Node,就是說一個設備) 故障了的話,要有另外一個可以工作的單點去無縫切換。


  是的,我舉例了『5 台』工作機去當『一個』伺服端的角色。

 ​這種把數台電腦給串聯起來,使其形成一個巨大的電腦單體,把很多台電腦假裝成一台電腦的做法,就叫做『叢集 (Cluster)』,在叢集裡的每台電腦都稱為一個​點 (Node)。

  叢集結構的大前提就是:「用戶只在意服務是否正常,並不在意是哪台電腦提供服務」,只要可以把商品發貨,管它老闆是老王還是小明。


  在這個階段,可以這樣去想像整個伺服器架構:


                                 -----機房--------
:【客戶端電腦】 -> 伺服端 (叢集) |【電腦 A (物理)|
                                 |【電腦 B (物理)|
                                 |【電腦 C (物理)|
                                 -----------------
                                 【備份資料 B

                                 【備份資料 C


  客戶端只要去訪問伺服端系統就可以了,至於是哪台伺服器提供服務的,客戶端不管。

  你可以想像你的服務其中一個單點可能在美國,另一個單點在南港;或是誠品跟博奕公司的機房搞不好其實是鄰居,AWS 的機房直接圈半層樓的數量,2024 以前大部分的亞洲 AWS 服務都在日本或新加坡嗎?所以是哪台伺服器提供服務客戶端不管,也沒意義。


  叢集結構可以擁有以下好處:


1. 電腦 A 燒壞了,B 電腦必須要可以繼續提供服務。

2. 電腦 A 的運算能力滿載,電腦 B、C 可以分擔運算需求。

3. 如果 A、B、C 三台電腦服務不過來龐大的業務量,因為已經是叢集結構了,所以隨時可以增添第四台的電腦 D 去分擔。


  可以做到上述的要求,就稱為伺服器系統符合高可用性 (High Availability, HA)。

  HA 的目的是最小化停機時間、系統避免因單點故障導致服務中斷、快速故障恢復。主要就是冗餘設計、故障轉移機制以及分散負載,更進一步的還會要求監控與自動化。


  啊還是故障了怎麼辦?

  是啊,即使做到這個規模了,伺服端系統還是可能掛掉。臉書會掛掉,ChatGPT 會掛掉,Office 365 也會掛掉,你以為臉書的電腦叢集是 3 台 5 台嗎?它們的電腦叢集是 3 『座』 5 『座』樓廠的,但即使如此,服務還是可能掛掉。


  這種時候就只能把工程師叫起來了哈哈哈,這就是 on-Call,派人快點把中斷的服務修好,避免閒置成本擴大。

  假設公司可以接受的合理閒置成本是 15 分鐘,工程師們就要討論出 15 分鐘內恢復上線的對策;如果不幸地真的發生了伺服端系統掛掉的狀況,使用了恢復對策但卻超過 15 分鐘,就要檢討跟改進。


  沒人願意讓服務中斷,但扣掉天災以外,服務中斷也可能是人禍。

  之前聽過一個案例,有一間做跨國服務的公司,它們的伺服端大半夜被一個不知道在幹嘛的駭客掃射 (DDoS),服務癱瘓。那時候第一線的監控人員要做的第一件事就是打電話,把整個公司的人都叫起來開始戰鬥。


  這絕對不是很熱血的故事,像極了一塊沒有彈性的肝。

  所以服務中斷就……大家體諒一下吧?


  然後事情繼續發展。

留言
avatar-img
留言分享你的想法!
avatar-img
史詩 C 的解說練習的沙龍
1會員
4內容數
2025/01/05
  在上文提到叢集技術,就是將多台電腦偽裝成一台電腦,以讓電腦可以在理論上無限地擴充,解決了電腦資源不足的問題。如果一台電腦來不及處理,那就開兩台偽裝成一大台,處理電腦算力不足的效能瓶頸。   所以理所當然地,在由『物理機』電腦所組成的叢集裏頭,最小單位是『一台』物理機。   可是電腦越來越
2025/01/05
  在上文提到叢集技術,就是將多台電腦偽裝成一台電腦,以讓電腦可以在理論上無限地擴充,解決了電腦資源不足的問題。如果一台電腦來不及處理,那就開兩台偽裝成一大台,處理電腦算力不足的效能瓶頸。   所以理所當然地,在由『物理機』電腦所組成的叢集裏頭,最小單位是『一台』物理機。   可是電腦越來越
2024/12/14
  電腦服務是很講究所謂『角色』的。   同樣都是人,會因為其特長與選擇而在社會上扮演不同的角色,異曲同工。同樣都是馮紐曼結構的機器,也會因為所特化的方向不同,或是在整個電腦服務的位置不同,而扮演不同的角色。   在電腦服務裏頭,會有兩個很基本的角色,一個是
2024/12/14
  電腦服務是很講究所謂『角色』的。   同樣都是人,會因為其特長與選擇而在社會上扮演不同的角色,異曲同工。同樣都是馮紐曼結構的機器,也會因為所特化的方向不同,或是在整個電腦服務的位置不同,而扮演不同的角色。   在電腦服務裏頭,會有兩個很基本的角色,一個是
2024/12/09
前言   本文是為了解釋服務應用程式,如何從位於單一電腦上運作的執行環境,逐步演化成在容器化技術上執行應用程式的形式。本文並非以深入探討技術為目的,而是基於為並未具有資訊知識或背景,並初次接觸微服務讀者講述其演化與關係,故本文並非嚴謹的技術文檔。   在不違反易讀之前提下,本文將盡量提供專有
2024/12/09
前言   本文是為了解釋服務應用程式,如何從位於單一電腦上運作的執行環境,逐步演化成在容器化技術上執行應用程式的形式。本文並非以深入探討技術為目的,而是基於為並未具有資訊知識或背景,並初次接觸微服務讀者講述其演化與關係,故本文並非嚴謹的技術文檔。   在不違反易讀之前提下,本文將盡量提供專有
看更多
你可能也想看
Thumbnail
在企業IT環境,系統和數據的備份的重要性相信是不用解說,亦不用懷疑的。 但很時時候,企業忽略的並不是備份,而是Drill test的重要性。
Thumbnail
在企業IT環境,系統和數據的備份的重要性相信是不用解說,亦不用懷疑的。 但很時時候,企業忽略的並不是備份,而是Drill test的重要性。
Thumbnail
#科技力 保證工作站作業系統和應用程式穩定運行是設備正常工作的前提條件,一旦出現故障,輕則系統當機,操作暫時失控,資料丟失;重則機器無法開機,資料盡失。因此,及時對工作站系統備份顯得特別重要。 目錄 1.映像檔(關於映像檔)備份和還原 2.常見映像檔備份工具比較 3.映像檔備份及還原教學文件
Thumbnail
#科技力 保證工作站作業系統和應用程式穩定運行是設備正常工作的前提條件,一旦出現故障,輕則系統當機,操作暫時失控,資料丟失;重則機器無法開機,資料盡失。因此,及時對工作站系統備份顯得特別重要。 目錄 1.映像檔(關於映像檔)備份和還原 2.常見映像檔備份工具比較 3.映像檔備份及還原教學文件
Thumbnail
你是否想過,如果哪些第三方服務突然中斷或是遭到駭客攻擊,會對你的單位造成什麼影響?本文會透過具體案例,解析資安事件發生時,駭客從攻擊服務供應商到進入單位內部的不同階段,並附上自檢表讓讀者迅速檢視自己是否對於供應鏈資安事件有所準備。
Thumbnail
你是否想過,如果哪些第三方服務突然中斷或是遭到駭客攻擊,會對你的單位造成什麼影響?本文會透過具體案例,解析資安事件發生時,駭客從攻擊服務供應商到進入單位內部的不同階段,並附上自檢表讓讀者迅速檢視自己是否對於供應鏈資安事件有所準備。
Thumbnail
習慣數位化的生活 當數位發展迅速且普遍的現在,人們跟資訊的關係,可比任何關係的還要緊密,怎麼會這麼說呢? 你每天起床後,第一件事是去看你身旁的枕邊人嗎? 還是下意識地伸手去拿手機,並打開來滑幾下? 更何況,又不是人人都有另一伴,但肯定絕大多數都有智慧型手機,不用統計,就能先猜這個比例應該逼近98%、
Thumbnail
習慣數位化的生活 當數位發展迅速且普遍的現在,人們跟資訊的關係,可比任何關係的還要緊密,怎麼會這麼說呢? 你每天起床後,第一件事是去看你身旁的枕邊人嗎? 還是下意識地伸手去拿手機,並打開來滑幾下? 更何況,又不是人人都有另一伴,但肯定絕大多數都有智慧型手機,不用統計,就能先猜這個比例應該逼近98%、
Thumbnail
如果你還是決定繼續使用NAS,在不花錢請專業資安人員的前提下,自己多花一點時間學習如何設定是必要的。天下沒有白吃的午餐,任何解決方案都是有利有弊。 在這個離不開電子資料的年代,提升自己的資安知識,我想已經是每個人無可迴避的義務。
Thumbnail
如果你還是決定繼續使用NAS,在不花錢請專業資安人員的前提下,自己多花一點時間學習如何設定是必要的。天下沒有白吃的午餐,任何解決方案都是有利有弊。 在這個離不開電子資料的年代,提升自己的資安知識,我想已經是每個人無可迴避的義務。
Thumbnail
鎖住資料小撇步-雲端異地備份 2022/03/03全台大停電影響各縣市,造成多方面的受損,無論是學校、企業、交通都有重大的影響。針對企業或學校,電腦硬體設備因停電而受損,資料遺失,是不是覺得很懊惱呢?就讓我來教你吧! 雲端異地備份的優點 防止系統故障,資料受到影響 使用雲端備份,節省硬碟儲存空間
Thumbnail
鎖住資料小撇步-雲端異地備份 2022/03/03全台大停電影響各縣市,造成多方面的受損,無論是學校、企業、交通都有重大的影響。針對企業或學校,電腦硬體設備因停電而受損,資料遺失,是不是覺得很懊惱呢?就讓我來教你吧! 雲端異地備份的優點 防止系統故障,資料受到影響 使用雲端備份,節省硬碟儲存空間
Thumbnail
上周公視新聞片庫傳出資料遭外包廠商誤刪事件,一時成為熱門話題,其實類似觀念之前已討論過(作為工程師你有「手滑」釀禍過嗎? 在工作上降低出錯率比追求好技術更為重要),很多人一直咎責為何廠商會誤刪(難道又手滑?)還有異地備援問題,甚至疑惑這類誤刪事件怎麼層出不窮,難道沒辦法遏止嗎? -
Thumbnail
上周公視新聞片庫傳出資料遭外包廠商誤刪事件,一時成為熱門話題,其實類似觀念之前已討論過(作為工程師你有「手滑」釀禍過嗎? 在工作上降低出錯率比追求好技術更為重要),很多人一直咎責為何廠商會誤刪(難道又手滑?)還有異地備援問題,甚至疑惑這類誤刪事件怎麼層出不窮,難道沒辦法遏止嗎? -
Thumbnail
日前公共電視台的影片檔案在交由外部廠商備份時,出現了數十萬筆資料完全消失的嚴重錯誤。無論是備份的技術問題、或是人為操作失誤,這個現象都凸顯了「災難性單點失誤」在公視流程中的存在。這種失誤不僅會出現在備份時,也會在人事、財務、管理上發生;於是本文就以備份為例,來討論一下這個問題。
Thumbnail
日前公共電視台的影片檔案在交由外部廠商備份時,出現了數十萬筆資料完全消失的嚴重錯誤。無論是備份的技術問題、或是人為操作失誤,這個現象都凸顯了「災難性單點失誤」在公視流程中的存在。這種失誤不僅會出現在備份時,也會在人事、財務、管理上發生;於是本文就以備份為例,來討論一下這個問題。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News