精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

萬字長文淺談系統穩定性建設

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-02 10:31 ? 次閱讀

1. 背景

京東的期中考試:618即將到來,各個團隊都在進行期中考試前的模擬考試:軍演壓測,故障演練,系統的梳理以檢測系統的穩定性以應對高可用,高性能,高并發。我們知道系統的穩定性建設是貫穿整個研發流程:需求階段,研發階段,測試階段,上線階段,運維階段;整個流程中的所有參與人員:產品,研發,測試,運維人員都應關注系統的穩定性。業務的發展及系統建設過程中,穩定性就是那個1,其他的是1后面的0,沒有穩定性,就好比將萬丈高樓建于土沙之上。本篇文章主要從后端研發的視角針對研發階段和上線階段談下穩定性建設,希望起到拋磚引玉的作用,由于本人的水平有限,文中難免有理解不到位或者不全面的地方,歡迎批評指正。

2. 研發階段

研發階段主要參與人員是研發,主要產出物是技術方案設計文檔和代碼,一個是研發階段的開始,一個是研發階段的結束,我們要把控好技術文檔和代碼質量,從而減少線下bug率及線上的故障;

2.1 技術方案

2.1.1 技術方案評審

技術文檔的評審需要有本團隊的架構師和相關研發,測試,產品,上下游系統的研發同學參與,這樣能夠最大限度的保證技術方案的實現和產品需求對齊,上下游系統同學也知道我們的實現,采取更加合理的交互方式,測試同學也可以從測試視角給出一些風險點建議,架構師可以確保我們的實現和業界最佳實踐的差異,確保合理性,避免過度設計;我們所要做的是開放心態采取大家的意見,嚴控技術文檔的質量;

技術文檔的評審可以采用提問的方式,會議開始前可以將技術文檔分享給大家,讓大家先閱讀10分鐘,所有同學開始提問,技術文檔設計人其實不用讀自己的技術文檔給大家介紹,只要將大家的問題回答完,并能夠思考下大家的建議,合理的采納后,其實技術文檔的質量就有了很大的保證,有的同學在技術文檔評審時,比較反感大家的提問,總感覺在挑戰自己,有些問題回答不上來,其實可以換種思路:有些問題回答不上來是正常的,可以先將大家的建議采納了,會后再思考下合理性;大家對自己技術方案是建言獻策,是保證自己技術方案的質量,避免在技術方案階段就存在重大的線上隱患。

2.1.2 技術方案關注點

當我們遇到一個問題的時候,首先要思考的這是一個新問題還是老問題,99.99%遇到的都是老問題,因為我們所從事的是工程技術,不是科學探索;我們所要做的就是看下國內外同行針對這個問題的解法,learn from best practices;所以技術方案的第一步是對標,學習最佳實踐,這樣能讓我們避免走彎路;

同時根據奧卡姆剃刀原理,我們力求技術方案簡單,避免過度設計,針對一個復雜的問題,我們的技術方案相對復雜些,簡單的問題技術方案相對簡單些,我們所要追求的是復雜的問題通過拆解劃分,用一個個簡單的技術方案解決掉。同時技術文檔不僅關注功能的實現,更重要的是關注架構,性能,質量,安全;即如何打造一個高可用系統。打造一個高可用的系統是進行系統穩定性建設的前提,如果我們的系統都不能保證高可用,又談何系統穩定系建設那,下面介紹下進行系統穩定性建設我們在技術方案中常用的方法及關注點。

2.1.2.1 限流

限流一般是從服務提供者provider的視角提供的針對自我保護的能力,對于流量負載超過我們系統的處理能力,限流策略可以防止我們的系統被激增的流量打垮。京東內部無論是同步交互的JSF, 還是異步交互的JMQ都提供了限流的能力,大家可以根據自己系統的情況進行設置;我們知道常見的限流算法包括:計數器算法,滑動時間窗口算法,漏斗算法,令牌桶算法,具體算法可以網上google下,下面是這些算法的優缺點對比。

wKgZomaDZlWAVKb4AAKkj7mxlDM485.png

2.1.2.2 熔斷降級

