網站高可用架構設計

應用服務器的高可用結構
數據庫服務器的高可用架構
緩存服務器是否須要高可用架構?
負載均衡服務器也須要數據庫

什麼是高可用?緩存

可用:
可以對外提供正常服務。服務器

高可用:
絕大部分時間,對外可以提供正常服務。網絡

一直可用是不現實的,也是不可能的。架構

網站高可用架構設計

-------------形成網站不可用的緣由主要有3點:
1.服務器硬件故障
如今通常採用牲口模式,集羣部署,一臺或多臺機器宕機常常發生
全部即使是這種故障發生了,也要保證咱們的系統可以正常對外提供服務。負載均衡

2.發佈新應用程序
通常都會部署新的應用程序,而後再重啓服務,會形成服務短暫的不可用,這種更常見ide

3.應用程序自己出了問題
01:程序存在內存泄露,時間長了內存被戰佔滿,重啓才能恢復,也會致使短暫的不可用
02:測試環境沒通過充分的測試,或測試和生產環境的差別,致使上線以後程序不可用測試

針對以上,的解決方法:網站

----------------------------------網站高可用架構設計:架構設計

1.從硬件層面加入必要的冗餘
目前來講,一個架構中,至少應該有兩臺一樣的應用服務器,若是一臺出了問題,還可用切換到另外一臺,繼續對外提供服務。再配置一臺負載均衡器。

數據庫服務器也是同樣,經過數據冗餘備份,和失效轉移機制,來保證高可用。即使是主庫故障了,也會切換到備庫繼續進行服務。

因此,測試人員,知道了這個集羣的架構以及原理,就能夠針對這個架構設計測試用例,好比針對一臺機器或者多臺機器宕機、恢復的狀況。

2.灰度發佈
使用灰度發佈的前提,是應用服務器必須使用集羣架構。
好比有多臺服務器,可用先拿掉一臺,部署新應用,而後重啓服務,從新掛載到集羣架構中,讓其接受真實的外部流量,看新版本應用程序是否正常,若是不正常,那麼回滾,若是正常,那麼相繼替換掉多臺服務部署新應用,直到所有替換完成。

3.增強上線前的測試,或者開啓預發佈驗證
測試環境沒問題,不表明生產環境沒問題,尤爲是測試環境和生產環境差別比較大的狀況。
01:網絡限制是否同樣?
02:依賴的第三方服務是否同樣?好比測試環境連的是第三方服務的沙箱環境,生產環境接的是真實環境

爲了不環境的差別,可能須要開啓預發佈驗證。預發佈服務器的惟一區別是,不會經過負載均衡服務器對外暴露,只有知道ip地址的內部人員才能訪問。因此能夠進行快速的自動化測試驗證,若是經過,則進入到灰度測試階段。

相關文章
相關標籤/搜索