SmartIDE讓你的README變成可執行檔案,再也不用撰寫無用的檔案,再也不必操心環境問題,
作為開發者,拿到一個新的代碼庫的時候一般都會先去看README檔案,通過這個檔案可以知道這套代碼所需要安裝的環境,工具和操作方式,這件事情本來應該是一件很愉悅的事情,因為每一套新代碼其實都是開發者的新玩具,拿到新玩具的心情那肯定是不錯的,但是,當你閱讀玩具說明書之后,發現這份說明書完全不配套的時候,那心里一定是一萬匹草泥馬在奔騰,當然,這也很容易理解,開發者不愛寫檔案,特別是那些沒有用的檔案,至少,README對寫的人來說其實沒啥用,因為寫的人都已經清楚了檔案中的內容,至于看的人感受如何,那就呵呵吧,
這個問題的根源在于README只能看,不能運行!如果我們能夠讓README活起來,從 README.md 變成 README.exe,那是不是就可以解決這個問題了呢?答案是肯定的!因為寫的人自己也可以用這份檔案來啟動專案,這樣,寫檔案的人有了動力,看(運行)檔案的人也會很爽,
這就是SmartIDE的核心功能: IDE as Code能力,
神奇的IDE組態檔
SmartIDE最初始的設計靈感就是如何能夠讓README活起來?為了做到這一點,我們設計了一個 IDE組態檔 (默認檔案名 .ide.yaml)檔案格式,這個檔案中完整描述了運行當前代碼所需要的環境配置,包括 基礎環境SDK,應用服務器,應用埠,組態檔,網路依賴以及所使用的IDE工具,有了這個檔案,開發者就可以真正實作一鍵啟動開發除錯,而不會再聽到:“在我這里作業呀,是你的環境問題!” 這種駭人聽聞的抱怨,
有了這個檔案,任何人都可以使用一個簡單的指令來一鍵搭建一模一樣的開發環境,指令如下:
smartide start https://github.com/idcf-boat-house/boathouse-calculator
這個指令會自動識別代碼庫中的 IDE組態檔,根據檔案中對開發環境的描述完成獲取開發者鏡像、啟動開發容器、克隆代碼、運行初始化腳本等一系列動作,最終一個 完整可運行的環境 呈現在開發者的面前,下面這段視頻展示了整個運行程序:
SmartIDE 快速啟動演示(VSCode WebIDE) - 開發從未如此簡單_嗶哩嗶哩_bilibiliIDE組態檔詳解
以上示例中所使用的 .ide.yaml 檔案如下
version: smartide/v0.3
orchestrator:
type: docker-compose
version: 3
workspace:
dev-container: # 開發者容器設定
service-name: boathouse-calculator
ports: # 申明埠
tools-webide-vscode: 6800
tools-ssh: 6822
apps-application: 3001
ide-type: vscode #sdk-only | vscode | opensumi | jb-projector
volumes: # 本地配置映射,支持映射git-config和ssh密鑰資訊進入容器
git-config: true
ssh-key: true
command: # 環境啟動腳本
- npm config set registry https://registry.npmmirror.com
- npm install
services:
boathouse-calculator:
image: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-node-v2-vscode:all-version
restart: always
environment:
ROOT_PASSWORD: root123
LOCAL_USER_PASSWORD: root123
volumes:
- .:/home/project
ports:
- 3001:3001
- 6822:22
- 6800:3000
networks:
- smartide-network
networks:
smartide-network:
external: true
這個檔案內容非常通俗易懂,是個程式員應該都能看明白,不過我還是簡單說明一下:
orchestrator- 環境調度工具設定,用來制定調度容器環境的底層工具,這里我們使用的是 docker-composeworkspace- 作業區配置,作業區 是SmartIDE中最重要的概念,包含開發者用來進行開發除錯的所有環境資訊dev-container- 開發者容器設定service-name- 開發者容器所對應的 docker-compose 服務名稱ports- 開發者容器對外暴露的埠ide-type- 開發者容器所所用的IDE型別,支持:vscode, sdk-only, jb-projector (Jetbrains系列全家桶)和 opensumivolumes- 配置映射,支持將開發者的git-config和ssh密鑰匯入容器commands- 開發環境啟動腳本,對環境進行初始化;比如以上腳本中就完成了2個關鍵操作:1)設定npm國內鏡像源 2)獲取npm依賴,這部分腳本開發者可以根據自己代碼庫的情況設定,SmartIDE會在環境啟動后自動運行這些腳本,讓程式處于開發者所希望的狀態上,
services- 開發環境內的服務串列- 這里其實就是一段標準的 docker-compose 組態檔
IDE as Code 重新定義IDE
這種做法稱為 IDE as Code 也就是 “集成開發環境即代碼”,將你的開發環境配置變成一個 IDE組態檔 的組態檔放置在代碼庫中,然后根據這個組態檔生成對應的自動化腳本,完成“集成開發環境” 的創建,因此,SmartIDE中的IDE不僅僅是一個開發工具,而是 包含了環境的IDE,
IDE as Code 的做法源自DevOps的核心實踐 Infrastructure as Code ,也就是 “基礎設施即代碼” 簡稱 IaC,其核心思想是將環境配置代碼化,常見的k8s的yaml檔案其實就是典型的基礎設施即代碼實作,在運維領域常用的工具比如chef/puppet/ansible,還有 HashiCorp 的 Terraform 也都是 IaC 的經典實作,IaC 的主要價值和目標就是將環境搭建程序標準化,讓任何人在任何環境中都可以獲得 一致、穩定、可靠 的環境搭建體驗,SmartIDE所創造的 IDE組態檔 延續IaC了的使用場景,并將其基本思路應用到了開發測驗環境中,這其實就是 SmartIDE 的產品核心能力,
基于 IDE as Code 的實作,SmartIDE在產品實作程序中一直秉承一個原則:能夠讓用戶通過組態檔實作的東西,就不要通過代碼實作,這個核心原則給予了SmartIDE非常強的靈活性,比如以下這段視頻中所演示的 若依管理系統 專案
這個專案包括比較復雜的環境配置,包括:
- JDK 基礎環境
- MAVEN 包管理工具
- MySQL 服務器
- Redis 服務器
- 可選:資料庫管理工具 PHPMyAdmin
若依專案的官方檔案用了整整2頁的篇幅描述開發環境的搭建 (參考鏈接:環境部署 | RuoYi) ,使用了 SmartIDE 以后,開發者可以一個統一的指令 smartide start 來啟動這個復雜的專案,不再需要去閱讀這個檔案,無論專案的代碼是簡單亦或復雜,smartide start 指令都可以進行適配,因為其背后的復雜配置已經全部通過 IDE組態檔 和代碼保存在一起了,使用 IDE as Code 的另外一個好處是,由于配置和代碼保存在一起,進行代碼變更的開發者可以同步更新環境配置,并且一起提交進行評審,也就是說:你的環境也和代碼一樣是可評審,可審計的,
IDE檔案配置就是README活檔案,
當然,SmartIDE能做的絕不僅僅如此,我們已經發布了 SmartIDE Server 版,允許開發者在網頁上即可完成開發環境的搭建和完整的開發除錯程序,Server與CLI一樣使用這個 IDE組態檔 來識別和搭建環境,與cli保持一致的體驗,這一切的目的都是讓開發者的日常作業變得簡單,讓開發者體驗 #開發從未如此簡單 的快樂,
如果你對云原生開發環境感興趣,請掃描以下二維碼加入我們的 SmartIDE社區早鳥計劃
謝謝您對SmartIDE的關注,讓我們一起成為云原生時代的 Smart開發者, 享受 開發從未如此簡單 的快樂,
世界上不是所有的東西都是用直接經濟契約來維系的,比如:陽光,空氣,愛情和開源軟體,轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/498932.html
標籤:其他
上一篇:接入Harbor私有倉庫
