如何高效完成ECS多環(huán)境部署?
簡(jiǎn)介: 經(jīng)過本文,你能夠了解到,怎么經(jīng)過云效流水線有用拉通開發(fā)與運(yùn)維,打破二者之間的壁壘墻,讓開發(fā)與運(yùn)維高效聯(lián)動(dòng)。在軟件開發(fā)和布置過程中,咱們的軟件往往需求在不同的運(yùn)轉(zhuǎn)環(huán)境中運(yùn)轉(zhuǎn),例如:開發(fā)人員本地開發(fā)環(huán)境、測(cè)驗(yàn)團(tuán)隊(duì)的測(cè)驗(yàn)環(huán)境、還有類出產(chǎn)環(huán)境和出產(chǎn)環(huán)境。在整個(gè)研制流程的過程中,針對(duì)開發(fā)和運(yùn)維,前者面向需求和代碼,后者面向資源和環(huán)境,而布置,是兩者都會(huì)重視的部分。
一、背景
在軟件開發(fā)和布置過程中,咱們的軟件往往需求在不同的運(yùn)轉(zhuǎn)環(huán)境中運(yùn)轉(zhuǎn),例如:開發(fā)人員本地開發(fā)環(huán)境、測(cè)驗(yàn)團(tuán)隊(duì)的測(cè)驗(yàn)環(huán)境、還有類出產(chǎn)環(huán)境和出產(chǎn)環(huán)境。在整個(gè)研制流程的過程中,針對(duì)開發(fā)和運(yùn)維,前者面向需求和代碼,后者面向資源和環(huán)境,而布置,是兩者都會(huì)重視的部分。經(jīng)過本文,你能夠了解到,怎么經(jīng)過云效流水線有用拉通開發(fā)與運(yùn)維,打破二者之間的壁壘墻,讓開發(fā)與運(yùn)維高效聯(lián)動(dòng)。
二、用戶訴求
一般來說,用戶運(yùn)用主機(jī)布置訴求如下:
1、開發(fā)人員不需求重視資源改變,只需求按需挑選環(huán)境進(jìn)行布置即可。
2、開發(fā)人員能夠根據(jù)制定好的發(fā)布戰(zhàn)略,自主發(fā)布,不需求手工裝備和干預(yù)。
3、運(yùn)維人員不需重視研制渠道,只需做好資源的規(guī)劃管理即可。
三、云效解決方案
結(jié)合云效交付流水線發(fā)布戰(zhàn)略及ECS的標(biāo)簽功用,為ECS的多環(huán)境發(fā)布供給了很好的根底保障,如圖:
該場(chǎng)景下首要會(huì)觸及開發(fā)人員跟運(yùn)維人員兩個(gè)角色,下面文章中咱們首要會(huì)這兩個(gè)角色角度進(jìn)行解說。
四、云效操作實(shí)踐
前置條件
接下來以一個(gè) Java Spring Boot 的代碼庫(kù)為例,解說怎么經(jīng)過云效流水線進(jìn)行阿里云 ECS 的多環(huán)境發(fā)布。
1、運(yùn)維人員已購(gòu)買相應(yīng)阿里云ECS資源,并裝備好相應(yīng)環(huán)境,如本文事例中需求的JDK環(huán)境。
2、運(yùn)維人員,根據(jù)需求,對(duì)相應(yīng)ECS資源進(jìn)行標(biāo)簽裝備。標(biāo)簽是云資源的標(biāo)識(shí),能夠幫助您從不同維度對(duì)具有相同特征的云資源進(jìn)行分類、搜索和聚合,讓資源管理變得愈加輕松。本文中ECS資源及標(biāo)簽設(shè)置如圖所示:
標(biāo)簽鍵:environment 標(biāo)簽值:dev、sit、product
創(chuàng)立流水線
1、進(jìn)入云效流水線,點(diǎn)擊右上角【新建流水線】,進(jìn)入流水線創(chuàng)立向?qū)ы?yè)面。
2、挑選圖中標(biāo)識(shí)模板,并點(diǎn)擊創(chuàng)立
裝備代碼庫(kù)
- 創(chuàng)立流水線之后會(huì)主動(dòng)彈出添加代碼源的窗口,這兒挑選Flow供給的示例代碼源,并進(jìn)行添加
裝備構(gòu)建上傳使命
修正一下”Java構(gòu)建上傳“的使命,增加一個(gè)打包路徑,填入deploy.sh。這個(gè)文件存在于代碼庫(kù)中,其中包含了在ECS上進(jìn)行應(yīng)用發(fā)動(dòng)的腳本,為了進(jìn)行后續(xù)的主機(jī)布置,需求將這個(gè)文件也打入到緊縮包中,在后續(xù)的主機(jī)布置使命中能夠看到怎么運(yùn)用該deploy.sh。在該裝備中指定了target/和deploy.sh兩個(gè)路徑,所以Flow會(huì)將這兩個(gè)文件(夾)打包成為一個(gè)緊縮包,并進(jìn)行歸檔,在Flow中咱們稱之為制品,該制品也會(huì)在后續(xù)的主機(jī)布置使命中用到。
裝備布置使命
1、接下來裝備主機(jī)布置使命,在制品下拉框中挑選”制品稱號(hào).default”,也便是前面的”Java構(gòu)建上傳“步驟歸檔的那個(gè)制品。為了裝備主機(jī)組,需求先創(chuàng)立一個(gè),點(diǎn)擊”新建主機(jī)組”。
2、挑選”阿里云ECS“,點(diǎn)擊”新建服務(wù)授權(quán)”,跳轉(zhuǎn)到阿里云,完結(jié)RAM授權(quán),然后會(huì)主動(dòng)跳回到Flow。
3、此時(shí)再挑選標(biāo)簽方法添加,順次挑選地區(qū)、ECS標(biāo)簽鍵、ECS標(biāo)簽值,點(diǎn)擊下一步。
4、在新彈出的頁(yè)面中輸入主機(jī)組稱號(hào)及主機(jī)組環(huán)境,點(diǎn)擊保存即可。
5、接下來進(jìn)行布置腳本的裝備:
- 下載路徑:表示期望把”構(gòu)建上傳”使命中的緊縮包下載到機(jī)器上的什么位置,在本例的值為:/home/admin/app/package.tgz
- 履行用戶:期望所以哪個(gè)用戶的身份進(jìn)行腳本履行,本例的值為:root
- 布置腳本:在機(jī)器上履行腳本的具體內(nèi)容,本例的值為:
mkdir -p/home/admin/application/tar zxvf /home/admin/app/package.tgz -C/home/admin/application/sh /home/admin/application/deploy.sh restart
6、布置戰(zhàn)略裝備
- 暫停方法:期望一個(gè)主機(jī)組中的機(jī)器以什么樣的暫停方法進(jìn)行,比方第一批暫停,每批暫停,或許不暫停。推薦運(yùn)用第一批暫停,在發(fā)布完第一批之后,對(duì)線上服務(wù)進(jìn)行調(diào)查,假如沒有異常,則能夠繼續(xù)其他批的發(fā)布
- 分批數(shù)量:期望主機(jī)組中的機(jī)器分為幾批進(jìn)行發(fā)布。比方一共4臺(tái)機(jī)器,分兩批,則每批一起發(fā)布2臺(tái)機(jī)器。
本文中裝備如下所示:
7、布置成果檢查
- 點(diǎn)擊右上角保存并履行按鈕
- 待履行完畢后,點(diǎn)擊布置概況按鈕檢查布置明細(xì)。
- 經(jīng)過IP:8080訪問驗(yàn)證,如下圖所示:
資源改變場(chǎng)景
- 因業(yè)務(wù)需求,需在開發(fā)環(huán)境中增加一臺(tái)機(jī)器,運(yùn)維同學(xué)只需在ECS側(cè)準(zhǔn)備相應(yīng)資源,打上相應(yīng)環(huán)境標(biāo)簽即可,如下圖所示。
- 運(yùn)維同學(xué)裝備完畢后,開發(fā)同學(xué)不需做任何改變,直接運(yùn)轉(zhuǎn)相應(yīng)環(huán)境流水線即可。流水線運(yùn)轉(zhuǎn)過程中,因?yàn)樵蹅冎霸O(shè)置的分批,第一批暫停的發(fā)布戰(zhàn)略,因而流水線會(huì)暫停,出現(xiàn)如下狀況
- 此時(shí)點(diǎn)擊布置詳4. 情按鈕,進(jìn)入布置概況頁(yè)面,承認(rèn)沒有問題后,點(diǎn)擊繼續(xù)按鈕,如下圖所示
五、結(jié)語(yǔ)
經(jīng)過以上的操作流程,咱們能夠經(jīng)過云效流水線,利用標(biāo)簽功用,拉通開發(fā)與運(yùn)維,一起,讓開發(fā)和運(yùn)維重視點(diǎn)別離,專注于核心的作業(yè)內(nèi)容,實(shí)現(xiàn)高效的ECS多環(huán)境布置。