SmartIDE v0.1.19

2022-06-18 06:01:05
SmartIDE v0.1.19 (CLI Build 3909, Server Build 3890) 已經發布,本次Sprint主要完成2個重要特性,工作區策略和類虛擬機器器容器(VM Like Container - VMLC)的開發工作。工作區策略特性的目標是為遠端工作區提供統一的設定管理機制,在這個sprint中主要實現了git-config和ssh-key兩個常用的策略。類虛擬機器器容器(VMLC)是一項非常重要的特性,目標是要為開發者提供與虛擬機器器非常類似的容器化環境。這個Sprint中我們也首次釋出了SmartIDE Server版的私有化部署安裝手冊,希望自行完成部署的小夥伴現在就可以開始嘗試了。

碼雲(Gitee.com)最有價值開源專案獎項

SmartIDE在上週獲得了碼雲(Gitee.com) 的最有價值開源專案獎項。碼雲(Gitee.com)是國內最大的開原始碼託管平臺,當前有800萬開發者使用者。GVP - Gitee最有價值開源專案獎項需要開源專案採用OSI認可的License (SmartIDE採用GPL3.0協定),通過Gitee專家組的認可,開發活躍度(SmartIDE至今已經完成了488次程式碼提交),積極響應使用者反饋,提供完整的檔案以及使用者評價(當前Gitee Star 125, Github Star 229)。

SmartIDE非常榮幸獲得碼雲的認可,我們將繼續為開發者提供最好的開發工具和技術支援。

Gitee GVP

Server 私有部署手冊

SmartIDE Server 是面向團隊和企業的雲原生容器化遠端工作區管理平臺,可以為開發團隊提供統一的開發測試資源管理,基於瀏覽器的開發環境存取以及團隊共同作業能力。SmartIDE Server 的 團隊基礎版 功能是開源而且免費的,任何人都可以按照本手冊所提供的方式完成部署並免費使用,沒有使用期限限制,沒有使用者數限制,也沒有資源數量限制。

下圖是Server版的部署架構圖:

SmartIDE Server Architecture

圖中可見,SmartIDE Server 採用了非常靈活並且可延伸的分散式架構,每個服務元件都可以進行獨立的橫向擴充套件以便確保可以應對不同規模的部署模式需求。既可以在單臺Linux主機上完成完整的部署,也可以在k8s叢集上支援高可用,高效能的可橫向擴充套件部署,對於不同規模的團隊都可以提供支援。

我們已經完成了 SmartIDE Server 私有化部署的檔案驗證,包括公網部署和隔離網路部署均已經可以投入使用。希望嘗試自行部署的小夥伴現在就可以參考以下完成完成部署和功能驗證:

類虛擬機器器容器 VMLC

在2022年6月11日剛剛結束的 開源雲原生開發者日 大會上,我進行了名為 【尋找雲原生時代的開發者效能原力 - 使用AKS實現雲原生IDE開發偵錯環境】的主題演講,並在演講中首次展示了 SmartIDE 對 VMLC 的支援。

VMLC

類虛擬機器器容器 VMLC 是 VM Like Container 的縮寫,其設計目標是為開發者在容器中提供類似虛擬機器器的環境,包括:systemd服務管理能力,sshd遠端登入能力,docker/k8s巢狀能力等。容器化技術出現以後,絕大多數的使用場景都是生產環境,因此對容器的優化目標都是圍繞精簡,單一程序,不可變狀態的目標來實現的;對於開發人員來說,按這種目標設計的容器並不適合作為開發環境來使用。相對於生產環境中已經預先確定的設定,開發環境的設定需要由開發人員根據當前應用的不同需求進行持續的調整,並且持續的進行內迭代過程(Inner Cycle),這個過程包含了編碼,編譯打包,部署,測試,修復的過程。只有為開發人員提供完整的內迭代能力才能最大限度確保開發人員提交的程式碼質量,降低後續環節(包括生產環境)中出現問題和缺陷的機率。

