云計算和大數據分析的系統架構方向?
系統架構首先要掌握一些基礎的架構設計原則,下面給介紹一下模塊化云架構設計思路。作為云服務商,我們經常需要面對客戶IT系統上云的需求,中型以上的客戶IT系統通常具有一定的復雜性,面對復雜的IT系統,我們怎樣幫助客戶實現IT系統的云遷移,以及在云端快速搭建客戶復雜的IT架構?現在排名靠前的云服務商,云端的服務組件已經達到了上百種,覆蓋了計算資源、存儲資源、網絡服務、https://www.b5b6.com/shujuku/服務、安全服務、中間件、運維監控服務等等,基本上主流的IT服務在云端都能夠找到。這些云服務是基于云計算的自動化、快速開通和彈性擴容的特性,并給客戶提供了自服務的控制臺門戶,讓客戶能夠自主的在云端配置自己的IT系統。如果我們把復雜的IT系統類比為結構精密復雜的自動機械手表,把云服務類比為手表內部精密的小部件,我們在云端使用云服務構建復雜IT系統,就好比機械手表的裝配。機械手表每個小部件的連接設計的都很精巧,并按照精密的工序來裝配。機械手表的這種部件化/模塊化的裝備模式,同樣適用于在云端使用云服務模塊構建復雜的IT系統。大家知道,云計算主要分為公有云和私有云,我們先說一下私有云。私有云本質上就是客戶的IT基礎設施虛擬化,其實還是一個ICT項目,依然需要從頭開始搞IT系統建設,存在周期長、一次性投資大、運維維護成本高等問題。針對這些問題,各大云服務商、甚至一些第三方廠商,提出了私有云模塊化構建思路,類比集裝箱,稱之為“云箱”。相比傳統的ICT項目建設,具有以下特點:多:高密多、多節點快:部署僅需8周時間好:便于擴展省:能耗節約80%全:可定制所謂“云箱”就是由若干相互獨立的模塊構成,每個模塊具備私有云數據中心的一個或多個系統功能,比如供電模塊、管理模塊、主機模塊、對象存儲模塊、數據模塊等等。這些即插即用的功能模塊通過簡單組裝就能構成完整的數據中心。華為/天翼云全棧專屬FCS方案也是一種定制化、模塊化的私有云建設方案,只是沒有空間“箱體”的概念,能夠滿足客戶私有云的各種建設需求。我們重點聚焦在公有云的模塊化架構設計。我們需要把云端的服務組件抽象為一個個的圖標,便于我們做架構設計,阿里云供了大量豐富的云服務模塊圖標:
我們結合系統架構的演進來,運用模塊化的架構設計思路,嘗試用這些圖標搭建從簡單到復雜的IT系統。
一、架構初級階段:萬能的單機即一臺ECS服務器搞定一切。傳統官網、論壇等應用,只需要一臺ECS。對應的web服務器、https://www.b5b6.com/shujuku/、靜態文件資源等,部署到一臺ECS上即可。一般5萬pv到30萬pv訪問量,結合內核參數調優、web應用性能參數調優、https://www.b5b6.com/shujuku/調優,基本上能夠穩定的運行。一般個人或者小微企業會采用這種單機方式上云。二、分離架構:Web應用與RDS服務物理分離當訪問壓力達到50萬pv到100萬pv的時候,部署在一臺服務器上面的web應用及https://www.b5b6.com/shujuku/等服務應用,會對服務器的CPU/內存/磁盤/帶寬等系統資源進行競爭。顯然單機已經出現性能瓶頸。我們將web應用和https://www.b5b6.com/shujuku/物理分離單獨部署,解決對應性能問題。這里的架構采用ECS+RDS物理分離的方式。在云端,我們可以直接開通ECS和RDS模塊,ECS通過TCP協議訪問RDShttps://www.b5b6.com/shujuku/服務,如下圖所示:為了保證web應用與https://www.b5b6.com/shujuku/服務的安全隔離,可以將web應用和RDS劃分在不同的子網,子網之間ACL策略,限定端口訪問,此時,我們需要通過VPC模塊來劃分子網、設置ACL訪問策略。3、應用集群架構:負載均衡+Web應用+RDS服務當訪問壓力達到300萬pv到500萬pv的時候,雖然通過將web與rds物理分離的方式,有效的降低了請求的壓力,但是當更大的PV流量出現的時候,單臺服務器可能會出現訪問堵塞、延遲、服務器進程增多、cpu100%,甚至出現常見502/503/504的錯誤碼。顯然單臺web服務器已經滿足不了需求,這里需要通過負載均衡技術增加多臺web服務器(對應ECS可以選擇不同可用區,進一步保障高可用)。因而告別單機的時代,轉變分布式集群架構的階段。在云端,我們可以添加負載均衡器模塊,開通多臺Web應用服務器來滿足更大PV訪問量的需求。后續隨著PV壓力的逐步提高,可以進一步增加以下云服務組件,搭建高可用、高負載的分布式的系統架構:1、增加CDN服務,將靜態頁面、各類數據、音、視頻文件緩存到邊緣節點,滿足客戶就近訪問的需求,同時也大大緩解了web應用服務的壓力;2、對于大量的動態訪問https://www.b5b6.com/shujuku/的請求,可以增加緩存服務模塊(REDIS),將更多的靜態數據緩存在內存里,大大緩解https://www.b5b6.com/shujuku/查詢的請求;3、如果緩存服務也滿足不了https://www.b5b6.com/shujuku/查詢的請求,可以增加只讀https://www.b5b6.com/shujuku/服務,實現讀寫分離。以上是我們采用模塊化的架構設計思路,按照系統架構的演進,在云端快速、靈活的構建系統,希望能夠給大家啟發。關于系統架構的演進后面我們會專題講解。