主頁 > 軟體工程 > SmartIDE v0.1.18 已經發布 - 助力阿里國產IDE OpenSumi 插件安裝提速10倍、Dapr和Jupyter支持、CLI k8s支持

SmartIDE v0.1.18 已經發布 - 助力阿里國產IDE OpenSumi 插件安裝提速10倍、Dapr和Jupyter支持、CLI k8s支持

2022-07-13 14:33:04 軟體工程

SmartIDE v0.1.18 (cli build 3538) 已經發布,在過去的Sprint 18中,我們集中精力推進對 k8s 遠程作業區 的支持,同時繼續擴展SmartIDE對不同技術堆疊的支持,我們適配了針對分布式應用運行時Dapr以及資料科學計算分析工具Juypter的環境支持,在這個程序中,我們探索了VM-Like-Container的能力,為提供開發者優化的容器環境又邁進了一步,最后,我SmartIDE插件市場也迎來了它的第一個開源社區支持者,阿里螞蟻開源的國產IDE OpenSumi已經將 SmartIDE作為自己的默認插件源, 2022.05.19

阿里螞蟻OpenSumi采用SmartIDE插件市場提速10倍

在 Sprint 16中,我們開始支持阿里螞蟻開源的國產IDE開發框架 OpenSumi,并且在 Sprint 17 發布了 基于 Eclipse OpenVSX Registry 的 SmartIDE插件市場,OpenSumi的開發團隊在測驗了 SmartIDE插件市場之后發現速度提升可以達到10倍以上,并將其設定為OpenSumi內默認的插件市場來源,

下圖來自:https://github.com/opensumi/core/pull/1045 ,是 OpenSumi 團隊的測驗結果,

OpenSumi PR

SmartIDE插件市場 是我們針對國內使用類 VSCode IDE 的開發者提供的開源插件市場鏡像服務,我們將 open-vsx.org 的國外站點通過 Github Action 自動同步到了部署在國內的站點中,經我們自己測驗速度提升2-5倍,此次經阿里螞蟻OpenSumi團隊的測驗結果提升10倍的原因可能是因為他們采用了批量插件安裝的方式,這個結果對于國內使用類 VSCode IDE 的團隊來說是一個好訊息,說明我們提供的 SmartIDE插件市場 開始發揮它應有的作用了,

在 Sprint 18 中,我們還對插件同步機制進行了改進,增加了按周期自動同步和歷史版本同步機制,這樣就可以確保國內的小伙伴及時獲取到最新的VSCode插件,

相關修改可以參考 https://github.com/SmartIDE/eclipse-openvsx/issues/2

以上PR已經在2022年5月18日合并進入OpenSumi的主分支,安裝 OpenSumi 的最新版就已經可以體驗插件極速安裝的快感了,

  • OpenSumi 官網地址 https://opensumi.com
  • SmartIDE 插件市場地址 https://marketplace.smartide.cn/
  • 類VSCode IDE更新插件市場教程 https://smartide.cn/zh/docs/manual/marketplace/config/

Dapr 微服務開發環境支持 VM-Like-Container驗證通過

Dapr 是微軟主導的云原生開源專案,2019年10月首次發布,到正式發布 V1.0 版本的不到一年的時間內,github star 數達到了 1.2萬(現在已經超過1.7萬星),超過同期的 kubernetes、istio、knative 等,發展勢頭迅猛,業界關注度非常高,

Dapr 這個詞是是 「Distributed Application runtime」的首字母縮寫,非常精煉的解釋了 dapr 是什么:dapr 是一個為應用提供分布式能力的運行時,

Dapr官網 https://dapr.io

Dapr

SmartIDE 團隊 Sprint14 開源了包括 .net6 環境在內的開發者鏡像相關代碼,在那個時間點對于 .net6 技術堆疊的支持已經完整,這個迭代中,我們針對 .net6 的開發者鏡像進行了改進,增加了 VM-Like-Container 的能力,以便可以完美支持 dapr 環境的搭建和除錯,