熔斷和降級是兩件事情,但是他們一般是結合在一起使用的。熔斷是防止我們的系統被下游系統拖垮,比如下游系統接口性能嚴重變差,甚至下游系統掛了;這個時候會導致大量的線程堆積,不能釋放占用的CPU,內存等資源,這種情況下不僅影響該接口的性能,還會影響其他接口的性能,嚴重的情況會將我們的系統拖垮,造成雪崩效應,通過打開熔斷器,流量不再請求到有問題的系統,可以保護我們的系統不被拖垮。降級是一種有損操作,我們作為服務提供者,需要將這種損失盡可能降到最低,無論是返回友好的提示,還是返回可接受的降級數據。降級細分的話又分為人工降級,自動降級。

人工降級:人工降級一般采用降級開關來控制,公司內部一般采用配置中心Ducc來做開關降級,開關的修改也是線上操作,這塊也需要做好監控

自動降級:自動降級是采用自動化的中間件例如Hystrix,公司的小盾龍等;如果采用自動降級的話;我們必須要對降級的條件非常的明確,比如失敗的調用次數等;

2.1.2.3 超時

分布式系統中的難點之一:不可靠的網絡,京東物流現有的微服務架構下,服務之間都是通過JSF網絡交互進行同步通信,我們探測下游依賴服務是否可用的最快捷的方式是設置超時時間。超時的設置可以讓系統快速失敗,進行自我保護,避免無限等待下游依賴系統,將系統的線程耗盡,系統拖垮。

超時時間如何設置也是一門學問,如何設置一個合理的超時時間也是一個逐步迭代的過程,比如下游新開發的接口,一般會基于壓測提供一個TP99的耗時,我們會基于此配置超時時間;老接口的話,會基于線上的TP99耗時來配置超時時間。

超時時間在設置的時候需要遵循漏斗原則,從上游系統到下游系統設置的超時時間要逐漸減少,如下圖所示。為什么要滿足漏斗原則,假設不滿足漏斗原則,比如服務A調取服務B的超時時間設置成500ms,而服務B調取服務C的超時時間設置成800ms,這個時候回導致服務A調取服務B大量的超時從而導致可用率降低,而此時服務B從自身角度看是可用的;

wKgaomaDZlaAbv0yAACe9L8G8OM398.png

2.1.2.4 重試

分布式系統中性能的影響主要是通信,無論是在分布式系統中還是垮團隊溝通,communication是最昂貴的;比如我們研發都知道需求的交付有一半以上甚至更多的時間花在跨團隊的溝通上,真正寫代碼的時間是很少的;分布式系統中我們查看調用鏈路,其實我們系統本身計算的耗時是很少的,主要來自于外部系統的網絡交互,無論是下游的業務系統,還是中間件:Mysql, redis, es等等;

所以在和外部系統的一次請求交互中,我們系統是希望盡最大努力得到想要的結果,但往往事與愿違,由于不可靠網絡的原因,我們在和下游系統交互時,都會配置超時重試次數,希望在可接受的SLA范圍內一次請求拿到結果,但重試不是無限的重試,我們一般都是配置重試次數的限制,偶爾抖動的重試可以提高我們系統的可用率,如果下游服務故障掛掉,重試反而會增加下游系統的負載,從而增加故障的嚴重程度。在一次請求調用中,我們要知道對外提供的API,后面是有多少個service在提供服務,如果調用鏈路比較長,服務之間rpc交互都設置了重試次數,這個時候我們需要警惕重試風暴。如下圖service D 出現問題,重試風暴會加重service D的故障嚴重程度。對于API的重試,我們還要區分該接口是讀接口還是寫接口,如果是讀接口重試一般沒什么影響,寫接口重試一定要做好接口的冪等性。

wKgZomaDZleAaFfUAACJ3jRij30690.png

2.1.2.5 兼容

我們在對老系統,老功能進行重構迭代的時候,一定要做好兼容,否則上線后會出現重大的線上問題,公司內外有大量因為沒有做好兼容性,而導致資損的情況。兼容分為:向前兼容性和向后兼容性,需要好好的區分他們,如下是他們的定義:

