天天看點

雲上高彈性、低成本解決方案

雲上高彈性、低成本解決方案

導讀:

如何友善快速應對業務變化造成資源的彈性需求?

如何在高可用和低成本間找到更合适的解決方案?

本次分享主要幫助使用者快速了解雲上彈性能力和應用方式,同時通過彈性伸縮和彈性供應組多種方式實作成本優化。

作者 | 阿裡雲進階技術專家 賈少天 

來源 | 彈性計算百曉生

01

ECS概況

雲上高彈性、低成本解決方案

​  ECS計算産品家族譜

ECS産品是雲伺服器産品,具有各種各樣執行個體規格,不同的執行個體規格具有不同适用場景,使用者可通過自身使用的業務場景或是運作内所需性能等方面的考量選擇适合自己的執行個體規格。針對不同的場景,我們所推薦的執行個體規格不同,如下圖所示,對比自身業務領域的情況選擇合适的執行個體規格。

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

​  ECS付費方式

阿裡推出後付費和預付費兩種付費類型。

後付費按照使用者使用情況付費,按量付費是秒級計費方式,使用一秒鐘或一分鐘則收取一秒鐘或一分鐘的費用。搶占式執行個體是根據價格的意向來使用ECS,根據市場價格變化或是需求發展變化系統會随時進行資源釋放,但可以保障使用者最低一個小時的使用,且使用者必須保證業務産品是無狀态業務産品,這樣可以更大程度上降低業務成本。

預付費模式可按月、按年、按周的方式購買執行個體規格,如果使用者預期兩年内使用阿裡雲服務,則可選擇按年方式購買,在年付費方式的基礎上還具有各種各樣的折扣。如果使用者的業務場景預期以周為機關,例如已知下一周有大的負載情況或做一期業務場景活動推廣等,則使用者可按周的方式購買,同時也可按月方式購買,使用者可根據自身的不同業務場景自定義選擇購買方式。

另外在此基礎上阿裡還提供了預留執行個體,預留執行個體與包年包月相近,可按照年、月、周的方式購買,但該方式不根據資源執行個體規格長短定,使用者可選擇自身範圍的執行個體規格在一定周期内使用,是資源與折扣的解耦。

雲上高彈性、低成本解決方案

使用者可能會在這些執行個體規格和付費類型的選擇方面存在各種各樣的問題,不了解在什麼情況下選擇最合适的執行個體規格和付費類型,是以阿裡會推薦一種面向業務的最佳實踐。

購買包年包月資源或預留資源可作為基礎業務負載的保證,例如購買二十台資源作為日常基礎請求量的負載保證,在此基礎上購買按量付費類型來支撐每天負載發生的變化,隻要能快速擴容或是負載快速縮容,就可以使用比包年包月更低成本的資源。另外使用者具有無狀态的業務建立,可做到高容錯,可在此基礎上使用Spot扛最上面的高峰值。

希望通過包年包月、按量、搶占式三種付費類型的結合,讓使用者整體的成本達到最低的同時擁有高品質的伺服器。

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

​  ECS資源彈性傳遞方式

阿裡雲提供四種ECS資源彈性傳遞方式,Create Instance是最早期提供的單執行個體支付方式,每次可傳遞一個執行個體。随着業務的發展在此基礎上提供了Run Instances接口,單次可批量傳遞100+執行個體,但該支付方式限制單可用區和單執行個體規格。随後阿裡提供彈性伸縮和彈性供應兩個産品,來幫助使用者解決更加複雜的業務需求。

雲上高彈性、低成本解決方案

彈性伸縮是自動化的傳遞工具,可以一次性批量傳遞(2000/50000)執行個體。

如果伸縮組配置的普通安全組,那伸縮組的最大執行個體數是2000,如果有更多執行個體的需求的話就需要配置企業安全組,同時一次配置後可重複使用。

另外,該産品支援定時和觸發等功能,例如CPU達到70%時觸發擴容,少于30%時觸發縮容,或是使用者對于自身業務場景非常清楚擴容的時機則可進行主動觸發,預測功能可通過過去使用情況自動預測未來的發展變化,自動進行擴容縮容。

在此基礎上該産品支援多可用區和多執行個體規格,友善使用者在不同的可用區做高可用甚至提供更多的執行個體規格使成功率更高。另外還提供了成本優化模式。