為了達到以上目標,SmartIDE產品團隊在過程的Sprint 18-19兩個迭代中完成了VMLC容器標準的設計,驗證和實現,並且已經通過 dapr-traffic-control 範例應用展示了 VMLC 的完整能力,包括:

  • 在Linux主機和k8s叢集中部署 VMLC 遠端工作區容器的能力
  • 使用 smartide start指令或者 smartide new 指令啟動基於 VMLC 的遠端工作區的能力
  • 使用 SmartIDE Server 管理基於 VMLC的遠端工作區的能力
  • 在VMLC容器中執行docker能力
  • 在VMLC容器中執行多節點k8s的能力,包括使用LoadBalancer, Ingress提供外部存取的能力
  • 使用SSH連結VMLC容器,並使用終端進行操作的能力
  • 使用VSCode遠端開發外掛 / JetBrains Gateways 連結 VMLC 容器進行 Hybird 模式開發的能力 當前,我們已經提供了以下基於 VMLC 的開發者映象,其他型別的開發者映象會在後續的 Sprint 中完成適配
開發語言映象型別tagPull命令new指令備註
base SDK latest docker pull registry.cn-hangzhou.aliyuncs.com/smartide/smartide-base-v2-vmlc:latest se new base -t vmlc 支援VMLC的基礎映象,使用ubuntu:20.04作為基礎 VMLC容器只支援linux作業系統
base WebIDE latest docker pull registry.cn-hangzhou.aliyuncs.com/smartide/smartide-base-v2-vscode-vmlc:latest se new base -t vscode-vmlc 支援VMLC的基礎映象,使用ubuntu:20.04作為基礎, 增加VSCode WebIDE VMLC容器只支援linux作業系統
dotnet WebIDE latest docker pull registry.cn-hangzhou.aliyuncs.com/smartide/smartide-dotnet-v2-vmlc:latest se new dotnet -t vmlc 支援VMLC的基礎映象,使用ubuntu:20.04作為基礎, .net 6.0 sdk 增加VSCode WebIDE VMLC容器只支援linux作業系統

有關基於 VMLC 的 SmartIDE 遠端工作區詳情,請參考以下部落格

工作區策略

工作區策略是為遠端工作區提供設定管理能力的一個通用特性,通過執行於遠端工作區中的代理程式,SmartIDE可以針對特定工作區內部的環境進行所需要的各種設定。其架構如下

SmartIDE Server Workspace Policy

如上圖,工作區策略的實現通過agent來實現,agent和server之間是單向通訊(pull)的模式,因此工作區並不需要為sever開放網路伺服器埠,agent會按照一定的週期從server獲取為當前工作區所準備的策略,並按照策略的需要在工作區內部完成實施。當前SmartIDE已經實現了3個基礎策略:

  • 心跳策略:這是agent的預設策略,所有工作區都會實施這個策略,其功能非常簡單,就是為server提供當前工作區的健康狀態檢查。工作區健康狀態會顯示在工作區詳情頁的右上角,如下圖

SmartIDE Server Workspace Policy

  • git-config策略:遠端工作區需要與當前使用者的身份進行繫結,在使用Git作為原始碼管理工具的過程中,我們需要將使用者的git設定注入到屬於使用者的工作區中,這樣使用者就可以在server上統一設定自己的git-config內容,確保自己所使用的所有的工作區均使用統一的git-config設定項。

  • ssh-key策略:ssh-key作為一種通用的身份認證機制,廣泛用於各種git服務或者伺服器之間的認證。通過ssh-key策略,我們可以確保使用者的工作區均使用統一管理的金鑰進行服務間的授權,包括:SSH-GitUrl,SSH 遠端登入等場景。本次ssh-key策略上線之後,SmartIDE也可以開始支援Git 私有倉庫的常見操作。

工作區策略可以通過server管理介面進行設定,如下圖

SmartIDE Server Workspace Policy

社群早鳥計劃

如果你對雲原生開發環境感興趣,請掃描以下二維條碼加入我們的 SmartIDE社群早鳥計劃

謝謝您對SmartIDE的關注,讓我們一起成為雲原生時代的 Smart開發者, 享受 開發從未如此簡單 的快樂。

讓我們一起成為 Smart開發者,享受開發如此簡單的樂趣。