向前兼容性:向前兼容性指的是舊版本的軟件或硬件能夠與將來推出的新版本兼容的特性,簡而言之舊版本軟件或系統兼容新的數據和流量。

向后兼容性:向后兼容性則是指新版本的軟件或硬件能夠與之前版本的系統或組件兼容的特性,簡而言之新版本軟件或系統兼容老的數據和流量。

根據新老系統和新老數據我們可以將系統劃分為四個象限:第一象限:新系統和新數據是我們系統改造上線后的狀態,第三象限:老系統和老數據是我們系統改造上線前的狀態,第一象限和第三象限的問題我們在研發和測試階段一般都能發現排除掉,線上故障的高發期往往出現在第二和第四象限,第二象限是因為沒有做好向前兼容性,例如上線過程中,發現問題進行了代碼回滾,但是在上線過程中產生了新數據,回滾后的老系統不能處理上線過程中新產生的數據,導致線上故障。第四象限是因為沒有做好向后兼容性,上線后新系統影響了老流程。針對第二象限的問題,我們可以構造新的數據去驗證老的系統,針對第四象限的問題,我們可以通過流量的錄制回放解決,錄制線上的老流量,對新功能進行驗證。

wKgaomaDZlmARjmZAAGyWfz8m9Q637.png

2.1.2.6 隔離

隔離是將故障爆炸半徑最小化的有效手段,在技術方案設計中,我們通過不同層面的隔離來控制影響范圍:

2.1.2.6.1 系統層面隔離

我們知道系統的分類可以分為:在線的系統,離線系統(批處理系統),近實時系統(流處理系統),如下是這些系統的定義:

在線系統:服務端等待請求的到達,接收到請求后,服務盡可能快的處理,然后返回給客戶端一個響應,響應時間通常是在線服務性能的主要衡量指標。我們生活中在手機使用的APP大部分都是在線系統;

離線系統:或稱批處理系統,接收大量的輸入數據,運行一個作業來處理數據,并產出輸出數據,作業往往需要定時,定期運行一段時間,比如從幾分鐘到幾天,所以用戶通常不會等待作業完成,吞吐量是離線系統的主要衡量指標。例如我們看到的報表數據:日訂單量,月訂單量,日活躍用戶數,月活躍用戶數都是批處理系統運算一段時間得到的;

近實時系統:或者稱流處理系統,其介于在線系統和離線系統之間,流處理系統一般會有觸發源:用戶的行為操作,數據庫的寫操作,傳感器等,觸發源作為消息會通過消息代理中間件:JMQ, KAFKA等進行傳遞,消費者消費到消息后再做其他的操作,例如構建緩存,索引,通知用戶等;

以上三種系統是需要進行隔離建設的,因為他們的衡量指標及對資源的使用情況完全不一樣的,比如我們小組會將在線系統作為一個服務單獨部署:jdl-uep-main, 離線系統和近實時系統作為一個服務單獨部署:jdl-uep-worker;

2.1.2.6.2 環境的隔離

從研發到上線階段我們會使用不同的環境,比如業界常見的環境分為:開發,測試,預發和線上環境;研發人員在開發環境進行開發和聯調,測試人員在測試環境進行測試,運營和產品在預發環境進行UAT,最終交付的產品部署到線上環境提供給用戶使用。在研發流程中,我們部署時要遵循從應用層到中間件層再到存儲層,都要在一個環境,嚴禁垮環境的調用,比如測試環境調用線上,預發環境調用線上等。

wKgZomaDZlqAeuvDAAC9rPptQUI732.png

2.1.2.6.3 數據的隔離

隨著業務的發展,我們對外提供的服務往往會支撐多業務,多租戶,所以這個時候我們會按照業務進行數據隔離;比如我們組產生的物流訂單數據業務方就包含京東零售,其他電商平臺,ISV等,為了避免彼此的影響我們需要在存儲層對數據進行隔離,數據的隔離可以按照不同粒度,第一種是通過租戶id字段進行區分,所有的數據存儲在一張表中,另外一個是庫粒度的區分,不同的租戶單獨分配對應的數據庫。

wKgaomaDZluAGKNoAAL4s_FoxwM220.png