所謂 VM-Like-Container,其實就是將容器當成虛擬機來使用,大家可能會覺得有點奇怪,既然我們都容器化了,為什么還要開倒車,回到VM呢?這個其實和開發者的需求有關,一般的容器都是為了運維環境優化,并沒有考慮開發者的訴求,或者說這兩者的訴求的相互沖突的,運維要的是穩定,因此極盡所能剝奪一切容器內不必要組件,而開發者需要靈活,需要能夠在容器內按需構建自己的所需要的各種組件,比較典型的場景就是在容器中運行docker,也即是大家所說的 DIND (Docker in Docker) 的場景,對于開發者來說,確保應用可以用容器發布的最好方式就是在自己的開發環境中可以直接執行 docker build 和 docker run,這樣才能確保自己所交付的代碼是經過容器化環境測驗的,不至于等到流水線打包并部署完成以后才發現自己的代碼其實在容器中無法正確運行,

對于開發環境而言,提供內置的Docker環境意味這開發者有更加靈活的能力構建自己專屬的定制化環境,比如運行各種型別的中間件、同時運行和除錯應用的多個版本,臨時組網進行測驗等等,對于Dapr而言,dapr的開發工具需要使用docker環境來模擬微服務邊車 (sidecar) 的很多能力,比如最常見的服務發現和訊息佇列,都需要dapr運行一些中間件來提供相關的服務,以下就是在 SmartIDE 的 .net6(vscode) 開發環境中,運行一個機遇dapr的示例應用的截圖:

示例代碼庫地址:https://github.com/SmartIDE/sample-dapr-traffic-control

Dapr Traffice Control Sample

在這個示例中,我們使用了 dapr init 來初始化 dapr 開發環境,運行 dapr 的基礎服務,然后啟動 Mosquitto 作為 MQTT brokerRabbitMQ 作為訊息佇列以及其他的基礎服務,應用本身需要至少4個微服務組件才能正常作業:

  • TrafficControlService 是交通控制服務,也是主服務,其業務邏輯是根據公路上的2個固定位置攝像頭反饋的資料,計算車輛通過攝像頭的車速,以便判斷是否存在超速行為,
  • FineCollectionService 是罰單處理服務,根據 TrafficControlService 發送過來的車牌資料,查詢車輛注冊資料庫(VehicleRegistrationService)獲取聯系人資訊,并發送郵件
  • VehicleRegistrationService 是車輛注冊資料庫,提供車輛資訊查詢,可以通過車牌號碼獲取車主資訊,比如郵件地址,
  • Simulation/VisualSimuation 是一個模擬器應用,用于模擬車輛行為,以便可以測驗以上服務的作業情況,在上圖中展示的是 VisualSimulation 的畫面,

Dapr Traffice Control Sample

下面這個視頻完整演示了如何使用 SmartIDE開發除錯 經典的Dapr示例 dapr-traffice-control,相關的啟動命令如下

smartide start https://github.com/SmartIDE/sample-dapr-traffic-control
  視頻地址:https://www.bilibili.com/video/BV1iv4y1A7v4?spm_id_from=333.999.0.0  

Jupyter Notebook 環境支持

遠程作業區 的一個重要優勢就是可以幫助開發者更好的利用遠程主機的強大算力和資料處理能力,在這個領域中 Jupyter Notebook 無疑是非常典型的應用型別,我們在 Sprint 18 中增加了對 Jupyter Notebook 的遠程作業區支持,現在開發者可以使用一個簡單的指令就可以啟動預裝 Jupyter Notebook 的遠程作業區,并且通過 --host 引數將這個 作業區漫游 到任意主機或者k8s環境中,相關指令如下:

## 啟動使用 Jupyter Notebook 的資料科學處理開發者容器
smartide new anaconda -t jupyter 
## 在遠程主機上啟動
### 首先將自己的主機添加到 SmartIDE工具中,并獲取hostId
smartide host add <Ip-Address> --username <user> --password <pwd>
### 使用 --host 引數再次啟動
smartide new --host <hostId> anaconda -t jupyter 

使用以上方式啟動的 Jupyter Notebook 環境還會內置一個 VSCode WebIDE,這樣可以利用內置的Git管理工具將制作好的 Notebook 提交到Git代碼倉庫中進行版本管理, 其他開發者就可以使用 smartide start <代碼庫地址> 指令一鍵將同樣的環境漫游到自己的本地開發機,主機或者k8s上,

為了讓大家更容易體驗,我們為大家提供了一個預置了示例 Notebook 的代碼庫,這個示例中內置了一個新冠疫情資料分析Notebook,

示例地址 https://github.com/SmartIDE/sample-anaconda-jupyter

使用這個 Notebook 對上海和北京最近的疫情資料的分析結果如下:

Juypter Covid19 Analysis

