僅有50Mb大小的cli即可搞定大廠才能玩的CloudIDE丨SmartIDE

447af69d842e7f7dac8509db00dac272.gif

作者:

徐磊,開源云原生SmartIDE創始人、LEANOSFT創始人/首席架構師/CEO,微軟最有價值專家MVP/微軟區域技術總監Regional Director,華為云最有價值專家。從事軟件工程咨詢服務超過15年時間,為超過200家不同類型的企業提供過軟件研發效能相關的管理和技術咨詢工作。

原文地址:https://smartide.cn/zh/blog/20220919-meetup-s01e04/

關于SmartIDE

SmartIDE是一款 遠程/云端工作區調度工具,其目標是從根源上解決軟件環境問題。當前,SmartIDE主要采用容器技術,比如:Docker和Docker-Compose;以及容器集群編排技術,比如:Kubernetes,來解決軟件運行環境的一致性,標準化,快速獲取,可擴張性和可維護性問題。

54dc007f388647db0f57312f36ff4b97.jpeg

CLI是SmartIDE產品架構中與其他類似產品最大的差異。大多數CloudIDE都會提供CLI工具,但是這些CLI都是作為輔助性工具存在的,也就是說用戶使用CLI連接到CloudIDE服務來完成類似端口轉發,如果脫離的CloudIDE服務,這些CLI本身是無法單獨使用的。

Smart Meetup已經在上周二(2022.9.13)重新啟動,后續我們將在每周二晚8點30分和大家見面。Smart Meetup的目標是持續為大家輸出云原生IDE相關的最佳實踐,并不局限于介紹SmartIDE自己的特性和功能,而是希望能夠從軟件工程的角度為開發者提供幫助。以下是我們當前規劃的一些方向,希望各位小伙伴多提意見和建議:

  • SmartIDE 特性介紹 - 按照我們的發版周期,每隔2周都會發布新版本給社區,我們會通過這個Meetup為大家介紹這些新特性,幫助大家盡快的將新功能用起來。

  • 開源項目推薦 - SmartIDE的一個重要特點就是幫助開源社區的小伙伴快速的體驗新項目,我們會繼續這個做法,為大家喜歡的開源項目適配 IDE配置文件,并在Meetup為大家展示這些項目的能力。之前我們已經適配過的項目包括:若依項目、Gin-Vue-Admin和飛致云的Metersphere。

  • 云原生相關技術分享 - 作為一款云原生IDE,SmartIDE不僅會利用云原生技術讓開發者的工作變得更加簡單高效,也同樣在踐行著各種云原生開發實踐,比如我們之前就介紹過如何使用SmartIDE來開發調試Dapr應用。后續我們會繼續這個方向的摸索,并將最棒的云原生開發實踐推介給大家。

  • 敏捷/精益/DevOps/研發效能相關實踐和案例分享 - SmartIDE的定位是成為DevOps和開發者的橋梁,那么我們的Meetup也同樣會承載類似的職責。我們會不定期的邀請行業內的專家大咖來給大家分享各種最佳實踐和案例。

另外,在每一期的活動上我會邀請一位觀察員,從用戶的角度給予一些反饋,提出一些問題,幫助我們打磨產品,拓展使用場景。

S01E03 回顧

a0b346097a8987abb7fbdc6273551aae.png

時間:2022.9.13 晚20:30

主持人:徐磊

觀察員:施慧斌、FIT2CLOUD北區解決方案負責人

上周的Meetup距離之前的活動已經有了一段時間,因此我們首先對SmartIDE的一些進展給大家做了介紹,然后針對 Codespaces for Azure DevOps 插件進行了重點介紹。這次Meetup我們也邀請到了FIT2CLOUD北區解決方案負責人施慧斌作為觀察員參與了整個演示。

CodeSpace for Azure DevOps 插件

SmartIDE產品定位于開發人員的的DevOps入口,基于這個定位我們在微軟的DevOps平臺Azure DevOps上進行了首次嘗試。通過在Azure DevOps的電子看板,代碼庫,流水線和拉取請求的不同位置提供一鍵創建云端工作區的入口,為開發和測試人員提供快速穩定獲取可用環境的入口。這個插件充分利用了SmartIDE的標準化環境編排能力,將原本靜態的開發環境轉變為隨用隨起,用完即焚的臨時性環境,讓原本很重的環境管理變成一鍵非常輕量而且便捷的事情。

bd27c1ec48c6c1ee48cf53433b08bfec.png