數據的隔離除了按照業務進行隔離外,還有按照環境進行隔離的,比如我們的數據庫分為測試庫,預發庫,線上庫,全鏈路壓測時,我們為了模擬線上的環境,同時避免污染線上的數據,往往會創建影子庫,影子表等。根據數據的訪問頻次進行隔離,我們將經常訪問的數據稱為熱數據,不經常訪問的數據稱為冷數據;將經常訪問的數據緩存到緩存,提高系統的性能。不經常訪問的數據持久化到數據庫或者將不使用的數據結轉歸檔到

2.1.2.6.4 核心,非核心隔離

我們知道應用是分級的,京東內部針對應用的重要程度會將應用分為0,1,2,3級應用。業務的流程也分為黃金流程和非黃金流程。在業務流程中,針對不同級別的應用交互,需要將核心和非核心的流程進行隔離。例如在交易業務過程中,會涉及到訂單系統,支付系統,通知系統,那這個過程中核心系統是訂單系統和支付系統,而通知相對來說重要性不是那么高,所以我們會投入更多的資源到訂單系統和支付系統,優先保證這兩個系統的穩定性,通知系統可以采用異步的方式與其他兩個系統解耦隔離,避免對其他另外兩個系統的影響。

wKgZomaDZl2AMFrZAACKyR3_wZw224.png

2.1.2.6.5 讀寫隔離

應用層面,領域驅動設計(DDD)中最著名的CQRS(Command Query Responsibility Segregation)將寫服務和讀服務進行隔離。寫服務主要處理來自客戶端的command寫命令,而讀服務處理來自客戶端的query讀請求,這樣從應用層面進行讀寫隔離,不僅可以提高系統的可擴展性,同時也會提高系統的可維護性,應用層面我們都采用微服務架構,應用層都是無狀態服務,可以擴容加機器隨意擴展,存儲層需要持久化,擴展就比較費勁。除了應用層面的CQRS,在存儲層面,我們也會進行讀寫隔離,例如數據庫都會采用一主多從的架構,讀請求可以路由到從庫從而分擔主庫的壓力,提高系統的性能和吞吐量。所以應用層面通過讀寫隔離主要解決可擴展問題,存儲層面主要解決性能和吞吐量的問題。

wKgaomaDZl2AM8XPAAXTkKZR9Xc831.png

?

2.1.2.6.6 線程池隔離

線程是昂貴的資源,為了提高線程的使用效率,避免創建和銷毀的消耗,我們采用了池化技術,線程池來復用線程,但是在使用線程池的過程中,我們也做好線程池的隔離,避免多個API接口復用同一個線程。

wKgZomaDZl-AK3ZuAAEfdXN3qGY441.png

2.2 代碼Review

codeReview是研發階段的最后一個流程,對線下的bug率和線上質量及穩定性有著重要的作用,針對于代碼如何review,談一些自己的看法:

?形成團隊代碼風格:首先一個團隊的代碼應該形成該團隊的代碼風格,這樣能夠提高codeReview的效率及協作的效率,作為新加入的成員,應該遵循團隊的代碼風格規范。

?Review的關注點:代碼review切記不要陷入細節,主要以review代碼風格為主,如果一個團隊形成統一的代碼風格,我們通過review風格就能將大部分問題發現,在關注功能的同時,再關注下性能,安全。

?結對編程:在代碼編寫過程中,我們要培養結對編程的習慣,這樣針對某次需求,codeReview時,熟悉該模塊的同事把控下細節,架構師把控風格。

?控制每次review代碼量:每次提交代碼進行review時,不要一次性提交review大量的代碼,要將review的內容細分,比如一個方法的實現,一個類等。

?開放心態:review的過程其實是學習提升的過程,通過代碼review,虛心接收別人的意見,學習優雅代碼的編寫方式,提高自己的代碼水平。

3 上線階段

我們可以看下公司的故障管理平臺白虎所記錄的故障:發生系統故障一般都是外部對系統做了改變,往往發生在上線階段:代碼的部署,數據庫的更改,配置中心的變動等;上線階段是故障的高發期;一個系統不可能不出線上問題,我們所要追求的是,降低線上的故障頻率,縮短故障恢復時間。針對上線過程出現問題,我們知道業界有著名的上線過程三板斧:可監控,可灰度,可回滾。

