背景 不同於《編寫代碼的「八榮八恥」》,《穩定性「三十六計」》是應用於設計階段的非手腳架方式的標準化。 在實際工作中,通常會提倡給新人機會,讓他們自己去設計系統。這時候如果沒有一種標準化的check機制,會影響整個系統的質量。《穩定性「三十六計」》在實際項目中,我們作為設計階段的checklist來 ...
背景
不同於《編寫代碼的「八榮八恥」》,《穩定性「三十六計」》是應用於設計階段的非手腳架方式的標準化。
在實際工作中,通常會提倡給新人機會,讓他們自己去設計系統。這時候如果沒有一種標準化的check機制,會影響整個系統的質量。《穩定性「三十六計」》在實際項目中,我們作為設計階段的checklist來用。實現了從有重大變更允許出小錯到架構演進過程中周可用性不低於3個9。
同時,我們是一個做容器化的團隊。不斷實踐和總結好的方法並且推廣這些方法,讓所有的部門都更標準化的設計和開發更利於容器發揮自身的優勢,為打造更穩定、更易用、更省錢的HULK系統打下基礎。
WHAT
下麵是我們容器的剩餘資源歷史記錄功能在設計階段的穩定性「三十六計」checklist.
WHY
設計有很多好的原則:避免過渡設計、防止破窗……但是對於新人來說落地困難。穩定性「三十六計」給出了具體的設計方法,使用這種方法可以達到下麵的效果:
少就是多
少就是多是穩定性的重要原則。穩定性「三十六計」里通過消除臨時、鏈路精簡、負代碼行、最小API、避免重覆、拒絕環路六項更可量化的措施來保證。
可擴展性
無狀態化、冪等設計、讀寫分離、容量冗餘四個方法給負載均衡、避免單點提供瞭解決方案,使得系統可X軸、Y軸擴展。
內聚解耦
配額管控、嚴格準入兩個方法實際上將一個功能拆分成了兩個階段。先check再do。非同步通信將一個過程拆分成兩個過程,降低了兩個過程之間的相互作用。
防止雪崩
超流熔斷、禁止批量、超時重試、分級管理、快速失敗五個方法有效避免問題邏輯對其他邏輯引起的干擾,防止問題擴大。
提高性能
緩存為王、無鎖併發、梯級存查、流量緩存、本地代理、避免串聯六個方法也是業務比較流行的提高性能的錯誤。
故障運維
兜底策略、先驗確保、前置載入三個方法將問題控制在前面的階段。開關上線、灰度升級、應急預案、支持回滾四個方法在產生問題時給出了有效的應急解決措施。
對於一些新人來說,劃分邊界和領域是相對困難的事情。穩定性「三十六計」提供了設計思路。同時,我們不重覆造輪子,設計時引用了很多基礎設施時,很多穩定性「三十六計」的內容是通過第三方來保證的,而這個checklist有效的促使設計者進行反向設計,使用的時候也去瞭解其原理。
HOW
請參考《穩定性「三十六計」》系列文章。