對于用戶而言,可以利用以上能力解決一些日常開發協作中的問題:

  • 特性分支規范化:?特性分支是當前軟件開發團隊普遍使用的一種分支模型,要求開發人員根據不同的開發任務拉取獨立的特性分支,并在這個分支上完成所對應任務的開發工作,起到聚合和隔離代碼變更的作用。特性分支對于大型團隊隔離不同特性之間的相互影響,做到靈活控制上線周期和發版方式來說效果非常明顯。但是特性分支在企業落地中普遍存在幾個問題:1)特性分支命令不規范,因為分支需要開發人員自己創建,經常會出現各種不規范的分支名稱增高管理成本;2)代碼夾帶,很多開發人員認為特性分支操作太繁瑣,經常會為了省事兒把多個特性在一個分支上一起開發,這樣會造成后續發版過程中無法拆分清楚代碼,造成未經審核的代碼被夾帶上線,嚴重的時候可能造成生產問題;3)操作流程復雜造成的誤操作,特性分支要求開發團隊具備非常嚴格的流程執行紀律,特性分支到發布分支再到主分支的合并過程不能隨意跨越,但實際操作過程中很多團隊并不能很好的執行這個流程,教育和培訓成本都很高。這些問題的根源在于,git分支操作過于靈活并且可以在開發機本地完成,使得這個流程無法完全在線上閉環完成。使用云原生IDE之后,可是實現整個編碼開發過程的線上化,不再依賴開發人員本地環境,實現完整的流程線上化閉環。

  • 測試環境獨立化:?測試環境的獲取一直都是軟件測試流程中的一個難題,受限于企業資源和自動化能力問題,大多數的開發團隊仍然依賴開發人員手工部署測試環境。對于測試來說,最好能夠給每個測試目標都提供獨立測試環境,比如:手工測試應該針對每個測試人員的每個測試輪次提供,自動化測試應該針對每個被測版本的每個測試輪次提供。考慮上測試環境被測試用例污染的問題,還需要提供快速重置測試環境的能力。傳統模式下,以上這些問題都沒有特別好的解決方案,關鍵問題在于2個環境標準化能力不足(IaC實踐沒有被引入到開發測試階段)和資源限制(容器化實踐沒有被引入到開發測試階段)。使用云原生IDE,隨用隨起,用完即焚的環境調度能力可以有效解決標準化的問題,VMLC能力可以有效應對資源限制問題。開發環境獨立化問題得到完美解決。

  • 基于代碼評審上下文的臨時環境:?拉取請求時有效的代碼評審機制,但是代碼庫所提供的拉取請求只能幫助評審者比較代碼,無法幫助評審者從功能的角度驗證代碼的正確性。雖然CI/CD流水線中可以嵌入各種質量門禁,但是都無法讓評審這從用戶的角度了解應用行為的正確性。使用云原生IDE我們可以針對代碼評審的上下文創建一個臨時的讓評審者可以直接進行操作,從用戶的角度進行驗證功能,輔助完成代碼評審過程。

以下是本次Meetup的視頻回訪,Codespaces for Azure DevOps的演示部分在視頻的43分鐘開始。

274c1939b7be21f4dc77c6b158fd3467.jpeg

另外,以下視頻中也對這個插件進行了完整的演示和介紹

23742415d2400235c1cb63238609288a.jpeg

S01E04 預告 - CLI 詳解

346bccea89d5981607bfa03b445fa142.png

時間:2022.9.21 周三晚20:30 (本周特殊原因臨時改在周三)?

觀察員:衣明志,煙臺易云網絡創始人/資深.NET開發者/前微軟最有價值專家MVP

主題:SmartIDE CLI 詳解

本周的Meetup將圍繞SmartIDE的使用場景展開,CLI是SmartIDE產品架構中與其他類似產品最大的差異。大多數CloudIDE都會提供CLI工具,但是這些CLI都是作為輔助性工具存在的,也就是說用戶使用CLI連接到CloudIDE服務來完成類似端口轉發,如果脫離的CloudIDE服務,這些CLI本身是無法單獨使用的。

1f6e95fe4cd3967ddf6029e28a81fe8b.png

SmartIDE的CLI則不同,用戶可以使用CLI直接創建、停止,刪除,清理遠程/云端工作,這個過程無需CloudIDE服務(SmartIDE Server)的存在。

這樣設計的目的是為了方便個人開發者可以非常輕量的管理自己的遠程/云端工作區,無需預先部署Server。這樣,個人開發者可以在需要的時候使用一個 smartide start 指令即可在任何資源上啟動遠程/云端工作。

從開發和調試的角度來說,CLI工具的迭代速度是帶有WebUI或者API類型的應用無法比擬的。因為CLI極度簡單的操作方式,我們無需處理界面的布局,美觀,操作體驗,各種邊界條件等問題,可以專注于業務目標的實現。這種快速迭代能力讓我們可以更早的觸達用戶,驗證產品核心功能并及時調整產品方向。在過去的6個月,CLI的發布速度是平均每天3.8個版本。

