作者:
徐磊,開源云原生SmartIDE創始人、LEANOSFT創始人/首席架構師/CEO,微軟最有價值專家MVP/微軟區域技術總監Regional Director,華為云最有價值專家。從事軟件工程咨詢服務超過15年時間,為超過200家不同類型的企業提供過軟件研發效能相關的管理和技術咨詢工作。
原文地址:https://smartide.cn/zh/blog/20220919-meetup-s01e04/
關于SmartIDE
SmartIDE是一款 遠程/云端工作區調度工具,其目標是從根源上解決軟件環境問題。當前,SmartIDE主要采用容器技術,比如:Docker和Docker-Compose;以及容器集群編排技術,比如:Kubernetes,來解決軟件運行環境的一致性,標準化,快速獲取,可擴張性和可維護性問題。
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 回顧
時間: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的標準化環境編排能力,將原本靜態的開發環境轉變為隨用隨起,用完即焚的臨時性環境,讓原本很重的環境管理變成一鍵非常輕量而且便捷的事情。
對于用戶而言,可以利用以上能力解決一些日常開發協作中的問題:
特性分支規范化:?特性分支是當前軟件開發團隊普遍使用的一種分支模型,要求開發人員根據不同的開發任務拉取獨立的特性分支,并在這個分支上完成所對應任務的開發工作,起到聚合和隔離代碼變更的作用。特性分支對于大型團隊隔離不同特性之間的相互影響,做到靈活控制上線周期和發版方式來說效果非常明顯。但是特性分支在企業落地中普遍存在幾個問題:1)特性分支命令不規范,因為分支需要開發人員自己創建,經常會出現各種不規范的分支名稱增高管理成本;2)代碼夾帶,很多開發人員認為特性分支操作太繁瑣,經常會為了省事兒把多個特性在一個分支上一起開發,這樣會造成后續發版過程中無法拆分清楚代碼,造成未經審核的代碼被夾帶上線,嚴重的時候可能造成生產問題;3)操作流程復雜造成的誤操作,特性分支要求開發團隊具備非常嚴格的流程執行紀律,特性分支到發布分支再到主分支的合并過程不能隨意跨越,但實際操作過程中很多團隊并不能很好的執行這個流程,教育和培訓成本都很高。這些問題的根源在于,git分支操作過于靈活并且可以在開發機本地完成,使得這個流程無法完全在線上閉環完成。使用云原生IDE之后,可是實現整個編碼開發過程的線上化,不再依賴開發人員本地環境,實現完整的流程線上化閉環。
測試環境獨立化:?測試環境的獲取一直都是軟件測試流程中的一個難題,受限于企業資源和自動化能力問題,大多數的開發團隊仍然依賴開發人員手工部署測試環境。對于測試來說,最好能夠給每個測試目標都提供獨立測試環境,比如:手工測試應該針對每個測試人員的每個測試輪次提供,自動化測試應該針對每個被測版本的每個測試輪次提供。考慮上測試環境被測試用例污染的問題,還需要提供快速重置測試環境的能力。傳統模式下,以上這些問題都沒有特別好的解決方案,關鍵問題在于2個環境標準化能力不足(IaC實踐沒有被引入到開發測試階段)和資源限制(容器化實踐沒有被引入到開發測試階段)。使用云原生IDE,隨用隨起,用完即焚的環境調度能力可以有效解決標準化的問題,VMLC能力可以有效應對資源限制問題。開發環境獨立化問題得到完美解決。
基于代碼評審上下文的臨時環境:?拉取請求時有效的代碼評審機制,但是代碼庫所提供的拉取請求只能幫助評審者比較代碼,無法幫助評審者從功能的角度驗證代碼的正確性。雖然CI/CD流水線中可以嵌入各種質量門禁,但是都無法讓評審這從用戶的角度了解應用行為的正確性。使用云原生IDE我們可以針對代碼評審的上下文創建一個臨時的讓評審者可以直接進行操作,從用戶的角度進行驗證功能,輔助完成代碼評審過程。
以下是本次Meetup的視頻回訪,Codespaces for Azure DevOps的演示部分在視頻的43分鐘開始。
另外,以下視頻中也對這個插件進行了完整的演示和介紹
S01E04 預告 - CLI 詳解
時間:2022.9.21 周三晚20:30 (本周特殊原因臨時改在周三)?
觀察員:衣明志,煙臺易云網絡創始人/資深.NET開發者/前微軟最有價值專家MVP
主題:SmartIDE CLI 詳解
本周的Meetup將圍繞SmartIDE的使用場景展開,CLI是SmartIDE產品架構中與其他類似產品最大的差異。大多數CloudIDE都會提供CLI工具,但是這些CLI都是作為輔助性工具存在的,也就是說用戶使用CLI連接到CloudIDE服務來完成類似端口轉發,如果脫離的CloudIDE服務,這些CLI本身是無法單獨使用的。
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 文化衫