3.1 上線三板斧

3.1.1 可監控

上線的過程中,我們的系統要做到可監控,如果沒有監控,上線過程中我們對系統的狀態是一無所知,是很可怕的。監控什么東西那,其實監控的就是指標。這就涉及到指標的定義,指標我們分為業務指標和技術指標,技術指標又分為軟件和硬件。業務指標一般是我們定義的觀測業務變化情況的度量,例如訂單量,支付量等。技術層面的軟件指標:可用率,TP99, 調用量,技術層面的硬件指標:cpu 內存 磁盤 網絡IO。目前我們二級部門在做OpsReview,主要review的是可用率,TP99,調用量這幾個指標,分別對應系統的可用性,性能,并發。

做好這些指標的監控后,我們接下來需要做的是針對這些指標做好告警,如果某個指標突破設定的閾值后,需要進行告警通知給我們,針對監控告警指標閾值的設置,建議先嚴后松,即系統建設初始階段設置的嚴格些,避免遺漏告警,出現線上問題,后續隨著系統建設的迭代需要設置更合理的告警閾值,避免告警泛濫,造成狼來了的效應。總之上線發布過程的一段時間是事故和問題發生的高峰,這塊一定做好指標監控,日志監控,對報警要敏感。

wKgaomaDZmCABZloAAJ4EvTkqd0445.png

3.1.2 可灰度

上線過程中,我們要做到可灰度,通過灰度執行變更以限制爆炸半徑,降低影響范圍,同時灰度過程要做好兼容。灰度分為不同維度的灰度:機器維度,機房維度,地域維度,業務維度:用戶,商家,倉,承運商等。

機器維度:我們用行云部署時,可以每個分組先部署一部分機器進行灰度,灰度一段時間比如:24小時沒什么問題后,再部署剩余的機器。

機房維度:微服務架構下,我們的應用會部署在不同的機房中,可以按照機房維度灰度,比如先部署發布代碼在某個機房分組下,觀察一段時間再按照比例擴大灰度機房范圍直至全量。例如先部署中云信的機房,灰度一段時間后,再逐步灰度有孚的機房。

地域維度:現在的部署架構都是多機房互為災備,異地多活,單元化部署,例如業界美團的外賣業務非常適合做異地多活,單元化部署,因為外賣業務的商戶,用戶,騎手天然具有聚合性,北京的用戶大概率不會在上海點外賣,這樣根據業務的屬性,在系統建設的時候,從應用層到中間件層,再到存儲層可以單元化部署在上海地域的機房和北京地域的機房,功能發布的時候可以灰度某個地域,做到地域級別的容災。

業務維度:在上線過程中,我們也可以根據業務屬性進行灰度,例如上線了某個功能或者產品,根據用戶維度灰度,某些用戶或者某些商戶才能使用該功能,產品。

3.1.3 可回滾

線上出現問題時,我們應該優先止損,其次才是分析根因。止損的最快方式就是回滾,回滾分為代碼回滾和數據回滾,代碼回滾即將我們代碼恢復到原有的邏輯,代碼回滾有兩種方式:開關控制和部署回滾。最快捷的方式是開關控制,一鍵開關打開或者關閉就可以實現回滾到原有的邏輯,操作成本最低,止損最快速。第二種方式就是部署回滾,通過發布平臺,例如行云將代碼回滾到上個穩定運行的版本。有時候我們代碼回滾完,如果沒有做好向前兼容性,系統應用依然有問題,例如上線過程中產生了新數據,回滾完后,代碼不能處理新的數據。所以這個時候又涉及到數據的回滾,數據的回滾涉及到修數:將產生的新數據無效掉,或者修改為正確的數據等,當數據量比較大時,數據的回滾一般耗時費力,所以建議做好向前兼容性,直接代碼回滾。

3.2 線上問題應對

3.2.1 常見問題分類

