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

更新於 2024/12/18閱讀時間約 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),服務癱瘓。那時候第一線的監控人員要做的第一件事就是打電話,把整個公司的人都叫起來開始戰鬥。


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

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


  然後事情繼續發展。

留言0
查看全部
avatar-img
發表第一個留言支持創作者!
  電腦服務是很講究所謂『角色』的。   同樣都是人,會因為其特長與選擇而在社會上扮演不同的角色,異曲同工。同樣都是馮紐曼結構的機器,也會因為所特化的方向不同,或是在整個電腦服務的位置不同,而扮演不同的角色。   在電腦服務裏頭,會有兩個很基本的角色,一個是
前言   本文是為了解釋服務應用程式,如何從位於單一電腦上運作的執行環境,逐步演化成在容器化技術上執行應用程式的形式。本文並非以深入探討技術為目的,而是基於為並未具有資訊知識或背景,並初次接觸微服務讀者講述其演化與關係,故本文並非嚴謹的技術文檔。   在不違反易讀之前提下,本文將盡量提供專有
  電腦服務是很講究所謂『角色』的。   同樣都是人,會因為其特長與選擇而在社會上扮演不同的角色,異曲同工。同樣都是馮紐曼結構的機器,也會因為所特化的方向不同,或是在整個電腦服務的位置不同,而扮演不同的角色。   在電腦服務裏頭,會有兩個很基本的角色,一個是
前言   本文是為了解釋服務應用程式,如何從位於單一電腦上運作的執行環境,逐步演化成在容器化技術上執行應用程式的形式。本文並非以深入探討技術為目的,而是基於為並未具有資訊知識或背景,並初次接觸微服務讀者講述其演化與關係,故本文並非嚴謹的技術文檔。   在不違反易讀之前提下,本文將盡量提供專有
本篇參與的主題活動
雖然本身眉毛有一定的濃密度,但中間有些小空隙以及眉尾較稀疏,因此需要使用眉筆更有效率地填補空隙!今天就來跟大家分享近期讓我愛不釋手的眉妝好物🤎mayuota雙頭柔霧眉筆,不僅能快速填補空隙,還能輕鬆描繪出自然霧感的眉型,讓整體妝容更加精緻。
  駄菓子(だがし)約在江戶時代左右出現,相比當時使用進口砂糖製作、常出現在宴席、供品、禮品的上菓子 (じょうがし),用日本產的便宜黑糖或水果增添甜味的菓子則稱為雜菓子(ざがし),雜菓子的原料取得相對簡單,作為庶民的零食也較便宜。當時用一文錢也買得起雜菓子,所以雜菓子也稱一文菓子(いちもんがし)。
雖然本身眉毛有一定的濃密度,但中間有些小空隙以及眉尾較稀疏,因此需要使用眉筆更有效率地填補空隙!今天就來跟大家分享近期讓我愛不釋手的眉妝好物🤎mayuota雙頭柔霧眉筆,不僅能快速填補空隙,還能輕鬆描繪出自然霧感的眉型,讓整體妝容更加精緻。
  駄菓子(だがし)約在江戶時代左右出現,相比當時使用進口砂糖製作、常出現在宴席、供品、禮品的上菓子 (じょうがし),用日本產的便宜黑糖或水果增添甜味的菓子則稱為雜菓子(ざがし),雜菓子的原料取得相對簡單,作為庶民的零食也較便宜。當時用一文錢也買得起雜菓子,所以雜菓子也稱一文菓子(いちもんがし)。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
※ 靜態資源回傳 ※ 什麼是靜態資源: 定義:是指事先準備好的資源,這些資源在伺服器上是靜態的、不會隨著每個請求而改變。 資源通常包括: 靜態 HTML 文件。 CSS。 圖像(Image)。 Video。 字體文件:google fonts。 favicon:網頁名稱旁邊的ico
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
一、什麼是Web Service?   簡單說就是「服務」的概念,人與人間、電腦與電腦間都是一樣的,一個是人與人的一來一回交流,媒介是語言中文,另一個則是個人電腦與伺服器的交流,媒介是HTTP/Internet,那麼有了媒介,就會有共同格式才能做
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
※ 靜態資源回傳 ※ 什麼是靜態資源: 定義:是指事先準備好的資源,這些資源在伺服器上是靜態的、不會隨著每個請求而改變。 資源通常包括: 靜態 HTML 文件。 CSS。 圖像(Image)。 Video。 字體文件:google fonts。 favicon:網頁名稱旁邊的ico
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
一、什麼是Web Service?   簡單說就是「服務」的概念,人與人間、電腦與電腦間都是一樣的,一個是人與人的一來一回交流,媒介是語言中文,另一個則是個人電腦與伺服器的交流,媒介是HTTP/Internet,那麼有了媒介,就會有共同格式才能做
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)