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