彈性供應在原有基礎上提供了傳遞資源至傳遞計算力的環節,同時也是ECS原生大規劃傳遞方式。原先使用者傳遞1000個執行個體,現在可以傳遞1000vCPU或是其他緯度的業務場景,變成一種靈活度很高的産品形态。同産品伸縮相同批量傳遞執行個體規格達(2000/50000),以及配置的重複使用。同時也支援按量+Spot+RI的組合。

雲上高彈性、低成本解決方案

​  雲上彈性面臨的挑戰

使用者在雲上彈性方面面臨各種各樣的挑戰:

  • 例如某創業公司在app爆紅後頻繁無法通路,是由于業務突然大量湧入後業務增添的負擔支撐不住這麼大的壓力;
  • 或是線上視訊網站每天早八點或中午十二點都會迎來業務的高峰期,而對于如何應對高峰期則可能需要定時的擴容縮容;
  • 或藝人爆出八卦引發社交使用者的熱議,突然變為之前頻率流量的十倍左右的負載,如何快速解決該類問題的擴容來滿足業務場景;
  • 或是雙十一大促銷需要臨時擴容時企業如何準備;
  • 以及業務低谷期也保有全量資源,閑置成本非常高時包年包月成本如何解決。

在雲上很多時候會認為不可同時做到高可用和低成本,如果做到低成本可能顧不到高可用,在後面講師會分享某些場景上可以同步做到高可用和低成本。

雲上高彈性、低成本解決方案

02

彈性伸縮

雲上高彈性、低成本解決方案

​  彈性伸縮概述

彈性應用的産品應該滿足的業務場景有幾種。首先是傳統模式,會保有一部分資源,但該資源剛好可以扛住平時的高峰期,在低峰期就會形成資源浪費,或是在高分期扛不住,隻能扛住業務的平均值時,那麼在高峰期時會無法支援業務導緻崩潰或不可用,又或是到一定程度需要擴容時要進行人工擴容,但是需要收容時還需人工自行判斷。是以采用彈性伸縮就會自動根據整體業務負載的情況自動做擴容縮容,保證使用者用最少的資源負載業務整體的變化。

從下圖右邊中可看到關于彈性伸縮整體提供的能力:

雲上高彈性、低成本解決方案

縮組最大執行個體數:以組的方式進行管理,最大執行個體數值為2000/50000。

組合方式:支援五種可用區和十種執行個體規格提高了整體資源傳遞的成功率。

三種政策:提供優先級政策、均衡政策及成本優化政策。優化政策是指使用者可設定一批資源,該政策按照每種資源建立的成功率自動判斷每種資源目前傳遞使用最快最高成功率的方式。均衡政策是指使用者設定多個可用區後,在多個可用區下進行整體均衡的配置設定,這樣可保證一旦某一個可用區下發現整體不可用時業務依舊可以繼續有效運作。成本優化政策結合Spot+RI場景可幫助使用者在穩定的同時做到低成本。

五種伸縮模式:定時、動态、人工、固定和健康檢查模式。動态模式分為三種:簡單、目标追蹤和預測。簡單伸縮政策可以定義為CPU達到70%時增加五台,CPU小于20%時減少三台,使用者可根據自身經驗判斷當天需要擴縮的數量。目标追蹤可定義為整體業務需要保持CPU達到60%,當業務高峰期CPU達到80%時這時系統會自動幫使用者換算具體需要擴容多少資源才能滿足業務不受損,當CPU降到40%或30%時系統會判斷目前整體減少多少資源來保證業務最低運作。預測政策根據過去使用情況來預測未來的使用情況。

通過雲監控實作彈性:支援十七種雲監控名額進行觸發包括ASMA、SLS等。

提供事件通知能力:事中+事後整體的事件訂閱,可保證業務起到全局控制。

雲上高彈性、低成本解決方案

​  彈性伸縮核心概念

彈性伸縮的核心概念主要分為四種,如下圖所示。

雲上高彈性、低成本解決方案

在伸縮組上設定彈性伸縮配置,例如執行個體規格種類,整體啟動腳本的樣式,使用登入方式以及鏡像等,設定完可随時使用和修改。

