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