備注:以上資料分析僅為展示SmartIDE的產品特性,資料處理的非常粗糙,歡迎對 Juypter Notebook 開發有興趣的小伙伴提交PR改進我們的分析演算法,

大家可以使用以下指令一鍵啟動上面這個示例

## 在本地開發機上啟動
smartide start https://github.com/SmartIDE/sample-anaconda-jupyter.git
## 在遠程主機上啟動
smartide start --host <hostId> https://github.com/SmartIDE/sample-anaconda-jupyter.git

啟動以后的效果如下,圖中:

  1. SmartIDE簡化指令方式 se = smartide
  2. 內置在遠程作業區中的 VSCode WebIDE,這個遠程作業區中還預置了 Python 環境,開發者可以直接在VSCode中使用Python語言進行編程,
  3. 內置在作業區中的 Jupyter Notebook,加載了 “新冠疫情分析” 示例資料,這個 Notebook 通過讀取微信疫情小程式的API介面獲取實時資料,并利用圖表展示了上海過去60天疫情變化趨勢

Juypter Covid19 Analysis

在適配 Jupyter Notebook 的程序中,SmartIDE沒有修改一行產品代碼,完全利用我們所提供的 IDE組態檔 和 開發者鏡像模版庫 的能力完成,SmartIDE作為一款面向企業的B端產品,對于可擴展性能力的要求是根植于產品的設計核心,利用這種能力,企業在部署了SmartIDE之后無需進行二次開發就可以自助適配各種開發語言,工具和環境,大幅降低企業采納遠程作業區的技術門檻和實施成本,

下面的視頻展示了在 SmartIDE 中使用 Jupyter Notebook 分析上海和北京疫情資料的程序:

https://www.bilibili.com/video/BV1mZ4y1t7fj?spm_id_from=333.999.0.0

CLI k8s 模式支持(特性預覽)

SmartIDE CLI中已經增加了k8s相關指令,用戶現在可以使用 smartide start --k8s 來完成在k8s集群中啟動 遠程作業區 的操作,基于 計算器示例應用 的啟動命令如下:

smartide start --k8s SmartIDEAKS --namespace default --repourl https://github.com/idcf-boat-house/boathouse-calculator.git --filepath .ide/k8s.ide.yaml

使用這個指令之前用戶需要完成2個準備作業:

  1. 在k8s集群上安裝 smartide-file-storageclass,這個配置的目的是為了能夠讓 SmartIDE 可以支持各種型別的k8s服務,Storage Class (存盤類定義)是k8s上適配不同提供商的底層存盤driver而提供了一層隔離機制,在遠程作業區場景下,我們需要允許作業區中的多個開發容器共享的訪問同一份代碼/配置/環境變數/工具等資源,因此需要使用具備 ReadWriteMany 能力的存盤 driver,
  2. 在本地的 .kube 目錄中匯入你的k8s集群的 kube-config 檔案,這個步驟是為了允許 SmartIDE CLI 可以連接k8s進行操作的權限,

以下是匯入 storageclass 的相關指令,當前只提供Azure微軟云的組態檔,使用其他云平臺或者自建k8s平臺的小伙伴可以自行查找適合自己平臺的StorageClass組態檔,后續我們也會統一提供,

kubectl apply -f https://smartidedl.blob.core.chinacloudapi.cn/kubectl/resources/smartide-file-storageclass.yaml

另外,如果使用 azure-cli,可以直接使用以下指令快速創建k8s集群(測驗用途)并獲取集群的 kube-config 配置

az login
az account set -s <訂閱ID>
az group create --name <資源組名稱> --location southeastasia
az aks create -g <資源組名稱> -n <集群名稱> --location southeastasia --node-vm-size Standard_DS2_v2 --node-count 1 --disable-rbac --generate-ssh-keys
az aks get-credentials -g <資源組名稱> -n <集群名稱>

CLI k8s 模式現在已經支持一鍵啟動作業區和清除作業區操作,我們正在將這個cli能力集成到server中;在后續的迭代中大家會陸續獲得 server k8s 模式的更新,

社區早鳥計劃

如果你對云原生開發環境感興趣,請加入我們的 SmartIDE社區早鳥計劃

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

世界上不是所有的東西都是用直接經濟契約來維系的,比如:陽光,空氣,愛情和開源軟體,

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/498934.html

標籤:其他

上一篇:Prometheus的一些基礎知識

下一篇:如何為visio擴展云服務圖示

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more