阿里云贾少天:大规模云服务器高效使用及管理实践
簡介:本篇內容分享了大規模云服務器高效使用及管理最佳實踐。
2021年10月22日,在云棲大會的《云上運維最佳實踐》分論壇,阿里云高級技術專家賈少天發表了主題為“大規模云服務器高效使用及管理最佳實踐”的演講,本篇內容根據他的演講整理成的文章,主要通過以下三個部分來介紹大規模云服務器高效使用及管理最佳實踐。
01 ?如何快速上云?
我們把上云分為四個階段:上云前整體評估、上云遷移的過程、上云遷移的驗證、線上業務切換。我們今天帶給大家的服務器遷移中心產品就是幫助大家優化遷移的過程和遷移的驗證,讓這一部分更快速高效的進行。
遷移現存三種方式:
? 第一種,重新部署遷移。就是把原來在線下的環境在云上重新一步一步再操作一遍,這種方式不管是易用性、速度、還原度方面都不是推薦的方式。
? 第二種,導出鏡像方式。是在你自己本地的環境按照阿里云鏡像規范導出一個鏡像,然后上傳到阿里云使用,系統還原度可以保證,但是容易度和速度還不是最優的辦法。
? 第三種,使用阿里云的服務器遷移中心。你只需要下載一個客戶端在本地運行,然后創建一個遷移任務,服務器遷移中心產品就會幫你自動執行整個遷移工作。
阿里云服務器遷移中心有哪些優勢呢?
? 首先,它是高度成熟化的產品,支持行業里各種各樣鏡像。
? 第二,高度自動化。一行命令,整個過程無人值守。我們提供API和控制臺,讓你去觀測整個過程和結果。
? 第三,高度智能化。從遷移開始,到執行過程中出現任何問題,都會自動進行相關的修復工作,讓整個過程更加高效順暢。
用戶也可以根據自己的場景,遷移成多形態。我們也支持增量和全量遷移,達到線上和線下完全統一的效果;用戶還可以根據自己的情況,選擇多種復制模式。
服務器遷移中心是一個高度自動化的產品,支持批量多實例遷移,無論是什么規模的資源遷移都可以高效的支持,如果大家后續使用阿里云過程中遇到遷移問題,強烈建議大家使用這個產品。
02 如何低成本地構建大規模資源場景?
如何低成本的構建大規模服務器?這里有兩個核心關鍵詞:低成本、大規模。 我們看看到底怎么用最少的錢使用阿里云的ECS?
如果大規模使用ECS,第一個問題是如何高效?比如今天有一個業務高峰期,需要1000臺機器,我們能不能在最短時間里快速交付這1000臺機器?其次,能否以更低的成本使用這1000臺機器?第三,這個機器能不能通過自動化的方式,減少人工參與,讓管理和維護過程的成本更低?
先說高效部分,推薦大家使用ECS啟動模板功能。不知道在座的各位來賓有哪位使用過ECS的啟動模板這個功能,這是一個ECS配置數據的持久化工具。在阿里云上創建的任何ECS實例,都可以通過它去保存ECS實例的所有配置。后續任何時候,都可以通過這個配置快速創建實例,不再需要重新配置。而且每次的變化都可以通過版本的方式管理。即使之前沒用過,想要用起來也很輕松,從任何一個已經存在的實例可以快速的生成一個啟動模板,對應的配置就是這個實例的配置。
有了啟動模板,除了快速創建實例,我們還有其他的使用方式。比如你當前需要創建一個高彈性的Web應用,像在線提供Web服務的場景,每天都有高峰期。高峰期使用更多資源,低峰期使用更少的資源。這樣的話,可以用現有的啟動模板,快速創建一個彈性伸縮組。
比如它有定時模式,當業務高峰期在早上8點,早上8點會定時去擴容。業務低峰期是晚上6點,在晚上6點定時會縮少機器;第二,可以是動態模式,當CPU超過50%時增加機器,當CPU低于40%時縮減機器;第三,手動模式,用戶自己通過本地自建系統來觸發伸縮活動。
除此之外,如果你想對整個過程有更全面的控制能力, ?我們還提供生命周期掛鉤的能力,比如伸縮組在幫你縮容資源的時候,你發現實例上還有一些日志文件需要備份,則可以通過生命周期掛鉤拒絕當前的縮容行為,伸縮組可以幫助繼續保留資源;還有通知能力,任何擴容縮容都可以通過釘釘、短信、郵件的方式通知給你。而且伸縮組還可以同時幫你打通實例與SLB和RDS的聯通關系,幫忙用戶通過這種方式快速構建高彈性的Web能力。
如果你不需要一個具備持續彈性能力的方案,只是需要批量的使用大規模的計算資源, 比如使用1000臺機器。我們推薦使用彈性供應組。彈性供應組是為了滿足批量大規模計算力交付的場景。比如當前需要10000個CPU,它可以根據使用彈性供應組的容量模式,去設定10000個CPU。系統會自動根據10000個CPU判斷,當下需要創建多少實例。同時,你可以根據自己的成本考量,選擇是否用按量或者Spot實例,進行配比承載自己的業務需求。
另外,我們還有多種交付類型。其中有成本優化模式,系統每次創建時都會以最低價格的實例進行創建,讓你的成本降到最低;均衡模式可以幫你在多個可用區創建,提高系統的高可用能力等。為了滿足更多的場景,彈性供應組提供了三種交付模式來滿足不用需求,有持續交付的maintain模式,也就是一直幫你保持你需要的資源數量,也有一次性交付的request和instant模式,其中instant模式可以理解成RunInstances接口能力的升級版本,在原有runInstance只支持單個實例規格、單個可用區的基礎上,增加了更全面的能力。
彈性供應組讓交付過程更加順暢,成功率越來越高。
如果大家使用以上的彈性能力來創建資源,可以輕松保障99.9%的彈性成功率,實現一分鐘交付1000臺ECS的效果。在這個基礎上,你可以快速構建自己的彈性場景,任何快速高要求的極致彈性場景都可以通過這種方式快速構建起來。
剛才說到要降低成本,以低成本使用這些資源。先跟大家簡單介紹一下Spot實例,它是后付費實例。它有兩個特點,一個是低價,它的價格在按量實例一折和原價之間。另一個是容易被釋放,你可以根據自己的可接受價格進行出價,如果當前出價低于市場價格,這個實例存在被系統釋放的可能性。關鍵特點就是便宜但是有被釋放的可能性。
如果當前業務場景基于全按量模式,或者部分按量構建。可以慢慢嘗試通過部分Spot實例去替換現有的按量實例。隨著Spot比例越來越高,成本也會無限趨近于最低,達到一折的效果。這個時候你肯定要問了,我如果用了這么多Spot實例,如果價格變化導致實例釋放了怎么辦,我的業務豈不是都會受到影響了?所以在這個基礎上我們提供了更多能力來規避這個問題。
首先,Spot實例規格全部承載自己的業務場景,如果Spot實例價格過高了,所有業務全部被釋放。所以我們推出了針對Spot場景的優化,當你使用Spot實例的時候,可以設置多個最低價格的實例規格進行創建,比如3種,如圖中左邊所示,通過多種實例規格打散的方式,可以避免單一實例的釋放導致的問題。
同時,我們還疊加了第二種能力,Spot自動補償機制。如果沒有開啟Spot補償機制,所有的Spot釋放之后有2分鐘的斷崖式異常,所有業務都會受損。如果開啟了補償機制,我們的系統會自動判斷,提前5分鐘進行一些替換實例的創建。在這些實例還沒有釋放之前,完成創建出來了,自動替換掉。所以中間不會再出現斷崖式異常。通過這兩種方式,你就可以更加輕松的使用spot實例來承載業務場景,同時達到降低整體資源成本的效果。
除了以上的基礎能力,還有一些自動化的能力。這里簡單舉幾個例子。首先,我們提供了彈性伸縮組的伸縮規則能力,有多種類型。
? 普通伸縮規則。它的定義方式是,當CPU大于20%時,擴容4臺ECS。這種模式一般適用當前業務變化不頻繁的場景,可以類比為手動空調。
? 步進伸縮規則。它是普通伸縮規則基礎上的增強模式,可以設置多個區間,不同區間以不同的方式應對。這樣,我們可以按照自己的經驗積累,判斷不同的負載情況,需要擴容多少,以便承載業務壓力,靈活度更高一些,可以類比為半自動空調。
? 目標追蹤伸縮模式。一種全自動的伸縮能力,使用這個策略你只需要知道當前負載保持在什么水位上。比如CPU保持在50%,系統會自動判斷增加多少機器,或者縮減多少機器。這樣的話,整個過程完全不需要人工干預,更加順暢。
我們在這些基礎上又增加了進一步的伸縮規則,即預測性伸縮規則。任何伸縮組如果開啟了預測性伸縮規則,我們會用機器學習模型去學習過去1到14天整體資源的使用情況和負載變化。然后預測未來2天的負載變化情況,去生成根據預測結果,以小時為單位,自動為伸縮組生成定時任務,把資源提前準備出來。這種場景非常適合周期性的業務場景。比如你的網站每天的訪問熱點時間和規模都比較固定,就可以使用這個模式,開啟了之后完全不需要再人工干預。
如果這個過程中出現了一些突發的流量,怎么預測呢?開啟預測性模式的同時,可以通過疊加現有的目標追蹤模式和其他各種模式。通過預測性去保證每天的周期性,通過目標追蹤模式去應對突發性的情況。通過多種模式疊加,最終達到有效穩定的效果。
接下來,和大家分享一下滾動升級功能。滾動升級主要解決日常工作中經常遇到的發布問題。我們提供滾動升級,然后就會自動幫助你做。你只需要配置好今天分幾批機器。更新前機器進入備用狀態,這時候不對外提供服務。更新之后退出備用狀態,對外提供服務。然后,再進入下一批。你也可以判斷當前是否要重試,回滾,還是繼續。通過整體的過程,最終達到發布的效果。通過這種方式可以降低整體發布成本,幫助大家更方便的完成日常應用發布的工作,而不需要自己構建一套發布體系。
剛才講完了效率,低成本,還有自動化,我們來看兩個客戶的例子。首先是匯量科技,它把在線廣告業務放在彈性收縮產品上。因為它的最終廣告收益,是廣告收入減去資源的成本,所以它的資源成本非常重要。同時,它也是使用大批量資源,所以它使用了彈性伸縮產品。然后通過設置按量和Spot的組合,同時開啟Spot自動補償機制,讓整體成本控制在3-4折。
第二個客觀例子是深勢科技,一家做人工智能和分子模擬算法的公司。它的特點是全部以交互型任務為主。每次跑任務都需要大量資源和嚴格的成本控制。所以在這個場景下,選擇了全Spot方式。把成本降到最低,同時每次也設置它的Spot最高值,來保證它不會超出整體的成本邊界,最終滿足它整體的業務場景。
03 如何高效的管理資源?
當你在阿里云上有了更多資源之后,下一步如何高效的管理?
因為管理資源有很多種場景,這里只列舉三個場景:成本、效率、安全。
? 成本。當有很多團隊參與資源使用且資源非常多時,如何知道哪些資源花了多少錢?如何知曉每個團隊資源的費用情況?
? 效率。如何快速對接資源,高效進行一些日常運維的工作?
? 安全。當有越來越多子賬號時,如何控制控制之間的調用權限,保證安全?
今天帶來的是阿里云推薦的最佳實踐方式,希望大家使用Tag來對資源進行分組。
比如你在阿里云已經購買了各種類型的資源,同時這些資源也分屬于不同團隊、不同環境,比如其中一個團隊是北京區的信息部,這個團隊團隊的生產環境使用了一批資源,如果單從資源視角,是沒法很清晰區分哪些是北京信息部的生產環境的,但是如果你把地區、部門、環境定義成標簽,給實例打上標簽,然后就可以切換到清晰的標簽視角了,根據標簽自動給你的資源進行了分組,即使是跨產品的情況下。可以一個標簽的方式來分組,也可以多個標簽的方式分組,可以以你的場景來自己定義,一個資源最多可以添加20個自定義標簽。
一旦你給資源把標簽打上之后,很多事情就變得容易了起來,通過標簽的能力可以輕松進行分賬、運維和安全控制。
分組之后就可以輕松達到分賬,運維的效果。打完相關標簽之后,就可以進入費用中心控制臺,通過標簽,查詢對應標簽下所有資源費用情況。它可以按月、按天、按小時的展現費用的詳細情況,從而達到快速分賬的效果。如果你需要查看多組標簽交集下的資源情況,則可以通過新增財務單元的方式來開啟費用分析,財務單元功能支持綁定多個標簽來進行費用過濾,這里需要關注的一點是,標簽出賬是T+1的,如果你對資源添加標簽后,是T+1之后才能看到賬單數據。
打完標簽之后,進入到運維編排的控制臺,可以快速對資源進行運維相關的事情。我們在運維編排控臺可以找到:發送命令、執行腳本,批量的重啟和批量續費等相關操作。
同樣,打完標簽之后,可以進入訪問控制的后臺。通過進行一些策略,疊加到Tag相關的信息,對當前進行操作。API調用時必須包含某個Tag。如果沒有,整個請求就會被拒絕。通過這樣的方式,可以把各賬號之間權限隔離起來。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的阿里云贾少天:大规模云服务器高效使用及管理实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能巡检告警配置实践
- 下一篇: 【阿里云 CDP 公开课】 第二讲:CD