雲上的可觀察性數據中臺,如何構建?
筆者是飛天最早的研發人員之一,曾經參與從0到5000臺飛天集群和操作系統的構建。飛天是一個龐大的軟件系統,既有非常多的模塊,也要跑在幾萬臺物理機上,如何讓分佈式軟件高效地運行離不開監控、性能分析等環節,因此在飛天研發的第一天我們就同時開始研發飛天監控系統“神農”。神農通過採集大量的系統數據,幫助我們更好地理解系統、軟件協作複雜性背後的關係。同時神農也在伴隨著越來越大、越來越多海內外集群的飛天操作系統成長,支撐阿里巴巴集團和阿里雲的業務。在2015年,經歷過一番思考,我們決定把神農抽象成一個更底層的服務——SLS(日誌服務,第一天主要focus在日誌場景中),希望通過SLS能夠服務支撐更多的Ops場景,包括AIOps(智能分析引擎)。 一、構建可觀察性中臺的背景 先說說從一個工程師的角度看到的變化:對一個工程師而言,5年前的工作是非常細分的,研發的工作就是把代碼開發好。但隨著互聯網的發展,業務系統Scope越來越大,需要在質量、可用性和可運維性上有更高的要求。並且為了保障我們的業務是持續改進的,必須在工作中涉及到更多運營的因素,例如統計系統訪問、留存和體驗等情況。 從個人視角轉化到行業視角也能發現一個趨勢:在十幾年前,研發的時間會花在三個部分:創新(編碼),部署+上線,觀察+分析,並且部署+上線會花費大量的時間。近幾年雲計算和雲原生的興起解放了開發運維在部署、上線和環境標準化上的精力。但業務的高要求需要在各個環節中承擔更大的Scope,從多個視角來看待問題。背後就會有大量、碎片化的數據分析工作。 工程師生涯5年變化 如果我們把具體的數據分析工作進行拆分,可以拆解成一個簡單的黑盒。黑盒的左邊是數據源,右邊是我們對數據源觀測判斷後的行動。例如: · 在安全場景中,安全運營工程師會採集防火牆、主機、系統等日誌、根據經驗對日誌進行建模,識別其中的高危操作,生成關鍵性事件,系統根據多個事件進行告警。 · 在監控和運營場景中,這個過程是類似的。無非是把數據源和建模的方法做了替換。 所以我們可以看到,雖然各個場景角色不同,數據源不同,但在機制上我們是可以建立一套系統性分析框架來承載這類可觀察性的需求的。 二、中臺的技術挑戰 構建中臺的思路看起來很直接,要做這件事情有哪些挑戰呢? 我們可以從數據源、分析和判別這三個過程來分析: · 第一大挑戰來自於數據源接入。以監控場景為例,業界有不同的可視化、採集、分析工具針對不同的數據源。為了能建立監控可觀察性體系,需要引入大量的垂直系統。這些系統之間有不同的存儲格式,接口不統一,有不同的軟件體驗,往往難以形成合力。 · 第二大挑戰來自於性能與速度。數據分析的過程實際上是把專家經驗(Domain Knowledge)沉澱的過程,而Ops場景一般都是Mission Critical過程,因此需要非常快地分析速度和所見即所得能力。 […]