<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SmartIDE v1.0.23 一個非常不敏捷的發(fā)布丨IDCF

          共 9284字,需瀏覽 19分鐘

           ·

          2022-08-08 23:21

          作者:徐磊
          文章首發(fā)地址:https://smartide.cn/zh/blog/2022-0729-sprint23/


          關于SmartIDE

          SmartIDE是一群開發(fā)者為所有開發(fā)者開發(fā)的開源云原生IDE,我們的使命是“為開發(fā)者賦予云原生的超能力”!

          使用SmartIDE你只需要學會一個簡單的指令 smartide start 即可一鍵搭建任何開發(fā)語言的開源環(huán)境,包括:Java, DotNet, JavaScript/前端,Go語言,Python,PHP,C/C++七種主流技術棧;你也可以在 Windows/MacOS/Linux 三種操作系統(tǒng)上使用SmartIDE,你還可以選擇自己喜歡的IDE工具,包括:VSCode/JetBrains全家桶。

          SmartIDE v1.0版本(CLI Build v1.0.23.4650,Server Build v1.0.23.4646)已經(jīng)發(fā)布,在超過4000 個 Builds 之后,我們終于發(fā)布了v1.0版本。當前的版本已經(jīng)完成了企業(yè)級云原生CloudIDE的特性閉環(huán),允許個人/團隊/企業(yè)用戶在Windows/Mac/Linux上使用VSCode/JetBrains全家桶/OpenSumi三種IDE開發(fā)7種技術棧下的任何項目,并且支持WebIDE和Hybrid混合模式以及WebTerminal的三種工作區(qū)訪問方式。

          本次發(fā)布包含Sprint 20-23的內容,包括的特性有:完整的k8s模式支持,團隊管理能力,簡化使用本地IDE(VSCode/JetBrains Gateway)連接SmartIDE工作區(qū)的Hybrid模式,工作區(qū)擴展組件Web Terminal,ARM處理器支持以及Gitlab CI/CD流水線支持。另外,我們也擴展了VMLC的支持范圍,對 node 和 java 兩種技術棧提供了對應的 VMLC 開發(fā)者鏡像。


          CLI代碼正式開源



          我們已經(jīng)完成 CLI 代碼的開源,相關代碼已經(jīng)推送到我們在GitHub和Gitee上面的代碼倉庫,包括全套CLI代碼(Golang語言編寫,采用GPLv3開源協(xié)議)。這套代碼從2021年10月24日開始迭代,至今已經(jīng)完成了700多次提交并發(fā)布了超過4000個版本,希望我們開源以后能夠有更多社區(qū)小伙伴參與進來。

          開源地址:(點擊文末原文鏈接直接獲取地址)

          • https://github.com/SmartIDE/SmartIDE/tree/main/cli

          • https://gitee.com/smartide/SmartIDE/tree/main/cli


          完整k8s模式



          我們已經(jīng)發(fā)了完整的k8s模式支持,獨立開發(fā)者可以使用CLI將SmartIDE工作區(qū)一鍵部署到k8s集群中,團隊管理員則可以通過SmartIDE Server將k8s集群共享給團隊中的開發(fā)者共享使用。當使用SmartIDE Server創(chuàng)建k8s工作區(qū)的時候,會同時創(chuàng)建指向工作區(qū)的動態(tài)二級域名URL以及ssh連接地址,開發(fā)者可以直接通過這個動態(tài)二級域名訪問自己的工作區(qū)。這意味著開發(fā)者可以通過任何設備訪問運行在k8s中的SmartIDE工作區(qū),包括傳統(tǒng)PC,平板電腦/iPad以及手機。

          CLI 啟動k8s工作區(qū)

          這種方式適合個人開發(fā)者使用自己私有的k8s集群作為開發(fā)調試環(huán)境使用,開發(fā)者只需要在本地配置了k8s訪問密鑰(默認位置 ~/.kube/config),即可通過以下指令將SmartIDE云端工作區(qū)部署到k8s集群中。一旦啟動完畢,cli會通過k8s的kubectl指令自動完成工作區(qū)內容器端口到localhost端口的映射,開發(fā)者即可通過 localhost 上的端口訪問這個運行在k8s中的工作區(qū)。

          使用CLI直接部署k8s工作區(qū)示例腳本如下

          ## cli 一鍵部署k8s工作區(qū)指令smartide start --k8s <當前集群> \  --repourl https://github.com/idcf-boat-house/boathouse-calculator.git \  --filepath .ide/k8s.ide.yaml## cli 獲取工作區(qū)列表指令,可以用來獲取 工作區(qū)Id 并查看工作區(qū)運行狀態(tài)smartide list## cli 刪除工作區(qū)smartide remove <工作區(qū)Id>


          下圖:使用cli啟動完成k8s工作區(qū)效果如下,同時使用VSCode WebIDE,VSCode桌面版和JetBrains Webstorm遠程模式連接k8s工作區(qū)。


          Server啟動k8s工作區(qū)

          SmartIDE Server支持一鍵私有部署,你只需要一臺Linux主機即可完成部署,并不依賴k8s集群。在完成Server的部署之后,管理員可以將一個或者多個k8s集群綁定在Server上,并將這些k8s集群分配給不同的團隊使用。

          下圖:同時綁定了3個k8s集群和一臺linux主機的SmartIDE Server環(huán)境

          使用Server部署k8s工作區(qū)非常簡單,只要在 工作區(qū) | 工作區(qū)管理 | 新增工作區(qū) 的時候選擇對應的k8s資源即可。

          下圖:使用k8s資源新增工作區(qū)

          通過k8s工作區(qū)對外暴露的ssh連接地址,開發(fā)者可以直接使用本地終端程序連接到SmartIDE工作區(qū)并通過terminal完成各種操作。同時,開發(fā)者也可以使用VSCode以及JetBrains Gateway的ssh遠程連接能力將本地的VSCode或者JetBrains系列的IDE(包括:IntelliJ IDEA, PyCharm, GoLand, WebStorm等等)連接到SmartIDE的遠程工作,這樣開發(fā)者可以同時兼顧本地IDE的快速操作體驗以及遠程工作區(qū)帶來的各種好處。

          下圖:使用Server啟動的k8s工作區(qū),同時通過VSCode WebIDE, VSCode桌面端和IDEA IntelliJ遠程模式連接工作

          SmartIDE工作區(qū)提供VMLC支持,你可以在自己的k8s集群上激活VMLC能力,然后就可以在運行在k8s集群中的SmartIDE工作區(qū)內部嵌套運行docker或者k8s集群。開發(fā)者可以使用VMLC能力非常方便的創(chuàng)建和銷毀屬于自己的k8s集群,并使用這個個人k8s集群完成云原生應用的完整開發(fā)測試和部署迭代,這將簡化開發(fā)者開發(fā)云原生應用的復雜度,并有效減少在正式集群上部署出錯的機率,大幅提升云原生應用的開發(fā)效率。

          相關文檔參考:

          • Server私有部署操作手冊

          • 為SmartIDE Server初始化k8s集群

          • 【開源云原生大會】現(xiàn)場演示:k8s套娃開發(fā)調試dapr應用

          • 為什么Dapr是比SpringCloud和Istio更優(yōu)雅的微服務框架?

          • SmartIDE Server 快速啟動教程


          團隊共享資源



          SmartIDE Server中新增了團隊管理能力,開發(fā)者可以根據(jù)需要創(chuàng)建團隊并將其他用戶加入團隊。團隊的創(chuàng)建者會成為當前團隊的管理員,作為管理員可以將主機或者k8s集群綁定到團隊并允許其他團隊成員使用這些資源來創(chuàng)建工作區(qū)。

          下圖:團隊資源會顯示所屬團隊


          Hybrid混動模式優(yōu)化 - VSCode SSH Remote和 JetBrains Gateway 支持



          我們簡化了VSCode SSH Remote連接SmartIDE工作區(qū)的操作步驟,當開發(fā)者使用CLI啟動工作區(qū)的時候,CLI會自動在 .ssh/config 文件中添加遠程連接,這時開發(fā)者只需要打開VSCode的遠程連接插件,即可看到已經(jīng)配置好的遠程連接,直接點擊即可完成連接。在這個過程中,SmartIDE還會自動更新遠程工作區(qū)容器中的 ~/.ssh/authorizedkeys 文件,將本地的ssh公鑰添加進去,這樣開發(fā)者在連接遠程工作區(qū)的時候就不再需要輸入密碼,可以實現(xiàn)一鍵連接。

          對于更喜歡使用JetBrains系列IDE的開發(fā)者來說,你仍然需要手工在JetBrains Gateway中創(chuàng)建遠程連接才能使用Hybrid模式,不過以上的authorizedkey設置對JetBrains Gateway同樣有效,因此連接過程也會更加簡單。我們后續(xù)也會繼續(xù)優(yōu)化對JetBrains遠程工作模式的支持,實現(xiàn)一鍵連接能力。


          WebTerminal 支持



          為了方便開發(fā)者使用terminal訪問SmartIDE工作區(qū),我們提供了一個工作區(qū)擴展(Workspace AddOn),開發(fā)者可以在創(chuàng)建工作區(qū)的時候添加 –addon webterminal 即可在工作區(qū)中添加基于瀏覽器的終端窗口。雖然在VSCode以及JetBrains的WebIDE中都提供了terminal功能,但是提供一個獨立的終端窗口仍然會大幅方便開發(fā)者對工作區(qū)進行管理,比如當你需要運行一個駐守進程,需要訪問工作區(qū)中的其他容器或者希望使用類似Vim編輯器時。

          通過添加 –addon webterminal 參數(shù)到本地/主機模式的cli啟動命令中即可在環(huán)境中增加WebTerminal功能,示例指令如下

          ## 添加 --addon webterminal 啟動工作區(qū) smartide start --host 1 --addon webterminal https://github.com/idcf-boat-house/boathouse-calculator.git


          下圖:通過WebTerminal可以訪問當前工作區(qū)中的所有容器,并支持對terminal進行分屏,方便并行操作。

          SmartIDE WebTerminal是我們基于開源項目 ysk2014/webshell 改造完成的,因此采用和原項目同樣的MIT開源協(xié)議。WebTerminal也是我們提供的第一個工作區(qū)擴展(Workspace Addon),后續(xù)我們會逐步提供更多的擴展,加強開發(fā)者對遠程工作區(qū)的操作能力。

          SmartIDE WebTerminal 的開源地址:

          • https://github.com/SmartIDE/smartide-web-terminal

          • https://gitee.com/smartide/smartide-web-terminal


          ARM支持



          本次迭代我們提供了對ARM處理器的支持,當前ARM處理器已經(jīng)在很多領域得到了大規(guī)模的應用,包括:PC機(蘋果的M系列電腦),移動設備,邊緣計算及IoT以及服務器。SmartIDE與其他CloudIDE不同的是,我們將云端/遠程工作區(qū)的調度能力封裝成了一個獨立的cli程序(已開源),并利用go語言的跨平臺特性支持在多種操作系統(tǒng)上運行cli,這為SmartIDE提供了其他任何CloudIDE都不具備的跨平臺跨設備運行能力。這次我們針對ARM處理器進行的支持進一步將我們的跨端能力進行了大幅的擴展,未來我們將探索將CloudIDE嵌入到移動設備,邊緣計算和IoT領域,為開發(fā)者提供無所不在的開發(fā)環(huán)境管理能力。

          我們同時優(yōu)化了安裝腳本,提供了ARM版本對應的安裝通道,包括MacOS和Linux兩種操作系統(tǒng)。

          Mac穩(wěn)定版安裝

          # MacOS
          # Intel芯片curl -OL "https://smartidedl.blob.core.chinacloudapi.cn/releases/$(curl -L -s https://smartidedl.blob.core.chinacloudapi.cn/releases/stable.txt)/smartide-osx" \&& mv -f smartide-osx /usr/local/bin/smartide \&& ln -s -f /usr/local/bin/smartide /usr/local/bin/se \&& chmod +x /usr/local/bin/smartide
          # Apple芯片(比如M1/M2系列)curl -OL "https://smartidedl.blob.core.chinacloudapi.cn/releases/$(curl -L -s https://smartidedl.blob.core.chinacloudapi.cn/releases/stable.txt)/smartide-osx-arm64" \&& mv -f smartide-osx-arm64 /usr/local/bin/smartide \&& ln -s -f /usr/local/bin/smartide /usr/local/bin/se \


          Linux穩(wěn)定版安裝

          # Linux # x86 架構處理器curl -OL  "https://smartidedl.blob.core.chinacloudapi.cn/releases/$(curl -L -s https://smartidedl.blob.core.chinacloudapi.cn/releases/stable.txt)/smartide-linux-amd64" \&& sudo mv -f smartide-linux-amd64 /usr/local/bin/smartide \&& sudo ln -s -f /usr/local/bin/smartide /usr/local/bin/se \&& sudo chmod +x /usr/local/bin/smartide
          # arm 架構處理器curl -OL "https://smartidedl.blob.core.chinacloudapi.cn/releases/$(curl -L -s https://smartidedl.blob.core.chinacloudapi.cn/releases/stable.txt)/smartide-linux-arm64" \&& sudo mv -f smartide-linux-arm64 /usr/local/bin/smartide \&& sudo ln -s -f /usr/local/bin/smartide /usr/local/bin/se \&& sudo chmod +x /usr/local/bin/smartide

          下圖:在一臺 Apple MacPro M1 上使用ARM原生版本的SmartIDE CLI運行容器化工作區(qū)

          本次我們對ARM處理器所提供的支持包括

          • Linux和MacOS操作系統(tǒng)版本的cli提供amd64和arm64兩種build,并已經(jīng)發(fā)布至每日構建和穩(wěn)定版通道

          • SmartIDE Server相關鏡像(smartide-web和smartide-api)的arm版鏡像以及相關依賴鏡像(包括tekton流水線相關的基礎組件鏡像),已經(jīng)推送至阿里云鏡像倉庫和DockerHub

          • 包含 smartide-cli arm64版本的 tekton-task 鏡像,已經(jīng)推送至阿里云鏡像倉庫和DockerHub

          • 開發(fā)者鏡像的arm版本,已經(jīng)推送到阿里云鏡像倉庫和DockerHub

          • Server一鍵部署腳本提供了內置的arm支持,可以自動識別當前部署環(huán)境,自動使用arm相關資源,具體請參考 Server私有部署操作手冊

          具體資源內容和鏈接可以參考

          • https://github.com/SmartIDE/SmartIDE/issues/29


          GitLab CI 流水線支持



          我們將SmartIDE的核心功能設計成CLI的一個主要考慮就是允許開發(fā)者以最低的成本,最簡單的方式將 云原生IDE 的能力集成到自己的系統(tǒng)中。在本次迭代中,我們開始進一步踐行這個使命,在 CLI中提供了一個 mode=pipeline 的運行模式,這個模式允許用戶在自己的流水線中使用 SmartIDE CLI 去創(chuàng)建工作區(qū),本次只開放了遠程主機模式,未來也會開放k8s模式。

          使用場景:

          • 擴展現(xiàn)有的企業(yè)流水線系統(tǒng)變成一個CloudIDE管理系統(tǒng)

          • 部署帶有對應版本代碼的測試環(huán)境,這將方便開發(fā)者對測試環(huán)境中的問題進行定位并直接在測試環(huán)境中進行調試

          • 針對某一個特定的歷史版本創(chuàng)建開發(fā)調測環(huán)境,當我們收到用戶的缺陷報告時往往發(fā)現(xiàn)自己開發(fā)環(huán)境中的代碼版本已經(jīng)大大超前于用戶使用的版本了。這種情況開發(fā)者可以使用SmartIDE創(chuàng)建一個臨時的環(huán)境,并直接定位于一個特定的歷史版本(直接使用commitId),這樣可以避免污染開發(fā)者本地,也可以避免開發(fā)者在修復問題之后將新版本(未經(jīng)測試)的代碼通過HOTFIX夾帶上線。

          使用方法非常簡單,將下面 .gitlab-ci.yml 放置在自己的gitlab代碼庫中即可擴展 gitlab-ci 流水線具備管理 云原生IDE 的能力。

          variables:
          #remote host information which you can deploy your dev workspace and open it in WebIDE SMARTIDE_REMOTE_HOST: <remote dev/test env> SMARTIDE_REMOTE_HOST_USERNAME: <host username> SMARTIDE_REMOTE_HOST_PASSWORD: <host password> #git repo you want to develop in smartide, you can use predefined variable $CI_REPOSITORY_URL #for the URL to clone the current Git repository (the URL already contain token, so you dont need to #consider Authentication problem, for custom git repo url, you need resolve authentication yourself with token or ssh..) SMARTIDE_GIT_REPO_ADDRESS: $CI_REPOSITORY_URL #callback api address which you want to receive workspace information and trigger other custom events SMARTIDE_CALLBACK_API_ADDRESS: <callback api address>
          stages: - setup_dev_env
          smartide: stage: setup_dev_env image: name: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli:4475 entrypoint: [""] script: - smartide version        - smartide start --mode pipeline --isInsightDisabled false --host $SMARTIDE_REMOTE_HOST --username $SMARTIDE_REMOTE_HOST_USERNAME --password $SMARTIDE_REMOTE_HOST_PASSWORD --callback-api-address $SMARTIDE_CALLBACK_API_ADDRESS $SMARTIDE_GIT_REPO_ADDRESS


          以上gitlab-ci流水線腳本將會使用當前的代碼庫創(chuàng)建云端工作區(qū),開發(fā)者可以通過定制 .ide.yaml 配置文件在這個云端工作區(qū)中嵌入自己所需要的IDE,中間件或者其他環(huán)境,具體做法請參考 項目適配 和 鏡像和模版

          本次迭代中我們針對 SmartIDE CLI 的現(xiàn)有功能進行了簡單擴展,在現(xiàn)有的 client | server 兩種運行模式之上提供了 pipeline 的運行模式。這種模式其實是一種headless模式,cli不會試圖打開瀏覽器,也不會調用 smartide server 的 api,而是允許用戶自行指定一個 callback 地址 $SMARTIDE_CALLBACK_API_ADDRESS。當CLI完成工作區(qū)創(chuàng)建工作后,會按照既定json格式將工作區(qū)詳情回調通知給這個地址。使用這種方式,開發(fā)者可以非常簡單的將 CloudIDE能力 集成到現(xiàn)有的企業(yè)級DevOps平臺中,需要的僅僅是一個流水線調度工具(gitlab-ci, jenkins, azure pipeline或者其他任何支持命令行調用的工具)和一個接收回調json格式的接口。

          本次提供的gitlab-ci集成示例只是一個開始,當前SmartIDE CLI的特性已經(jīng)形成閉環(huán),我們在后續(xù)迭代中會開始探索提供更多的集成方式,讓開發(fā)者可以以最簡單的方式享受到云端開發(fā)的好處。

          有關gitlab-ci支持的詳情請參考:

          • https://github.com/SmartIDE/SmartIDE/issues/30


          使用云原生技術賦能開發(fā)者,是我們一貫的使命。                          

          #IDCF DevOps黑客馬拉松挑戰(zhàn)賽,獨創(chuàng)端到端DevOps體驗,精益創(chuàng)業(yè)+敏捷開發(fā)+DevOps流水線的完美結合。

          2022年9月17-18將在北京舉辦,36小時內從0到1打造并發(fā)布一款產(chǎn)品。

          企業(yè)組隊參賽&個人參賽均可,趕緊上車~??


          瀏覽 116
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美一级免费看 | 亚洲精品久久久蜜桃 | 久久综合13p | 成人精品视频 | 啊啊啊啊啊啊啊啊乱伦 |