下一代 IDE:Eclipse Che 究竟有什么奥秘?

来源 | CSDN(ID:CSDNnews)

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选型中不可忽视的一个选择项。

作者简介:淼叔,资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过10年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累。 

原文链接:https://blog.csdn.net/liumiaocn/article/details/108267949

更多阅读推荐
  • 从 Dagger 到 Hilt,谷歌为何执着于让我们用依赖注入?

  • Kubernetes 并非灵丹妙药...

  • 窃隐私、放高利贷,输入法的骚操作真不少!

  • 为效能而生,企业级敏捷研发管理工具PingCode正式发布!

  • 跑路后再删库?思科前员工离职后恶意删库,损失达 240 万美元

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

助力在线教育,阿里云推出百万专项扶持基金计划

云栖号:https://yqh.aliyun.com 第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 前话 提供一个思路帮助你了解区块链基础运作,文本并不是一个完整的…

【开发者成长】阿里代码缺陷检测探索与实践

目前PRECFIX技术已经在阿里巴巴集团内部落地并获得好评;关于“PRECFIX”技术的论文被国际软件工程大会(ICSE)收录。 张昕东(别象) 阿里巴巴 云研发事业部 算法工程师 【以下为别象分享实录】 阿里巴巴在缺陷检测技术方面遇到的三个挑战 编码…

docker Harbor2.3.4 https 搭建镜像仓库

文章目录一、环境准备1. 环境要求2. 节点总览3. 安装docker-compose二、安装harbor2.1. 下载2.2. 解压2.3. 认证2.4. 调整配置2.5. 安装 harbor2.6. 配置host2.7. 效果验证三、客户端3.1. 证书保存3.2. 新建配置3.3. 登录harbor四、基本操作4.1. 下线4.2. 监控状态4.3. 重新部署…

OPPO实时数仓揭秘:从顶层设计实现离线与实时的平滑迁移

一、建设背景 关于 OPPO 移动互联网业务 大家都认为 OPPO 是一家手机公司,但大家可能并不清楚,其实 OPPO 也会做与移动互联网相关的业务。在 2019 年 12 月,OPPO 发布了自己定制的手机操作系统 ColorOS 7.0 版本。目前包括海外市场在内&…

十年技术骨干面试被开出一万五薪资,直呼 “这是对我的侮辱”

老周是我十多年前认识的同事,2012年前后,老周到北京工作的第一个任务就是为公司的产品开发IOS APP。2012年底,老周已经能熟练的驾驭苹果的cocoatouch和android核心组件。也正因为如此,老周的薪水直接翻倍,当时已经拿到…

微信小程序---实现弹窗效果

第一步&#xff1a;点击按钮触发弹窗事件 <button class"btn" bindtap"btn">按钮</button> *** css样式 .btn{ position: fixed; bottom: 0; left: 0; } *** js btn(){ let delshow !this.data.delshow console.log(delshow) this.setD…

登录 Harbor response from daemon: Get “https://192.168.92.129/v2/“: x509: cannot validate certificate

文章目录1. 现象2. 解决方案3. 重新登陆1. 现象 [rootlocalhost harbor]# docker login 192.168.92.129 Username: admin Password: Error response from daemon: Get "https://192.168.92.129/v2/": x509: cannot validate certificate for 192.168.92.129 becaus…

基于Flink的超大规模在线实时反欺诈系统的建设与实践

作者&#xff1a;关贺宇 在大数据时代&#xff0c;金融科技公司通常借助消费数据来综合评估用户的信用和还款能力。这个过程中&#xff0c;某些中介机构会搜集大量的号并进行“养号”工作&#xff0c;即在一年周期里让这些号形成正常的消费、通讯记录&#xff0c;目的是将这些…

别再被 Python 洗脑了!!

Python 作为一种解释型技术脚本语言&#xff0c;越来越被认可为程序员新时代的风口语言。无论是刚入门的程序员&#xff0c;还是年薪百万的 BATJ 的技术大牛都无可否认&#xff1a;Python的应用能力是成为一名码农大神的必要项。 而作为Python初学者来讲&#xff0c;最大的问题…

任务不再等待!玩转DataWorks资源组