在此基礎上設定伸縮規則和通知,伸縮規則是指具體增加多少台減少多少台,或者按照目标追蹤的方式設定CPU保持在70%,另外在每次成功或失敗時可以訂閱最終的結果到雲監控或MNS消息隊列中進行程式設計,來應對每次成功或失敗的結果,裡面會包含成功時擴容多少資源,資源ID是什麼樣的,或者對接到雲監控系統或者釘釘,可以知道導緻失敗的原因并快速做出預警進行幹預。

伸縮任務具有定時任務,支援一年和臨時提醒功能,在一年期限到達前會及時進行提醒,報警任務涉及到CPU或Memory等,另外伸縮任務還可進行自動或手動觸發。

雲上高彈性、低成本解決方案

​  多種伸縮模式

阿裡雲彈性計算提供不同的伸縮的規則,對應了不同的伸縮模式,包括:

雲上高彈性、低成本解決方案

健康模式:通過健康檢查發現一些不健康ECS執行個體時會進行自動清理,并建立新執行個體來替換不健康執行個體。

固定模式:可設定最大值最小值執行個體期望數量來保證業務正常運作。

手工模式:使用者如果對自己業務場景有非常詳細的了解或自有監控系統時,可通過API方式執行手工模式。

定時模式:例如線上視訊網站每天早八點或中午十二點會迎來業務的高峰期,可以在此期間進行定時擴容,度過高峰期的兩三個小時後再縮容。

動态模式:通過負載變化進行擴容縮容。

雲上高彈性、低成本解決方案

​  多種伸縮模式靈活組合

圖檔中顯示在不同場景下不同模式的表現。

雲上高彈性、低成本解決方案

定時模式,是在一個時間點擴容運作幾個小時後再縮容,整體線條是直上直下的。

動态模式,是伺服器的變化走向是與整體負載環境的變化走向一緻,趨向于負載的變化。

手動+動态模式,購買包年包月資源作為底座來扛日常業務,高峰期的負載環境變化通過按年的方式擴容縮容來保證,這樣整體穩定性更高,因為已有60%或70%的負載情況被cover,剩下的30%負載情況通過動态的方式cover。

定時+動态模式,說的則是例如資源擴容完後可能會發生數量變化,如有新電影或電視劇上映時具有高熱度,此時原先擴容的值會不夠用,則需要通過監控名額的變化在此基礎上進一步擴容。

動态模式-預測模式,預測模式通過過去1-14天的CPU使用情況或執行個體個數的變化進行模組化,通過機器學習預測算法預測未來2天整體的使用情況,并自動進行擴容縮容操作。

此場景适合非正常則的周期性場景,每天的業務在固定的時間點上進行固定變化,圖檔中展示的場景就很規律,每天都在固定的時間點周圍進行擴容和縮容,這樣所達到的預測結果會更加準确,是以推薦規則性的場景使用預測模式效果會更好。

該模式好處在于不用感覺CPU的設定值,它會自動進行運算并自動判斷多少執行個體可在此基礎上滿足目前的業務需要,是因為曆史上實際的整體情況已經被納入到所考慮的範圍内。如果使用者某一天做活動或推廣的業務期間突然湧入大量流量時,也可疊加目标追蹤模式,預測模式+目标追蹤模式疊加後在發生變化時可自動感覺和擴容,并在此基礎上再進行擴容或縮容,是以頻率性在遇到特殊的抖動或是特殊的變化時是有相關的規避方式的。

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

​  成本優化方案

前面講解了解到阿裡雲ECS的多種付費方式以及彈性伸縮的多種政策之後,使用者可以利用這兩種能力來實作成本優化。接下來會講解多種成本優化方案,使用者可根據自身情況自行選擇。

雲上高彈性、低成本解決方案

在ECS付費方式中提到了包年包月、按量付費和搶占式Spot等不同付費類型,這些付費類型可組合成多種成本優化方案。使用者可根據上圖中顯示的六種方案選擇成本最低穩定性更高的使用方式。

然而在方案選擇上阿裡平台則非常推薦A(預付費/RI+按量+Spot)方式,該方式将穩定性和低成本做到相對較好的結合,從上圖右邊圖檔中看出A方式的位置在四項中相對較好。但在此基礎上也與其他産品進行了對比,例如B是預付費/RI+按量方式,C是預付費/RI+Spot方式,D是按量+Spot方式,E是全按量方式,F是全Spot方式。

