視訊連結: https://yqh.aliyun.com/live/detail/13836
阿裡雲彈性計算産品專家 馬小婷(雪莉)
負責ECS服務能力的産品規劃與設計工作,包括執行個體場景化選型工具,執行個體診斷與修複,ECS事件系統,ECS優化推薦,彈性伸縮與彈性供應等,緻力于完善ECS全生命周期的場景支撐,為使用者提供完整高效的服務能力與自助智能的服務體驗。
本文主要大概分為4個部分
第一部分介紹雲伺服器ECS的基本概念;
第二部分對ECS的執行個體規格族進行一個詳細的解讀;
第三部分給大家實戰講解如何去做ECS執行個體的選型;
最後一部分簡單介紹一下如何去省錢省力的來使用ECS。
第一部分:雲伺服器ECS基礎概念

雲伺服器的基礎概念
第一部分會給大家介紹雲伺服器的一些基本概念。
在開始前,大家可以回想一下,我們自己購買筆記本電腦的時候中會考慮哪些因素?我自己會先選擇品牌,一般情況下在确定了品牌之後,接下來就會考慮硬體配置,主要是實體硬體的配置和軟體的配置。
硬體配置上,我首先會考慮計算性能,像CPU和記憶體的大小、CPU的型号等;第二就是存儲,筆記本電腦的磁盤有多大;第三部分就是網絡能力,比如網卡有幾個,對于玩遊戲的同學來說,顯示卡配置也很重要。除了硬體配置外,我也會考慮電腦的作業系統是什麼樣的,比如Mac OS, windows或ubuntu等。而拿到電腦之後,我們首先會做一些基礎應用軟體的安裝和配置,包括防火牆等保證我們整個應用環境的安全性。
這是我在現實生活中去購買一台實體電腦的流程,其實這些概念在雲上也是适用的,比如說我們在選擇一些實體硬體的參數的時候,選CPU和記憶體,對應在雲上的話,就是選擇ECS執行個體的 CPU和記憶體大小以及 CPU的型号。
存儲這一塊,磁盤在雲上對應的概念就是塊存儲,在雲上塊存儲其實是包含兩個概念,一個概念是雲盤,一個概念是本地盤。有一個跟我們現實生活中不太一樣的點,是雲上的塊存儲,我們在購買的過程中需要指定用作系統盤還是用作資料盤的。而現實生活中買了一個電腦裡面是有一塊磁盤,然後我們自己會把磁盤分成系統盤還是資料盤,但在雲上的系統盤和資料盤是需要分開購買的,這是一點點差別。
在網絡這一塊其實也是類似的,雲上提供彈性網卡,讓使用者通過通路雲伺服器就能夠聯通到網上。
除了這些實體硬體以外,要讓一個雲伺服器真正的跑起來,跟現實生活一樣,我們也需要去安裝一個作業系統,這個作業系統在雲上的概念就是鏡像,阿裡雲提供多種不同的鏡像版本供大家選擇。
除此以外,雲伺服器還會有一些特殊的概念,比如安全組,本質上是通過一些規則來限定通路的流量,即被哪些應用可以通路。
我們在買一個電腦之後,這個實體機在手上,你想要什麼時候使用就可以什麼時候使用。在雲上買完一個雲伺服器之後,因為這個伺服器是在雲端或者說在遠端,我們通路雲伺服器的方式就跟我們平時打開一個電腦不太一樣,我們需要通過阿裡雲的控制台或者通過遠端連接配接的工具來登入到我們的雲伺服器上去。
還有一個小概念是雲上的容災備份能力,就是快照。現實生活中,如果我們的電腦磁盤出現了故障,資料出現了損壞就無能為力了,或者隻能夠找專業的人把資料能夠找回來,但是不能夠保證說所有的資料都能找回來。雲上有快照這樣一個概念,它的意思是說對雲盤的某一個時間點的資料拍一張照,本質上就是會把磁盤上所有的資料記錄下來,如果出現了問題,我們就可以通過快照,快速的復原到某一個時間點的資料,這樣能夠保證在業務出現了問題的情況下,快速做災備的恢複。
整體介紹完雲伺服器的基本概念之後,接下詳細介紹一下雲伺服器的存儲和網絡的概念。
雲上的三種存儲方式
第一種是前面已經介紹的塊存儲的模式,使用者建立了一個塊存儲之後,可以把塊存儲挂載到執行個體上,就跟自己使用筆記本電腦過程中,電腦自帶的磁盤不夠用了,去買移動硬碟來插上來類似。塊存儲有三種類型,包括普通的高效雲盤,還有SSD雲盤,以及超高性能超低延遲的ESSD雲盤。
第二種存儲方式是檔案存儲,每一個塊存儲隻能夠挂載到一個雲伺服器上,而每個檔案存儲可以被多台ECS使用。
第三種存儲形态是對象存儲形态OSS,這個就類似于百度雲盤,使用這種存儲的方式,更多的通過一個連結來做檔案的讀取。
雲上的網絡
網絡部分主要是兩個概念,專有網絡VPC和交換機。
第一個是專有網絡VPC,專有網絡是在雲上為使用者劃分一個私有網絡,使用者通過建立VPC可以建立邏輯上徹底隔離的一個網絡環境,每一個VPC都是由一個路由器以及一個以上的交換機組成的。使用者一旦建立了一個VPC專有網絡,阿裡雲會自動為使用者建立一個對應的路由器,來完成VPC下所有網絡的轉發。同一個VPC下的執行個體之間的内網是互通的,即在同一個VPC下執行個體之間可以通過内網IP位址來互相通路。
第二個概念是交換機,前面已經介紹了,一個VPC至少有一個路由器。交換機是專有網絡的基礎網絡裝置,用來連接配接不同的執行個體資源,我們可以通過交換機,在每一個可用區建立多個交換機來劃分子網,然後多個交換機之間是可以通過路由器來實作連接配接和轉發。以上是存儲和網絡的一些基礎的概念。
雲伺服器ECS的使用流程
下面我們介紹一下使用ECS的流程。
一個ECS的執行個體,我們可以把它了解成一台虛拟機,它包含記憶體、磁盤、網絡和作業系統等軟硬體。而一個ECS伺服器執行個體是多大的規格,底層的實體硬體是什麼樣子的,是由對應的執行個體規格和執行個體規格族來決定的。執行個體規格族代表了執行個體适用的業務場景,它決定了CPU和記憶體配比,以及底層的實體硬體是什麼樣子的。執行個體規格代表的是執行個體的大小,比如說 CPU的數量是多少。
在确定了執行個體規格之後,我們還需要去選擇對應的存儲,因為隻有CPU和記憶體的話,資料是沒有辦法存放的,是以就會有一個塊存儲。塊存儲有兩種,一種是雲盤,一種是本地盤。雲盤其實是雲上的一種三副本的存儲形态,能夠給使用者提供高可用的能力。雲盤主要用來做系統盤和資料盤,隻需要像實體盤一樣把它格式化就可以使用了,而本地盤可能更多的主要是用來做資料盤。
選擇完了計算存儲,我們接下來就要看對應的作業系統,雲上的作業系統指的是鏡像,目前阿裡雲提供是多種鏡像的來源,包括官方提供的這種公共鏡像、第三方市場提供的鏡像、使用者自定義鏡像,還允許不同的使用者之間共享鏡像。
網絡方面阿裡雲會有一個網絡帶寬,使用者可以直接指定。
我們把執行個體的計算、存儲、網絡以及作業系統等參數制定好之後,就可以建立一個跟我們實體的筆記本電腦一樣的雲伺服器。
建立完之後,我們通過阿裡雲的控制台,或者是通過阿裡雲的APP,可以直接連接配接和通路已購買的雲伺服器。
第二部分:ECS執行個體規格族介紹
第二部分我會給大家介紹一下ECS執行個體的規格族是怎麼命名的,大家可能在這一塊會有比較多的疑問。目前阿裡雲提供幾百種執行個體規格,是以在選擇的過程中會眼花缭亂,其實隻要了解了ECS的執行個體規格族的命名方式,和它的資訊布局,我們就能夠很好的選型了。
執行個體的架構類型、規格分類與詳細資訊
</p>
在阿裡雲控制台的購買頁面上可以看到,執行個體規格族的選擇上分成三大子產品:架構、分類、具體資訊。最上面就是我們的執行個體規格架構的類型,有三種架構類型,分别是通用的X86的架構、異構計算(像GPU或者是FPGA、NPU等)、阿裡雲自研的神龍裸金屬架構。
在每種架構下面會有執行個體規格的分類,從上圖可以看到在X86的這種計算型态下,分成了7大類執行個體規格,不同執行個體規格代表了不同的硬體配置,選擇任何一個執行個體規格的分類之後,我們可以看到對應執行個體規格的詳細資訊,這些資訊主要分為四部分:
第一個就是執行個體規格族的詳細資訊,包括對應的規格族和執行個體規格的代稱,這裡可以通過點選小問号,能夠看到執行個體規格族的一些詳細的描述。
第二部分是 CPU和記憶體大小的資訊,這裡是大家在選型的過程中會比較關注的。
第三部分是執行個體的網絡能力資訊,包括執行個體内網的帶寬和收發包的能力。
第四部分是CPU的處理型号的資訊,包括處理器的主頻和睿頻這兩部分資訊。
企業級執行個體 VS 入門級執行個體
在控制台的購買頁面上可以看到,ECS的執行個體規格族特别多,單純從CPU和記憶體是無法判斷它們的差別,是以我們需要從宏觀上來看。阿裡雲ECS的執行個體規格整體是分成兩大類,一類是企業級執行個體,一類是入門級執行個體。
企業級執行個體是阿裡雲在2016年9月份才推出的,其特點是vCPU是獨享的,也就意味着我們建立一個企業級執行個體的時候,執行個體vCPU與我們底層實體的 CPU是綁定了的,底層的實體CPU就不可能再配置設定給其他的執行個體了,是以企業級的執行個體不會出現資源的争搶,是以能保證性能穩定,并且企業級執行個體提供了非常嚴格的SLA性能保證。
而入門級執行個體就是vCPU跟底層的實體的CPU是不綁定的,意味着可能每個vCPU是随機配置設定到底層的空閑的一個實體CPU上,如果同一個實體的實體伺服器上有多個共享入門級執行個體的話,不同的執行個體就會出現資源的争搶,導緻CPU的性能不穩定。
因為入門級執行個體存在性能不穩定的特性,是以阿裡雲現在僅僅提供一種入門級執行個體,就是在X86架構中的共享型執行個體, 而X86架構中的其他執行個體規格,以及異構架構和神龍架構中的所有執行個體,都是屬于企業級執行個體。
由于企業級執行個體性能穩定,并且有嚴格的SLA的保證,是以它比較适合于對業務穩定性有比較高的要求的場景。入門級執行個體由于不能夠保證性能穩定性,是以價格相對便宜,比較适合于一些對性能沒有嚴格要求,或者在某些時段下才會有性能突發要求的場景,比如有些輕負載的應用或者是微服務。
共享型執行個體
在介紹完ECS執行個體大的分類之後,我們來看一下共享型執行個體的具體資訊。
我們前面講到了隻有X86架構下的共享型執行個體才是入門級執行個體。這類執行個體比前面執行個體在四要素以外多出一個參數,即“平均基準的CPU計算性能”,基準性能即執行個體能夠持續提供的CPU性能。
共享型執行個體也就是入門級執行個體,分成兩大類,第一類是屬于标準的共享型執行個體, CPU是不綁定的,隻提供基準CPU性能,是以當出現資源的争搶,是否能超出基準性能是沒有保障。
另外一種特殊的共享型執行個體,名為突發性能型的共享執行個體,它主要就是照顧到某些應用在絕大多數的時候CPU的使用率可能都不高,負載都不高,但是在某些時候可能會有臨時的突發的高性能要求,是以阿裡雲會提供突發性能的參數,是以您在購買共享型執行個體的時候,能夠通過突發性性能來獲得高于平均基準CPU性能的能力。
突發性能型的共享執行個體,如果應用實際用量低于了平均的基準性能,會獲得對應的CPU的積分,如果在某些場景下性能要求突然提升之後,比如執行個體對應的 CPU的使用率超過了20%,會消耗之前累積的CPU的積分,去提升計算性能,讓計算性能不會受到影響,這個是突發性能的共享型執行個體獨有的特性。
兩個特殊的執行個體規格
除了共享型的入門級執行個體以外,阿裡雲還有兩個執行個體規格比較特殊,就是大資料型和本地SSD。
這兩種執行個體規格會附帶一個本地存儲,大資料型執行個體的本地存儲是HDD盤,本地SSD新增的本地存儲是具有非常高I/O吞吐,并且有低延遲的本地SSD盤,具體的資訊大家可以在阿裡雲控制台檢視。
企業級執行個體規格家譜
下面介紹企業級執行個體規格的家譜,友善我們快速了解各個執行個體家族的“親屬”關系。企業級執行個體規格族分成三大塊,第一大塊是X86計算,除了共享型以外,包括通用、計算、記憶體、高主頻、本地SSD和大資料型都屬于我們的企業級執行個體,企業級執行個體每年都在不停地疊代,是以會分成不同的代系,我們在後面會詳細介紹不同的代際之間的差別。異構計算裡面所有的GPU和FPGA都是屬于企業級的執行個體,裸金屬和高性能計算也是一樣的。
首先,我們來介紹X86的執行個體規格的命名方式,分成了5種:
第一種執行個體規格是通用型,顧名思義就是什麼場景都能夠用,是以這種型号的代稱是g系列,它的vCPU和記憶體的一個配比是1:4。
第二種執行個體規格是計算型,顧名思義就是在某些場景下對CPU算力的要求會更高一點,是以它的vCPU和記憶體的配比是1:2,然後簡稱為c系列。
第三種類型是記憶體型,提供更多的記憶體能力,是以它的CPU和記憶體的配比是1:8,也簡稱為r系列,r是RAM的簡稱
第四種和第五種分别是大資料型和本地SSD型,這兩種的CPU和記憶體的配比都是1:4,隻是它們配的本地盤的類型是不一樣的,導緻它們的技能和适合的場景也是不一樣的。是以大資料型的簡稱是d,本地SSD型簡稱是i。
在這5個基礎的執行個體規格上面,我們會去做一些額外的能力提升,比如說在通用型、計算型和記憶體型這三種類型下,增加了一些高主頻的能力,正常的 CPU的主頻應該是2.5G赫茲,但是我們有一些可以是做到3.2G赫茲,這種加上高主頻的能力就變成了高主頻型,會在前面去加上一個hf這樣的一個辨別。
随着技術的演進,神龍架構的神龍卡也是在不斷地疊代和改善,搭載了第三代的神龍卡可以整體提升通用型、計算型和記憶體型這三種執行個體規格的性能,是以就會出現一個平衡增強型。對于大資料型的話,做了計算和存儲的分離,形成了大資料存儲型,簡稱為d2,而 d2s是在大資料的基礎上,做了一些網絡能力的增強,就變成了一個網絡增強型。
執行個體規格的命名方式和規律
大家通過下圖能夠看到阿裡雲執行個體規格的命名方式和規律。
普通的X86執行個體規格名稱是分成了三段,第一部分表示的是産品名稱,ECS是阿裡雲的産品;第二部分表示了執行個體的規格和代系,前面已經講過hfg表示是在通用型的基礎上增加了高主頻的能力,然後6代表的是什麼?其實它代表的是我們産品的代系,可以根據産品的代系推算對應的産品的一個新舊,比如說6代表第6代,5代表的是第5代,這個數字越大代表它是更新的一個代系,它底層的實體硬體也會越新,它的成本效益相對而言也會越高。
最後一部分是執行個體的規格,表示的是執行個體的vCPU的核數,large代表2個vCPU, xlarge代表4個 vCPU,2xlarge代表的是8個vCPU,以此類推。
了解了以上命名規律,就能通過執行個體規格族的名稱推斷出來目前這個執行個體的CPU是什麼型号、它的是什麼樣的代系,以及它的 CPU的數量是多少。
GPU命名規則也是類似的,隻有一個不一樣的點,GPU名稱的的中間這一部分會提供CPU和GPU的的配比關系,因為 GPU是除了CPU以外還會提供一個額外的GPU的卡。是以我們也是直接可以通過它的規格族的格式,能夠去推斷出來它底層的實體的配置。
第三部分:ECS執行個體選型實戰
第三部分給大家實戰講一下如何做雲伺服器ECS的選型。
簡述各種規格執行個體的适用場景
X86計算:
• X86的通用型、計算型和存儲型三種執行個體,CPU和記憶體的配比比較一緻,是以比較适合做一些中小型的資料庫,或者是一些資料處理的任務。
• c系列的話,主要是計算型,是以比較适合于做一些計算要求比較多的,比如說做一些外部應用,或者做一些批量計算,或者是一些高性能的科學計算類的。
• r系列的話,因為它的記憶體比較多,是以比較适合于做一些資料庫或者資料分析的應用。
• 高主頻執行個體規格也是比較适合于對CPU的主頻有比較高要求的高性能科學計算。
• 本地SSD類型,更多的适合于做一些關系型資料庫或者是NoSQL資料庫的
• 而D系列的大資料型,可能更适合于做一些大資料叢集的一個場景,比如說像這種Map Reduce這種。
在異構這一塊,分成了兩大類:
• GPU比較适合于做深度學習或者是圖像視訊的可視化的處理;
• FPGA就比較适合于做圖像的轉碼,或者音視訊的解碼。
裸金屬和高性能計算:
• 更垂直和性能要求更高的一些場景,像一些高性能的資料庫或者高性能科學計算場景。
下面我們舉幾個例子詳細介紹一下選型方法。
X86執行個體選型推薦
我們可以把一個web應用分成以下幾個層次,每個層次做對應的推薦:
• 對于Apache和Nginx的web伺服器,,因為它主要做一些計算處理,是以推薦是使用一些計算型的,比如說c5、c6這樣的;
• 對于像 spring cloud或者說MQ這樣的中間件的話,它是屬于對于計算和存儲的訴求都比較正常的,是以我們是推薦一些通用性的,比如說g6這樣的執行個體規格;
• 而應用型因為是屬于比較通用的場景,是以G6系列就能夠滿足;
• Redis和Memcache這種緩存應用,對記憶體的要求是比較高的,是以我們推薦使用記憶體型的,像r系列;
• 對于關系型資料庫,我們是可以直接使用記憶體型,比如說r系列配上我們的SSD雲盤;
• 對于NoSQL,我們推薦本地SSD型的,比如I系列;
• 對于大資料的話,類似于HDFS或spark的這種,我們也有專門的大資料型的,像d系列這種的來處理;
• 對于最底層的機器學習的,比如MXNet這種訓練架構,會有對應的專門的GPU計算型。
GPU執行個體 選型推薦
GPU雲伺服器的場景主要分成兩大類,第一大類是人工智能,或者叫機器學習,第二塊是圖形圖像的處理。在機器學習裡面也會分成兩個場景,一個是訓練,一個是推理。是以對于不同細分的垂直領域,我們給了一些規格的推薦,具體可見下圖。
下面我們介紹兩個相對而言比較複雜的選型場景。
大資料場景執行個體選型實戰
第一個複雜場景是大資料的場景,類似于Hadoop、Spark這種大資料叢集搭建的時候,如果我們自己手動做搭建,會把過程分成三大塊:第一大塊就是叢集的管理節點的執行個體規格選型,第二塊是叢集的計算節點的選型,第三塊是叢集的資料節點的選型。
• 管理節點是比較通用的場景,是以直接選擇g系列就能夠很好地處理管理的任務;
• 計算節點更多的是屬于比較偏正常的業務負載,是以可以把g系列作為主要的選擇,搭配SSD雲盤;
• 資料節點對存儲的吞吐和網絡的吞吐有比較高的要求,是以推薦使用 d系列,搭配對應的本地盤,能夠完成這種資料的讀取量;
是以整體來說,在同樣一個大資料的叢集裡面,不同的任務有不同的特征,是以會選擇不同的執行個體規格。
資料庫場景執行個體選型實戰
第二個複雜場景是關于資料庫選型的:
• 對于普通的業務,負載比較輕的資料庫,有專門的通用型g系列,或者記憶體型r系列搭配高效雲盤和SSD雲盤就能處理,成本效益會比較高。因為g系列和本地盤或者本地SSD比起來,價格還是很有優勢的。高效雲盤和SSD雲盤的整體性能,其實也是能夠滿足日常資料庫的場景的。
• 對于業務負載要求非常高的叢集,推薦本地SSD的 i 系列搭載NVMe SSD的雲盤,能夠實作存儲的高IOPS和低延時,能夠滿足重載資料庫的性能要求。
X86 第6代vs第5代 執行個體價格對比
除了性能以外,大家也會關注價格,這裡有一個X86裡面第6代和第5代的一個價格的對比。
可以看到除了計算型的執行個體在某些區域下,第6代執行個體會比第5代10執行個體的價格會略高4%以外,通用通用型和記憶體型的包月價格,第6代普遍比第5代要便宜2%-12%,是以整體來說的話,第6代不僅僅是性能有20%的提升,而且絕大多數的産品會更便宜。
而按量付費的話,第6代的價格比第5代的價格會低37%-47%,這其實是一個非常大的讓利的空間。是以在選擇按量去購買ECS的時候,選擇第6代會比第5代要便宜的要便宜的更多。
選型實戰總結
總結選型方法,有三個法則,大家可以記在心裡面,在選型的過程中運用。
第一個法則是相同大小的企業級的執行個體比入門級的執行個體性能更穩定,但是入門級的執行個體成本效益更高,因為企業級的執行個體它是獨占了vCPU,不存在一個資源的争搶,有性能的保障,但是對于一些個人或者中小網站的應用,如果對性能的訴求并不是那麼強的話,選擇入門級的執行個體其實是一個更好的選擇。
第二個法則是在相同的執行個體規格下,新一代的執行個體規格比老一代的執行個體規格成本效益更高,這是因為新一代的執行個體規格,做了很多技術的演進和更新換代,能夠給公有雲使用者釋放更多的技術紅利。
第三個法則是選型時不僅僅要選擇合适的執行個體規格,而且還需要搭載合适的塊存儲,才能夠讓雲上的應用達到預期的性能。雲上會提供4種不同的塊存儲,包括高效雲盤、SSD雲盤、ESSD雲盤和本地盤,不同的類型盤的IOPS和吞吐是不一樣的,是以不僅僅要選合适的執行個體規格,還要選擇合适的塊存儲,才能夠形成合力,達到最佳的性能。
第四部分:ECS省錢省力之道
在購買雲伺服器的時候,除了要做執行個體規格的選型,讓選擇的執行個體規格和業務的比對度更高以外,我們還需要去考慮能不能更便宜,能不能夠快速完成資源的傳遞,是以最後一部分給大家介紹一下ECS省錢省力的技巧。
省錢大法
第一個是省錢大法,省錢大法意思是選好了執行個體規格,還需要選擇最适合的付費方式,才能夠得到更好優化成本。阿裡雲目前提供5種付費方式,分别是節省計劃(Saving Plan)、包年包月、預留執行個體券、按量付費、搶占式執行個體。
如何選擇合适的付費方式呢?有一個攻略,就是我們需要根據業務的穩定性和峰谷的波動情況,來選擇最适合的付費方式。像節省計劃、包年包月、預留執行個體券就比較适合于穩定的業務負載;有狀态并且是動态變化的業務負載的話,可以使用按量付費;而對于完全沒有狀态,并且具有很高的容災能力的,可以使用搶占式的執行個體來傳遞,因為搶占式執行個體的價格是可以做到按量付費執行個體的10% 的。
省力之道
第二個是省力之道。在雲上購買資源的時候,有時候會批量購買,阿裡雲會提供多種自動化的資源傳遞模式和工具,能夠實作一次配置重複使用,進而提升整個雲上部署的速度和效率。
比如通過控制台做批量的傳遞;通過部署集可以完成底層具有容災能力的算力叢集的傳遞;通過彈性伸縮和彈性供應,能自動化地完成資源的傳遞;而通過資源編排,可以把多種不同的資源組合傳遞。
上雲選型四步走
總結一下,上雲的過程中,我們需要走好四步:
第一步:對自己的業務特征做一些分析,包括對性能的要求,對網絡的要求,形成一個基本的判斷;
第二步:針對業務特征來選擇對應的ECS執行個體規格;
第三步:選擇對應的一個付費方式,隻有選擇最合适的付費方式,才能夠實作雲上的成本最優;
第四步:選擇合适的傳遞方式,幫我們省時省力地完成資源的傳遞。
以上就是我今天分享的主要内容,然後如果大家有什麼疑問,歡迎大家直接在下面留言跟我互動,謝謝大家的觀看。