針對線上的問題,我們第一步是識別出是什么問題,然后才能解決問題,針對線上各種各樣的問題我們可以進行聚合,歸并分類下,針對每種問題去參考業界的處理方法和團隊的內的緊急預案,做到臨陣不亂。

wKgZomaDZmCAJ-fmAAHMPypCGHc654.png

3.2.2 問題生命周期

當出現問題時,我們也需要清楚一個線上問題的生命周期:從問題發生,到我們發現問題,進而進行響應處理,觀測問題是否修復,服務是否恢復正常,到最終針對該問題進行復盤,當發生系統發生問題時,我們越早發現問題,對業務的影響越小,整個流程如下圖所示。

wKgaomaDZmGAd93gAADjzksrjjQ232.png

3.2.3 如何預防問題

就像人的身體生病一樣,當問題發生已經晚了,我們要投入更多時間和精力到如何預防中,就像扁鵲的大哥一樣治未病,防患于未然。根據破窗原理,一個問題出現了,如果放任不管,問題的嚴重性會越來越大,直到不可挽回。我們可以從研發的規范,研發的流程,變更流程這幾個方面進行預防。

wKgZomaDZmKAGIR7AAIXpHHToQg989.png

3.2.4 如何發現問題

對于一個系統,如果外界不對其做功,根據熵增原理,其會越來越混亂,直到出現問題,外界對其做功,就涉及到改變,因為改變是人在操作,由于各種不可控的因素,也會導致各種線上問題,所以我們可以看到對于一個系統上線后不出現問題是不可能的,當出現問題時,我們第一步是如何快速的發現問題?對于問題發現的渠道,工作中接觸到的有如下幾種:自我意識,監控告警,業務反饋;

自我意識:我們C2部門每周有一個重要會議OpsReview,各個C3團隊會對個團隊的核心接口的不規律跳點,毛刺進行可用率,性能,調用量的review,以通過這種主動的,自我意識行為發現潛在的線上問題。同時我們組每天早會的重要一項:UMP監控全域看板的review,我們會對昨天核心接口的可用率,TP99,調用量,進行分析的,對于可用率降低,TP99有毛刺,不規范的流量調用會進行排查原因,盡早自我發現問題,同時也會對機器的CPU, 內存使用率,Mysql, redis , es各種存儲進行review。

監控告警:這是我們發現問題最常用的渠道,通過主動的監控指標,被動的接收告警來發現問題,告警指標我們分為業務指標和技術指標,具體分類可詳見3.1.1可監控部分

業務反饋:這種發現問題的方式是我們最不愿意看到的,如果等到業務反饋,說明線上問題已經影響到用戶,我們常常因為監控告警的缺失,漏報而導致落后于業務發現問題,所以我們最希望每個人,團隊都有這種自我意識,將線上問題提早發現,防患于未然。

3.2.5 如何響應問題

出現線上問題后,我們個人對問題的認知是非常有限的,并且這個時候人處于一種高度緊張的狀態,所以這個時候一定要群里周知自己的leader,將情況如實表達,不要夸大和縮小問題的范圍和影響,同時將問題進行通告。整個問題的響應過程包含以下幾步:

1.保留現場:問題發生的現場是我們排查問題的依據,所以要將現場的日志,數據等信息保存好,比如內存dump, 線程dump,避免機器重啟后這些信息的丟失。

2.提供信息:提供自己所知道的信息,協助排查,不要擴大和縮小問題

3.恢復服務:當出現線上問題是,我們追求的是以最快的速度恢復服務,快速止損,業界有快速止血,恢復服務的幾板斧:回滾:服務回滾,數據回滾,重啟,擴容,禁用節點,功能降級

4.雙重確認:服務恢復后,我們需要確認是否恢復了,可以通過觀察:業務指標是否正常,技術指標是否正常,數據是否正常,日志是否正常等來觀測問題的恢復情況

5.故障通告:確認問題沒有什么問題后,需要再應急群中周知大家:業務人員,產品經理,系統的上下游,測試人員,SRE等。并讓產品和業務進行確認,然后周知用戶。

3.2.6 如何定位問題

服務恢復后,我們可以回過頭來細致的分析下到底是什么原因導致了線上的問題。定位問題也要講究方法論,這就涉及到定位問題三要素:知識,工具,方法。

知識:相對其他行業,計算機行業應該是知識更新迭代最快的行業,所以我們需要不斷的去學習,更新自己的知識庫,不給自己設限。例如你想解決FullGC問題,你必須對JVM進行系統的學習,想解決慢sql,必須對Mysql進行系統的學習,現在AI大模型這么火,我們也需要對prompt engineering, RAG , Agent, 多模態等進行學習了解。有了知識我們才能遇到問題時,知道是什么,為什么?

工具:工欲善其事,必先利其器,工程師要善于借助公司工具來提高解決問題的效率,熟練使用公司各種中間件工具,公司已經有的中間件,優先使用公司的中間件,公司內一個中間件團隊維護的中間件工具要優于業務研發小組內維護的中間件工具,不要小組內部,或者團隊內部重復造輪子,并且小組內人員的流動變更,容易造成中間件沒人維護。下圖是公司常用的中間件工具:

wKgaomaDZmOAe_ofAAKWRiJB0Bs553.png

方法:解決問題我們要講究方法,選擇正確的方法可以事半功倍,提高我們定位問題及解決問題的效率,下面是我們研發人員常見的排查問題的方法

wKgZomaDZmSAV2GaAAWJuWdZNKw455.png

3.2.7 如何修復問題

有了知識,工具和方法后,其實我們很快的就定位到問題了,定位到問題后,我們就要想辦法如何去把問題修復了,以下是問題修復的流程:

wKgZomaDZmWAXsIBAAD6Z3QVF1I140.png

3.2.8 如何復盤問題

問題發生后,我們需要從此次問題中分析根因,并汲取教訓和經驗,避免犯同樣的錯誤。這就涉及到問題的復盤,如何進行問題的復盤那,一般會經過如下幾個步驟:回顧目標,評價結果,分析原因,總結經驗。例如我們C2部門每周的opsReview會議上都會有線上問題的復盤:coe,如何進行coe復盤談一些自己的思考。

?參考業界的5WHY分析法剖析問題的根因

?5WHY分析法:5代表的是問題的深度,而不是問題的數量

?基于問題的答案繼續進行提問,5個問題是有關聯的,層層遞進的,找到問題的根因

wKgaomaDZmaAc1OEAACNPirxgVc256.png

4 參考資料

??https://itrevolution.com/articles/20-years-of-google-sre-10-key-lessons-for-reliability/?

??https://learn.microsoft.com/en-us/previous-versions/msp-n-p/jj591573(v=pandp.10)?redirectedfrom=MSDN?

