最近有幸試用了一下阿里雲的一個新產品:雲開發平臺,體驗一把全新的開發模式!雖然中間也碰到了一些問題,但整體的體驗透露著未來感,因為整個過程都不需要使用我們最常用的IDEA,僅依靠瀏覽器就把一個Spring Boot幹上線了!
啥是雲開發平臺?雲開發平臺(https://workbench.aliyun.com),是阿里雲面向廣大開發者提供的雲上研發工作平臺,助力研發團隊實現工作的線上化(團隊線上、環境線上、程式碼線上、協同線上)以及研發模式Serverless化,幫助研發團隊實現對行業架構經驗及架構服務的高效分享與傳播,極致提升研發效率,極致降低研發成本。
下面,我就來分享一下如何在這個平臺中開發與部署Spring Boot應用!有興趣的童鞋,可以點選進入雲開發平臺,一步步跟我體驗完整的開發體驗!
基礎配置
第一步:建立新應用
第二步:選擇“Microservice”,解決方案選擇“Spring Boot應用遷移方案(SAE)”或“Spring Boot應用遷移方案(ASK)”。之前寫過很多Spring Boot例子,所以就用遷移方案試試把已經開發好的Spring Boot拉進來的場景吧!
第三步:輸入Spring Boot應用相關的資訊
點選“完成”之後,可以在應用列表中看到剛剛完成建立的hello-world應用。
從上面的卡片元素中,我們可以看到,雖然只是簡單的一個建立應用操作,實際上做了非常多的事情,比如:分配環境、建立Git倉庫等。
應用開發
在雲開發平臺中可以通過兩種方式進行開發:線上開發(瀏覽器中完成)、線下開發(傳統編輯器開發)。
線上開發
點選應用卡片中的“開發部署”,就會進入到下面的雲開發頁面:
在左中位置可以看到該專案中已經有的檔案(主要一些映象構建配置、執行指令碼和說明文件等)。
拿出我們以前的Spring Boot樣例(如果你沒玩過Spring Boot,可見免費系列教程),拖一個以前寫過的Spring Boot應用進來試試:
拖入程式碼之後,根據雲開發平臺的規範要求,需要對專案組織做一些修改,所以開啟pom.xml,做如下配置修改:
- properties中新增applicationName配置,必須要有,不能省略
- build中新增finalName配置,必須與****applicationName一致,所以也可以用引用的方式
- 配置spring-boot-maven-plugin外掛,打包格式使用ZIP、注意修改應用主類路徑
線上測試
在完成了專案的匯入之後,我們嘗試執行該應用。
- 點選底部的“終端”標籤
- 在命令列中輸入:mvn spring-boot:run
不出意外,終端將輸出類似下面的內容,應用成功啟動!
但是應用是啟動到雲平臺上,並非本地,我們要如何驗證應用提供的介面呢?
點選上面的“預覽”按鈕,然後在頂部彈出框中輸入想要暴露的埠號,比如:8080
根據提示,按回車之後,右下方會出現是否立即訪問的提示,直接點選訪問就可以進入到可訪問的域名地址(該地址對映到了雲平臺上的啟動地址)
程式碼提交
在完成了上面的相關開發工作之後,通常我們要關注的就是程式碼的提交。這時候就可以點選左側的分支圖示,將修改程式碼進行 commit
然後點選左下方的箭頭,將程式碼push進倉庫(關於Git相關的操作,一開始沒摸著頭腦,不是很流暢,期待後續有更好的使用者體驗改進)
本地開發
也許你可能覺得目前的線上編輯器還不夠強大,比如上面我們就看到對於pom.xml都還沒有高亮顯示。那麼這個時候,你也可以選擇本地開發模式。只需要在應用卡片中點選“程式碼倉庫”,進入到下面的頁面中,將你本地的ssh金鑰輸入儲存,然後就可以根據程式碼倉庫將該應用的Git倉庫拉到本地進行開發了!
小建議:可以看到這裡的倉庫名稱是按日期時間來構建的,如果使用線上開發還好,對這塊內容不敏感。但是如果想在本地開發,這樣的命名對於使用者來說就不那麼友好,有時候會以為是個臨時目錄,期待後續會有所改進!
應用部署
在完成了應用開發,本地測試之後,我們要做的就是應用交付與部署。所以,我們接下來試試這個平臺的部署功能!
在進行部署之前,我們需要先檢查一下當前環境是否具備部署條件。點選應用卡片中的“環境管理”按鈕,可以看到如下頁面:
如果裡面有依賴的雲服務沒有開通,那麼就點選立即開通去逐個開通服務,不然後續的部署過程就無法正常完成。
如果你的應用中涉及到一些環境變數的使用,那麼繼續點選應用卡片中的“應用配置”來設定。
如果你的應用需要多人一起開發,那麼在“成員管理”中可以用阿里雲賬號把其他開發者加入進來,他們就也可以跟你一樣訪問你的應用程式碼了。
準備就緒,繼續正題。繼續開啟開發部署介面,點選左側欄第一個按鈕,可以看到部署欄彈出:
選擇好要部署的環境(日常環境、預發環境、線上環境),先選擇第一個環境:日常環境,點選部署。
關於環境,這裡目測還不能對環境進行新增或修改。還是比較期待對環境有一定的靈活性配置,不論從名稱還是環境的數量上,不同的管理風格還是有很多種不同可能的。
點選“繼續部署”,開始完成整個CI與CD過程:
從日誌中的日誌連結進入,還可以看到當前容器的構建情況:
如果出問題,那就點選日誌可以看到具體情況,比如:
如果你的服務之前都已經開通,專案配置也都沒問題,那麼就會如下面這樣,完成部署。在部署完成後會輸出可訪問的域名,你可以用它來訪問你提供的介面來驗證應用是否啟動正確。
持續部署
上面我們完成了一個環境的部署,已經覆蓋了CI和CD的基礎操作。下面來試一下持續部署(CD)部分的靈活性。
在部署欄中,選擇其他環境試試
可以看到有一個特殊的選項:將日常環境釋出到預發環境。勾選之後就是把日常環境的映象部署到預發環境,符合CD的定義,如果不勾選就會重新編譯再部署,就又是一次完整的CI + CD過程了。
應用下線
下線操作很簡單,只需要在對應的應用卡片中找到對應環境的按鈕,如果是綠色狀態就是服務中,只需要點選一下,就可以開始執行應用的下線操作了。
但是,目前下線有時候會碰到比較慢的情況,比如我在卡片中點了下線,卡片中狀態已經變為Offline,但是在開發部署頁面中中還無法重新部署,日誌顯示還在解除安裝任務。
一些小建議
日誌中的環境說明與環境定義匹配不上,建議有統一的描述與說明
xml沒有高亮,編輯有點吃力
開始部署之後,沒有手工終止的操作,如果操作失誤,就只能等著
本文首發:居然僅用瀏覽器,就完成了Spring Boot應用的開發與部署!,轉載請註明出處。
總結
雲開發平臺這個新產品使用下來雖然還是有一些感覺不舒服的地方,但是總體使用體驗還是能解決不少開發效率問題的,尤其對於我這樣的獨立開發者(協作內容還弱一些,但是我不需要,哈哈)。基本上從開發、測試、上線等我最常用的功能都能夠覆蓋,同時瀏覽器中的開發平臺是我比較喜歡的,雖然目前來說想較IDEA還是有很大的功能性差距,但是基礎功能已經具備,在開發流程上是沒有障礙的。但由於不需要配置執行環境、安裝編輯器等優點,開發工作就變得比較輕量化。
另外還有一點小發現,讓人有更多的聯想。在該平臺的選單中點選右上角的頭條,點選“賬號設定”,居然跳到了團隊協作軟體Teambition的阿里雲版本:雲效協作。所以,之前讓我覺得協作功能還比較弱的感受,可能在未來還會有更大的發揮空間。這兩者的結合,將來就可以從需求管理、研發管理、運維管理等一路都打通,但是具體會做成什麼樣呢?期待這個平臺後續給我們展現他們的產品吧!
歡迎關注我的公眾號:程式猿DD,獲得獨家整理的學習資源、日常乾貨及福利贈送。