作者:徐磊
文章首發地址:https://smartide.cn/zh/blog/2022-0892-sprint25/
關于SmartIDE
SmartIDE是一群開發者為所有開發者開發的開源云原生IDE,我們的使命是“為開發者賦予云原生的超能力”!
使用SmartIDE你只需要學會一個簡單的指令 smartide start 即可一鍵搭建任何開發語言的開源環境,包括:Java, DotNet, JavaScript/前端,Go語言,Python,PHP,C/C++七種主流技術棧;你也可以在 Windows/MacOS/Linux 三種操作系統上使用SmartIDE,你還可以選擇自己喜歡的IDE工具,包括:VSCode/JetBrains全家桶。
SmartIDE v1.0.25 (CLI build 5383, Server Build 5503) 已經發布,這個版本中我們針對一些關鍵特性進行了重要重構,比如 統一配置文件 和 工作區策略;同時我們還發布了一鍵啟動鏈接和 SmartIDE Codespaces for Azure DevOps 插件,允許開發者在Azure DevOps上直接啟動SmartIDE工作區;具體列表如下:
統一配置文件:開發者可以使用一個.ide.yaml 文件同時支持本地/遠程/k8s三種模式的工作區配置
一鍵啟動鏈接:允許開發者將這個鏈接放置在README文件,博客或者任何網頁上,直接點擊即可啟動工作區
Azure DevOps插件:允許開發者在Azure DevOps的代碼庫,流水線和工作項上一鍵啟動SmartIDE工作區
工作區策略改進:增加了credential策略,方便開發者為k8s工作區設置密碼,同時允許開發者使用這個密碼通過SSH登錄工作區
統一配置文件
這個版本中我們開始允許使用一個 .ide.yaml?同時支持本地,遠程和k8s三種工作區模式的配置。由于我們使用了 docker-compose 和 k8s manifest 兩種環境編排,在之前的版本中用戶需要針對2種編排模式提供至少2個不同的 .ide.yaml 文件,并且需要在啟動的時候特意指定不同的配置文件,才能在不同類型的資源上啟動工作區。現在開始,我們支持使用一個統一的.ide.yaml作為多種環境資源的入口,比如以下配置文件:
version: smartide/v0.3
orchestrator:type: allinoneversion: 3
workspace:dev-container:service-name: boathouse-calculator-devwebide-port: 6800ports: tools-webide-vscode: 6800tools-ssh: 6822apps-application: 3001ide-type: vscode volumes: git-config: truessh-key: truecommand:- npm config set registry https://registry.npmmirror.com- npm installkube-deploy-files: "k8s-deployment.yaml" docker-compose-file: "docker-compose.yaml"
幾個關鍵點:
Line 3 - orchestrator 的類型指定為 allinone,之前的選項是 docker-compose 或者 k8s
Line 20 - 指定k8s環境的編排文件
Line 21 - 指定本地和主機環境的編排文件
使用統一配置文件之后,開發者可以使用統一的指令格式在三種不同資源上啟動工作區,比如以下指令
## 本地啟動 (windows/mac/linux)
smartide start https://github.com/idcf-boat-house/boathouse-calculator.git
## 遠程主機啟動
smartide start --host <hostId> https://github.com/idcf-boat-house/boathouse-calculator.git
## k8s啟動
smartide start --k8s <context> https://github.com/idcf-boat-house/boathouse-calculator.git
可以看到,以上啟動指令中只是增加了?--host 或者?--k8s 參數,其他部分完全一致。另外,使用了統一配置文件之后,開發者也可以直接使用現有的 docker-compose 文件 或者 k8s 配置文件,不再需要復制這些文件的內容放入到我們的 .ide.yaml 中,這將簡化開發者使用SmartIDE的準備工作。
網頁鏈接一鍵啟動
開發者現在可以使用類似以下的鏈接格式直接觸發工作區的創建
https://dev.smartide.cn/#<Git代碼庫URL>
比如,以下就是一個可以直接觸發工作區創建的鏈接,點擊這個鏈接將會自動為boathouse-calculator庫創建工作區
https://dev.smartide.cn/#https://github.com/idcf-boat-house/boathouse-calculator
你也可以在自己的README.md上放置一個 smartide start 的徽章,并在徽章上使用這個鏈接
以下視頻展示了使用?網頁鏈接一鍵啟動?Github代碼庫的場景
SmartIDE Codespaces for Azure DevOps 插件
基于以上?一鍵啟動鏈接?能力 ,我們為 Azure DevOps 平臺提供了一個插件,允許用戶在不同的位置按照當前的上下文啟動工作區,自動獲取代碼庫地址,分支名稱等參數,簡化開發者創建開發環境的準備工作。這些自動化操作可以簡化開發者從日常任務中進入編碼環境的操作,并實現全線上化操作。
以下視頻是在早鳥用戶姚圣偉訪談過程中對這個插件的演示過程:
這個插件和已經發布到了 Azure DevOps 的插件市場,鏈接如下
SmartIDE Codespaces for Azure DevOps 插件
這個插件提供了4類入口,分別是
1. 代碼庫:?用戶可以在任何分支或者提交記錄上啟動工作區,插件會自動識別當前代碼庫地址和分支名稱,并使用這些參數啟動一個與當前代碼版本一致的開發環境。
2. 拉取請求:?使用拉取請求(PR)進行代碼評審是非常普遍的開發實踐,但是評審者往往會因為無法看到軟件的運行情況而無法對當前正在評審的內容進行有效和完整的判斷。此時,評審者就可以直接點擊 Open in SmartIDE 按鈕,即可獲取一個和當前被評審代碼完全一致的,可運行的環境來輔助進行代碼評審,這會讓評審工作變得更加簡單和高效。評審者在整個過程中也無需安裝任何開發工具,SDK和中間件環境,所有的環境都通過SmartIDE自動創建完成。評審結束后這個環境就可以直接銷毀。
3. 流水線:?一次流水線執行代表一個軟件版本,測試人員一般是需要圍繞這樣的版本來進行測試的。傳統模式下,測試人員需要準備幾套測試環境來輪流測試不同的版本,如果出現多個版本并行的情況就很難管理這些測試環境。使用了SmartIDE之后,測試人員可以隨時在任何版本(流水線運行記錄)上點擊 Open in SmartIDE 按鈕,即可獲取一個和當前流水線運行版本一致的環境進行測試;并且,這個環境中還包含了可供開發人員直接進行調試的IDE工具。測試過程中如果發現問題,測試人員可以將這個環境直接共享給開發者進行問題定位和調試。這種隨用隨起的測試環境將極大簡化測試人員獲取可用測試環境,以及在測試環境中定位問題的復雜度,提高開發測試迭代速度。
4. 看板工作項:?使用特性分支對應到具體工作任務是大型軟件開發團隊中常用的分支策略,也是一種高效團隊協作模式。以往開發者需要手工創建分支,并在本地開發環境拉取代碼并手工切換到這個分支上才能開發工作。如果遇到同時在2個特性上工作的情況,繁瑣的分支操作很容易造成操作失誤。現在,開發者可以在工作任務上直接點擊 Open in SmartIDE 按鈕并根據需要創建或者使用已有分支,SmartIDE會自動使用指定分支創建開發環境。對于多特性并行情況,開發者只需要打開2個不同的瀏覽器窗口即可同時在2個分支上互不影響的進行工作。
SmartIDE Codespaces for Azure DevOps 插件只是我們計劃提供的各種插件的一個示例,未來我們還將為常用的DevOps工具提供類似的入口,比如:Jira, Confluence, GitLab, Jenkins等等。這些擴展將幫助現有的DevOps工具與開發環境及編碼過程實現更加緊密的集成,為開發人員提供一體化的工作體驗。
工作區策略改進
工作區策略是SmartIDE中針對工作區進行各種控制的通用能力,之前我們已經提供了 Git Config 和 SSH Key 兩種策略分別用來控制工作區中的git配置和ssh密鑰。這個版本中我們增加了統一設定工作區訪問密碼的credential策略,一旦設定,開發者就可以使用一個統一的密碼來控制對自己工作區的訪問,包括SSH訪問。
對于原有的SSH Key策略,我們進一步完善了密鑰的推送過程,幫助開發者在使用SSH遠程連接的時候實現免密登錄。
下圖:開發者獲取SSH登陸指令并直接進入工作控制臺終端。
開發者也可以使用這個指令將本地VSCode或者JetBrains IDE連接到工作區,整個過程無需輸入密碼。
下圖:使用VSCode遠程模式免密進入SmartIDE云端工作區
感謝你對SmartIDE的關注,歡迎從SmartIDE官網(文末鏈接)下載體驗我們的產品,獲取加入我們的早鳥群,及時了解SmartIDE的開發進展。
#SmartIDE Meetup,終于回來了。
2022年9月13日開始,我們將重新啟動Smart Meetup線上直播活動,為大家持續揭秘SmartIDE的各種好玩的特性,并帶領大家真正將SmartIDE用到自己日常的開發工作中👇
趕緊掃碼預約吧,還有機會抽取SmartIDE主題文化衫哦!