你必須知道的雲計算知識(上)
最近訂閱學習了《深入淺出雲計算》專欄,一口氣學完之後,做了一些總結筆記形成此文,特分享與你,希望對你有所幫助!本文為上半部分,主要總結了IaaS篇的核心要點。
零、開篇詞
1、開發者為何要學習雲計算?
(1)歷經多年發展已成熟並成為一種潮流,企業数字化轉型的組成部分。
(2)產業的發展必然影響個體:
未來更多的應用都會運行在雲上,架構模式和思維方式也會更多地與雲契合共生!
(3)很多人對雲的特性還不夠熟悉,對雲產品存在誤解甚至偏見。
2、開發者應該如何學習雲計算?
盡可能多地結合應用場景來解析雲的概念和能力,學習“用雲”而非“做雲”;對於我們程序員學習者而言,也是如此,重點放在用雲上即可!
不進行“廠商綁定”而是同時觀察運用多個主流雲廠商的服務,了解共性和差異性;對於我們學習者而言,先了解共性和差異,再重點放在企業所選擇的雲服務商提供的產品上重點關注!
一、Iaas篇
IaaS 的本質,是對雲數據中心和各類 IT 基礎設施的抽象,是基於軟件技術對物理硬件進行的封裝和虛擬。
1、區域和可用區
區域對應雲廠商在某個地理位置提供的所有雲服務的組合=>對外提供雲服務的基本單位和容器;區域一般以國家或地區命名,也經常輔以城市和序號予以區分,例如:cn-hangzhou,cn-beijing,cn-chengdu等;
區域的設立和分佈體現了雲廠商的業務重點和地區傾向,例如:人口稠密的中心城市如北京、上海;相對偏遠的地區如寧夏;
阿里雲的可選區域列表
如何選擇合適的區域?
(1)區域的地理位置本身:盡量靠近最終用戶保證接入速度更快,混合雲的專線接入一般以同城或短距離接入為主;
(2)區域之間雲服務的差別:同一個雲在不同的區域提供的服務和規模可能是不同的,區域的“開服時間”也與區域內雲服務的可用性有較大關聯;
(3)成本預算:同一種服務的價格在不同區域也存在差異,區域的流量費用也需要關注。
PS:一般來說,入站流量、內部流量=>免費或近乎免費,而出站流量=>單獨收費。
如何實踐多區域架構?
(1)實踐背景:部分關鍵應用,為了追求最佳的用戶體驗和高可用性,需要把多個區域的資源和能力結合起來進行構建。
(2)雲廠商背後做的工作:
-
- 物理上,多區域之間建設骨幹網=>能夠有較高的帶寬和較低的延時;
- 軟件層面上,允許位於不同區域的虛擬網絡跨區域進行互聯;
- DNS解析層面上,通常會提供就近解析和智能路由能力=>以獲得最快的響應速度;
(3)給我們帶來的便利:藉助雲的力量,小廠也能輕鬆擁有巨頭的分佈式部署能力。
(4)實踐要點:
-
- 根據實際情況各司其職,讓不同區域擔任不同的角色,聯動起來達到業務目的;
- 切記不要輕率、隨意地拓展區域!因為會相應增加應用架構的複雜性和流量費及增加額外的運維工作負擔;
可用區是區域的下級概念
可用區是一個具備完整而獨立的電力供應、冷卻系統、網絡設施的數據中心單元!一般來說,一個區域通常由多個可用區高速互聯組成,區域內的可用區一般位於同一個城市,之間相距往往在一百公里以內。
那麼,為什麼要建多個可用區?
(1)解決區域內高可用性問題:避免單個數據中心故障讓整個區域不可用;
(2)區域本身有擴展的需求:通過新建可用區,不斷擴展自身容量,補充新鮮血液;
此外,可用區的數量也成為一個衡量區域規模的重要指標!數量越多,意味着這個區域規模越大,在選擇區域的時候,這個指標也可以作為我們的重要參考。
學習小結
(1)區域是雲計算的頂層概念,雲服務以區域為單位對外開放;
(2)區域選擇需要考慮多種因素,包括但不限於地理位置、服務豐富性、開服時間、資源成本、可用區數量等;
(3)可用區是區域之下的重要層級,代表獨立的數據中心,一個區域內往往有多個可用區;
(4)妥善將資源分佈到不同可用區,可實現故障隔離,提升架構的可用性;
2、雲虛擬機知多少(一)
雲虛擬機的核心概念
雲虛擬機是在雲端虛擬出的服務器,其核心技術是虛擬化技術,例如Xen、KVM、VMWare、HyperV等;
雲虛擬機的體繫結構:全面解耦的計算存儲分離!如下圖所示:
雲虛擬機的體繫結構
具體包含以下幾個要點:
(1)核心的CPU與內部部分同屬一台宿主機;
(2)網絡、硬盤等其他部分可脫離於宿主機之外;
(3)在可擴展性和故障隔離方面,具有很大優勢;
雲端”攢機“實戰要點
(1)選擇和確認虛擬機所在的區域;
(2)虛擬機的配置確認:
-
- 型號、核數、內存;
- 操作系統鏡像:流行的成熟Linux發行版 or 雲廠商自有Linux版本:和雲上硬件有更好的適配;
- 系統盤:高效雲盤 or 高速SSD;
- 網絡和安全組的配置:網絡安全組是虛擬機之外的網絡防火牆,是一個可復用的配置可以同時應用於多個虛擬機,體現了雲計算軟件定義網絡的特點;
- 系統配置:為實例命名,指定登錄的用戶名密碼或密鑰對;
學習小結
(1)雲虛擬機是最重要的IaaS服務之一,它基於計算存儲分離的架構進行構建;
(2)雲虛擬機的創建過程由地域、機型、操作系統、存儲、網絡等共同構成;
(3)雲虛擬機可使用雲廠商自有操作系統,與雲有較好的適配;
(4)網絡安全組是保護雲虛擬機的網絡防火牆,可以同時應用於多個虛擬機;
3、雲虛擬機知多少(二)
我們可以從以下三個維度來建立對雲虛擬機的多維認知,他們分別是類型、代別和實例大小。
雲虛擬機的類型
這裏主要指具有同一類設計目的或性能特點的虛擬機類別,常見虛擬機類型有:
(1)通用均衡性(通常比例1:4,內核與內存比例)
(2)計算密集型(通常比例1:2)
(3)內存優化型(通常比例1:8以上)
(4)圖形計算型(帶有GPU能力)
主流雲計算平台常使用字母縮寫來表達虛擬機系列,如下錶所示:
主流雲廠商的虛擬機類型代號一覽表
雲虛擬機的“代”
“代”主要用來標識這是該系列下第幾代的機型,但即便是同一系列的機型,不同的代別之間也會有不小的區別。
雲虛擬機的換代更新可能是底層軟硬件架構的整體更新和提升,而不僅僅是CPU等硬件配置;
對我們而言,“買新不買舊”同樣適用於雲端虛擬機的選擇!
雲虛擬機的實例大小
實例大小主要指硬件計算資源的規模,而一般主流雲廠商在描述實例時常常使用以下幾個字眼來命名區分:
(1)medium
(2)large => 標準large對應2vCPU
(3)xlarge => 代表4vCPU
因此,如果更高的配置nxlarge => n * 4vCPU,如8xlarge => 8 * 4vCPU = 32vCPU。
PS:一般來說,這裏傾向於使用vCPU而非核數(Core)來描述,因為超線程技術的普遍存在,常常一個核心能夠虛擬出兩個vCPU的能力。
此外,近年來雲廠商開始為追求極致性能要求的客戶提供“裸金屬”(Bare Metal)服務器產品,這種產品的用戶獨立享有物理資源,保障性能穩定,滿足數據安全和監管的超高要求。比如,金融、證券等行業對於合規性和安全性有苛刻的要求,採用裸金屬服務器部署,能夠確保數據隔離、可監管、可追溯。又比如,超算中心、基因測序等高性能計算場景,對計算性能、穩定性、實時性等要求很高,裸金屬也是不二的選擇。當然,裸金屬服務器產品的費用也不低,我們可以理解為它是虛擬機的外表 + 物理機的心臟。
雲虛擬機的命名規則
三個要素:類型、代別和實例大小,最具代表性的莫過於AWS的命名規則(阿里雲也很類似),即 [類型名][代別][後綴].[規格],例如:r5.4xlarge => R類型的第5代內存型虛擬機,它有4*4vCPU=16vCPU,內存有16*8=128G(按照1:8的比例來算的話)。
學習小結
(1)雲虛擬機的配置規格主要取決於類型、代別、實例大小三個最重要的維度;
(2)實例所屬的類型體現了相應的硬件資源配比與專項能力,為不同場景設計;
(3)雲虛擬機的型號名稱一般由類型、代別、實例大小的縮寫組合而成;
4、雲虛擬機知多少(三)
我們可以通過以下幾種方式來幫助降低我們在雲上的虛擬機使用成本。
使用包年包月機型
這是最常見的降低成本的方式,但它意味着需要犧牲一些資源安排上的靈活性,也帶來了一個後續維護工作:續費管理。
使用競價實例
這是AWS首創的產品形式,其他的雲廠商也在紛紛跟進。其基本原理是將數據中心上閑置的機器資源拿出來公開拍賣,價高者得。其主要限制是因為其是閑置資源可能隨時會被回收,所以也是犧牲了穩定性。
鑒於此,這種方式比較適合無持久化狀態、可打斷的工作。
使用突發性能類型
這種方式的成本顯著小於類似配置的其他類型機器,因為此類型虛擬機的CPU性能表現採用了“積分制”:
(1)隨着時間推移累加積分;
(2)隨着算力輸出消耗積分;
(3)當積分不足或耗盡時CPU只能發揮出標稱值的一部分性能,這個比例被稱之為“性能基準”;
一個突發性能虛擬機實例的積分曲線示例
和突發性能實例相反的則是“無性能約束模式”,這是雲廠商為我們提供的一個付費選項,顧名思義,就是即便突發性能實例的積分耗盡,也仍然能夠發揮CPU的100%性能,不受約束限制。不過,這時超出性能基準的CPU消耗會產生額外的費用。
阿里雲“打開無性能約束”選項確認提示
使用ARM實例
近年來,使用ARM架構芯片的虛擬機實例已成為雲計算IaaS層的新潮流。其主要特點在於ARM的主要特點:低功耗、高性價比,因此成本成為了它的市場法寶!據統計,輸出相同性能的ARM機型可以節省30%~40%的成本。
學習小結
(1)包年包月的付費方式是最常見的降低成本的方法,它通過犧牲採購的靈活性來換取折扣;
(2)競價實例的機制讓雲端的閑置資源對外開放,基於市場競拍的定價方式使用戶獲得折扣;
(3)突發性能實例使用CPU積分制,成本相對較低,適合工作負載存在較大波動的場景;
(4)基於ARM實例的虛擬機實例陸續走向市場,是低成本機型中具有競爭力的選擇;
5、雲硬盤知多少
和傳統磁盤一樣,雲硬盤也屬於“非易失性存儲”,寫入的數據不會丟失。
與傳統磁盤的差異
絕大多數雲硬盤都不在宿主機上而在專用的磁盤服務器陣列中,兩者通過數據中心內部特有IO線路進行聯接,這也是計算存儲分離架構的一種體現。
此外,雲廠商對雲盤上的內容會幫你在存儲端同步和保留至少三份副本數據,因此冗餘度和可用性很高。
雲硬盤的性能等級
第一個等級,基於傳統HDD硬盤構建而成的:性能一般,但成本較低;適合不注重性能或個人自用的服務器場景;
第二個等級,基於混合硬盤(HDD+SSD):綜合發揮SSD的性能優勢和HDD的容量優勢;很多雲上創建硬盤的默認選項;
第三個等級,純SSD硬盤:成本較高,但是IO能力非常穩定及不俗的吞吐量和較低的訪問延時;適合承載生產環境中重要的關鍵業務應用或數據庫等IO密集型應用;
第四個等級,高性能SSD硬盤:最新的企業級閃存硬件,配合改進后的底層傳輸協議和優化的虛擬化技術;適合承載高性能計算、高併發OLTP數據庫等應用;
主流雲廠商的雲硬盤產品的命名及目標性能(IOPS)
使用雲上的本地磁盤
雲上也可以選擇使用帶有本地磁盤的虛擬機型,啟動后本地磁盤會自動被掛載。
它主要有兩種適合的應用場景:
(1)需要支持數據本地性的計算框架應用場景;比如,在自建Hadoop集群中使用MapReduce或Spark等支持本地數據性的計算框架進行分佈式計算;
(2)對數據丟失不敏感的臨時性存儲應用場景;比如,操作系統的swap分區,又或數據庫的硬盤緩衝區等;
當上層(通常是指應用軟件系統本身)設計了存儲冗餘機制時,本地磁盤的相對高性能和低成本就成為了優勢。但是,其本質缺點還是易失性存儲,不適合的場景還是使用更可靠的遠程雲硬盤。
學習小結
(1)雲硬盤是雲虛擬機的主要持久化存儲,與宿主機往往是分離的;
(2)雲硬盤支持動態添加和刪除,使用起來靈活方便;
(3)雲硬盤一般提供多種性能等級,最終性能會受存儲介質和容量大小的共同影響;
(4)部分虛擬機型號會自帶高性能的本地磁盤,在可以容忍數據丟失風險時值得考慮;
6、雲上虛擬網絡知多少
計算、存儲 和 網絡 是IaaS的核心三要素,這一節是最後一項:網絡。
虛擬私有網絡VPC
VPC就是一張屬於你自己的內網,內網之間的設備可以自由通信。
VPC有以下一些核心概念需要了解:
(1)網段:私有網絡內部IP區段,如192.168.0.0/16;
(2)子網:一個私有網絡可以劃分多個子網,阿里雲稱之為”交換機”;
(3)路由表:定義私有網絡內流量的路由規則,決定數據包的”下一跳”;
(4)網關:對進出私有網絡的流量進行把守和分發的重要節點;
(5)安全組:私有網絡虛擬機進出流量的通行或攔截規則;
VPC的實踐建議:
在生產環境中不要讓系統自動建立VPC,而是自行先行建立VPC。這樣可以讓自己有一個明確的網絡規劃,對整個VPC的把控和理解也更強!
在阿里雲上自行創建一個VPC
虛擬網絡中的交換機
虛擬機和專有網絡的連接點在於虛擬機的彈性網卡:一方面它和虛擬機本體進行綁定,另一方面則嵌入某個私有網絡的子網;
彈性網卡具有以下幾個特徵:
(1)一個虛擬機可以綁定多塊網卡,有主網卡和輔助網卡之分;
(2)一塊網卡隸屬於一個子網,可以配置同一子網的多個私有IP;
(3)輔助網卡可以動態解綁,還能夠綁定到另一台虛擬機上;
對於公有IP的實踐建議:
盡量不要使用和依賴自動生成的公有IP,因為它不是固定的,會變化;盡量自行創建彈性IP並綁定到虛擬機上!
虛擬網絡對外“開口子”
需要訪問外網的虛擬機數量有限:直接使用彈性IP;
需要訪問外網的虛擬機數量很多:
(1)推薦使用NAT網關,這是一種常用的用來給VPC開口的手段,它允許多台沒有公網IP的虛擬機訪問外網;
(2)也可以使用VPN網關,這是一種基於互聯網提供私有加密的通信,適合從任意其他私有設施安全地連接到VPC;
阿里雲NAT網關實例
多網連接的幾種方式
公有雲上允許同時使用多個VPC,以便於構建更加複雜的網絡架構;
對於雲端VPC和VPC互聯的場景:
(1)推薦使用對等連接(VPC Peering),簡單但它不具備傳遞性;
(2)也可使用專有網絡設施實現互聯互通,雖強大但更複雜;
對於公有雲私有網絡和本地數據中心互聯(即所謂的混合雲架構)的場景:
(1)先考慮使用VPN通過公網線路建立連接通道;
(2)要保證延遲和帶寬可以考慮專線連接,現在公有雲都提供了很多專線服務;
(3)一般專線還會和VPN結合使用保證高可用性;
7、雲端架構最佳實踐
在雲端的最佳實踐:與故障同舞,與伸縮共生!
面對故障,提升冗餘
(1)宿主機級別(最常見)故障:我們要保證多個虛擬機不在同一台宿主機甚至不在同一個機架上,例如可以使用AWS的置放群組、Azure的可用性集,阿里雲的部署集等;
(2)數據中心(可用區層面)級別故障:比如火災、雷擊等意外造成的服務停擺,我們可能需要多可用區的實例部署;
(3)區域級別(非常少見)故障:比如地震等不可抗力因素或人為過失引發,我們有兩種方案:一是多區域架構相關預案,二是多雲策略即同時選用多家雲廠商的公有雲;
總之,面對故障的基本思路都是:化單點為多點,形成不同層面、不同粒度的冗餘。故障發生時,迅速地發現和切換,平滑的過渡。
隨機應變,彈性伸縮
產品形態:虛擬機編組,例如AWS的EC2自動伸縮(Auto Scaling)、Azure的虛擬機規模集(VM Scale Set)以及阿里雲的彈性伸縮服務;
最佳拍檔:負載均衡器,它可以和提供計算資源的彈性伸縮服務形成配合。
適合場景:無狀態類的計算需求。
阿里雲的彈性伸縮服務
8、雲上運維知多少
對於雲上運維,正確的理解應該是:雲不但沒有消滅運維,反而助推了運維的發展。原因有以下幾點:
(1)雲的引入讓我們在更高的層面去思考和解決問題,運維工作已經從偏硬件服務器的瑣碎工作轉向基於軟件層面的服務;
(2)基礎的底層機房/架構運維仍然會繼續存在但會偏向頭部雲廠商,雲其實是提高了運維的效率,改變了運維的形態;
雲時代的運維利器
雲上的命令行工具,如AWS CLI/Azure CLI/阿里雲CLI。
資源編排類服務,如AWS CloudFormation/Azure ARM Template/阿里雲ROS。
雲上運維工作的組成
(1)傳統的運維工作:監控、部署、升級 及 備份(得力助手:鏡像 和 快照);
(2)遷移:傳統業務逐步上雲的過程中一定會面臨的遷移工作,建議先對雲廠商的官方支持調查清楚;
(3)和雲廠商的對接工作:熟讀文檔,吃透雲計算的眾多特性,準確地與客服溝通;
(4)很強的管理屬性:不僅僅是雲上資源的管理,更要深入到流程和制度的管理層面;比如:雲資源的命名、開通、清理等操作規範;各類雲上安全的控制和最佳實踐;所有雲資源的負責人、所屬資源組和權限體系;
(5)成本管理:應當有專人對成本進行監控和分析,建議按月組織資源的使用方進行成本消耗的回顧,杜絕成本浪費;
高明的雲上運維應該是:既要足夠高效地為應用開發賦能,也要有適當的管理和約束。
二、腦圖分享
點此查看完整腦圖
參考資料
何愷鐸,極客時間《深入淺出雲計算》專欄(推薦訂閱學習)
作者:周旭龍
出處:https://edisonchou.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面
※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!
※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※教你寫出一流的銷售文案?
※別再煩惱如何寫文案,掌握八大原則!