引言 DataWorks提供了三种资源组的能力&#xff1a;独享资源组、自定义资源组和默认资源组&#xff0c;很多开发者在使用资源组时经常会碰到各类情况&#xff0c;到时候任务运行失败或者延迟&#xff0c;例如&#xff1a;1. 正在使用默认资源组&#xff0c;任务经常要等待2.购…

微信小程序---实现输入手机验证码功能

*** html部分 <view classcontainer> <view classmain-title bindtap"test"> 输入短信验证码 </view> <view class"sub-title"> 已向<text class"phone">139****9999</text>发送验证码 </view> <…

Docker Harbor 2.3.4 集群 双主复制高可用镜像仓库

下面操作大部分是双节点同时执行一样的命令&#xff0c;不同的地方我会进行标注和特殊说明 文章目录一、环境准备1. 环境要求2. 节点总览3. 安装docker-compose二、安装harbor2.1. 下载2.2. 解压2.3. 调整配置2.4. 安装 harbor2.5. 效果验证三、Docker开启远程API3.1. 修改配置…

如何用Chrome读懂网站监测Cookie

作者 | 朱顺意责编 | 李雪敬出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;网站监测工具用于标识用户的 Cookie 分为第1方 Cookie 和第3方 Cookie&#xff0c;这两者本质上没有什么区别&#xff0c;只是身份不同。Cookie 有 Domain 属性&#xff0c;当 Coo…

DataWorks百问百答01:数据同步该用什么资源组

引子 很多用户在使用数据集成建立同步任务时&#xff0c;往往都会困惑一个设置&#xff0c;即“资源组设置”。 大家常有的疑问是“资源组是用来做什么的&#xff1f;跟网络之间什么关系&#xff1f;我该选择那种资源组&#xff1f;” 下面本文给您一个简要的介绍。 什么是资源…

在阿里,40岁的奋斗姿势

在阿里&#xff0c;40岁的奋斗姿势 在阿里&#xff0c;什么样的年纪可以称为老呢&#xff1f;35岁&#xff1f; 在云网络&#xff0c;有这样一群人&#xff0c;他们的平均年龄接近40&#xff0c;却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢&#xff1f; 洛神…

nginx配置多个conf文件

今天整理了下&#xff0c;在centos 7.6 系统下怎么配置多个conf文件。 step 1:在nginx.conf文件所在目录新建conf.d目录&#xff0c;即mkdir conf.d&#xff0c;为确保权限能够访问到 chmod 777 conf.dstep 2:编辑nginx.conf文件&#xff0c;内容为&#xff1a; #user nobody…

CPU有个禁区,内核权限也无法进入!

来源 | 编程技术宇宙封图 | CSDN 下载自视觉中国神秘项目我是CPU一号车间的阿Q&#xff0c;是的&#xff0c;我又来了。最近一段时间&#xff0c;我几次下班约隔壁二号车间虎子&#xff0c;他都推脱没有时间&#xff0c;不过也没看见他在忙个啥。前几天&#xff0c;我又去找他&…

Vue---淘宝镜像cnpm---安装vue-cli

1. 淘宝镜像命令 npm install -g cnpm --registryhttps://registry.npm.taobao.org 2. 安装vue-cli脚手架 npm install -g vue/cli 3.vue-cli脚手架更新 npm i -g vue/cli 4. 查看当前vue-cli版本号 vue -V

防删库实用指南 | 只需一步,快速召回被误删的表

数据库的一些非常不错的企业级功能都是“养兵千日&#xff0c;用兵一时”&#xff0c;比如Oracle 10g中的回收站&#xff08;Recycle Bin&#xff09;功能&#xff0c;可以在特殊情况下发挥特种兵的功能&#xff0c;比如当你删除一个表空间、一个用户&#xff08;Schema)时&…

智能化中的控制与自动化中的控制不同

智能化中的控制相对于自动化中的控制更加灵活、智能、综合和学习能力强。智能化控制系统能够根据实际情况进行自主决策和优化&#xff0c;适用范围更广&#xff0c;效果更好。 首先&#xff0c;智能化控制系统能够根据外部环境的变化和实时数据的反馈来自主调整和优化控制策略&…