穩定性「三十六計」實戰和背后的邏輯


背景

不同於《編寫代碼的「八榮八恥」》《穩定性「三十六計」》是應用於設計階段的非手腳架方式的標准化。

在實際工作中,通常會提倡給新人機會,讓他們自己去設計系統。這時候如果沒有一種標准化的check機制,會影響整個系統的質量。《穩定性「三十六計」》在實際項目中,我們作為設計階段的checklist來用。實現了從有重大變更允許出小錯到架構演進過程中周可用性不低於3個9。

同時,我們是一個做容器化的團隊。不斷實踐和總結好的方法並且推廣這些方法,讓所有的部門都更標准化的設計和開發更利於容器發揮自身的優勢,為打造更穩定、更易用、更省錢的HULK系統打下基礎。

 

WHAT

下面是我們容器的剩余資源歷史記錄功能在設計階段的穩定性「三十六計」checklist.

 

WHY

設計有很多好的原則:避免過渡設計、防止破窗……但是對於新人來說落地困難。穩定性「三十六計」給出了具體的設計方法,使用這種方法可以達到下面的效果:

少就是多

少就是多是穩定性的重要原則。穩定性「三十六計」里通過消除臨時、鏈路精簡、負代碼行、最小API、避免重復、拒絕環路六項更可量化的措施來保證。

 

可擴展性

無狀態化、冪等設計、讀寫分離、容量冗余四個方法給負載均衡、避免單點提供了解決方案,使得系統可X軸、Y軸擴展。

內聚解耦

配額管控、嚴格准入兩個方法實際上將一個功能拆分成了兩個階段。先check再do。異步通信將一個過程拆分成兩個過程,降低了兩個過程之間的相互作用。

防止雪崩

超流熔斷、禁止批量、超時重試、分級管理、快速失敗五個方法有效避免問題邏輯對其他邏輯引起的干擾,防止問題擴大。

提高性能

緩存為王、無鎖並發、梯級存查、流量緩存、本地代理、避免串聯六個方法也是業務比較流行的提高性能的錯誤。

故障運維

兜底策略、先驗確保、前置加載三個方法將問題控制在前面的階段。開關上線、灰度升級、應急預案、支持回滾四個方法在產生問題時給出了有效的應急解決措施。

 

對於一些新人來說,划分邊界和領域是相對困難的事情。穩定性「三十六計」提供了設計思路。同時,我們不重復造輪子,設計時引用了很多基礎設施時,很多穩定性「三十六計」的內容是通過第三方來保證的,而這個checklist有效的促使設計者進行反向設計,使用的時候也去了解其原理。

 

HOW

請參考《穩定性「三十六計」》系列文章。

穩定性「三十六計」- 配額管控

設置默認的超時和重試是一個基礎設施的基本素養

穩定性「三十六計」- 無狀態化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM