通過應用管理服務的發布功能,將一個Java應用程式部署到一組Elastic Compute Service上。應用管理服務提供集中化、可複用的流程,用於在多台伺服器上進行應用發布與生命週期管理,以提升部署效率和可靠性。
方案架構
應用管理、Object Storage Service和Elastic Compute Service協同工作,實現應用的自動化部署。
其核心工作流程如下:
定義應用與資源:在應用管理服務中建立應用和應用分組,並將目標ECS執行個體匯入分組。
準備部署物:將應用程式的JAR包上傳至Object Storage Service的儲存空間(Bucket),並在應用下建立包含JAR包資訊和應用部署指令碼的部署物。
執行部署:通過應用管理服務,將指定的部署物發布到目標應用分組。應用管理通過自動化任務,完成應用部署物下載和應用啟動等操作。
關鍵概念
應用、應用分組和部署物是阿里雲應用管理中的核心概念:
應用:由應用程式和其部署所需的資源構成,作為一個整體進行管理與營運。
應用程式:待部署的應用程式,例如 Web 服務、機器學習模型、資料庫服務等。
資源:部署應用程式所需的雲資源,例如 ECS、ESS 伸縮組、容器叢集等。
應用分組:同一個應用下可以劃分多個分組,用於隔離不同環境的資源和配置。例如:
按環境劃分:
prod-group(生產環境分組)、pre-group(預發環境分組)。按地區劃分:
hangzhou-group(杭州地區分組)、beijing-group(北京地區分組)。分組劃分完成後,需為每個分組匯入資源。
部署物:部署物是待發布應用程式的源檔案和啟動/停止指令碼的集合。包含了應用程式發布所需的全部資訊,用於實現應用程式的正常化和版本化管理。將部署物發布到應用分組即可完成應用發布。
實施步驟
建立應用並匯入ECS執行個體。
如果沒有ECS執行個體,前往ECS控制台-自訂購買頁面,建立Linux作業系統的ECS執行個體。
建議ECS鏡像選擇Alibaba Cloud Linux 3.2104 LTS 64位或Ubuntu 22.04 64位。後續樣本中的指令碼基於這兩種鏡像編寫。如果使用其他鏡像,請參考樣本並根據實際情況修改指令碼。
前往ECS控制台-應用管理頁面,單擊匯入已有資源建立,建立應用和應用分組,並匯入ECS執行個體到應用分組。
建立OSS部署物。
前往ECS控制台-應用管理頁面,在我的應用程式頁簽下,單擊目標應用程式名稱。
在應用詳情頁,選擇部署物頁簽,然後單擊建立部署物。
在建立部署物頁面,部署物類型選擇OSS檔案,設定參數後單擊確定儲存。
OSS檔案資訊:設定JAR包所在的OSS Bucket和檔案路徑。
如果ECS執行個體和OSS Bucket在同一地區,可勾選內網下載提高下載速度。
工作目錄:設定應用啟動/停止指令碼的執行目錄。OSS檔案會被自動下載到該目錄。樣本:
/root/deploy。Alibaba Cloud Linux
start_application() { set -e yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
start_application() { set -e apt update apt install -y maven java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_application### Stop the application (if any) stop_application() { PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi } stop_application
返回部署物列表,找到剛建立的部署物,單擊發布。選擇目標分組,單擊確定開始部署。
結果驗證。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
執行
curl http://localhost:8080/hello命令。返回Alibaba Spring Sample!表示部署成功。