本文以 SOFABoot 技術棧 2.0 為例描述如何創建并在 SOFAStack 平臺上發布一個 SOFABoot 應用。
SOFABoot 應用的開發、發布過程與基于 Spring 技術棧的過程類似。
步驟一:創建標準工作空間
工作空間(Workspace)本質上是“網絡互通、安全策略一致、訪問延時極小”的一組資源。您可以通過工作空間方便地將資源進行分組管理,例如:根據不同的研發交付需求,將工作空間劃分為開發工作空間、測試工作空間、生產工作空間等。不同工作空間中的資源互相隔離。
進入 SOFAStack 控制臺。
在左側導航欄,單擊下方的 全局設置,進入工作空間列表頁面。
單擊 創建工作空間,選擇 標準工作空間 類型,單擊 創建。
在 創建工作空間 頁面,輸入以下基本信息。
工作空間標識:工作空間的英文標識,全局唯一,一經確定無法修改,例如:dev、test、prod 等。
工作空間名稱:工作空間的顯示名稱,例如:開發工作空間、測試工作空間、生產工作空間。
地域:工作空間所在的地域(Region),一個工作空間一定屬于某個地域。
說明目前開放的地域為 華東 2(上海) 和 華東 1(杭州)(金融云)。
網絡類型:只支持專有網絡 VPC。
可用區:工作空間配置的可用區(Available Zone),最多不能超過兩個,工作空間只能導入已配置可用區內的資源,且發布部署、容災等其他功能都是基于工作空間的可用區來做分組發布與容災切換等操作。推薦配置兩個可用區,為支持雙機房高可用等架構做準備。
單擊 下一步,在 創建 VPC 頁面,輸入以下配置信息:
專有網絡名稱:由 2-128 個英文或中文字符組成,必須以大小寫字母或中文開頭,可包含數字、下劃線(_) 或連字符(-),不能以
http://
或https://
開頭。推薦與工作空間名稱相同。專有網絡網段:專有網絡的網段,一旦選擇便無法更改,專有網絡內的所有資源,如 ECS、RDS、SLB 的私網 IP 都在該網段內。可選網段如下:
10.0.0.0/9
172.16.0.0/12
192.168.0.0/16
交換機:單擊 添加交換機,在彈出的 創建交換機 窗口,填寫以下信息,單擊 提交。
名稱:交換機名稱。長度為 2-128 個字符,以英文字母或中文開頭,可包含數字、下劃線(_)和短橫線(-)。系統自動生成
工作空間標識-vsw
組成的默認名稱。可用區:交換機的可用區。同一 VPC 內不同可用區的交換機內網互通。您需要為每個可用區創建一臺交換機。
自定義網段:默認關閉。開啟后,需填寫網段地址。交換機的網段可以和其所屬的 VPC 網段相同或者是其 VPC 網段的子網。
子網掩碼:自定義網段 關閉時,需分別選擇子網掩碼和網段地址。默認專有的網段掩碼是 24 位,例如 172.31.0.0/24,最多可提供 65536 個私網 IP 地址。范圍為 16~29 位之間,可提供 4~65532 個地址。
描述: 輸入交換機的描述信息。可包含 2-256 個中英文字符,不能以
http://
和https://
開頭。
單擊 下一步,在 創建安全組 頁面,單擊 添加安全組,在彈出的 添加安全組 窗口,填寫以下信息,單擊 提交。
安全組名稱:長度為 2-128 個英文或中文字符,必須以大小字母或中文開頭,不能以
http://
和https://
開頭。可以包含數字、半角冒號(:)、下劃線(_)或者連字符(-)。系統自動生成工作空間標識-sg
組成的默認名稱。描述:可包含 2-256 個中英文字符,不能以
http://
和https://
開頭。規則:保持默認設置,接受所有的出入訪問。
步驟二: 創建應用
在該示例中,我們創建一個 SOFABoot 應用。具體步驟如下:
進入應用管理控制臺,單擊左側導航欄中的 應用列表 進入應用列表頁面。
單擊 創建應用。
在 創建應用 頁,填寫以下信息。
應用名稱:允許包含字母、數字、連字符、下劃線,且必須以字母開頭、以字母或者數字結尾。本例中輸入 sofabootdemo。
說明應用名稱在同一租戶內必須唯一。
技術棧:選擇 SOFA Boot。
應用分組:選擇應用所屬分組。若尚未自定義分組,可以選擇系統默認分組。
應用標簽:應用分級標簽,便于進行應用快速檢索,支持添加系統標簽和自定義標簽。
應用描述:輸入應用的描述信息。
單擊 提交,在提示創建成功的彈出窗口中單擊 查看應用詳情 即可進入應用詳情頁面查看剛創建的應用。
步驟三:創建應用服務
進入經典應用服務控制臺,單擊左側導航欄中的 應用發布 > 應用服務 ,單擊 創建服務實例。
在跳轉的頁面上,輸入以下信息。
應用:選擇上一步中創建的應用。
服務實例名稱:允許包含字母、數字、連字符、下劃線,且必須以字母開頭、以字母或者數字結尾。
發布包:選擇應用的發布包。可在 應用發布 > 發布包管理 頁面為應用上傳發布包。
描述:輸入服務實例描述。
技術棧:根據所屬應用自動展示。
技術棧版本:選擇所需版本。
部署單元:勾選應用要發布到的部署單元。
單擊 確定。
步驟四:本地開發
本地使用 SOFABoot 框架進行開發詳見 SOFABoot 快速開始。在這里,您可以先忽略具體的開發過程,直接 下載樣例 Jar 包 并解壓到本地。樣例工程中的應用都已經在本地完成編譯打包,生成的包在 target
目錄下。
步驟五:購買資源并綁定資源到應用服務
本步驟將為前述創建的應用服務 sofabootdemo 購買一臺 ECS 和一個公網 SLB,并將 ECS 綁定到該 SLB。
購買 ECS
進入經典應用服務控制臺。
展開左側 應用發布 > 應用服務 。
找到之前創建的應用服務 sofabootdemo,單擊該服務實例名稱或單擊 詳情,進入 應用服務實例信息 頁。
單擊 云服務器 ECS 頁簽中的 添加 按鈕,根據提示錄入相應信息,單擊 創建 完成 ECS 創建。
重要SOFAStack 平臺定義的技術棧 2.0,如 SOFABoot,目前支持的操作系統為 Linux,鏡像為 SOFAStack 平臺定義的 CentOS 7.x 和 CentOS 6.x 鏡像。
對于技術棧 1.0,如 sofa-lite2、Spring、sofa-lite-core、sofa-lite-web,目前支持的操作系統為 Linux,鏡像為 SOFAStack 平臺定義的 CentOS 6.x 鏡像。
購買公網 SLB
在 應用服務實例信息 頁面中,選擇 負載均衡 SLB 頁簽,單擊 添加 按鈕。
在創建負載均衡頁面,輸入相應信息,單擊 確定 > 創建,完成 SLB 創建。
實例類型:選擇 公網。
監聽器信息:添加以下監聽器:
前端協議:HTTP
端口:80
后端協議端口:8341
其余屬性保持默認即可
掛載 ECS 到 SLB
當 ECS 和 SLB 都創建成功后,根據以下步驟進行掛載:
在 負載均衡 SLB 頁簽,單擊剛創建的 SLB 名稱進入詳情頁。
在 后端服務器組 中選擇 待掛載 標簽,勾選 同一 App,選擇之前創建好的 ECS,單擊 掛載。
在 掛載 ECS 窗口,設置 流量權重 為 100,單擊 確定。
完成掛載后,可在 已掛載 中查看掛載的 ECS。
步驟六:發布應用
在左側導航欄,選擇 應用服務 > 發布包管理。
找到 sofabootdemo,單擊 管理 進入包管理界面,單擊 上傳發布包。
在彈出框中,使用默認版本號,文件選擇本地下載的樣例
.jar
包,然后單擊 確定。待進度條完成后可以看到上傳的版本。
單擊頁面右上方的 發布部署,然后在 發布部署 窗口中選擇服務實例:sofabootdemo,以及剛才上傳的版本,單擊 立即發布,跳轉至發布單頁面,單擊 整體發布。
在發布單詳情看到狀態 執行成功,即表示該應用已經發布成功。
步驟七: 驗證結果
您可以通過以下步驟來驗證應用是否發布成功。
在左側導航欄,選擇 應用服務 > 服務實例列表,單擊列表中的 sofabootdemo 進入實例詳情頁。
在 負載均衡 SLB 標簽中復制服務地址。
在本地瀏覽器的地址欄中訪問
http://{負載均衡器服務地址}/webapi/users/tester
,如http://120.xx.xx.140/webapi/users/tester
。若頁面顯示以下內容表示發布成功:
{"data":{"realName":"Real tester","userId":0,"userName":"tester"},"success":true}
小結
至此,您已經了解如何通過技術棧 2.0 創建并部署 SOFABoot 應用。基于其他技術棧的操作類似。本文在操作過程中沒有詳細講述原理,您可以參考 應用部署 了解更多。
FAQ
Q:為什么根據文檔操作最后會發布失敗?
A:請檢查 掛載 ECS 到 SLB 步驟中的 流量權重 設置,確保流量權重不為 0。