[英]How to deploy java application in a cloud instance from the scratch to an advanced architecture?
我需要在 Google 雲平台的計算引擎上部署我的 spring-boot 應用程序。 我已經創建了一個實例並通過 SSH 安裝了 Apache 和 Maven。 此外,war 文件已上傳到存儲桶中。 任何人都可以向我提供剩余的命令以在 tomcat 實例或任何其他帶有 linux 的雲平台上部署 war 文件?
謝謝
部署在 google 的計算引擎實例中,與 AWS、Azure 或其他 linux 主機提供商沒有本質區別。
你只需要一個到遠程機器的 ssh 連接並安裝所需的軟件來編譯、構建、壓縮、部署等
我將列出一些從基本(手動)到高級(自動)的方法:
對於戰爭部署:
# get the source code
cd /tmp/folder/3dac58b7
git clone http://github.com/myrepo.git .
# create war
mvn clean package
# move war to deploy tomcat folder
cp target/my_app.war /my/tomcat/webapps
# stop tomcat
bash /my/tomcat/shutdown.sh
# start tomcat
bash /my/tomcat/startup.sh
或者spring-boot啟動
# get the source code
cd /tmp/folder/3dac58b7
git clone http://github.com/myrepo.git .
# create jar
mvn clean package
# kill or stop the application
killall java
# start the application
java $JAVA_OPTS -jar $jar_file_name
bash /devops/pipeline.sh
改進:參數化存儲庫名稱、分支名稱、mvn 配置文件、數據庫憑據、在每次執行時創建一個 tmp/uuid 文件夾、在部署后刪除 tmp/uuid、使用 pid 優化應用程序的啟動和停止等
在遠程雲 linux 實例中安裝docker
使用 war或springboot 的所有步驟創建一個 Dockerfile(方法 #1 )並將其存儲在靠近源代碼的地方(我的意思是在你的 git 存儲庫中)
對您的更改執行 git push
使用 ssh 連接到您的遠程雲 linux 實例:
構建您的 docker 鏡像: docker build...
刪除以前的容器並運行新版本:
docker rm my_app -f docker run -d --name my_app -p 8080:8080 我的容器名稱
在以前的方法中,構建操作是在遠程服務器中執行的。 為此,該服務器需要幾個工具。 在以下方法中,構建在中間服務器中執行,部署在遠程服務器中執行。 這個好一點
在這種方法中,構建是在開發人員機器上執行的,並將其上傳到某種存儲庫。 我建議你使用 docker,而不僅僅是 war 或 jar 編譯。
為了構建和上傳 docker 鏡像,需要以下 docker 注冊表之一:
選擇一個並將其安裝在新服務器中。 配置您的開發人員機器和遠程服務器以指向您的新 docker 注冊表。
最后的步驟是:
docker push example.com/test-image
docker pull example.com/test-image
docker run...
與 #3 相同,但不在開發人員機器中。 所有步驟都在另一台名為:持續集成服務器的服務器中執行。
當您准備好部署時,只需將代碼推送到您的 scm,jenkins 將收到通知並執行之前創建的作業。 如您所見,無需人工在服務器中部署應用程序(開發人員推送除外)
注意:此時,您可以將方法 #1 和 #2 的腳本遷移到:
這些是更高級和可擴展的方法,用於映射從開始到部署所需的所有命令和配置。
將需要更多實例和技術。
當您的公司/企業需要越來越多的 Web 應用程序、微服務時,這將是必要的。
所有以前的方法都可以使用 WORLD CLASS 平台進行簡化,例如:
有彈性的
英雄庫
開班等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.