Eclipse Che被Eclipse官方稱為下一代IDE,作為老牌的IDE,被其寄予厚望的Eclipse Che到底有什么特點,在這篇文章中我們來一探究竟。
開發團隊的Kuberentes原生IDE
Eclipse Che對開發團隊來進行Kubernetes開發使能,提供了一鍵生成開發者工作空間的功能,消除了團隊本地環境配置的操作。Che可以將Kubernetes應用更容易地發布至開發環境,并且提供了一個基于瀏覽器的IDE,使得開發者可以從任何機器進行編碼、測試和運行應用程序等操作,所有的一切只需要提供一個瀏覽器即可。
功能特性
生產運行環境
Eclipse Che可以支持各種容器,甚至是多容器的運行環境。可以在Kubernetes、OpenShift或者Docker環境中運行,Chec可以使用從DockerHub或者開發者自己的鏡像私庫,通過添加基于SSH的Agent,使得生產鏡像通過終端和語言服務可以具有開發環境功能,停止時,Che也可以保存工程相應的關鍵狀態信息。支持和實現此項特性的基礎能力主要包括:
- 容器運行環境
- Compose運行環境
- SSH訪問
- 根用戶終端訪問
- 預構建和自定義的組件
- 工作空間快照
工作空間的開發模式
通過Agent為工作空間添加開發者服務包括語法自動補齊、錯誤檢查和調試工具等。針對不同語言提供智能提示,可以啟用根用戶或者SSH訪問方式。支持和實現此項特性的基礎能力主要包括:
- 語言服務器
- 智能提示與重構
- 調試器
- 工作空間Agent
- 智能命令
- SSH訪問
- 根用戶終端訪問
可使用任何IDE
可以在任何設備上進行工作,無需安裝軟件,因為Eclipse Che IDE已經提供了內建方式。也可以使用開發者自己喜歡的桌面IDE,只需要掛載Che工作空間即可,一切可根據用戶自行選擇。支持和實現此項特性的基礎能力主要包括:
- 瀏覽器IDE
- RESTful 工作空間API
團隊開發
基于生產鏡像創建定制的團隊可用的組件和運行環境,包括開發所需要的工具。所有人都可以使用這樣的組件或者拷貝工作空間來快速創建可以用于生產環境的應用。甚至可以通過添加示例代碼來實現對新人進行培訓的目的。支持和實現此項特性的基礎能力主要包括:
- 組件運行環境
- 團隊工作空間
- 項目示例
語言服務協議
語言服務協議(Language Server Protocol )是由Microsoft, Codenvy, Red Hat 和 IBM共同開發的協議,包括語法分析,高亮以及在Eclipse Che內的重構代碼。協議用于在客戶端工具和語言服務之間進行功能特性的集成,比如自動不起、定義跳轉和搜索所有引用等。
調試器
Che可以在開發者的工作空間中插入調試代理以允許變量監控和替換、斷點設定、但不調試和其他常用的調試操作。調試器可以與組件或者用戶工作空間進行關聯。
SSH / 終端
Che向工作空間關聯的操作系統中添加SSH守護進程,使用ssh連接開發者自己的IDE比如Eclipse,上傳死鑰或者使用Che為每個工作空間創建密鑰對。通過Che的瀏覽器終端,開發者可以訪問自己的工作空間,并且具有工作空間所關聯操作系統的根用戶權限。
組件
組件指的是工作空間的運行環境配置,包含運行環境所需要的構建文件(recipe)和元數據信息比如標簽、描述信息、環境名稱以及安全策略等。組件在用戶的儀表盤中被展示,組件標簽tag可以用于過濾可用的工程代碼示例。組件的構建文件可以是Kubernetes YAML、Dockerfile或者Docker Compose文件,可以通過這些文件的方式來創建潛入到工作空間的運行環境。Che已經提供了30+的內建的組件可以用于開發者的工作,當然也可以創建自己的組件。
RESTful的工作空間
所有的Che服務都可以通過RESTful API進行訪問,無論是通過工作空間的master還是agent,Che都提供了可以使用的API進行操作。工作空間master提供了工作空間管理和用戶管理,而在每一個工作空間中,agent就是一個微型的提供了項目相關API的Che服務器,比如Che通過RESTful JDT wrapper提供了100+的Java智能提示能力。Che使用Swagger用于瀏覽和管理API。
可擴展的云IDE(Cloud IDE)
Che提供了一個可以從本地或者遠端設備上進行訪問的免安裝的瀏覽器IDE。簡、快、美:這是IDE和開發者所期待的。IDE使用了跨瀏覽器的JavaScript和CSS來實現,通過瀏覽器來進行使用,使用瀏覽器不同的tag頁面可以打開不同的工作空間,每個空間消耗100M以下的內存,流暢的用戶交互體驗也不會因工作空間在遠端而受到影響。Eclipse Che基于Eclipse Theia提供了VSCode體驗的WebIDE功能,提供了最新的工具協議,包括語言服務、調試適配器以及和VSCode擴展的兼容性。對于更傾向于使用個人桌面IDE的用戶,Che同樣支持。同時提供了很多流行的工具包括:
- 嵌入式的Orion編輯器
- 按鍵綁定
- 全球化的鍵盤支持
- git / subversion工具
多工程管理
Che是一個真正的IDE平臺,識別項目并綁定至倉庫并指定類型,不同項目類型被賦予不同行為,比如Java項目被添加時,Che會添加RESTful JDT core的功能到相應的工作空間。工作空間可以有多個工程,每個工程都有自己的類型,雖然共享于一個工作空間,每個工程都可以被獨立的構建和運。當下,Che的工程類型仍然有限,主要包括JavaScript、Maven和空工程類型。后續將會進一步和社區生態即可提供更多選擇。
命令
Command是運行在工作空間所在操作系統的一個進程,可能是用戶、工作空間或者項目相關。
命令具有不同類型,不同類型的命令具有特定的行為,比如Maven命令類型就包含生命周期階段運行相關的內容。命令執行時,可以對項目和其他資源進行操作,允許用戶跨項目和模塊執行命令,執行時并與一定的上下文相關聯。
預覽
提供預覽的功能,可以針對項目的上下文和工作空間,創建和顯示用于預覽的Web頁面,同時,和預覽功能結合,通過相應的命令,在工作空間中可以更好地啟動和調試。
插件
Che可以通過使用定制化內建的插件或者使用者自己的插件來進行擴展。可以通過使用Che提供的方式生成用戶自己的插件,用戶可以編寫插件來操作IDE、Che服務器或者工作區代理,插件會由Che在合適的時間插入到應該插入的位置。
整體架構
用戶視角
- 開發者
可以使用Che作為IDE進行任何框架和語言的編寫,可以有助于工程和運行環境更加具有可移植性,同時上云更加簡單。
- 產品負責人
可以通過將Che嵌入到產品之中,只需要通過API進行控制即可。三星、SAP和紅帽等使用Che創造了很好的開發者體驗。比如SAP的WebIDE
在比如Codenvy,做了企業級的Che使用封裝
- 擴展提供者
可以使用組件、模版、擴展和插件進行新的開發者工具的創建,更好地利用和擴展使用方式。
總結
Eclipse Che有強大的背景公司的技術力量的支持,有眾多既有用戶的追隨,是后續云IDE選型中不可忽視的一個選擇項。
到此這篇關于云IDE:Eclipse Che:Eclipse下一代IDE的文章就介紹到這了,更多相關Eclipse下一代IDE內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/liumiaocn/article/details/108267949