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

Node.js應用構建并部署ECS

本文主要介紹了Node.js應用如何構建并部署到ECS。

背景意義

如果您的業務使用Node.js進行開發、使用二進制的制品形式進行交付,并且制品最終會運行到ECS或者自有主機上,那么本文檔可以幫您實現研發流程的協同自動化。

用戶訴求

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

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

  • 將源代碼構建成為可交付的制品,比如二進制文件。

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

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

上述活動需要有不同角色的參與:開發、測試、運維。如何保證不同參與者可以使用統一的交付流程來進行協作,是云效Flow交付流水線要解決的主要問題。

解決方案

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

31

開發者提交代碼變更到代碼庫,云效在監聽著代碼庫的變動,一旦代碼發生變化,將自動觸發云效持續部署流水線一次構建任務的運行,包括代碼檢查、構建、測試部署、測試驗證和生產部署等過程。其中,在構建完之后,生成制品包并自動上傳至倉庫,在部署階段(測試環境的部署和生產環境的部署)時,再從制品倉庫中取得最新的版本,根據不同的部署策略通過主機部署到不同環境,這里資源可以是阿里云或者自建主機資源。

操作實踐

模板構建并配置流水線

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

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

  3. 修改Node.js構建任務,在構建物上傳步驟增加一個打包路徑,填入app-configs/bin/appctl.sh。這個文件存在于代碼庫中appctl.sh,用于后續的主機部署。高的 (6)

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

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

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

    • 部署腳本:在機器上執行腳本的具體內容,本例的值為:mkdir -p /home/admin/application/ && tar -zxvf /home/admin/app/package.tgz -C /home/admin/application/ && cd /home/admin/application/ && ./app-configs/bin/appctl.sh restart高的

添加人工審核機制

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

流水線運行

配置完畢,點擊保存并運行觸發流水線:高的 (3)

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

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

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

部署回滾

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

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

點擊版本#3的回滾,即可回滾到該版本。高的 (7)

說明

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

通知

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

結語

通過以上的操作流程,就可以建立一條協同多角色的流水線,參考以下文檔了解更多內容: