文档章节

Eclipse Che 7 工作空间架构

SunnyWu
 SunnyWu
发布于 10/14 18:17
字数 1435
阅读 22
收藏 0

Che工作区是一个Web应用程序。它由运行在容器中的微服务组成,这些容器提供现代IDE的所有服务(编辑器、语言自动完成、调试工具)。IDE服务与开发工具一起部署,打包在容器和用户运行时应用程序中,这些应用程序被定义为Kubernetes资源。Che工作区项目的源代码保存在Kubernetes Persistent卷中。Microservices运行在对源代码具有读写访问权限的容器中(IDE服务、开发工具),运行时应用程序可以对此共享目录进行读写访问。 下图显示了Che工作区的详细组件。 image

在图中,有三个正在运行的工作区:两个属于用户A,一个属于用户C。第四个工作区是在插件代理正在验证和完成工作区配置的地方提供的。使用devfile格式指定Che工作区的工具和运行时应用程序。

CHE工作空间组件

Che plug-ins

CHE插件是扩展Che工作区功能的特殊服务。CHE插件被包装成容器.将插件打包到容器中有以下好处:

  • 它将插件与主IDE隔离开来,从而限制了插件可以访问的资源。
  • 它使用容器注册中心的统一标准发布和分发插件(与任何容器映像一样)。

插件的容器被打包成Che工作区编辑器的侧文件,并增强了它的功能。封装在容器中的VisualStudio代码扩展是用于Che-Theia编辑器的Che插件。多个Che插件可以在同一个容器中运行(为了更好地使用资源),或者Che插件可以在其专用容器中运行(以便更好地隔离)。

Che editor plug-in

Che编辑器是Che工作区插件。它定义了用作工作区编辑器的Web应用程序。默认的Che工作区编辑器称为EclipseChe-Theia。EclipseChe-Theia源代码存储库位于CheTheiaGizub。它基于EclipseTheia开源项目。Che-Theia是用打字本写的,是建立在微软摩纳哥编辑的基础上的。它是一个基于web的源代码编辑器,类似于VisualStudioCode(VS代码).它有一个支持VS代码扩展的插件系统.

Source code : Che Theia

Container image : eclipse/che-theia

Che user runtimes

使用任何非终止的用户容器作为用户运行时。可以定义为容器映像或一组Kubernetes或OpenShift资源的应用程序可以包含在Che工作区中。这使得在Che工作区中测试应用程序变得很容易。若要在Che工作区中测试应用程序,请在工作区规范中包含用于Stage或Products的应用程序YAML定义。用户运行时的例子有Node.js、SpringBoot或MongoDB和MySQL。

Che workspace JWT proxy

JWT代理负责确保CHE工作区服务的通信。只有在多用户模式中配置了CHE服务器的情况下,CHE工作区JWT代理才包含在CHE工作区中。HTTP代理用于将来自工作区服务的传出请求签名到CHE服务器,并从在浏览器上运行的IDE客户端验证传入请求。

Source code : JWT proxy

Container image : eclipse/che-jwtproxy

Che plug-in broker

插件代理是一种特殊的服务,给出一个插件元.yaml文件:收集所有信息以提供Che服务器所知道的Che插件定义。在工作区命名空间中执行准备操作(下载、解压缩文件、进程配置)。插件代理的主要目标是将Che插件定义与Che可以支持的实际插件分离开来。有了代理,Che可以支持不同的插件,而无需更新Che服务器。Che服务器启动插件代理。插件代理运行在与工作区相同的Kubernetes命名空间中。它可以访问插件和项目持久卷。插件代理被定义为容器映像(例如,eclipse/che-plugin-Broker)。插件类型决定已启动代理的类型。支持两种类型的插件:CHE插件和Che编辑器。

Source code : Che Plug-in broker

Container image : eclipse/che-init-plugin-broker eclipse/che-unified-plugin-broker

CHE工作空间配置

部署新工作区pod的Kubernetes命名空间取决于Che服务器配置。默认情况下,每个工作区都部署在一个不同的命名空间中,但是用户可以配置Che服务器以将所有工作区部署在一个特定的命名空间中。命名空间的名称必须作为Che服务器配置属性提供,并且不能在运行时更改。

image

