日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Java應用構建并部署ECS

本文介紹如何通過云效流水線快速構建并部署Java應用到ECS。

一、背景

  1. 使用Java進行開發。

  2. 使用Jar/War的制品形式進行交付。

  3. 制品最終會運行在ECS或者自有主機上。

本文檔助力研發流程實現自動化協同。

二、用戶訴求

一般來說,用戶使用主機部署場景如下:

  1. 對源代碼進行一定的質量檢測,比如單元測試,代碼掃描。

  2. 將源代碼構建成為可交付的制品,比如Jar/War。

  3. 對制品進行測試環境驗證。

  4. 使用完成驗證的制品進行線上部署。

此過程涉及開發、測試和運維三大角色。云效Flow交付流水線旨在簡化,確保各方通過統一流程無縫協作,提升效率。

三、云效解決方案

結合云效持續交付流水線和主機部署的能力,為應用持續交付提供了很好的基礎保障,如圖:

ECS01

開發者提交代碼變更到代碼庫,云效在監聽著代碼庫的變動,一旦代碼發生變化,將自動觸發云效流水線構建任務的運行,包括代碼檢查、構建、測試部署、測試驗證和生產部署等過程。其中,在構建完成后,生成制品包并自動上傳至倉庫,在部署階段,無論是測試還是生產環境,我們都將從制品倉庫拉取最新版本,依據部署策略,靈活部署至阿里云ECS或自建主機上。精簡高效,確保環境同步最新。

四、云效操作實踐

接下來以一個Java Spring Boot的代碼庫為例,講解如何進行構建并部署到阿里云ECS服務器。

模板構建并配置流水線

  1. 進入云效流水線Flow,單擊右上角新建流水線,選擇“Java·測試、構建、部署到阿里云ECS/自有主機”模板后單擊創建高的

  2. 創建流水線之后單擊添加流水線源,選擇Flow提供的示例代碼源,并進行添加高的 (1)

  3. 修改Java構建上傳的任務,在構建物上傳步驟增加一個打包路徑,填入deploy.sh。這個文件存在于代碼庫中,其中包含了在ECS上進行應用啟動的腳本,為了進行后續的主機部署,需要將這個文件也打入到壓縮包中,在后續的主機部署任務中可以看到如何使用該deploy.sh。在該配置中指定了target/和deploy.sh兩個路徑,所以流水線會將這兩個文件(夾)打包成為一個壓縮包,并進行歸檔,在流水線中我們稱之為制品,該制品也會在后續的主機部署任務中用到。高的

  4. 接下來配置主機部署任務,在制品下拉框中選擇前面的Java構建上傳步驟歸檔的那個制品。選擇需要部署的主機組(如無主機組,單擊新建主機組并參考主機組管理),然后配置部署腳本與部署策略:

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

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

    • 分批數量:希望主機組中的機器分為幾批進行發布。比如一共4臺機器,分兩批,則每批同時發布2臺機器。高的 (2)

添加人工審核機制

如果需要保證只有經過審批的制品才能進入部署環境,則還需要添加一個人工卡點,在上述流水線主機部署前添加如下任務:高的 (3)

在人工卡點任務中勾選需要添加的驗證人并單擊確定

高的 (4)

流水線運行

配置完畢,單擊保存并運行觸發流水線:

高的 (8)

掃描、單測及構建上傳的任務自動完成,并停在了卡點上:高的 (5)

單擊驗證通過,流水線會進入主機部署的任務,單擊部署詳情可以看到更多部署信息:高的 (7)

單擊日志,可以看到執行的日志詳情:高的 (9)

部署回滾

如果發布完成之后發現線上服務有問題,則需要快速回滾。云效Flow提供了通過歷史版本直接進行回滾的能力。

在流水線運行頁面單擊部署歷史,然后選擇相應部署任務,便可以看到該部署任務所有部署成功記錄。

單擊版本#2的回滾,即可回滾到該版本。

高的 (2)

說明

流水線初次部署時頁面上可能不顯示部署歷史頁,此時嘗試刷新頁面可以解決。

通知

為了更好進行協作,Flow提供了通知能力在流水線不同的生命周期節點上進行通知。一般來講開發團隊會關心部署的成功和失敗,那么可以將該事件推送到團隊的釘釘群中,配置方式如下,單擊添加插件,選擇釘釘機器人通知,填入webhook地址,再次運行之后,就會收到相應的通知,具體請參考釘釘機器人發送群消息

通知1