- 軟硬件融合:超大規模云計算架構創新之路
- 黃朝波
- 5086字
- 2021-05-19 17:57:12
1.2 IaaS層核心服務
云計算服務按照IaaS、PaaS和SaaS分層,PaaS層、SaaS層的服務都基于IaaS層的基礎服務。IaaS層包括計算、存儲和網絡三大基礎類服務,數據庫類服務是基于三大基礎類服務構建的PaaS層服務。
下面我們以AWS的服務體系為例進行介紹。圖1.2給出了AWS典型服務分層。AWS基礎的IaaS層核心服務如下。
·計算類服務:EC2(Elastic Compute Cloud,彈性計算云計算主機)服務。
·存儲類服務:EBS(Elastic Block Store,彈性塊存儲)服務;S3(Simple Storage Service,簡單對象存儲服務);Glacier(冰川,AWS的歸檔存儲)服務。
·網絡類服務:VPC(Virtual Private Cloud,虛擬私有網絡)服務;ELB(Elastic Load Balancing,彈性負載均衡)服務。

圖1.2 AWS典型服務分層
1.2.1 計算類服務
EC2是AWS計算類核心的服務,也是整個AWS生態構建的基礎。EC2是一項Web服務,可在云中提供安全、可調整大小的計算能力。EC2旨在使開發人員更容易進行用于Web的規模計算。用戶通過在簡單的Web服務界面進行很少的操作就能夠很快獲得EC2并配置容量。EC2提供了對計算資源的完全控制,并可以在AWS成熟的計算環境中運行。EC2將獲取和啟動新服務器實例(稱為EC2實例)所需的時間減少到了數分鐘,使得用戶可以根據計算需求的變化快速地調整容量。EC2允許用戶僅為實際使用的容量付費,提高了計算的經濟性。
用戶只需要進行如下操作即可使用EC2。
·選擇一個預先配置的模板化AMI(Amazon Machine Image,亞馬遜系統鏡像),或者創建并選擇一個包含本地應用程序、庫、數據和相關配置設置的AMI,之后啟動并運行AMI。
·在本地EC2實例上配置安全和網絡訪問權限。
·選擇合適的EC2實例類型,然后使用Web服務API或提供的多種管理工具來啟動、終止和監控AMI。
·確定是否要在多個位置運行、選擇靜態IP地址及將持久化塊存儲到EC2實例上。
·根據實際消耗的資源(如實例小時數或數據傳輸量)來付費。
EC2提供多種經過優化、適用于不同使用場景的實例類型。EC2實例類型由CPU、內存、存儲和網絡容量組成不同的組合,用戶可以靈活地為自己的應用程序選擇適當的資源組合。每種EC2實例類型都包括一種或多種實例大小,使用戶能夠擴展資源以滿足目標工作負載的要求。EC2主要有如下實例類型。
·通用型。通用型實例提供計算、存儲和網絡三方面資源的平衡能力,可用于各種類型的工作負載。通用型實例非常適合以相同比例使用計算、存儲和網絡資源的應用程序,如Web服務器和代碼存儲庫。
·計算優化型。計算優化型實例適用于對性能要求比較高的應用程序。計算優化型實例非常適合批處理工作負載、媒體轉碼、高性能Web服務器、高性能計算(HPC)、科學建模、專用游戲服務器和廣告服務器引擎、機器學習推理和其他計算密集型應用程序。
·內存優化型。內存優化型實例旨在提高大型(需要大量內存的)數據集類工作負載的性能。
·加速計算型。加速計算型實例使用硬件加速器來執行浮點數計算、圖形處理或數據模式匹配等功能,比在CPU上運行的軟件更加高效。
·存儲優化型。存儲優化型實例用于需要對本地存儲上的大型數據集進行高速連續讀寫訪問的工作負載,每秒可以向應用程序交付數以萬計的低延遲、隨機I/O操作(IOPS)。
下面我們以典型的M5實例為例進行介紹。M5實例是當前新一代的通用型實例,提供了平衡的計算、內存和網絡資源,是很多應用程序的理想之選。M5實例具有特點。
·最高配置為3.1GHz Intel Xeon? Platinum 8175的處理器,并配有功能豐富的Intel Advanced Vector Extension(AVX-512)指令集。
·擁有規模龐大的實例,最大實例為m5.24xlarge,提供最多96個vCPU和最大384GB內存。
·使用增強型網絡,可提供最大為25Gbit/s的網絡帶寬。
·需要包含ENA和NVMe驅動程序HVM AMI的支持。
·由AWS Nitro系統(專用硬件和輕量級管理程序的組合)提供支持。
·通過物理連接到主機服務器的EBS或NVMe SSD提供的實例存儲。
·可利用M5d實例,基于本地NVMe的SSD與主機服務器建立物理連接,提供與M5實例生命周期相一致的塊存儲。
M5實例和M5d實例提供了2~96個vCPU的多種選擇,以及內存、本地或遠程存儲、網絡帶寬等各種規格的選擇,具體如表1.1所示。
表1.1 AWS EC2 M5實例規格大小可選項

1.2.2 存儲類服務
根據數據訪問的性能和頻次可以把數據分為熱數據、溫數據和冷數據,存儲系統也可以相應地分為如下幾種。
·熱存儲:典型服務如AWS的彈性塊存儲EBS。
·溫存儲:典型場景如AWS的對象存儲S3。
·冷存儲:典型場景如AWS的歸檔存儲Glacier。
1.EBS
EBS提供了可與EC2實例一起使用的持久化塊存儲。EBS是網絡連接的存儲,獨立于EC2實例而持續存在。在將EBS卷附加到EC2實例后,用戶可以像使用物理硬盤驅動器一樣使用EBS卷,通常通過所選擇的文件系統對EBS卷進行格式化。
EBS還提供了創建卷時間點快照的功能,這些快照存儲在S3中,可用作新EBS卷的起點,并可以保護數據,以實現長期持久性。可以使用同一卷時間點快照實例化任意數量的EBS卷;也可以在AWS不同區域之間復制這些快照,從而利用多個AWS區域進行地理擴展,這使得數據中心遷移和災難恢復變得更加容易。
EBS適用于頻繁更改且需要在EC2實例的生命周期之外持續存在的數據。EBS非常適合用作數據庫、文件系統或需要直接訪問原始塊級存儲的任何應用程序或實例(操作系統)的主存儲。EBS提供了許多可讓用戶針對工作負載優化存儲性能和成本的選項,這些選項分為兩大類:用于事務性工作負載由固態驅動器(SSD)支持的存儲,如數據庫和啟動卷(性能主要取決于IOPS);用于吞吐量密集型工作負載由硬盤驅動器(HDD)支持的存儲,如大數據、數據倉庫和日志處理(性能主要取決于MB/s)。
表1.2列出了EBS卷類型和案例。EBS提供了SSD和HDD兩種介質的四種卷類型,默認卷類型為通用型SSD(gp2)。
表1.2 EBS卷類型和案例

