Linux主流架構運維工作簡單剖析

luashin發表於2016-06-04

隨著IT運維的不斷髮展,尤其的Linux的飛速發展,越來越多的企業開始使用Linux作業系統平臺,例如CentOS、RedHat、Ubuntu、Fedora等等,成千上億個網站湧現在當今網際網路,網際網路已經成為必不可少的工具,那今天我們跟大家一起來分享討論目前用的最多的Linux下主流網站架構:

LVS+KEEPALIVED(heartbeat)+Squid+Nginx/Apache+JAVA/PHP

+MySQL/MariaDB等,分享一個簡單的拓撲圖,供各位同學實驗參考:

wKioL1R_8KGBix_lAAOwGnwDJWo731.jpg

一般網站總體分為四層,依次為前端負載均衡、中間代理、後端服務、資料庫層。

當然除了這個整體的流程,不同的公司擴充套件的東西也非常多,各種系統不斷的往這個架構裡面新增,形成一個非常龐大、複雜的系統。那接下來我們對每個層級運維人員需要注意的細節:

1)  LVS負載均衡層

LVS負載均衡層主要用來抵禦大流量及轉發資料功能,一般基於TCP/IP 四層協議進行轉發,根據不同的內部環境使用的轉發方式也不一樣,通常DR模式效率比較高,LVS+keepalived結合,可以使用keepalived去管理我們整個配置檔案,讓負責均衡變得簡單實用,可以各種策劃來檢查後端Nginx或者Squid服務是否正常。

LVS簡單工作原理:使用者請求LVS VIP,LVS根據轉發方式和演算法,將請求轉發給後端伺服器,後端伺服器接受到請求,返回給使用者,對於使用者來說,看不到WEB後端具體的應用。

運維人員在維護LVS中,需要密切關注LVS當前轉發連線數及系統LVS日誌。通過監控平臺監控VIP、真實IP的情況、連線數的情況。

2)  Nginx反向代理層

Nginx是目前主流的高效能WEB伺服器,Nginx因為非常不錯的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗等優點,目前發展勢頭非常火爆。

Nginx主要基於7層應用,能夠實現各種規則轉發,反向代理我們後端的JAVA、PHP動態伺服器,同時Nginx本身處理靜態頁面的能力官方理論併發5w/s,同時Nginx還可以作為快取伺服器儲存我們靜態頁面快取,效能跟squid不相上下。

作為IT運維人員在日常運維中,需要長期的關注網站的整體執行情況,分析網站瓶頸,不斷優化Nginx的相關引數,並確保Nginx跟後端服務連線是否有異常等。

3)  後端服務層

後端存放我們真正的網站和後臺服務,通過前端Nnginx呼叫,後端常見的服務解析軟體,如果是jsp語言的話,容器為Tomcat、Resin、Weblogic等等。

如果是PHP程式,我們就需要安裝PHP環境來解析php程式碼,然後通過前端Nginx反向代理提供給使用者訪問。

在日常的運維中,需要注意後端服務層的監控,及連線數的問題,要實時關注並監控後端服務的正常,配置多例項,冗餘案例。

4)  資料庫層

目前網際網路主流資料庫有Mysql、Mariadb、mongodb、Oracle等等,對於資料庫是整個架構的核心層,而且資料是企業生存之本,所以資料庫的架構和維護也是至關重要的。中大型的網際網路公司都有自己專職的DBA人員負責Mysql的執行和維護。

對於IT運維人員在維護資料庫時需要密切關注資料庫併發數、連線池等變化,關注資料庫主從、讀寫分離狀態及日誌的變化情況,並制定完整的備份機制完成資料庫的備份,有問題及時處理。

相關文章