??https://sre.google/books/

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    質量視角下的系統穩定性保障--穩定性保障常態化自動化實踐

    常態化穩定性治理。在常態化治理過程中我們將識別問題等重復性有規律的工作實現自動化,技術人員更專注于解決問題。 二、穩定性治理常態化 保障穩定性治理常態化,部門組建了一支由研發團隊、測試團隊、架構師組成的
    的頭像 發表于 11-19 11:19 ?179次閱讀
    質量視角下的<b class='flag-5'>系統</b><b class='flag-5'>穩定性</b>保障--<b class='flag-5'>穩定性</b>保障常態化自動化實踐

    簡化穩定性檢查

    電子發燒友網站提供《簡化穩定性檢查.pdf》資料免費下載
    發表于 10-11 11:23 ?0次下載
    簡化<b class='flag-5'>穩定性</b>檢查

    鳳凰動力舵輪驅動輪的穩定性如何影響AGV的運行效率和穩定性

    舵輪的穩定性對AGV(自動導引車)的運行效率和整體穩定性具有顯著的影響。以下是關于舵輪穩定性與AGV運行效率和穩定性之間關系的詳細分析: 首先,舵輪的
    的頭像 發表于 08-27 13:20 ?289次閱讀
    鳳凰動力舵輪驅動輪的<b class='flag-5'>穩定性</b>如何影響AGV的運行效率和<b class='flag-5'>穩定性</b>

    VCO的頻率穩定性是什么

    VCO(Voltage-Controlled Oscillator,壓控振蕩器)的頻率穩定性是一個關鍵的性能指標,它描述了VCO輸出頻率對輸入電壓變化的敏感程度及在長時間或不同環境條件下保持頻率穩定
    的頭像 發表于 08-20 16:08 ?701次閱讀

    自動控制原理怎么判斷系統穩定性

    自動控制原理是研究控制系統行為和性能的科學。穩定性是控制系統的一個重要性能指標,它描述了系統在受到擾動后能否恢復到平衡狀態的能力。 1. 穩定性
    的頭像 發表于 07-29 10:28 ?1359次閱讀

    貼片電容的穩定性與什么有關系?

    貼片電容的穩定性與其多個方面的因素密切相關,主要包括以下幾個方面: 一、材料因素 材料質量:貼片電容的材料對其強度和韌性有著至關重要的影響。優質的材料能夠提供更好的機械性能和穩定性,減少斷裂的風險
    的頭像 發表于 07-16 14:33 ?356次閱讀

    環路增益的穩定性

    值為單位1且相角為180度時,A(w)=-1則閉環增益為無窮大,這就導致當輸入信號為0時,輸出信號信號不為0,也就意味著電路產生了震蕩。 判斷系統穩定性的依據:奈奎斯特判據,不僅可以判定系統是否
    發表于 06-18 15:00

    影響放大器穩定性的因素

    在電子電路設計中,放大器作為信號放大的關鍵元件,其穩定性對于整個電路的性能至關重要。穩定性良好的放大器能夠確保信號的準確傳輸和放大,避免產生自激振蕩、頻率失真等不良影響。因此,深入了解放大器穩定性
    的頭像 發表于 05-28 14:43 ?1531次閱讀

    運放穩定性的判斷原理的補償原理?

    有反饋的運放是從輸出端到輸入端的反饋支路,但是在電路上輸入和輸出也是通過反饋支路直接電氣連接的,為什么不考慮輸入經反饋支路到輸出端的電路作用? 由反饋之路的數學關系可得知反饋運放的穩定性數學關系,1
    發表于 05-06 22:09

    阿里通義千問重磅升級,免費開放1000萬字長文檔處理功能

    近日,阿里巴巴旗下的人工智能應用通義千問迎來重磅升級,宣布向所有人免費開放1000萬字長文檔處理功能,這一創新舉措使得通義千問成為全球文檔處理容量第一的AI應用。
    的頭像 發表于 03-26 11:09 ?748次閱讀

    什么是熱電偶穩定性?影響熱電偶穩定性的主要因素

    什么是熱電偶穩定性?影響熱電偶穩定性的主要因素 熱電偶熱穩定性怎樣檢測? 熱電偶穩定性是指熱電偶在一定時間范圍內的溫度測量值的穩定程度。在實
    的頭像 發表于 03-08 15:32 ?1407次閱讀

    晶振的頻率容差定義 振蕩器穩定性的重要性 影響頻率穩定性的因素

    、計數器和通信系統等技術應用中。晶振的頻率容差是指其實際輸出頻率與標稱頻率之間的差異。而振蕩器的穩定性則指其長時間運行過程中頻率變化的程度。本文將詳細介紹晶振的頻率容差的定義、振蕩器穩定性的重要性、影響頻率
    的頭像 發表于 01-26 17:12 ?1024次閱讀

    什么是晶振的頻率穩定性?如何確保晶振的穩定性呢?

    什么是晶振的頻率穩定性?如何確保晶振的穩定性呢? 晶振的頻率穩定性是指晶振在工作過程中頻率的變化程度。對于許多電子設備和系統而言,晶振頻率的穩定性
    的頭像 發表于 01-24 16:11 ?1216次閱讀

    如何用AI聊天機器人寫出萬字長文

    如何用AI聊天機器人寫出萬字長文
    的頭像 發表于 12-26 16:25 ?1035次閱讀

    溫度和結構如何影響電阻穩定性

    溫度和結構如何影響電阻穩定性
    的頭像 發表于 12-07 11:38 ?712次閱讀
    溫度和結構如何影響電阻<b class='flag-5'>穩定性</b>