- 可觀測性工程
- (美)夏麗蒂·梅杰斯等
- 3288字
- 2023-11-10 17:32:29
前言
感謝你閱讀我們就現代軟件系統可觀測性工程所寫的這本書。我們的目標是幫助你在工程團隊內開展可觀測性實踐。本書融合了我們在可觀測性實踐和工具(這些工具可以提升用戶的可觀測性實踐)開發方面的經驗。
作為在軟件工程中推動可觀測性實踐的倡導者,我們希望本書能夠清晰地闡明可觀測性在現代軟件系統背景下的含義——“可觀測性”一詞最近在軟件開發生態系統中得到了廣泛應用。本書旨在通過對以下內容進行深入分析,幫助你將事實與炒作區分開來:
? 在軟件交付和運營的背景下,可觀測性的含義。
? 構建基礎組件來實現可觀測性。
? 可觀測性對團隊動力的影響。
? 可觀測性規模化的考慮因素。
? 在組織中建立可觀測性文化的實用方法。
目標讀者
可觀測性主要關注如何更好地理解現實世界軟件的運行方式。因此,本書對負責開發生產應用程序的軟件工程師非常有用。當然,任何支持在生產中運行軟件的人都會從本書中受益。
此外,對于想了解可觀測性實踐如何為組織帶來好處的軟件交付和運營團隊經理,本書(特別是側重于團隊動力、文化和規模的章節)將為他們提供有益參考。
任何幫助團隊交付和運營生產軟件的人(例如產品經理、支持工程師和利益相關者),以及對“可觀測性”這一新事物感到好奇和存疑的人,都會從本書受益。
為什么寫這本書
可觀測性已成為一個熱門話題,并廣受關注。隨著它的普及,“可觀測性”不幸被誤作“監控”或“系統遙測”的同義詞。可觀測性是軟件系統的一個特征。而且,只有當團隊采用新的實踐進行持續開發時,才能在生產軟件系統中有效利用這一特征。因此,將可觀測性引入系統既是一個技術挑戰,也是一個文化挑戰。
我們對可觀測性話題充滿熱情,而且直言不諱。我們對它如此熱衷,以至于成立了一家公司,致力于將可觀測性力量帶給所有管理生產軟件的團隊。我們率先推出了一類新的可觀測性工具,其他供應商也紛紛效仿。
雖然我們都為Honeycomb工作,但寫這本書并不是為了向你出售工具,而是為了解釋我們如何以及為什么將可觀測性的原始概念應用于管理現代軟件系統。你可以使用不同的工具以不同的方式實現可觀測性。然而,我們相信依據我們在軟件行業推進可觀測性實踐所做出的貢獻和積累的經驗,我們可以編寫一份詳細描述常見挑戰和有效解決方案的實踐指南。無論你選擇何種工具,你都可以應用本書中的概念來動手構建具有可觀測性的生產軟件系統。
本書旨在讓你了解使用可觀測性管理生產軟件系統的團隊所面臨的各種考慮因素和挑戰。有時,我們可能會以Honeycomb為例來說明如何應對共同的挑戰。這些不是對Honeycomb的認可,而是對抽象概念的實際說明。我們的目標是向你介紹工作原則,不管你使用什么工具都可以在其他環境中應用這些原則。
你將學到什么
首先,你將了解什么是可觀測性、如何識別可觀測系統,以及為什么可觀測性最適合管理現代軟件系統。你還將了解可觀測性與監控之間的區別,以及為什么和何時需要不同的方法。你還將了解為什么行業趨勢有助于普及對可觀測性的需求,以及它如何適應新興生態系統,如云原生生態系統。
然后,我們將介紹可觀測性的基本原理。我們將研究為什么結構化事件是可觀測系統的構建塊,以及如何將這些事件拼接成鏈路(trace)。事件是由內置在軟件中的遙測技術生成的,你將了解開源計劃,如OpenTelemetry,這些計劃有助于啟動探測過程。你將了解基于數據的調查過程(用于定位可觀測系統中的問題來源),以及它與傳統監控中使用的基于直覺的調查過程有何實質性差異。你還將了解可觀測性和監控如何共存。
在了解了這些基本的技術概念之后,你將了解隨著可觀測性的采用而出現的社會和文化因素。在生產環境中管理軟件是一項團隊運動,你將了解如何使用可觀測性來更好地塑造團隊動力。你還將了解可觀測性如何融入業務流程、如何影響軟件供應鏈,以及如何揭示隱藏的風險。當我們研究如何使用服務水平目標(SLO)來實現更有效的告警時,你還會了解如何將這些技術和社會概念付諸實踐,并深入了解為什么在使用可觀測性數據時,告警既可操作又可調試。
接著,你將了解大規模實施可觀測性解決方案時面臨的固有挑戰。我們將首先介紹你在決定是否購買或構建可觀測性解決方案時應考慮的因素。可觀測性解決方案的一個基本性質是,它們必須在迭代研究期間提供快速答案。因此,我們將向你展示如何在管理超大數據集時解決高效數據存儲和檢索的固有挑戰。你還將了解何時引入事件采樣等解決方案,以及如何在權衡中找到適合你的需求的正確方法。你還將學習如何使用遙測流水線管理大量數據。
最后,我們將探討采用可觀測性文化的組織方法。除了向團隊介紹可觀測性之外,你還將學習跨整個組織擴展可觀測性實踐的實用方法。你將學習如何識別關鍵利益相關者并與之合作,如何使用技術方法贏得合作伙伴,并為采用可觀測性實踐提供商業案例。
我們大約3年前就開始寫這本書,之所以花了這么長時間才出版,部分是因為可觀測性領域正在迅速變化,實踐也在不斷進步。
排版約定
本書中使用以下排版約定:
斜體(Italic)
表示新的術語、URL、電子郵件地址、文件名和文件擴展名。
等寬字體(Constant width)
用于程序清單,以及段落中的程序元素,例如變量名、函數名、數據庫、數據類型、環境變量、語句以及關鍵字。
該圖示表示一般性說明。
示例代碼
可以從https://oreil.ly/7IcWz下載補充材料(示例代碼、練習、勘誤等)。
這里的代碼是為了幫助你更好地理解本書的內容。通常,可以在程序或文檔中使用本書中的代碼,而不需要聯系O’Reilly獲得許可,除非需要大段地復制代碼。例如,使用本書中所提供的幾個代碼片段來編寫一個程序不需要得到我們的許可,但銷售或發布本書的示例代碼則需要獲得許可。引用本書的示例代碼來回答問題也不需要許可,將本書中的很大一部分示例代碼放到自己的產品文檔中則需要獲得許可。
非常歡迎讀者使用本書中的代碼,希望(但不強制)注明出處。注明出處時包含書名、作者、出版社和ISBN,例如:
Observability Engineering,作者Charity Majors、Liz Fong-Jones和George Miranda,由O’Reilly出版,書號978-1-492-07644-5
如果讀者覺得對示例代碼的使用超出了上面所給出的許可范圍,歡迎通過permissions@oreilly.com聯系我們。
O’Reilly在線學習平臺(O’Reilly Online Learning)
40多年來,O’Reilly Media致力于提供技術和商業培訓、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網絡,他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經驗。O’Reilly的在線學習平臺允許你按需訪問現場培訓課程、深入的學習路徑、交互式編程環境,以及O’Reilly和200多家其他出版商提供的大量文本和視頻資源。有關的更多信息,請訪問http://oreilly.com。
如何聯系我們
對于本書,如果有任何意見或疑問,請按照以下地址聯系本書出版商。
美國:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中國:
北京市西城區西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
要詢問技術問題或對本書提出建議,請發送電子郵件至errata@oreilly.com.cn。
本書配套網站https://oreil.ly/observability-engineering上列出了勘誤表、示例以及其他信息。
關于書籍、課程、會議和新聞的更多信息,請訪問我們的網站https://www.oreilly.com。
我們在LinkedIn上的地址:https://linkedin.com/company/oreilly-media
我們在Twitter上的地址:https://twitter.com/oreillymedia
我們在YouTube上的地址:https://www.youtube.com/oreillymedia
致謝
如果沒有Honeycomb領導的支持,本書是不可能完成的,感謝Christine Yen、Deirdre Mahon和Jo Ann Sanders。如果沒有合作者利用業余時間不眠不休地相互督促,本書也不可能出版,感謝Rebekah Howard、Elly Fong-Jones和Dino Miranda。如果沒有他們的努力,這本書可能還處在籌劃階段。
我們要特別感謝其他貢獻者,他們通過分享不同的觀點和專業知識,使本書的內容更加充實。第16章是由Ian Wilkes(Honeycomb Retriever引擎的作者,該引擎是案例研究的基礎)和Joan Smith(審查參考外部文獻的技術準確性)促成的。第14章由Frank Chen撰寫,第18章由Suman Karumuri和Ryan Katkov撰寫,感謝他們分享了他們在Slack用可觀測性管理超大規模應用程序所獲得的知識和經驗教訓。非常感謝Rachel(pie)Perkins對本書早期幾章的貢獻。感謝Honeycomb許多員工的大力支持,這些年來,他們幫助我們探索了通過可觀測性所能實現的效果。
最后,感謝眾多的外部審校者:Sarah Wells、Abby Bangser、Mads Hartmann、Jess Males、Robert Quinlivan、John Feminella、Cindy Sridharan、Ben Sigelman以及Daniel Spoonh-ower。在整個創作過程中,我們不斷修改,納入了更廣泛的觀點,并重新審視了概念。盡管我們都為Honeycomb工作,但我們的目標始終是編寫一本客觀而全面的書,詳細說明可觀測性在實踐中是如何工作的,而不管具體的工具選擇。感謝我們的審校者保證了本書的客觀性,并幫助我們完善和豐富了本書的表述。