2017-01-25 分類: 網站建設
網站穩定性的建設是一項綜合的系統工程,就像人的健康一樣,如果平時不注意健康飲食、不注意鍛煉,時間一長身體肯定會出問題,對穩定性的考量也是貫穿整個研發生命周期的。
在網站的架構設計時就要考慮穩定性:考慮到網絡光纖有可能被挖斷,如果只有一個機房那就悲劇了,100%的流量都沒了,甚至要考慮自然災害的影響而多地建設機房。
穩定性的建設中有兩個重要因素:一是思想上重視,開發人員對穩定性的重視(也就是敬畏之心)可以避免70%~80%6的故障;二是規范和工具的建設,用以保障穩定性。
(1)架構階段的穩定性建設項目
一個網站要有好的穩定性,必須在架構設計階段就做長遠考慮,就像建房子要先打好地基一樣,否則樓建得越高越危險。建設高穩定性的架構必須注意以下幾點。
避免單點。高可用架構設計的第一條就是要避免單點,從概率出發來看,無論是機器還是人,沒有什么東西是不會犯錯的,盡量避免某個完整的環節成為單點是架構設計的原則。但是,在某些場景中,有些功能必須放在同一個應用中,例如統一登錄、網關、安全過濾等,此時要保證盡量按照人群來劃分,不要在邏輯上出現單點;或者盡量把服務拆成組件遷到不同的端上執行,例如,可以把安全服務作為一個模塊集成到 Nginx或者應用機器中,而不是把它做成一個遠程服務接口。
分組隔離。把應用拆得更細一點,不同的功能模塊做成單獨的分組,每個分組占用一部分機器集群,這樣可以做到服務分組隔離,避免不太重要的分組對重要分組的影響?,F在非常流行的微服務就是一種非常好的分組隔離的實踐。異步化。在系統設計中要讓盡可能多的遠程調用異步化,這也是一項重要原則。很多時候會因為一個不太重要的功能的強依賴拖垮了整個應用,所以要盡量把不太重要的依賴改成異步調用,避免影響主調用鏈路的穩定性。
異地容災。考慮到很多不可抗力因素的影響,我們需要設計網站的異地容災甚至全球部署策略,這些不可抗力的事件往往會影響網站的整個架構,必須做長遠打算
(2)編碼階段的穩定性建設
編程階段的穩定性建設尤其重要,一個好的程序在編碼階段就決定了整個應用系統的質量,所以在編碼階段要注意下面一些規則。
錯誤捕獲。一個優雅的系統必然有一套優雅的異常處理機制,在適當的地方如1O處理、遠程調用、多線程等關鍵處捕獲異常非常重要,防御性編程可以更好地保證系統的健壯性。
異步線程。在一些批處理調用的地方采用異步線程可以保證主請求的正常返回,同樣也可以做到部分的隔離,防止部分請求掛起整個應用。
超時處理。在遠程調用或者調用外圍設備時,非常有必要設定超時時間,這樣可以保證所有的請求都有一個可預知的返回結果。
限流保護。每個應用都有一個承載極限,超過這個極限就會帶來很大的不確定性,因此,設置自我保護機制可以保證程序的健壯性。
(3)測試階段的穩定性建設
測試是程序上線前的最后一道保障,測試也是驗證程序是否達到預期功能的手段,在本階段要注意以下事項。
自動化對比測試。對比測試就是用線上真實的環境和數據與預發環境對相同的業務接口做返回值的比較,以此判斷新上線的代碼是否符合預期。Beta測試。在線上的真頭壞境中遠取著個言機器上的數據,以此驗證程序是否正確。
(4)發布階段的穩定性建設
發布階段穩定性建設應留意以下事項。
分批發布。分批發布可以降低發布風險,不僅可以減少系統部署重啟引起的RT抖動,也可以在發現問題時立即終止發布。
多版本發布。合并部署是將多個應用系統同時部署在同一個Web容器實例中、共享同一個進程,每個應用之間相互隔離,但是應用之間的RPC是通過本地調用而不通過網絡調用。
(5)運行階段的穩定性建設項目
運行階段穩定性建設要做好幾件事:實時監控報警、過載保護和自動降級、實時數據對賬,核心原則是實時發現問題,提供必要的保護措施。
實時監控報警。線上監控必須包含系統監控,主要是監控服務器的CPU、Load磁盤、內存等一些系統指標的異常情況;應用監控主要是監控響應時間、QPS異常錯誤等;業務監控主要是監控一些業務指標是否有異常(如實時的下單量、司機和乘客的在線數量業務指標)。
過載保護和自動降級。線上運行中的系統需要有一些保護措施,如系統的某些指標達到瓶頸時要有必要的保護;當Load達到系統的高瓶頸時需要拒絕些請求,以防止系統被壓垮;涉及一些遠程調用時可以設置大并發數,一旦超過該閥值就自動 fast fail以保護系統。
實時數據對賬。這屬于業務監控范圍。在涉及一些敏感信息時,為了確保正確性,需要有實時的對賬校驗,最典型的就是資金數據,以及涉及跨單元數據復制時對數據一致性的對賬檢查。(6)故障發生時的穩定性建設
一旦發生故障,最重要的就是快速止損、定位故障并快速恢復。按照經驗,當故障發生時,第一反應就是快速回滾了解故障現象,根據故障現象判讀故障原因,進而找出解決辦法。
減少故障的定位時間和快速恢復策略在故障發生時是至關重要的。
快速定位障可以縮短故障的復時間。如何定位故障?據統計,90%6的故障都是由變更所致,所以快速收集變更信息和線上機器的異常數據非常重要,但難點在于這些數據往往散落在各個地方,并且格式多樣。
快速恢復。影響故障恢復時間的一是故障定位時間,二是所采用的快速恢復的手段。例如在多版本部署出現故障時,可以通過快速網站建設切換版本來恢復;在異地多活的情況下可以把流量切換到不同的單元來止損。
本文題目:穩定性網站建設思路
標題路徑:http://m.newbst.com/news43/72993.html
網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站建設等
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容