- 可觀測性工程
- (美)夏麗蒂·梅杰斯等
- 1168字
- 2023-11-10 17:32:27
推薦序三
窺見更遠:望遠鏡和軟件可觀測性
軟件可觀測性是近年來快速發(fā)展的一個主題,從技術到商業(yè),我們看到圍繞該主題誕生了無數新思想和新產品。雖然這是一本技術書籍,不過這里我想聊聊關于可觀測性的意義和一些更接近根源的東西。
有記載的最早的望遠鏡概念可追溯到1608年10月,荷蘭一位名叫Hans Lippershey的眼鏡商人提交的一份專利,其中描述了一種能將遠處的東西放大的裝置,距今已經400多年。這400多年是人類科學突飛猛進的時期,望遠鏡就像眼睛一樣,讓我們得以看清宇宙和萬物,也因此成為科學中最重要的儀器之一。從第一臺望遠鏡誕生到現在,我們擁有了各種各樣的望遠鏡:對宏觀世界,有玩具雙目望遠鏡到哈勃太空望遠鏡;對微觀世界,有顯微鏡到LHC。科學史從某個角度來說是一部望遠鏡的進化史,一部可觀測性技術的進化史,也是一部我們對客觀世界的理解不斷深入的歷史。
將不可見的世界變成可見是我們理解客觀世界運行規(guī)律的重要方式,因為不管你看不看和相不相信,這個世界就在此處不由分說地運轉著。說回軟件世界,我于20世紀90年代進入IT行業(yè),當時的軟件系統還都比較簡單,大多都是單機系統,對于可觀測性的理解基本在于日志和基于源碼或者二進制的軟件調試技術。從單機的維度來說,這基本已經足夠了。但是隨著2000年后互聯網行業(yè)的崛起,分布式系統開始登上舞臺,在早期的簡單分布式系統中,可觀測性并沒有得到足夠的重視,依舊延續(xù)著單機系統的思路:出了問題查詢一下日志就好了!這在很長時間也相安無事。但是后來隨著我們的應用和系統越來越復雜,再加上分布式系統比單機系統的不確定性更高(考慮到網絡聯通性),即使我們能夠實現代碼,也已經不再能夠輕易地知道系統的運行狀態(tài),這時迫切需要現代的“望遠鏡”。對于我們這一代軟件工程師,最重要的事情之一就是改變我們看待軟件可觀測性的態(tài)度,正視這是一門系統性技術甚至是一門科學。其實如果從上面提到的人類進步史來看,望遠鏡的發(fā)明和發(fā)展幾乎同步于我們對世界的理解,類比到我們現在所身處的云計算時代,可觀測性技術的成熟無疑會推動我們理解和實現云上的復雜系統,對此我毫不懷疑。
這個方向仍然處于黎明期,有很多難題還有待解決,例如,如何盡可能消除觀測對業(yè)務帶來的影響?如何以更低的成本存儲可觀測性數據?如何以更加符合人類直覺的方式快速向管理員展示系統的全貌以便于快速地定位故障和準確歸因?
回到這本書,本書行文方式非常落地且直觀,通過實際的案例和一線軟件工程師的經驗分享,令人信服地把可觀測性的哲學和理念變成可參考的實踐。除了技術之外,也有關于團隊管理以及軟件工程與現代可觀測性技術結合的思考,相信無論是初學者還是行業(yè)老兵,程序員還是技術管理者,都能從本書中有所收獲。
最后,我想以希爾伯特的一句名言來結束這篇序言:
Wir müssen wissen. Wir werden wissen.(我們必須知道,我們終將知道)。
黃東旭,PingCAP聯合創(chuàng)始人&CTO
2023年2月16日寫于美國硅谷