歡迎您光臨本站 註冊首頁

分享【web架構改造方案】

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

分享【web架構改造方案】

分享【web架構改造方案】


  隨著業務的增長,現有架構已經不能很好的滿足用戶訪問需求,為了更好的滿足用戶需要,提高用戶體驗,現計劃對現有web應用服務架構進行擴展,故制定本方案。

1.    現有架構
1.1.    現有架構拓撲
現有架構中共三台伺服器,環境拓撲如下



1.2.    現有架構描述
目前,線上運行的環境共三台伺服器:
web緩存伺服器:對網站靜態內容做緩存,主要用於減輕後端web負載
Web伺服器:web伺服器採用LAMP結構,用於實現php代碼解析
資料庫伺服器:使用mysql資料庫,用於存儲網站動態內容

1.3.    現有架構所面臨的問題
網路/系統安全:在電子商務平台這種應用中,安全性不言而喻。在目前現有環境中,我們的系統沒有任何安全防護措施,而是直接暴露在公網上。所以,我們的系統面臨著重大安全隱患。

可擴展性:目前共三台伺服器,分別為緩存、web、資料庫。單伺服器性能有限,如針對於現架構進行同類應用擴展(如繼續增加vanish、繼續增加web),一來實現比較困難,二來擴展一定程度後會成為整個系統瓶頸(很難再繼續擴展)。

高可用性:一個在線業務應用平台,最根本的保障就是為用戶提供7X24小時不間斷服務,在現網環境中,三台伺服器均為單點,如任何一台伺服器發生任何軟/硬體故障將會導致整個服務停止,從而影響業務正常運轉。

性能:硬體,是一個系統的最低保障,它位於系統/程序的最底層,硬體的性能高低將直接影響上層(操作系統、應用程序)的應用性能。目前,硬體性能受影響的主要包括內存、硬碟。內存:我們的伺服器均為8G內存,如果想利用緩存功能(web、mysql自身緩存功能)來提升網站整體性能,內存將面臨耗盡狀態。硬碟:目前現有環境伺服器硬碟均為raid1和raid5,像針對於對硬碟I/O要求較高的應用(如mysql),硬碟也將成為影響系統性能的重要原因之一。



2.    改造后架構
2.1.    改造后架構拓撲
改造后的架構共六台伺服器、一台防火牆、一台交換機,具體環境拓撲如下:





2.2.    改造后架構描述
為了更直觀的描述新架構,下面對新架構分為五個層描述
安全防護層:針對於一個企業而言,系統、網路、數據的安全性的重要性在此不再描述,在本架構中之所以juniper硬體防火牆原因如下
?硬體防火牆數據處理速度/性能遠遠高於軟體防火牆
?本架構將硬體防火牆部署到了系統最外圍(只有防火牆自己處於公網,伺服器均處於內網),這將最大限度的提高了內網系統安全(如在防火牆上實現對內網伺服器映射、運維人員在連接伺服器時需要撥入防火牆上的VPN、拒絕惡意訪問源地址對系統的訪問)



數據交換層:在原有架構中,三台伺服器和其它企業的伺服器共用同一個交換機,雖然交換機劃分了VLAN,但是無法保障我們的系統處於一個單獨的內網中,增大安全隱患(交換機劃分VLAN只能減少廣播,無法真正做到物理隔離)。新架構使用自己的交換機,一是為了增加內網設備安全,二是為了監控整個網路(所有設備)所使用的流量。

負載均衡層:負載均衡共使用了兩台伺服器,一主一備。之所以使用負載均衡一來為了以後伺服器擴展,而是為了實現高可用(主負載均衡故障后將自動切換到備負載均衡)。目前主流的軟負載均衡程序主要包括lvs、nginx,lvs主要用於四層負載,nginx主要用於七層負載,在此使用nginx也是考慮到減少二次擴展(七層負載均衡可實現四層和七層負載;四層負載均衡只能實現四層負載,無法實現七層負載)

Web應用層:web應用層共三台web伺服器,一來解決單點故障,二來可以均分負載,且當web伺服器負載飽和后可通過并行增加web伺服器的方法來實現擴容。新架構使用nginx+php(fastcgi)來做web容器,nginx用於處理靜態內容,Nginx具有高併發特性(單機理論支持五萬併發,實際最高併發為三萬左右);php(fastcgi)用於處理動態內容,在此選擇php的fastcgi模式也是出於性能考慮,因為php的fastcgi模式性能高於普通的php模式(普通php每次解析代碼時都會反覆載入php配置文件,fastcgi模式只在php啟動時載入一次放於內存中)。

資料庫層:新架構資料庫為兩台,一主一從(兩台資料庫實時同步)。改為主從的出發點主要有四點,第一是保障資料庫的高可用性,如當主資料庫軟/硬體發生故障無法繼續提高服務時可將服務切換到從資料庫;第二是提升資料庫性能,如對資料庫進行定期備份時將會佔用較大系統資源,部署成主從環境后,可將備份操作在從資料庫進行,從而不影響主資料庫性能;第三是保障資料庫安全,如人為在資料庫執行一些命令,可能由於誤操作導致數據丟失或資料庫無法運行,部署成主從模式后像人為類資料庫操作可在從資料庫進行,從而增強了主資料庫的安全性/穩定性。第四是提高擴展性,等日後數據量較大時,通過增加從伺服器並實現資料庫讀寫分離來增強資料庫負載。
《解決方案》

給個word的吧

[火星人 ] 分享【web架構改造方案】已經有267次圍觀

http://coctec.com/docs/service/show-post-1889.html