最近有幸試用了一下阿里云的一個(gè)新產(chǎn)品:云開發(fā)平臺(tái),體驗(yàn)一把全新的開發(fā)模式尿褪!雖然中間也碰到了一些問題睦擂,但整體的體驗(yàn)透露著未來(lái)感,因?yàn)檎麄€(gè)過程都不需要使用我們最常用的IDEA杖玲,僅依靠瀏覽器就把一個(gè)Spring Boot干上線了顿仇!
啥是云開發(fā)平臺(tái)?云開發(fā)平臺(tái)(https://workbench.aliyun.com)摆马,是阿里云面向廣大開發(fā)者提供的云上研發(fā)工作平臺(tái)臼闻,助力研發(fā)團(tuán)隊(duì)實(shí)現(xiàn)工作的在線化(團(tuán)隊(duì)在線、環(huán)境在線囤采、代碼在線述呐、協(xié)同在線)以及研發(fā)模式Serverless化,幫助研發(fā)團(tuán)隊(duì)實(shí)現(xiàn)對(duì)行業(yè)架構(gòu)經(jīng)驗(yàn)及架構(gòu)服務(wù)的高效分享與傳播蕉毯,極致提升研發(fā)效率乓搬,極致降低研發(fā)成本思犁。
下面,我就來(lái)分享一下如何在這個(gè)平臺(tái)中開發(fā)與部署Spring Boot應(yīng)用缤谎!有興趣的童鞋抒倚,可以點(diǎn)擊進(jìn)入云開發(fā)平臺(tái),一步步跟我體驗(yàn)完整的開發(fā)體驗(yàn)坷澡!
基礎(chǔ)配置
第一步:創(chuàng)建新應(yīng)用
第二步:選擇“Microservice”托呕,解決方案選擇“Spring Boot應(yīng)用遷移方案(SAE)”或“Spring Boot應(yīng)用遷移方案(ASK)”。之前寫過很多Spring Boot例子频敛,所以就用遷移方案試試把已經(jīng)開發(fā)好的Spring Boot拉進(jìn)來(lái)的場(chǎng)景吧项郊!
第三步:輸入Spring Boot應(yīng)用相關(guān)的信息
點(diǎn)擊“完成”之后,可以在應(yīng)用列表中看到剛剛完成創(chuàng)建的hello-world應(yīng)用斟赚。
從上面的卡片元素中着降,我們可以看到,雖然只是簡(jiǎn)單的一個(gè)創(chuàng)建應(yīng)用操作拗军,實(shí)際上做了非常多的事情任洞,比如:分配環(huán)境、創(chuàng)建Git倉(cāng)庫(kù)等发侵。
應(yīng)用開發(fā)
在云開發(fā)平臺(tái)中可以通過兩種方式進(jìn)行開發(fā):在線開發(fā)(瀏覽器中完成)交掏、線下開發(fā)(傳統(tǒng)編輯器開發(fā))。
在線開發(fā)
點(diǎn)擊應(yīng)用卡片中的“開發(fā)部署”刃鳄,就會(huì)進(jìn)入到下面的云開發(fā)頁(yè)面:
在左中位置可以看到該項(xiàng)目中已經(jīng)有的文件(主要一些鏡像構(gòu)建配置盅弛、運(yùn)行腳本和說(shuō)明文檔等)。
拿出我們以前的Spring Boot樣例(如果你沒玩過Spring Boot叔锐,可見免費(fèi)系列教程)挪鹏,拖一個(gè)以前寫過的Spring Boot應(yīng)用進(jìn)來(lái)試試:
拖入代碼之后,根據(jù)云開發(fā)平臺(tái)的規(guī)范要求愉烙,需要對(duì)項(xiàng)目組織做一些修改讨盒,所以打開pom.xml,做如下配置修改:
- properties中添加applicationName配置步责,必須要有返顺,不能省略
- build中添加finalName配置,必須與****applicationName一致勺择,所以也可以用引用的方式
- 配置spring-boot-maven-plugin插件,打包格式使用ZIP伦忠、注意修改應(yīng)用主類路徑
在線測(cè)試
在完成了項(xiàng)目的導(dǎo)入之后省核,我們嘗試運(yùn)行該應(yīng)用。
- 點(diǎn)擊底部的“終端”標(biāo)簽
- 在命令行中輸入:mvn spring-boot:run
不出意外昆码,終端將輸出類似下面的內(nèi)容气忠,應(yīng)用成功啟動(dòng)邻储!
但是應(yīng)用是啟動(dòng)到云平臺(tái)上,并非本地旧噪,我們要如何驗(yàn)證應(yīng)用提供的接口呢吨娜?
點(diǎn)擊上面的“預(yù)覽”按鈕,然后在頂部彈出框中輸入想要暴露的端口號(hào)淘钟,比如:8080
根據(jù)提示宦赠,按回車之后,右下方會(huì)出現(xiàn)是否立即訪問的提示米母,直接點(diǎn)擊訪問就可以進(jìn)入到可訪問的域名地址(該地址映射到了云平臺(tái)上的啟動(dòng)地址)
代碼提交
在完成了上面的相關(guān)開發(fā)工作之后勾扭,通常我們要關(guān)注的就是代碼的提交。這時(shí)候就可以點(diǎn)擊左側(cè)的分支圖標(biāo)铁瞒,將修改代碼進(jìn)行 commit
然后點(diǎn)擊左下方的箭頭妙色,將代碼push進(jìn)倉(cāng)庫(kù)(關(guān)于Git相關(guān)的操作,一開始沒摸著頭腦慧耍,不是很流暢身辨,期待后續(xù)有更好的用戶體驗(yàn)改進(jìn))
本地開發(fā)
也許你可能覺得目前的在線編輯器還不夠強(qiáng)大,比如上面我們就看到對(duì)于pom.xml都還沒有高亮顯示芍碧。那么這個(gè)時(shí)候煌珊,你也可以選擇本地開發(fā)模式。只需要在應(yīng)用卡片中點(diǎn)擊“代碼倉(cāng)庫(kù)”师枣,進(jìn)入到下面的頁(yè)面中怪瓶,將你本地的ssh密鑰輸入保存,然后就可以根據(jù)代碼倉(cāng)庫(kù)將該應(yīng)用的Git倉(cāng)庫(kù)拉到本地進(jìn)行開發(fā)了践美!
小建議:可以看到這里的倉(cāng)庫(kù)名稱是按日期時(shí)間來(lái)構(gòu)建的洗贰,如果使用在線開發(fā)還好,對(duì)這塊內(nèi)容不敏感陨倡。但是如果想在本地開發(fā)敛滋,這樣的命名對(duì)于用戶來(lái)說(shuō)就不那么友好,有時(shí)候會(huì)以為是個(gè)臨時(shí)目錄兴革,期待后續(xù)會(huì)有所改進(jìn)绎晃!
應(yīng)用部署
在完成了應(yīng)用開發(fā),本地測(cè)試之后杂曲,我們要做的就是應(yīng)用交付與部署庶艾。所以,我們接下來(lái)試試這個(gè)平臺(tái)的部署功能擎勘!
在進(jìn)行部署之前咱揍,我們需要先檢查一下當(dāng)前環(huán)境是否具備部署條件。點(diǎn)擊應(yīng)用卡片中的“環(huán)境管理”按鈕棚饵,可以看到如下頁(yè)面:
如果里面有依賴的云服務(wù)沒有開通煤裙,那么就點(diǎn)擊立即開通去逐個(gè)開通服務(wù)掩完,不然后續(xù)的部署過程就無(wú)法正常完成。
如果你的應(yīng)用中涉及到一些環(huán)境變量的使用硼砰,那么繼續(xù)點(diǎn)擊應(yīng)用卡片中的“應(yīng)用配置”來(lái)設(shè)置且蓬。
如果你的應(yīng)用需要多人一起開發(fā),那么在“成員管理”中可以用阿里云賬號(hào)把其他開發(fā)者加入進(jìn)來(lái)题翰,他們就也可以跟你一樣訪問你的應(yīng)用代碼了恶阴。
準(zhǔn)備就緒,繼續(xù)正題遍愿。繼續(xù)打開開發(fā)部署界面存淫,點(diǎn)擊左側(cè)欄第一個(gè)按鈕,可以看到部署欄彈出:
選擇好要部署的環(huán)境(日常環(huán)境沼填、預(yù)發(fā)環(huán)境桅咆、線上環(huán)境),先選擇第一個(gè)環(huán)境:日常環(huán)境坞笙,點(diǎn)擊部署岩饼。
關(guān)于環(huán)境,這里目測(cè)還不能對(duì)環(huán)境進(jìn)行添加或修改薛夜。還是比較期待對(duì)環(huán)境有一定的靈活性配置籍茧,不論從名稱還是環(huán)境的數(shù)量上,不同的管理風(fēng)格還是有很多種不同可能的梯澜。
點(diǎn)擊“繼續(xù)部署”寞冯,開始完成整個(gè)CI與CD過程:
從日志中的日志鏈接進(jìn)入,還可以看到當(dāng)前容器的構(gòu)建情況:
如果出問題晚伙,那就點(diǎn)擊日志可以看到具體情況吮龄,比如:
如果你的服務(wù)之前都已經(jīng)開通,項(xiàng)目配置也都沒問題咆疗,那么就會(huì)如下面這樣漓帚,完成部署。在部署完成后會(huì)輸出可訪問的域名午磁,你可以用它來(lái)訪問你提供的接口來(lái)驗(yàn)證應(yīng)用是否啟動(dòng)正確尝抖。
持續(xù)部署
上面我們完成了一個(gè)環(huán)境的部署,已經(jīng)覆蓋了CI和CD的基礎(chǔ)操作迅皇。下面來(lái)試一下持續(xù)部署(CD)部分的靈活性昧辽。
在部署欄中,選擇其他環(huán)境試試
可以看到有一個(gè)特殊的選項(xiàng):將日常環(huán)境發(fā)布到預(yù)發(fā)環(huán)境登颓。勾選之后就是把日常環(huán)境的鏡像部署到預(yù)發(fā)環(huán)境搅荞,符合CD的定義,如果不勾選就會(huì)重新編譯再部署,就又是一次完整的CI + CD過程了取具。
應(yīng)用下線
下線操作很簡(jiǎn)單,只需要在對(duì)應(yīng)的應(yīng)用卡片中找到對(duì)應(yīng)環(huán)境的按鈕扁耐,如果是綠色狀態(tài)就是服務(wù)中暇检,只需要點(diǎn)擊一下,就可以開始執(zhí)行應(yīng)用的下線操作了婉称。
但是块仆,目前下線有時(shí)候會(huì)碰到比較慢的情況,比如我在卡片中點(diǎn)了下線王暗,卡片中狀態(tài)已經(jīng)變?yōu)镺ffline悔据,但是在開發(fā)部署頁(yè)面中中還無(wú)法重新部署,日志顯示還在卸載任務(wù)俗壹。
一些小建議
日志中的環(huán)境說(shuō)明與環(huán)境定義匹配不上科汗,建議有統(tǒng)一的描述與說(shuō)明
xml沒有高亮,編輯有點(diǎn)吃力
開始部署之后绷雏,沒有手工終止的操作头滔,如果操作失誤,就只能等著
本文首發(fā):居然僅用瀏覽器涎显,就完成了Spring Boot應(yīng)用的開發(fā)與部署坤检!,轉(zhuǎn)載請(qǐng)注明出處期吓。
總結(jié)
云開發(fā)平臺(tái)這個(gè)新產(chǎn)品使用下來(lái)雖然還是有一些感覺不舒服的地方早歇,但是總體使用體驗(yàn)還是能解決不少開發(fā)效率問題的,尤其對(duì)于我這樣的獨(dú)立開發(fā)者(協(xié)作內(nèi)容還弱一些讨勤,但是我不需要箭跳,哈哈)⌒螅基本上從開發(fā)衅码、測(cè)試、上線等我最常用的功能都能夠覆蓋脊岳,同時(shí)瀏覽器中的開發(fā)平臺(tái)是我比較喜歡的逝段,雖然目前來(lái)說(shuō)想較IDEA還是有很大的功能性差距,但是基礎(chǔ)功能已經(jīng)具備割捅,在開發(fā)流程上是沒有障礙的奶躯。但由于不需要配置運(yùn)行環(huán)境、安裝編輯器等優(yōu)點(diǎn)亿驾,開發(fā)工作就變得比較輕量化嘹黔。
另外還有一點(diǎn)小發(fā)現(xiàn),讓人有更多的聯(lián)想。在該平臺(tái)的菜單中點(diǎn)擊右上角的頭條儡蔓,點(diǎn)擊“賬號(hào)設(shè)置”郭蕉,居然跳到了團(tuán)隊(duì)協(xié)作軟件Teambition的阿里云版本:云效協(xié)作。所以喂江,之前讓我覺得協(xié)作功能還比較弱的感受召锈,可能在未來(lái)還會(huì)有更大的發(fā)揮空間。這兩者的結(jié)合获询,將來(lái)就可以從需求管理涨岁、研發(fā)管理、運(yùn)維管理等一路都打通吉嚣,但是具體會(huì)做成什么樣呢梢薪?期待這個(gè)平臺(tái)后續(xù)給我們展現(xiàn)他們的產(chǎn)品吧!
歡迎關(guān)注我的公眾號(hào):程序猿DD尝哆,獲得獨(dú)家整理的學(xué)習(xí)資源秉撇、日常干貨及福利贈(zèng)送。