天天看點

雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

在軟體開發和部署過程中,我們的軟體往往需要在不同的運作環境中運作,例如:開發人員本地開發環境、測試團隊的測試環境、還有類生産環境和生産環境。在整個研發流程的過程中,針對開發和運維,前者面向需求和代碼,後者面向資源和環境,而部署,是兩者都會關注的部分。通過本文,你可以了解到,如何通過雲效流水線有效拉通開發與運維,打破二者之間的壁壘牆,讓開發與運維高效關聯。

雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
如果你對雲效流水線功能實踐想有一個更詳細的了解,請參考下面這篇文章:[通過雲效流水線實作Java應用建構并部署ECS] https://thoughts.aliyun.com/sharespace/5e8c387c0aa435001a74f7ab/docs/5f19008b6fd3fa0023fdcef4

一、使用者訴求

一般來說,使用者使用主機部署訴求如下:

1、 開發人員不需要關注資源變更,隻需要按需選擇環境進行部署即可。

2、 開發人員能夠根據制定好的釋出政策,自主釋出,不需要手工配置和幹預。

3、 運維人員不需關注研發平台,隻需做好資源的規劃管理即可。

該場景下主要會涉及開發人員跟運維人員兩個角色,下面文章中我們主要會這兩個角色角度進行講解。

二、雲效解決方案

結合雲效傳遞流水線釋出政策及ECS的标簽功能,為ECS的多環境釋出提供了很好的基礎保障,如圖:

雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

三、雲效操作實踐

接下來以一個 Java Spring Boot 的代碼庫為例,講解如何通過雲效流水線進行阿裡雲 ECS 的多環境釋出。

前置條件

1、 運維人員已購買相應阿裡雲ECS資源,并配置好相應環境,如本文案例中需要的JDK環境。購買ECS參考連結:

https://ecs-buy.aliyun.com/

2、 運維人員,根據需要,對相應ECS資源進行标簽配置。标簽是雲資源的辨別,可以幫助您從不同次元對具有相同特征的雲資源進行分類、搜尋和聚合,讓資源管理變得更加輕松。本文中ECS資源及标簽設定如圖所示:

标簽鍵: environment 标簽值:dev、sit、product

雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

建立流水線

1、 進入雲效流水線(

https://flow.aliyun.com/my?channel=yy_rccb )。
雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
2、點選右上角【建立流水線】,進入流水線建立向導頁面。
雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
3、選擇圖中辨別模闆,并點選建立
雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
配置代碼庫

  1. 建立流水線之後會自動彈出添加代碼源的視窗,這裡選擇Flow提供的示例代碼源,并進行添加
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

配置建構上傳任務

  1. 修改一下”Java建構上傳“的任務,增加一個打包路徑,填入deploy.sh。這個檔案存在于代碼庫中,其中包含了在ECS上進行應用啟動的腳本,為了進行後續的主機部署,需要将這個檔案也打入到壓縮包中,在後續的主機部署任務中可以看到如何使用該deploy.sh。在該配置中指定了target/和deploy.sh兩個路徑,是以Flow會将這兩個檔案(夾)打包成為一個壓縮包,并進行歸檔,在Flow中我們稱之為制品,該制品也會在後續的主機部署任務中用到。
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

配置部署任務

  1. 接下來配置主機部署任務,在制品下拉框中選擇”制品名稱.default”,也就是前面的”Java建構上傳“步驟歸檔的那個制品。為了配置主機組,需要先建立一個,點選”建立主機組”。
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  2. 選擇”阿裡雲ECS“,點選”建立服務授權”,跳轉到阿裡雲,完成RAM授權,然後會自動跳回到Flow。
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  1. 此時再選擇标簽方式添加,依次選擇地區、ECS标簽鍵、ECS标簽值,點選下一步。
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  2. 在新彈出的頁面中輸入主機組名稱及主機組環境,點選儲存即可。
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  3. 接下來進行部署腳本的配置:

    • 下載下傳路徑:表示希望把”建構上傳”任務中的壓縮包下載下傳到機器上的什麼位置,在本例的值為:/home/admin/app/package.tgz

    • 執行使用者:希望以是哪個使用者的身份進行腳本執行,本例的值為:root

    • 部署腳本:在機器上執行腳本的具體内容,本例的值為:

    mkdir -p /home/admin/application/

    tar zxvf /home/admin/app/package.tgz -C /home/admin/application/

    sh /home/admin/application/deploy.sh restart

    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  4. 部署政策配置

    • 暫停方式:希望一個主機組中的機器以什麼樣的暫停方式進行,比如第一批暫停,每批暫停,或者不暫停。推薦使用第一批暫停,在釋出完第一批之後,對線上服務進行觀察,如果沒有異常,則可以繼續其餘批的釋出

    • 分批數量:希望主機組中的機器分為幾批進行釋出。比如一共4台機器,分兩批,則每批同時釋出2台機器。

    本文中配置如下所示:

    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  5. 部署結果檢視

    • 點選右上角儲存并執行按鈕

    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

• 待執行完畢後,點選部署詳情按鈕檢視部署明細。

雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

• 通過IP:8080通路驗證,如下圖所示:

雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

資源變更場景

  1. 因業務需要,需在開發環境中增加一台機器,運維同學隻需在ECS側準備相應資源,打上相應環境标簽即可,如下圖所示。
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  2. 運維同學配置完畢後,開發同學不需做任何變更,直接運作相應環境流水線即可。流水線運作過程中,因為我們之前設定的分批,第一批暫停的釋出政策,是以流水線會暫停,出現如下狀态
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
  3. 此時點選部署詳情按鈕,進入部署詳情頁面,确認沒有問題後,點選繼續按鈕,如下圖所示
    雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出
雲效流水線基于标簽功能實作阿裡雲ECS多環境釋出

五、結語

通過以上的操作流程,我們可以通過雲效流水線,利用标簽功能,拉通開發與運維,同時,讓開發和運維關注點分離,專注于核心的工作内容,實作ECS的多環境部署。

歡迎體驗、

試用雲原生時代新DevOps平台阿裡雲雲效