乾貨!運維必知的9種高效能技術架構
分層架構是邏輯上的,在物理部署上,三層架構可以部署在同一個物理機器上,但是隨著網站業務的發展,必然需要對已經分層的模組分離部署,即三層結構分別部署在不同的伺服器上,是網站擁有更多的計算資源以應對越來越多的使用者訪問。
1、分層
分層是企業應用系統中最常見的一種架構模式,將系統在橫向維度上切分成幾個部分,每個部分負責一部分相對簡單並比較單一的職責,然後通過上層對下層的依賴和排程組成一個完整的系統。
在網站的分層架構中,常見的為3層,即應用層、服務層、資料層。應用層具體負責業務和檢視的展示;服務層為應用層提供服務支援;資料庫提供資料儲存訪問服務,如資料庫、快取、檔案、搜尋引擎等。
分層架構是邏輯上的,在物理部署上,三層架構可以部署在同一個物理機器上,但是隨著網站業務的發展,必然需要對已經分層的模組分離部署,即三層結構分別部署在不同的伺服器上,是網站擁有更多的計算資源以應對越來越多的使用者訪問。
所以雖然分層架構模式最初的目的是規劃軟體清晰的邏輯結構以便於開發維護,但在網站的發展過程中,分層結構對網站支援高併發向分散式方向的發展至關重要。
2、冗餘
網站需要7×24小時連續執行,那麼就得有相應的冗餘機制,以防某臺機器宕掉時無法訪問,而冗餘則可以通過部署至少兩臺伺服器構成一個叢集實現服務高可用。資料庫除了定期備份還需要實現冷熱備份。甚至可以在全球範圍內部署災備資料中心。
3、分隔
如果說分層是將軟體在橫向方面進行切分,那麼分隔就是在縱向方面對軟體進行切分。
網站越大,功能越複雜,服務和資料處理的種類也越多,將這些不同的功能和服務分隔開來,包裝成高內聚低耦合的模組單元,不僅有助於軟體的開發維護也便於不同模組的分散式部署,提高網站的併發處理能力和功能擴充套件能力。
大型網站分隔的粒度可能會很小。比如在應用層,將不同業務進行分隔,例如將購物、論壇、搜尋、廣告分隔成不同的應用,有對立的團隊負責,部署在不同的伺服器上。
4、非同步
使用非同步,業務之間的訊息傳遞不是同步呼叫,而是將一個業務操作分成多個階段,每個階段之間通過共享資料的方法非同步執行進行協作。
具體實現則在單一伺服器內部可用通過多執行緒共享記憶體對了的方式處理;在分散式系統中可用通過分散式訊息佇列來實現非同步。
非同步架構的典型就是生產者消費者方式,兩者不存在直接呼叫。
5、分散式
對於大型網站,分層和分隔的一個主要目的是為了切分後的模組便於分散式部署,即將不同模組部署在不同的伺服器上,通過遠端呼叫協同工作。分散式意味著可以使用更多的計算機完同樣的工作,計算機越多,CPU、記憶體、儲存資源就越多,能過處理的併發訪問和資料量就越大,進而能夠為更多的使用者提供服務。
在網站應用中,常用的分散式方案有一下幾種.
分散式應用和服務:將分層和分隔後的應用和服務模組分散式部署,可以改善網站效能和併發性、加快開發和釋出速度、減少資料庫連線資源消耗。
分散式靜態資源:網站的靜態資源如JS、CSS、Logo圖片等資源對立分散式部署,並採用獨立的域名,即人們常說的動靜分離。靜態資源分散式部署可以減輕應用伺服器的負載壓力;通過使用獨立域名加快瀏覽器併發載入的速度。
分散式資料和儲存:大型網站需要處理以P為單位的海量資料,單臺計算機無法提供如此大的儲存空間,這些資料庫需要分散式儲存。
分散式計算:目前網站普遍使用Hadoop和MapReduce分散式計算框架進行此類批處理計算,其特點是移動計算而不是移動資料,將計算程式分發到資料所在的位置以加速計算和分散式計算。
6、安全
網站在安全架構方面有許多模式:通過密碼和手機校驗碼進行身份認證;登入、交易需要對網路通訊進行加密;為了防止機器人程式濫用資源,需要使用驗證碼進行識別;對常見的XSS攻擊、SQL隱碼攻擊需要編碼轉換;垃圾資訊需要過濾等。
7、自動化
具體有自動化釋出過程,自動化程式碼管理、自動化測試、自動化安全檢測、自動化部署、自動化監控、自動化報警、自動化失效轉移、自動化失效恢復等。
8、叢集
對於使用者訪問集中的模組需要將獨立部署的伺服器叢集化,即多臺伺服器部署相同的應用構成一個叢集,通過負載均衡裝置共同對外提供服務。
伺服器叢集能夠為相同的服務提供更多的併發支援,因此當有更多的使用者訪問時,只需要向叢集中加入新的機器即可;另外可以實現當其中的某臺伺服器發生故障時,可以通過負載均衡的失效轉移機制將請求轉移至叢集中其他的伺服器上,因此可以提高系統的可用性。
9、快取
快取目的就是減輕伺服器的計算,使資料直接返回給使用者。在現在的軟體設計中,快取已經無處不在。具體實現有CDN、反向代理、本地快取、分散式快取等。
使用快取有兩個條件:
訪問資料熱點不均衡,即某些頻繁訪問的資料需要放在快取中;
資料在某個時間段內有效,不過很快過期,否在會因為資料過期而髒讀,影響資料的正確性。
原文來自: http://news.51cto.com/art/201711/559118.htm
雲端計算免費課程火熱開講中,5天運維經典課程免費學,會雲端計算的運維人才到底需要掌握哪些技術,未來前景發展怎麼樣?跟隨行業大咖一起剖根究底,點選文末“閱讀原文”或長按下方二維碼即可報名免費課程!抓住免費學習的機會,逆襲2019~~
PS:記得查收小編送你的免費大禮包呦~
福利 | 一萬多套PPT模板等你免費來拿!無條件領取!
免費送 | 1000多套簡歷模板免費拿,附贈簡歷製作教程!
免費領 | 《Shell指令碼 100例》電子書免費拿,運維必備乾貨~
▼▼點選【閱讀原文】,5天運維免費課程,開講在即!
相關文章
- 乾貨分享:容器 PaaS 新技術架構下的運維實踐架構運維
- 「架構技術專題」9種高效能高可用高併發的技術架構(5)架構
- 九種高效能可用高併發的技術架構架構
- 乾貨 | 大型網站專案架構技術一覽網站架構
- 【乾貨】Linux運維人員必備的實用工具!Linux運維
- 彈性架構設計之運維技術棧架構運維
- 只有老運維人才能懂的運維乾貨運維
- 乾貨:記一次JavaWeb網站技術架構總結JavaWeb網站架構
- 乾貨 | 知識圖譜的技術與應用
- Linux運維就業技術指導(九)期末架構考核Linux運維就業架構
- Elasticsearch必知必會的乾貨知識二:ES索引操作技巧Elasticsearch索引
- Linux運維必備技術有哪些?運維要學開發Linux運維
- 網站技術架構與效能優化,附高效能思維導圖網站架構優化
- HPC高效能運算知識: 計算架構演進架構
- 常用技術必知必會
- IAST技術知識-Java環境Agent部署知識乾貨分享ASTJava
- 運維必收乾貨 | Linux關機命令和重啟命令有哪些?運維Linux
- 乾貨:軟體架構詳解架構
- 從架構師思維看分散式事務兩種技術方案 - banq架構分散式
- 技術乾貨 | WebRTC 技術解析之 Android VDMWebAndroid
- 學習運維技術要掌握哪些知識點?運維
- 實用技術乾貨!教你用機器學習提高日常安全運維工作中的效率機器學習運維
- 運維乾貨 | 12 個實用的 Vim 使用技巧運維
- 直播技術乾貨分享:千萬級直播系統後端架構設計的方方面面後端架構
- [乾貨分享]1000篇乾貨好文!量子技術——進階篇
- [乾貨分享]1000篇乾貨好文!量子技術——資訊篇
- 乾貨:軟體架構分析詳解架構
- 乾貨帖 | TDSQL-A核心架構揭秘SQL架構
- 乾貨 | 廣告系統架構解密架構解密
- 乾貨 | Dubbo 介面測試技術,測試開發進階必備
- 阿里技術精華乾貨整理阿里
- 如何在短頻快的節奏中做好技術?業務開發必會的架構思維架構
- Adaptive AUTOSAR 學習筆記 8 - 乾貨小結:背景、技術、特徵、架構、方法論和 ManifestAPT筆記特徵架構
- Linux 下 10 個最“危險”的命令,運維必知必防!Linux運維
- Linux運維必知必會的命令列:find 的 26 個用法示例!Linux運維命令列
- 【純乾貨】神奇的Ctrl鍵,Linux運維常用快捷鍵!Linux運維
- 我的“技術架構”之旅架構
- springblade技術架構Spring架構