
夏麗蒂·梅傑斯 莉茲·方-瓊斯 喬治·米蘭達
本書基於作者在可觀測性領域的豐富實踐經驗撰寫而成,旨在幫助讀者在工程團隊內開展可觀測性實踐。書中深入分析了在軟件交付和運營的背景下可觀測性意味着什麼、如何構建基礎組件來實現可觀測性、可觀測性對團隊動力的影響、可觀測性規模化的考慮因素,以及在組織中建立可觀測性文化的實用方法,還通過豐富的實例展示瞭如何利用可觀測性改進現有的工作,並提供了從傳統工具(如度量工具、監控工具和日誌管理工具)遷移的實際注意事項。本書適合軟件工程師、產品經理、軟件交付和運維人員等閱讀。
《可觀測性工程》這本書分爲五個部分,從歷史到未來,從理論到落地,從團隊到組織,從商業到文化,內容非常全面。對不同角色和職位的人都有不同的意義: 運維:學習掌握本書的內容,可以提升你的眼界和實踐能力;你會更好的識別和反思當前所處的困局,你會從分門別類的監控工具集應用,轉向“聚焦生產環境問題的快速識別和解決”。 SRE:使你對基於SLO的監控更加有信心,特別是升級你對遙測數據採集、數據結構、後臺存儲和在團隊中推廣等方面的認知。你將會更有效的和產品團隊合作。 開發:希望這是你學習可觀測性的第一本書,本書的前三個部分就是你需要學習掌握的部分。掌握了可觀測性驅動開發的概念,你以後就會對應用系統的運行狀態瞭如指掌,它是你 DevOps 和 SRE 技能組合中不可缺少的一個部分。 經理和管理者:建議完整的閱讀本書的所有內容,重點理解第一、四和五這三個部分。如果您已經熟知可觀測性這個概念,可以直接重點閱讀第四和第五部分。這是你在產品團隊中,在整個組織裏大範圍落地可觀測性左移的必備常識。分佈在各個章節裏的真實案例分析是不可錯過的內容。 CxO:建議至少閱讀案例研究,然後重點掌握第四和第五部分。從這些內容中,你可以輕易的瞭解到投資可觀測性的技術要點,用於前期的投資和收益的評判,用於中後期管理的成熟度模型(PS:適用於產品團隊自身的成長和進度評估,不建議用於產品團隊間/部門間的橫向比較和績效考覈)。 《可觀測性工程》書籍中的亮點和創新之處在於:將可觀測性的基礎知識部分,用開發一種全新的可觀測性程序的方式進行描述。首先解釋:這個程序最底層的構建要素的角度是什麼?分析可觀測性的最底層數據結構是什麼?然後,我們可以很容易的將這些數據應用到用它們來描述:應用系統在生產環境中的狀態的變化過程。同時還提到了如何對接開源的 OpenTelemetry 數據;希望開發的同學能對此種描述方法倍感親切,同時讓運維和 SRE 同學也能擁有一個全新的視角。 《可觀測性工程》一書的另外一個獨特之處,是在第八章中引入的“用第一性原理調試應用故障”。雖然可觀測性管理的基本流程也是收集、存儲和分析使用數據的過程,這看起來和其它單點的監控功能相似。但是,有沒有一個統一的思路可以貫穿這個過程始終,並且推動這個過程不斷的循環起來。我總是聽說馬斯克怎樣運用第一性原理指導他在造車和火箭過程中的各種創新,並沒有想到和監控運維管理會有什麼關係。但是本書中所描述的“核心分析循環”還是令我耳目一新。在生產環境排錯的過程中,所有人都將關注點和焦慮點都放在“誰?什麼時候?可以在系統中定位到哪個最準確的唯一(假想中的)的根因(root cause)”。這種過分關注結果的想法,讓我們已經忽略了在 Debug 過程中,我們應該使用什麼思路,去探索未知現象中隱藏的未知的應用運行的多重故障原因。 最後,我認爲一個軟件系統應該擁有三隻眼: 👁 穩定之眼:從 SRE 站點穩定性工程的角度講,系統的穩定性是最重要的feature,沒有之一。我深度認同這個觀點。穩定性包含了服務必須具備的可用性和足夠的性能。只有運行在生產環境中,被用戶能正常訪問和使用的代碼才能發揮出它應有的價值。在運行的過程中,應用系統會宕機,運行環境可能會出問題,這都會導致應用系統的無法訪問和使用;或者系統的 Bug 導致的高錯誤率,讓系統處於半死不活的狀態,用戶也能從界面上看到千奇百怪的錯誤。系統是否進入了非正常的不可用狀態?系統是否正在經歷着性能抖動的過程?錯誤率是否高漲到即將潰壩?這些現象本質是產品的穩定性不足導致的,而這些現象是否可見,故障根源是否能快速定位?我們就需要用到第三隻眼。 👁 混沌之眼:這是一隻作死之眼,它是混沌工程。混沌工程旨在對生產環境中注入人爲的故障,在雲環境中可以使用的手段很多:隨機的關閉虛擬機、隨機的殺死正在運行的進程、在網絡中注入導致網絡擁塞的數據包等等。在錯誤注入的過程中,我們關注於應用系統還是否能正常使用?應用系統如果宕機了的話,它的故障模式是怎樣的?然而,可視化這個過程,可視化應用宕機現場的細節,都需要用到第三隻眼。對於混沌工程的覆盤和數據分析能幫助應用系統提高穩定性,消除單點故障,提升故障容忍度和自動化遷移等等。 👁 可觀測之眼:可觀測性是應用系統本身的一種屬性,可觀測性的呈現不僅需要在應用程序代碼中進行埋點增強(充分條件),還需要方便的採集遙測數據,這些都需要用到可觀測性管理平臺:可觀測信號量的收集、上報、存儲和展現分析等功能。可觀測性管理平臺是‘可觀測性’顯現(外顯)/表現出來的必要條件。
這本書更多的是在推廣可觀測文化,在概念層面上爲我們提供了一個非常廣闊的視野,但是如果你是一個想落地可觀測的開發運維人員這本書能提供的支持就比較有限。我們可以以這本書作爲一個瞭解可觀測全景圖的一個突破口,然後在這個基礎上去填充每一部分一個具體落地實踐。
可觀測是當今運維世界的香餑餑概念,但是都還處於概念階段,很多時候,我們都想要夢想中的那個想有一個什麼問題都能回答的能力,但是可觀測還是一個概念形式,他需要可觀測的文化來浸潤,也需要時間來不斷完善,我看好可觀測,也期待一個可觀測的互聯網世界。
討論可觀測性的書很少,有點驚訝竟然這麼快就看到這本書的中文版了。因爲公司在使用 Honeycomb 的產品,就希望對可觀測性多瞭解一點,不過這本書並不是一本實用類型的書,更適合在這個領域裏面的人,或者其它開發重點選感興趣的章節閱讀。不太習慣書中翻譯,有些術語中文讀上去真的很彆扭。
非常不錯的書,關於可觀測工程的專業書籍甚少,這本書算是非常系統和深入的講解了可觀測的方方面面,並且有很多出自實踐的真知灼見,唯一不太友好的是老外的行文風格,或者說翻譯的方式吧,讀起來有些費勁。
雖然內容有深度,但是技術棧是商業化產品,導致理解起來還是有些成本
翻譯的水平不敢恭維,書中很多話看上去很新奇,有時候也是大家都知道的痛點,但是並沒有給出解決方法,故意調動了情緒,又不提供場景教學,也沒有給出真實的實踐案例。
一本好書,倒是被翻譯爛了,建議有能力的看原版
可觀測性是減小維修時間的良方,但是可用性的牛鼻子仍然是有效的業務監控,不能過度陷於技術的迷霧之中。
經典和熱門書籍,介紹可觀測性理念和最佳實踐