以下是CHE工作区创建流程:

  • 用户启动由以下定义的CHE工作区:
    • 编辑器(默认值为CHE-THEIA)
    • 插件列表(例如,Java和Kubernetes工具)
    • 运行时应用程序的列表
  • wsmaster从插件注册表中检索编辑器和插件元数据。
  • 对于每个插件类型,wsmaster启动特定的插件代理。
  • CHE插件代理将插件元数据转换为CHE插件定义。它执行以下步骤:
    • 下载插件并提取其内容。处理插件meta.yaml文件,
    • 并以CHE插件的格式将其发回WSMASTER。
  • wsmaster启动编辑器和插件Sidecar。
  • 编辑器从插件持久卷加载插件。

本文转载自:http://wuxiongwei.com/archives/eclipseche7workspacearch

SunnyWu
粉丝 12
博文 75
码字总数 11164
作品 0
苏州
架构师
私信 提问
Eclipse Che 7 已经开始支持 .NET 开发

Eclipse Che 是一个高性能的基于浏览器的集成开发环境,通过提供结构化的工作区、项目输入、模块化扩展插件来支持 Codenvy 的引擎。Eclipse Che 采用 Java 开发,支持 Windows、Linux 和 OS...

红薯
10/14
3.3K
23
云 IDE Eclipse Che 6.14 发布,集成 Kubernetes

Eclipse Che 6.14 发布了,包含对工作区间、扩展性、追踪以及 Java 技术栈相关的改进。 Eclipse Che 6.14.0 版本包含了与 Kubernetes 的集成、采用新插件框架和新的技术栈等许多增量改进。E...

局长
2018/11/28
2.4K
5
如何用Docker安装Eclipse Che和Codenvy

现在是时候使用Docker安装一个多节点Codenvy On-Prem和Eclipse Che了。 Docker容器包装一块软件到一个文件系统,这里面包含一切它运行的要素:code, runtime, system tools, 以及libraries。...

Mrexamo
2015/09/02
2.6K
0
在线集成开发环境 - Eclipse Che

Eclipse Che 是一个高性能的基于浏览器的集成开发环境,通过提供结构化的工作区、项目输入、模块化扩展插件来支持 Codenvy 的引擎。Eclipse Che 采用 Java 开发,支持 Windows、Linux 和 OS...

匿名
2015/12/08
50.8K
45
来自 OpenSource 的 2016 十大开源项目

在这份年度最佳开源项目列表中,回顾了我们的作者在 2016 年涵盖的流行项目,还包括 opensource.com 社区版主收藏里面最喜欢的。 每年出现、成长、改变和发展的优秀开源项目继续给我们留下深...

局长
2016/12/27
4.4K
4

没有更多内容

加载失败,请刷新页面

加载更多

交换两数(函数)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void Exchange(int* x, int* y){ int tmp = 0; tmp = *x; *x = *y; *y = tmp; } int main(){ int a; int b; scanf......

Lxxxxx256
13分钟前
2
0
给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践

作者 | 孙健波(天元) 阿里巴巴技术专家 本文整理自 11 月 21 日社群分享,每月 2 场高质量分享,点击加入社群。 早在 2011 年,阿里巴巴内部便开始了应用容器化,当时最开始是基于 LXC 技术...

阿里巴巴云原生
今天
6
0
数据平面

3.1数据平面的任务 解析数据包头 转发数据包到某些端口 通过查询由控制平面所生成的转发表 传统网络数据平面 数据包--输入端口---拆封和解析,转发策略匹配,转发调度---输出端口(协议相关,...

Firefly-
昨天
6
0
如何高效的阅读uni-app框架?(建议收藏)

作者 | Jeskson 来源 | 达达前端小酒馆 uni-app的框架,配置:page.json,manifest.json,package.json,vue.config.js。脚本,应用程序,main.js。日志打印,定时器,生命周期,页面,页面通...

达达前端小酒馆
昨天
7
0
实现原理专题--存储器的实现(三)

计算机实现原理专题--存储器的实现(二)中描述了一种电平触发器,但是某些应用需要在保持位从0到1变化的过程中对数据端进行保存。这种触发器叫边沿触发器。 一开始Q为0,时钟信号为0。当数据...

FAT_mt
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部