如何高效完成ECS多環境部署?

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

一、背景

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

二、用戶訴求

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

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

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

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

三、雲效解決方案

結合雲效交付流水線發佈策略及ECS的標籤功能,爲ECS的多環境發佈提供了很好的基礎保障,如圖:

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

四、雲效操作實踐

前置條件

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

1、運維人員已購買相應阿里雲ECS資源,並配置好相應環境,如本文案例中需要的JDK環境。

2、運維人員,根據需要,對相應ECS資源進行標籤配置。標籤是雲資源的標識,可以幫助您從不同維度對具有相同特徵的雲資源進行分類、搜索和聚合,讓資源管理變得更加輕鬆。本文中ECS資源及標籤設置如圖所示:

標籤鍵:environment 標籤值:dev、sit、product

 創建流水線

1、進入雲效流水線,點擊右上角【新建流水線】,進入流水線創建嚮導頁面。

2、選擇圖中標識模板,並點擊創建

配置代碼庫
  1. 創建流水線之後會自動彈出添加代碼源的窗口,這裏選擇Flow提供的示例代碼源,並進行添加

配置構建上傳任務

修改一下”Java構建上傳“的任務,增加一個打包路徑,填入deploy.sh。這個文件存在於代碼庫中,其中包含了在ECS上進行應用啓動的腳本,爲了進行後續的主機部署,需要將這個文件也打入到壓縮包中,在後續的主機部署任務中可以看到如何使用該deploy.sh。在該配置中指定了target/和deploy.sh兩個路徑,所以Flow會將這兩個文件(夾)打包成爲一個壓縮包,並進行歸檔,在Flow中我們稱之爲製品,該製品也會在後續的主機部署任務中用到。

配置部署任務

1、接下來配置主機部署任務,在製品下拉框中選擇”製品名稱.default”,也就是前面的”Java構建上傳“步驟歸檔的那個製品。爲了配置主機組,需要先創建一個,點擊”新建主機組”。

2、選擇”阿里雲ECS“,點擊”新建服務授權”,跳轉到阿里雲,完成RAM授權,然後會自動跳回到Flow。

 

3、此時再選擇標籤方式添加,依次選擇地區、ECS標籤鍵、ECS標籤值,點擊下一步。

4、在新彈出的頁面中輸入主機組名稱及主機組環境,點擊保存即可。

5、接下來進行部署腳本的配置:

  • 下載路徑:表示希望把”構建上傳”任務中的壓縮包下載到機器上的什麼位置,在本例的值爲:/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

6、部署策略配置
  • 暫停方式:希望一個主機組中的機器以什麼樣的暫停方式進行,比如第一批暫停,每批暫停,或者不暫停。推薦使用第一批暫停,在發佈完第一批之後,對線上服務進行觀察,如果沒有異常,則可以繼續其餘批的發佈
  • 分批數量:希望主機組中的機器分爲幾批進行發佈。比如一共4臺機器,分兩批,則每批同時發佈2臺機器。

本文中配置如下所示:

7、部署結果查看
  • 點擊右上角保存並執行按鈕

  • 待執行完畢後,點擊部署詳情按鈕查看部署明細。

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

資源變更場景

  1. 因業務需要,需在開發環境中增加一臺機器,運維同學只需在ECS側準備相應資源,打上相應環境標籤即可,如下圖所示。

  1. 運維同學配置完畢後,開發同學不需做任何變更,直接運行相應環境流水線即可。流水線運行過程中,因爲我們之前設置的分批,第一批暫停的發佈策略,因此流水線會暫停,出現如下狀態

  1. 此時點擊部署詳4. 情按鈕,進入部署詳情頁面,確認沒有問題後,點擊繼續按鈕,如下圖所示

五、結語

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

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章