今天是參加鐵人賽的第三十天,意味著此系列文也將告一段落了。
回顧這三十天,我們從 observability 2.0 的角度來看可觀測性工程,了解了:
Observability 2.0 是我先前沒有接觸過的概念,為了達成 single source of truth 的精神,要怎麼處理多個來源且大量的資料著實是一項大挑戰。為了能做到這點,就不得不提如 data lakehouse、Iceberg、Parquet 等相關技術。由於我之前的工作和網頁後端開發、維運比較相關,所以像是這樣和 data engineering 相關的概念幾乎可說是一無所知。甚至即使之前已經有 SRE 的經驗,但是卻沒有使用過 OpenTelemetry,也是在工作接觸以及撰寫鐵人賽的期間才開始慢慢翻文件、動手實作。
此外,我也發現不管是在工作場合或是私下的朋友交流,自己都沒辦法很清楚地說明並解釋一項技術,常常會越說越心虛緊張,到頭來對方也無法明白自己在說什麼,失去了原先交流技術的意義。
所以想著,鐵人賽或許是個很好的學習機會,可以從頭把自己學習的技術再說一遍,從整個系列文的章節編排,到每一天的文章都在取捨哪些要說?要說到哪個程度?敘事順序應該怎麼安排才能讓讀者能更加了解?雖然以前會寫一些技術部落格,但是針對同一個主題連續寫三十篇文章,倒是第一次。
再來,我其實是在完全零存稿的狀況下開賽。在第一天撰寫系列文大綱時,只有大略想好要寫些什麼,例如說 OpenTelmetry、S3 Table 等等⋯⋯是隨著比賽進行,自己在工作期間也翻了許多文件與 POC,才漸漸地對要怎麼架構一套可觀測性系統有了比較明確的想像,例如說要怎麼使用 OpenTelemetry Collector 收集資料、要怎麼設計 data pipeline 轉換資料、哪些儲存後端適合存放可觀測性資料、欄式儲存或列式儲存的取捨為何、Parquet 和 Iceberg 要解決怎樣的問題、AWS 新推出的 S3 Table 服務可以解決哪些問題等等。
甚至 eBPF,也是先前因為興趣使然研究到一半,發現它可以和 OpenTelemetry 串接,所以硬加進來的XD(也或許明年可以寫一個 eBPF 系列!?)
所以這篇系列文並不能說是好?因為每一篇文章其實就是每一天的學習痕跡,每次回頭來看,也會發現現在的自己又比那一天的自己多懂了一些(或者發現文章有錯誤趕快編輯掉),或許這樣就是今年鐵人賽的最大收穫了吧。
最後,我要感謝一起和我參加鐵人賽的朋友紹賢和 Ian,如果沒有每天收到你們發文的通知提醒,我大概早就棄賽了。再來,要感謝我現在的同事與前輩們,雖然網路上的資料非常多,但如果沒有你們的提點和指引,或許我還對如何設計一套可觀測性系統仍舊一無所知。
也期許自己明年能夠繼續參賽,但也希望能與今年不同,是在有存稿、有準備的狀況下參賽,也希望一年後的自己已經累積了更多的經驗與知識,提供更高品質的技術文章,以及在文章中能有更多自己的洞見與經驗分享。