因為Spot場景價格非常低,是以F方式的成本很低,而系統帶來的一些釋放行為,也是導緻F方式的穩定性最差的原因。是以希望在F方式的基礎上作出成本更低穩定性更高的使用方式,是以推出了成本優化模式新功能。

F方式(全Spot)在原先全部适用于一種執行個體規格的基礎上,在此執行個體規格上做出一些調整,允許執行個體打散,将多種執行個體規格組合來滿足資源的傳遞。下圖中從左邊一種執行個體規格到右邊多種執行個體規格混合傳遞的方式,如果一次性傳遞是三種或四種,這樣即便有一種執行個體規格出現問題也不會影響整體使用關聯性。

雲上高彈性、低成本解決方案

另外,Spot在此基礎上又提供了提前補償機制,Spot執行個體在釋放前五分鐘可通過事件示例訂閱此消息,在Spot執行個體釋放前五分鐘時自動開啟補償機制,知道某些執行個體被釋放後就開始建立替換執行個體,建立完後立刻将Spot釋放的執行個體替換掉,這樣就不會出現圖中左邊斷崖式釋放。

否則,在Spot執行個體釋放完後再重新建立替換執行個體中間的時間周期會導緻一定的抖動,而右邊提前五分鐘在Spot執行個體還沒有釋放完時新的執行個體已經建立出來,是以業務上不會出現抖動情況。需要注意的一點是使用Spot執行個體時一定要保證業務是無狀态的。

雲上高彈性、低成本解決方案

​  事件驅動

彈性伸縮提供的事件驅動能力,阿裡在提供開放接口(OpenApi)的基礎上又提供事件通知(Notification)和生命周期挂鈎(Hook)的能力。通過這三種方式的結合可以讓使用者擁有更全面控制彈性伸縮組的能力。

雲上高彈性、低成本解決方案

關于事件通知和生命周期挂鈎的職能,從圖中可以看到擴容時需要建立資源、關聯RDS白名單、啟動中、運作中、挂載SLB并且最終加入到ESC彈性伸縮組中,而縮容時是從ESC彈性伸縮組挪出、取消SLB挂載、關機、取消RDS白名單、移除最終釋放。

無論是擴容還是縮容最後執行結果時都會有事件通知,該事件通知可以通過事件訂閱,例如MNS消息隊列、CMS雲監控、OOC運維編排方式訂閱資訊,然後将資訊進行相關處理,可內建到自身系統中待資源成功時添加到系統當中,如果失敗可進行自動化重試。

而生命周期挂鈎在每一次擴容或縮容時會先發出消息,在使用者接受到消息時可以判斷目前這次擴容或縮容能否進行,例如建立執行個體後在挂載SLB之前會給使用者發送消息,訂閱消息後就可知道目前多少執行個體建立成功,并通過自身業務場景進行判斷這些執行個體是否需要繼續往下走,是否需要挂載SLB,是否需要最終傳遞到彈性伸縮組中。如果不需要,可直接選擇Rollback,這些資源将會自動清理掉,如果需要就繼續往下走最後添加到彈性伸縮組中。

縮容也是同樣,當某些資源需要被釋放時會将消息發送給使用者,提示目前要釋放哪些資源,使用者在擷取到消息後可以進行驗證,看資源上的任務是否進行完畢,是否有資料需要進行同步和備份。

如果任務還未進行完畢時,使用者可以選擇等待或者直接取消,如果所有任務進行完畢且符合預期則可以繼續往下走并進行釋放。

通過生命周期挂鈎能力和事件通知能力可以讓使用者了解到一個事件中所有行為的全面感覺,這樣無論是自己做業務報警還是系統內建,都擁有更全面的控制能力。

03

彈性供應

雲上高彈性、低成本解決方案

​  彈性供應(Auto provisioning)介紹

彈性供應是一種全新算力傳遞方式,可以整合包年包月、按量和Spot多種能力的付費類型執行個體,并且跨執行個體規格族、跨可用區的計算叢集傳遞。

其優勢在于相比以前傳遞1000資源,現在在彈性供應上傳遞1000vCPU、傳遞1000Memory或者使用者自身定義緯度應該傳遞的資源權重的樣式,按照權重定義資源數量。

雲上高彈性、低成本解決方案

