近期參加了阿里雲官方的一個開發者工具備獎評測活動,感興趣的朋友能夠去官網瞭解下,如下是我對這款工具的使用體驗,歡迎各位朋友進行交流和斧正。安全
Alibaba Cloud Toolkit(如下簡稱工具集)是阿里中間件團隊發佈的一款面向阿里雲服務的開發工具集,用來提高開發者使用阿里雲產品時的用戶體驗。本文將對使用該工具集部署EDAS應用的各類能力進行一番評測。Alibaba Cloud Toolkit主要包含三種類型的工具,分別是IDE插件(目前僅支持Eclipse,IDEA插件聽說正在開發中,很快會發布)、Maven插件和命令行工具。在對這三種類型的工具進行詳細評測以前,咱們先來了解一下使用Web界面部署普通EDAS應用的過程。運維
第一步,須要先申請一些ECS並將這些ECS導入到已經建立的集羣中。異步
圖1. 集羣和集羣中的ECSmaven
第二步,建立應用。工具
在建立應用的時候選擇使用該集羣,並選擇集羣中的ECS做爲部署目標。同時打開「當即部署」選項,再選擇應用部署方式、應用運行環境和Java環境等,而後上傳部署包,在肯定了版本以及批次和分批方式後,就能夠建立並部署應用了(圖2)。單元測試
圖2. 建立並部署應用開發工具
這個過程看似簡單,卻有以下一些問題。首先,界面是基於Web的,雖然簡單易用,可是自動化能力不強,須要人爲干預才能工做,效率不高;其次,用戶須要本身打包和上傳部署文件,致使開發和部署過程割裂。有了上面一些對EDAS傳統部署過程的瞭解,咱們再分別使用工具集中的不一樣工具來嘗試從新部署應用,看看會有什麼不一樣。測試
一般而言,開發人員都會使用IDE來提高軟件的開發效率,所以Alibaba Cloud Toolkit提供基於主流IDE的擴展插件就是順其天然的事情,拿Eclipse爲例,在Eclipse市場中就能搜索到Alibaba Cloud Toolkit,該插不只支持EDAS,也有不少其餘的功能,但這裏咱們主要關注面向EDAS的集成能力。阿里雲
安裝好插件之後,導入一個項目(能夠是原生Dubbo,原生Spring Cloud或HSF項目),而後在Project Explore窗口右鍵點擊該項目,會出現Alibaba Cloud上下文菜單,選擇該菜單項後會出現Deploy to EDAS…子菜單項(圖3)。spa
圖3. Alibaba Cloud菜單及子菜單
若是是第一次使用該插件,會彈出一個設置窗口(圖4)用來設置訪問帳戶所需的Access Key ID和Access Key Secret,設置完成之後就會出現Deploy to EDAS窗口(圖5)。
圖4. 設置訪問帳戶的Access Key ID和Access Key Secret
圖5. 部署應用
該窗口的主要功能一目瞭然,選擇Region、Namespace、Application和Group後,點擊Deploy即開始部署。
該插件的優點正如前文所言,解決了開發到部署過程上下文切換的問題,能夠在一個場景下完成這兩種工做。而劣勢(或者說功能的不足)是其能力還不能徹底與傳統的基於Web部署過程對齊:好比沒法選擇批次、分配方式,以及在第一次部署的時候沒法選擇容器和Java版本等等,但願將來的版本可以加以改進。
使用Java的開發人員多數會使用Apache Maven來管理依賴、編譯、測試、打包和發佈等過程,所以Alibaba Cloud Toolkit也提供了與Maven的集成能力,即edas-maven-plugin。有關配置和使用方法,在官網的《經過 edas-maven-plugin 插件自動化部署應用》文檔中已經有詳細說明,就不在此贅述。
比起IDE插件來講,Maven插件可以更有效的解決自動化問題,尤爲是跟持續集成與持續交付系統對接的時候更爲有用。在一個配置完善的自動化系統中,開發人員將開發完成的代碼提交到代碼倉庫,此時能夠自動觸發應用的構建、單元測試與打包,打包好的交付物會經過edas-maven-plugin部署到測試環境,運行一遍冒煙測試以後,再被部署到預發環境供測試人員測試。整個過程能夠作到徹底無人值守。
該Maven插件也一樣存在不少不盡如人意的地方,好比配置項中須要使用應用或分組的ID來指定部署目標,雖然在Web界面上提供有相關的配置能夠複製粘貼,可是依然不如直接使用名稱來得方便。另外在執行mvn edas:deploy命令的時候必需要在package階段以後(即命令必須爲mvn package edas:deploy),不然沒法找到要部署的包。最後同IDE插件遇到的問題相同,若是隻有一個空應用,而沒有指定過該應用的容器和Java版本的話,那麼使用Maven插件部署的時候可能會出現問題。但願這些不足可以在將來的版本中獲得解決。
命令行工具在整個Alibaba Cloud Toolkit裏面是功能最強大的,固然也是使用門檻最高的,咱們來分別瞭解一下。
說其功能強大,是由於命令行工具是對EDAS Open API的封裝,所以只要是接口中提供的功能,均可以使用命令行工具來調用。這個功能並不算新穎,之前在沒有提供命令行工具的時候,一些用戶也會經過使用Python腳本調用Open API的方式來達到相同的目的,只是官方提供了這個能力以後,對於大部分的開發者而言減小了這部分的工做量。再者,該命令行工具是與aliyun這個命令集成到一塊兒的,所以若是企業對自動化運維有很高要求的話,使用aliyun edas這個子命令能夠避免絕大多數的手動操做,包括但不限於建立命名空間、建立集羣、集羣導入、建立應用以及部署應用、建立分組、應用生命週期管理等等。加強自動化且提升運維效率的同時,更多的能夠避免因人爲操做失誤而致使的安全生產風險,間接提升了產品質量。有關命令行工具的具體配置和使用方法請參考文檔《使用CLI快速部署EDAS應用》。
說其使用門檻高,主要在於單一命令只能完成一個原子操做,且操做過程大可能是異步的,這就要求實現複雜功能的時候須要編寫腳原本完成執行結果的輪詢與命令串聯。雖然這些工做對於開發人員來講算不上什麼問題,可是總之是有可改進空間的。
以上即是Alibaba Cloud Toolkit提供的針對EDAS產品的所有功能的試用體驗以及對其優勢和現有不足的分析,鑑於筆者水平有限,提出的問題點並不必定徹底準確。總而言之,該工具集的出現確實在很大程度上提高了開發人員的工做效率,也讓各類CI/CD以及自動化運維等能力成爲可能,確實是一個值得企業用戶尤爲是開發者用戶去嘗試的優秀工具集。