國內(nèi)最好的軟件網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化話術(shù)
實施 SRE 工程,守護(hù)系統(tǒng)的可靠性是一個?期的工作,需要開發(fā)、測試、運(yùn)維以及 SRE 整個團(tuán)隊的努力。而可觀測性平臺天生就是為 SRE 工程服務(wù)的,它致力于實現(xiàn) SLO 目標(biāo)。建立可觀測性不僅僅是運(yùn)維團(tuán)隊的事情,更是整個開發(fā)、測試以及 SRE 團(tuán)隊的事情,這是全團(tuán)隊的工作。
1、開發(fā)團(tuán)隊
從數(shù)據(jù)采集的埋點開始,開發(fā)團(tuán)隊就必須為可觀測性負(fù)責(zé),因為整個產(chǎn)品、服務(wù)和組件都是這個系統(tǒng)的開發(fā)人員構(gòu)建的,沒有人比開發(fā)本身更了解這個系統(tǒng),更能知道系統(tǒng)在運(yùn)行狀態(tài)下該暴露哪些指標(biāo)、日志和鏈路追蹤等遙測數(shù)據(jù)。雖然可觀測性平臺的 Agent 做了很多自動化的工作,但仍然需要開發(fā)人員將屬于自己組件特性的遙測數(shù)據(jù)有效地暴露出來。
2、運(yùn)維團(tuán)隊
運(yùn)維團(tuán)隊是很多企業(yè)中的基礎(chǔ)設(shè)施團(tuán)隊,也是 SRE 工程中重要的一環(huán)。在建立可觀測性時,更需要注重下面這幾個領(lǐng)域的工作。
- 構(gòu)建與管理包括云平臺、Kubernetes 集群、CI/CD、Git 環(huán)境、研發(fā)任務(wù)管理平臺、文檔中心等一系列的面向公司內(nèi)部開發(fā)者的基礎(chǔ)環(huán)境。定義測試環(huán)境、預(yù)發(fā)驗證環(huán)境和生產(chǎn)環(huán)境。
- 充分和合理地利用云原生的特性。例如,使用云計算服務(wù)意味著你將一部分的 SRE 工程交給了云廠商,可以充分利用優(yōu)秀云廠商提供的服務(wù)能力和水平;Kubernetes 已經(jīng)成為了分布式集群事實上的操作系統(tǒng),而云原生標(biāo)準(zhǔn)下的組件都實現(xiàn)了可觀測性的支持,接入云原生組件可以降低構(gòu)建可觀測性的成本。
- 盡可能地收集所有組件系統(tǒng)的所有相關(guān)面的基礎(chǔ)數(shù)據(jù)。組件包括云、主機(jī)、容器、Kubernetes 集群、應(yīng)用、各種終端,相關(guān)面是指性能、網(wǎng)絡(luò)、安全、容量,基礎(chǔ)數(shù)據(jù)包括指標(biāo)、日志、鏈路。實時收集數(shù)據(jù)的成本并不高,但如果沒有收集,一旦系統(tǒng)故障,在需要排查分析問題的時候,就無法有效評估當(dāng)時的狀態(tài)了。
- 設(shè)置相關(guān)的監(jiān)控告警。運(yùn)維團(tuán)隊?wèi)?yīng)該和開發(fā)團(tuán)隊合作,對產(chǎn)品和服務(wù)重要的指標(biāo)建立告警,包括一些低優(yōu)先級的監(jiān)控告警。這樣做的目的是在最終用戶的使用體驗真正受到影響之前,優(yōu)先得知系統(tǒng)中潛在的問題,提前進(jìn)行分析定位,及時修復(fù)。
3、測試團(tuán)隊
此外,測試團(tuán)隊也需要加入到可觀測性的建立當(dāng)中來,測試團(tuán)隊要做的更多的是對產(chǎn)品和功能的理解,他們需要通過可觀測性及時發(fā)現(xiàn)每一次新功能和新版本發(fā)布的問題,并及時反饋給開發(fā)(例如代碼質(zhì)量問題或產(chǎn)品 Bug)或運(yùn)維團(tuán)隊(例如有關(guān)基礎(chǔ)設(shè)施的問題)。
而另一方面,測試團(tuán)隊會通過對系統(tǒng)進(jìn)行壓測、引入混沌工程等操作進(jìn)一步驗證系統(tǒng)的可靠性,提升系統(tǒng)質(zhì)量。這時候,測試人員更加需要借助可觀測平臺了解系統(tǒng)的基線狀態(tài),搞清現(xiàn)場執(zhí)行情況與預(yù)期存在偏差的原因,甚至發(fā)現(xiàn)之前可能根本就無法預(yù)料到的問題,從而對系統(tǒng)進(jìn)行優(yōu)化和完善。
4、SRE 團(tuán)隊
在有的企業(yè),會設(shè)立專門的 SRE 團(tuán)隊,而在有些企業(yè),這并不是一個固定的崗位,而是多個崗位之間的協(xié)同。從建立可觀測的角度來說,SRE 團(tuán)隊需要能夠完成下面這些工作。
- 構(gòu)建和實施軟件,提高系統(tǒng)和服務(wù)的可靠性。例如,建立自動化評估系統(tǒng)的 SLO 狀態(tài),而不是手工根據(jù)一個清單來一一對照。建立可觀測,包括各維度的監(jiān)測、告警等,隨時明確地知道 SLO 的滿足情況。
- On Call 支持。在如今云原生的時代,期望系統(tǒng) 100% 沒有問題是不現(xiàn)實的。出現(xiàn)故障時,我們需要快速找到根本原因。把 SRE 工程師加入到 On Call 支持團(tuán)隊,能讓他們了解應(yīng)用有什么樣的問題、如何解決這些問題以及該如何改進(jìn)(例如,告警是否提供了足夠的信息,問題的分析是否足夠高效等等)。
- 事后的分析和復(fù)盤也很重要。這也是持續(xù)改進(jìn),逐漸提高系統(tǒng)可靠性的重要一環(huán)。每次未被觀測的故障都是進(jìn)一步提升可觀測范圍的絕佳機(jī)會。
系統(tǒng)的可觀測性也需要持續(xù)優(yōu)化和改進(jìn)。針對整個系統(tǒng)的可觀測,包括數(shù)據(jù)收集和分析、監(jiān)測和告警構(gòu)建、標(biāo)簽體系建立等等都需要時間。
此文章為3月Day9?學(xué)習(xí)筆記,內(nèi)容來源于極客時間《深入淺出可觀測性》,推薦該課程。