CLI封裝了管理遠程/云端工作區的所有能力,這讓用戶利用CLI來搭建自己的CloudIDE系統,實際上SmartIDE Sever 本身就是這樣工作的,通過將 CLI 打包成 tekton流水線任務,SmartIDE Server 的所有工作區操作都不會直接調用虛擬機或者k8s集群,而是通過CLI來完成。借助CLI的快速迭代特性,我們的Sever開發人員可以更加專注于用戶體驗和企業級功能,而不用關心底層工作區調度問題。對于希望構建企業內部CloudIDE平臺的組織來說,利用CLI的這種可集成特性,可以非常快速底層本的完整平臺的搭建,不用去關注與虛擬機以及k8s集群進行操作的細節問題。

我們當前已經提供了gitlab-ci的集成示例,未來我們會提供更多各種類型的DevOps系統場景。

Meetup內容

本次Meetup將詳細演示以下操作:

  • SmartIDE CLI 安裝和基本操作

  • 使用 start 指令在本地,遠程主機和k8s集群上啟動遠程工作區

  • 使用 host 指令將Linux主機注冊為開發環境

  • 使用 list/start/stop/remove 指令管理遠程工作區生命周期

  • 使用 new 指令從預制的開發環境模板啟動新開發環境

  • 使用 init 指令對現有代碼庫進行初始化,自動完成 IDE配置文件 的生成和適配

  • 使用 login/logout/connect 為Server工作區提供端口轉發支持

  • 輔助功能指令 config/version/reset/debug

  • 第三方系統集成:在 gitlab-ci 中集成smartide cli實現云原生IDE調度能力

報名方式

掃描海報中的二維碼通過B站直播間預約

直播抽獎

一等獎1名:JetBrains全系列產品激活碼(價值1500元)

二等獎2名:SmartIDE 文化衫

123f3b5bd3564dd1a3f9f625b6492c81.png

aff007551674aee544bab58db488786d.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282610.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea-spark-sbt 打包jar

1、打開idea下的terminal窗口 2、只打包部分項目 sbt insight-import/clean insight-import/assembly 這表示只打包主目錄下的insight-import項目 ,先清理(clean)再打包(assembly)不能用package,這個不會打…

操作Checkbox標簽

在前端開發中,少不了對Checkbox的操作。 常用的的方法有2個:.is()和.prop()方法。前者是判斷 checkbox的狀態,選不是未選。而后者為checkbox設置一個值,可以設置checkbox是true還是false。寫個小例子,練習一下&#xf…

memcache在項目中的應用

一 安裝memcache 具體流程這篇文章有寫到: 點擊 鏈接 二 在項目中應用memcache 為了減輕數據庫的查詢壓力,所以我們把一些不經常變動的數據進行緩存,用戶查詢時,如果查詢的要求是一樣的,我們就memcache緩存中讀取數據并返回去,如果查詢要求變了,我們再到數據庫中查詢,并將查…

點擊回退按鈕刷新頁面

瀏覽器用戶返回上一步&#xff0c;自動刷新window.οnunlοadfunction(){} 這個最簡單粗暴 方式一、<input type"hidden" id"refreshed" value"no"><script type"text/javascript">οnlοadfunction(){var edocument.getE…

Dapr 證書過期了怎么辦? 別慌,有救!

一、背景Dapr 默認證書有效時間是1年&#xff0c;證書過期后就不能執行相關控制面和數據面的交互了&#xff0c;如下圖&#xff1a;二、查看證書有效時間通過dapr mtls expiry 看到期時間&#xff0c;具體參見命令https://v1-7.docs.dapr.io/reference/cli/dapr-mtls/dapr-mtls…

python數據類型之間的轉換

對python內置的數據類型進行轉換時&#xff0c;可以使用內置函數&#xff0c;常用的類型轉換函數如下 python常用類型轉換函數函數格式使用示例描述int(x [,base])int("8") 可以轉換的包括String類型和其他數字類型&#xff0c;但是會丟失精度 float(x) float…

js高級程序設計的筆記(一)

2019獨角獸企業重金招聘Python工程師標準>>> 1.js中的 null : 如果只意在保存對象的變量還沒有真正的保存對象之前&#xff0c;就需要先把該變量保存 null值&#xff0c; null代表空對象的指針 2.函數的參數對象 arguments的理解。 argument對象的length屬性 實例 f…

Redis在PHP項目中的應用

一 運行redis服務端 出現上圖的圖形,就說明redis服務端開啟成功,并且開啟了密碼功能(如果不加載配置文件,連接redis是不需要密碼的,這樣,會給我們的程序帶來很大隱患) 密碼的設置: 在redis配置文件中,搜索requirepass ,后面設置密碼 比如 : requirepass G506myredis 則表示此…