圖中顯示可定義目前伸縮組所有資源的比例,如33%按量資源和67%Spot資源,這樣使用者可在整體成本上自行控制,在自身想要的成本情況下來滿足自身業務需要。最終傳遞的成果如圖A、B、C、D,是多種執行個體規格多種可用區資源的整體結構。

雲上高彈性、低成本解決方案

​  彈性供應的基本元件

目标容量:定義目标容量,可以定義vCPU的次元、執行個體次元或者其他需要的次元。

執行個體權重:為每個執行個體規格都定義自己的權重,如果是按照vCPU次元定義的權重,最終傳遞的資源整體容量是以vCPU為次元,如果是以使用者自己業務産品計算力或是推出能力去定義,最終的效果就是以自己産品的權重容量傳遞,此能力最大的好處在于完全依照自身方式去定義期望的結果。

執行個體優先級:傳遞執行個體時可以定義每一種執行個體先後順序,這樣在建立時可以優先極高的執行個體。

Instance Pool To Use Count:指在成本優化政策時,可以選擇最便宜的執行個體規格數量,進行一定程度的多種執行個體規格打散,在彈性收縮中使用一種Spot執行個體時有可能出現大面積的Spot資源全部清零的情況,然而現在可以用Instance Pool設定幾種可接觸的最低價的Spot執行個體數量,例如數量設定為三種時,資源建立的時候救可以選擇最低價的三種Spot執行個體進行建立,這樣即便出現一種Spot執行個體釋放也不會導緻整體業務受到損失。

雲上高彈性、低成本解決方案

​  彈性供應的産品優勢

超低成本:如果全部使用Spot執行個體傳遞時,最高可節省90%的成本,同時也可設定全局和單個執行個體規格價格上限,這樣使用者可以完全保證低成本,如果超過上限阿裡就會幫助取消建立的資格,隻有滿足使用者定義的範圍之内才可進行建立。

多種政策組合:可以支援所有的按量資源的執行個體傳遞政策或是具體成本的數量。

快速傳遞:單個供應組支援20種執行個體規格和多可用區部署,可分鐘級快速傳遞2000執行個體。

智能打散:降低Spot被整體釋放的風險,自動托管,分鐘級巡檢,動态保證叢集的整體算力。

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

​  産品連結

如果使用者對彈性伸縮或彈性供應相關産品有興趣的話,可以點進連結檢視,該産品是在雲上解決希望用雲上彈性降低整體成本的需求。

現在無論是電商或是視訊類等許多使用者都在使用該産品解決自身的業務問題,使用的效果也非常不錯,可以以更低的價格保證自己的業務運作。尤其現在大部分使用者都對成本有需求時,阿裡也提供了很多種新功能,包括滾動更新等功能幫助使用者在使用産品的過程中可以更好的融合到業務中。

因為資源傳遞置換的下一步就是如何進行應用釋出等流程。使用者後續如果有相關的問題可以在系統中提出,阿裡也會在後續的具體細節中與使用者進行溝通。

産品介紹頁:https://www.aliyun.com/product/ecs/ess

産品文檔:https://help.aliyun.com/document_detail/25857.html

産品控制台:https://essnew.console.aliyun.com/

産品文檔:https://help.aliyun.com/document_detail/120020.html

産品控制台:https://ecs.console.aliyun.com/#/fleet/region/

關注百曉生,笑談雲計算

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

  ECS計算産品家族譜

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

  ECS付費方式

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

  ECS資源彈性傳遞方式

雲上高彈性、低成本解決方案

  雲上彈性面臨的挑戰

雲上高彈性、低成本解決方案

  彈性伸縮概述

雲上高彈性、低成本解決方案

  彈性伸縮核心概念

雲上高彈性、低成本解決方案

  多種伸縮模式

雲上高彈性、低成本解決方案

  多種伸縮模式靈活組合

雲上高彈性、低成本解決方案

  成本優化方案

雲上高彈性、低成本解決方案

  事件驅動

雲上高彈性、低成本解決方案

  彈性供應(Auto provisioning)介紹

雲上高彈性、低成本解決方案

  彈性供應的基本元件

  彈性供應的産品優勢

雲上高彈性、低成本解決方案
雲上高彈性、低成本解決方案

  産品連結

雲上高彈性、低成本解決方案

繼續閱讀