2.S3
S3以非常低的成本為開發人員和IT團隊提供了安全、持久、高度可擴展的對象存儲。用戶利用S3可以隨時通過簡單的Web服務界面從Web上的任何位置存儲和檢索任意數量的數據,也可以寫入、讀取和刪除包含0~5TB數據的對象。S3具有高度可擴展性,允許多個獨立的客戶端或應用程序線程對數據進行并發讀寫訪問。
S3提供了如下針對不同用例設計的存儲類。
·Amazon S3標準版,用于通用存儲頻繁訪問的數據。
·Amazon S3標準不頻繁訪問版(Standard-IA),用于長期訪問頻率較低的數據。
·Amazon Glacier,用于低成本存檔數據。
S3有如下4種常見的使用模式。
(1)S3用于存儲和分發靜態Web內容和媒體。由于S3中的每個對象都有唯一的HTTP URL,因此可以直接由S3交付此內容。S3也可以用作CDN的原始存儲。S3具有良好的彈性,特別適用于托管需要帶寬,以應對Web內容的極端需求高峰問題。此外,因為不需要存儲資源調配,所以S3可以很好地用于快速增長的網站,這些網站托管數據密集型用戶生成的內容,如視頻和照片共享站點。
(2)S3用于托管整個靜態網站。S3提供了一種低成本、高可用和高度可擴展的解決方案,包括以JavaScript等格式存儲的靜態HTML文件、圖像、視頻和客戶端腳本。
(3)S3用作計算和大規模分析的數據存儲,如金融交易分析、點擊流分析和媒體轉碼。基于S3的水平可擴展性,用戶可以同時從多個計算節點訪問數據,而不受單個鏈接的限制。
(4)S3用作高可用、高度可擴展且安全的解決方案,用于備份和存檔關鍵數據。用戶可以使用生命周期管理規則對S3中存儲的數據進行管理,自動地將冷數據遷移至Amazon Glacier。用戶還可以使用S3跨區域復制功能,自動f在不同區域的S3存儲桶復制對象,從而提供災難恢復解決方案,實現業務連續性。
相對于Internet延遲,同一數據中心服務器間的延遲可以忽略不計。同一區域的EC2訪問S3是同一數據中心內的快速訪問,不需要通過外部Internet進行。此外,S3的構建旨在擴展存儲、請求和用戶數量,以支持大量的Web規模應用程序。如果同時使用多個線程、應用程序或客戶端訪問S3,則S3擴展的總聚合吞吐量通常會遠遠超過任何單個服務器可以生成或使用的速率。
3.Glacier
Glacier是一項成本極低的存儲服務,可為數據歸檔和在線備份提供高度安全、持久和靈活的存儲。用戶借助Glacier能夠以低廉的價格可靠地存儲數據。Glacier使用戶可以將操作和擴展存儲的管理負擔轉移到AWS,而不必考慮容量規劃、硬件配置、數據復制、硬件故障檢測和修復耗時的硬件遷移。
用戶可以將數據作為檔案存儲在Glacier中。可以用單個文件作為一個檔案上載,也可以組合多個文件作為一個檔案上載。用戶可以使用S3數據生命周期策略在Glacier和S3之間無縫移動數據。
Glacier支持許多場景,包括歸檔異地企業信息、媒體資產、研究和科學數據,以及執行數字保存和磁帶替換。
Glacier旨在存儲不經常訪問且壽命長的數據。Glacier檢索作業通常在3~5h完成。
1.2.3 網絡類服務
數據中心的網絡大體上分為如下三類。
·基礎的物理承載網絡,跟用戶沒有直接關系,因此沒有必要暴露給用戶。
·用于租戶隔離的虛擬網絡,如AWS的虛擬私有網絡VPC。
·用于用戶業務的應用級網絡,如AWS的彈性負載均衡ELB。
1.VPC
用戶借助VPC可以在AWS云中預置一個邏輯隔離的私有網,并且可以在該私有網中啟動AWS資源。用戶可以完全掌控自定義的虛擬網絡環境,包括定義它的IP地址范圍,為其創建子網、配置路由表和網絡網關。用戶VPC可以使用IPv4和IPv6,因而能夠輕松安全地訪問資源和應用程序。
用戶可以輕松自定義VPC的網絡配置。例如,用戶可以為Web服務器創建一個能訪問Internet的公有子網;也可以將后端系統(如數據庫或應用程序服務器)安置在無Internet訪問的私有子網中;還可以使用安全組和網絡訪問控制列表等多種安全層,對各個子網中EC2實例的訪問進行控制。
VPC的功能總結如下。
·能夠在AWS的可擴展基礎設施中創建VPC,并可以選擇任何私有IP地址范圍。
·可以通過添加輔助IP地址范圍來擴展VPC。
·可以將VPC的私有IP地址范圍分割成一個或多個公有或私有子網,以便在VPC中運行應用程序和服務。
·可以使用網絡控制列表控制進出各個子網的入站和出站訪問。
·可以在S3中存儲數據并設置權限,以便僅可從VPC內部訪問這些數據。
·可以為VPC中的實例分配多個IP地址并為其連接多個彈性網絡接口。
·可以將一個或多個彈性IP地址連接到VPC中的某個實例,以便直接從Internet訪問該實例。
·可以將VPC與其他VPC相連,從而實現跨VPC訪問其他VPC中的資源。
·可以通過VPC終端節點建立與AWS服務的私有連接,無須使用Internet網關、NAT或防火墻代理。
·可以為私有服務或由AWS PrivateLink提供支持的SaaS解決方案建立私有連接。
·可以使用AWS站點到站點VPN橋接VPC和現場IT基礎設施。
·可以在EC2-Classic平臺中啟用EC2實例,以使私有IP地址與VPC中的實例進行通信。
·可以將VPC安全組與EC2-Classic中的實例進行關聯。
·可以使用VPC Flow Logs來記錄有關進出VPC網絡接口的網絡流量信息。
·支持VPC中的IPv4和IPv6。
·可以使用VPC流量鏡像為EC2實例捕獲和鏡像網絡流量。
·可以使用網絡和安全設備(包括第三方產品)來阻止或分析入口和出口的流量。
2.ELB
ELB可以在多個目標(如EC2實例、容器、IP地址和Lambda函數)之間自動分配傳入的應用程序流量。ELB既可以在單個可用區內處理不斷變化的應用程序流量負載,也可以跨多個可用區處理此類負載。
ELB提供三種負載均衡器,它們均能實現自動擴展,并且具有高可用性和安全性,能讓用戶的應用程序獲得容錯能力。
·ALB(Application Load Balancer,應用負載均衡器)。ALB最適合HTTP和HTTPS流量的負載均衡,面向包括微服務和容器在內的現代應用程序架構,提供高網絡層級請求的路由功能。ALB運行于單獨的請求級別(第7層),可根據請求的內容將流量路由至VPC內的不同目標。
·NLB(Network Load Balancer,網絡負載均衡器)。若要對需要極高性能的傳輸控制協議(TCP)、用戶數據報協議(UDP)和傳輸層安全性(TLS)協議流量進行負載均衡,最適合使用NLB。NLB運行于連接層(第4層),可將流量路由至VPC內的不同目標,每秒能夠處理數百萬個請求,同時能保持超低延遲。NLB還對突發和不穩定的流量模式進行了優化。
·CLB(Classic Load Balancer,經典負載均衡器)。CLB同時運行于請求級別和連接級別,可在多個EC2實例之間提供基本的負載均衡。CLB適用于在EC2-Classic網絡內構建的應用程序。
ELB主要具有如下功能。
·高可用性。ELB可以在單個可用區或多個可用區內的多個目標(如EC2實例、容器和IP地址)之間自動分配流量。
·運行狀況檢查。ELB可以檢測無法正常運行的目標并停止向它們發送流量,同時將負載分散到其他正常運行的目標上。
·安全性。ELB可以使用VPC創建和管理與負載均衡器關聯的安全組,以提供更多網絡和安全選項;還可以創建內部(非面向Internet的)負載均衡器。
·TLS終止。ELB提供集成化證書管理和SSL/TLS解密,使用戶可以靈活地集中管理負載均衡器的SSL設置,并從用戶自定義的應用程序上卸載CPU密集型模塊。
·第4層或第7層負載均衡。用戶可以對HTTP/HTTPS應用程序執行負載均衡,以實現特定于第7層的功能;或者對依賴于TCP和UDP協議的應用程序執行嚴格的第4層負載均衡。
·運行監控。ELB支持對Amazon CloudWatch指標的集成和請求跟蹤,可以實時監控應用程序的性能。
可以根據應用程序按需選擇合適的負載均衡器。如果需要靈活管理應用程序,則應使用ALB;如果應用程序需要實現極致性能和靜態IP,則應使用NLB;如果現有應用程序構建于EC2-Classic網絡內,則應使用CLB。
1.2.4 IaaS層服務總結
云計算IaaS層服務是對硬件產品的封裝,上層其他云計算服務基于IaaS層服務實現自身的功能。IaaS層服務涉及的底層軟硬件技術如表1.3所示。
表1.3 IaaS層服務涉及的底層軟硬件技術

續表

- 網絡工程
- Web應用開發技術與案例教程
- 大數據安全
- pfSense 2.x Cookbook
- Web標準網頁設計原理與前端開發技術
- 開源網絡模擬器ns-3:架構與實踐
- Axure RP 9 高保真原型設計實例教程
- 軟件定義網絡核心原理與應用實踐
- 阿里云云原生架構實踐
- Dreamweaver CS6實例教程(第3版)
- 中文版Dreamweaver CS6基礎培訓教程(第2版)
- Mastering SaltStack
- 計算機網絡實驗教程
- 網頁設計與制作:Dreamweaver+Flash+Photoshop+HTML5+CSS3(慕課版)
- Wordpress Web Application Development(Third Edition)