Linux關機、重啟命令

關機shutdown -h 0 #<O秒后關機shutdown -h now #<現在關機shutdown -h 10 #<10分鐘后關機shutdown -h 23:20 #<23&#xff1a;20分關機shutdown -c #<取消shutdown關機命令init 0 #<立馬關機&#xff08;切換運行級別為0&#xff0c;推薦使用&#xff09;ha…

Python 模塊之 string.py

用法 字符串常量&#xff1a; import string print(string.ascii_lowercase) print(string.ascii_uppercase) print(string.ascii_letters) print(string.digits) print(string.hexdigits) print(string.octdigits) print(string.punctuation) print(string.printable)結果 abc…

md5和password_hash孰好孰壞

md5自不必說,想必所有phper都用過,但另一個加密函數不知道你見過沒有 他就是password_hash(); 加密方式更全面.使用起來也比md5salt這種方式要簡潔很多,最主要的是難破解,因為它每時每刻都在變動 它的使用方式大致是這樣 1. 用戶注冊時提交過來密碼,我們對用戶密碼進行加密…

Logstash 命令行參數

Logstash 提供了一個 shell 腳本叫 logstash 方便快速運行。它支持以下參數&#xff1a; -e意即執行。我們在 “Hello World” 的時候已經用過這個參數了。事實上你可以不寫任何具體配置&#xff0c;直接運行 bin/logstash -e ” 達到相同效果。這個參數的默認值是下面這樣&…

上汽拒絕HW符合商業邏輯

不久前&#xff0c;上汽董事長陳虹表示“與HW合作自動駕駛是不可接受的。這就好比一家公司為我們提供整體的解決方案&#xff0c;如此一來&#xff0c;它就成了靈魂&#xff0c;而上汽就成了軀體。對于這樣的結果&#xff0c;上汽是不能接受的&#xff0c;要把靈魂掌握在自己手…

javac compiling error ( mising package)

javac 編譯java源文件時&#xff0c;提示 package does not exist 的錯誤 Test.java import java.security.MessageDigest; import org.apache.commons.codec.binary.Hex;public class Test{public static void main(String args[]){boolean isAlarmed true;boolean aa isAla…

使用ffmpeg錄音

官方教程&#xff1a;http://ffmpeg.org/ffmpeg.html 錄音方法&#xff1a; 開始找到了這個方法&#xff0c;但是不行呀&#xff0c;好像是沒有這個oss吧。 oss 是linux 下的聲音相關的東西&#xff0c;與alsa 一樣&#xff0c;不過oss 是商業的&#xff0c; 而/dev/dsp 是oss …

Mysql慢查詢日志的使用 和 Mysql的優化

一、生成實驗數據 原理&#xff1a;sql 蠕蟲復制&#xff08;這種生成數據方式同樣適用于數據表中有主鍵的情況&#xff09;。 insert into comic (name,pen_name,cover) select name,pen_name,cover from comic 二、慢查詢日志設置 當語句執行時間較長時&#xff0c;通過日…

Oracle 12C CDB、PDB常用管理命令

--查看PDB信息&#xff08;在CDB模式下&#xff09; show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs為PDB信息視圖 select con_id, dbid, guid, name , open_mode from v$pdbs; --切換容器 alter session set containerorcl1 --切換到PDBorcl1容器…

指定時間的月初和月末一天的寫法

DateTime dt Convert.ToDateTime("2017-2");DateTime FirstDay new DateTime(dt.Year, dt.Month, 1);//本月初1號DateTime LastDay new DateTime(dt.AddMonths(1).Year, dt.AddMonths(1).Month, 1).AddDays(-1);//下月初1號減一天本月底 轉載于:https://www.cnblo…

mysql數據表設計要點以及快門

一個sql表的設計首先要考慮的是字段 然后去考慮這個字段應該具有哪些特性, 最后,考慮哪些字段經常用于查詢,設置為索引 下面是一個比較簡單的例子,大概說明了怎么樣去構造sql語句創建一個sql表 create table user_message( id int UNSIGNED not null auto_increment COMMEN…

分享實錄|區塊鏈技術與智能合約入門(開發實例)

1 什么是區塊鏈 1.1白話講解區塊鏈 現在區塊鏈特別火&#xff0c;可能大家都聽說過區塊鏈&#xff0c;聽說過比特幣&#xff0c;那到底什么是區塊鏈&#xff1f; 前幾天和一個朋友擼串&#xff0c;我給他安利區塊鏈和比特幣以及一些數字貨幣的知識&#xff0c;這個朋友也是一個…