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