什麼是 SRE,以及有何影響?
最適合開始的地方,通常都是起點。 讓我們先問問最基本的問題:「什麼是網站可靠性工程?」關於這個問題,我們常會聽到很多答案,最常引用的答案來自創造這個詞的人 (Google 的 Ben Treynor Sloss),但最實際的答案是這個:
網站可靠性工程是一項工程準則,其致力於協助組織持續達成適當的系統、服務和產品可靠性等級。
稍後,我們會加進其他定義,但先從這裡開始。 此定義有三個我們必須先提出來討論的重要部分,讓我們直接跳到「這為什麼很重要?」 問題帶來幫助。
可靠性
最核心 (也落在 "SRE" 這名稱中間) 的是「可靠性」這個字。 這個定義並不是說「適當的效能等級」、「適當的效率等級」、「適當的穩定性等級」或甚至「達到適當的收入等級」。 而是說「適當的可靠性等級」。 為什麼?
讓我們看一個簡單的示範。 這裡有一個螢幕擷取畫面。 您認為其中顯示的是什麼? 在您有任何想法或放棄之前,請試著停留在這裡。 注意:如果很難在此圖片中發現很多細節也沒關係,這會在您的瀏覽器上完美呈現。
這張圖片是 PHP 應用程式 (未加上其他偵錯支援) 在失敗時的螢幕擷取畫面。 如果是 Java 應用程式,您可能會看到這個:
為什麼要看這些例子? 這些例子分別代表可能會讓企業花費大量時間、心力和資源來建立的應用程式。 但如果應用程式未執行、未在客戶需要存取時運作、不可靠,則對任何人都沒有好處,對企業更是如此。 事實上,缺乏可靠性會對企業造成實質傷害 (聲譽、財務、合約、道德等方面)。
這就是為什麼 SRE 選擇以可靠性當作基本特質,可能是服務、系統或產品的基本特質。 可靠性可包含許多內容 (我們稍後會討論),但讓我們繼續進行定義的第二個重要部分。
適當的可靠性等級
您在第一次閱讀定義時可能還未掌握這一點,但讓我們強調另一個重要的字:
網站可靠性工程是一項工程準則,其致力於協助組織持續達成「適當」的系統、服務和產品可靠性等級。
為什麼這個字那麼重要?
SRE 領域觀察到很重要的一點,那就是只有少數的系統和服務需要 100% 可靠。 值得一提的例外包括航空、醫療裝置這類事關生命的情況。
事實上,還有少數情況甚至不要求可靠性。 達成更高可靠性所需要的心力和資源 (也就是成本),會在追求更高可靠性的過程中急遽增加。 換句話說,追求您不需要的可靠性會浪費時間和金錢。 建議您達成適當的系統、服務和產品可靠性等級。
等級必須與商務需求相符,而且要務實。 例如,我們的客戶可能會透過不是 100% 可靠的網路與您連線 (假設它的運作時間為 90%)。 花費精力與金錢來確保您的服務達到 95% 的可靠性,顯然是浪費時間與金錢。 建議您達成適當的系統、服務和產品可靠性等級。
SRE 更進一步實踐務實主義。 如果我們有想要達成的可靠性等級,若成功達成或超過該等級,我們該做什麼嗎? 同樣地,如果沒有達成呢? 我們會稍後在課程模組中回答這些問題。
持續達成
在我們繼續之前,必須先強調定義中的最後一個單字是「持續」。 持續是指人員的角色。 我們必須建立可持續的作業方式。 人員建置可靠的系統、服務和產品。 如果我們不採取行動以確定我們工作的永續性。 如果我們在每天上午 3:00 透過頁面喚醒我們的人員,而不讓他們與家人共度時光。 如果他們沒有機會花時間照顧自己。 那麼,他們根本就無法建置可靠的系統。 SRE 認為我們必須實作能夠持續一段時間的作業方式,員工才能夠有最佳的工作表現。