System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于云原生的多租户云IDE管理系统技术方案_技高网

一种基于云原生的多租户云IDE管理系统技术方案

技术编号:40382144 阅读:8 留言:0更新日期:2024-02-20 22:19
本发明专利技术公开了一种基于云原生的多租户云IDE管理系统,包括数据存储、IDE管理服务、控制平面、租户工作空间和网关。数据存储模块提供数据持久化的功能,为IDE管理服务和租户工作空间提供支持。IDE管理服务通过开放HTTP接口向租户提供工作空间管理服务,通过调用控制平面提供的远程过程调用GRPC实现工作空间管理功能。租户工作空间由多个隔离的工作空间组成。网关用于IDE管理服务的负载均衡,为控制平面提供工作空间的服务发现,并提供租户工作空间的反向代理。本发明专利技术对本地资源的占用较小,减轻了本地计算机的负担,保护了用户的代码和数据的隐私和安全,显著提升开发者的工作效率和使用体验。

【技术实现步骤摘要】

本专利技术属于云原生领域,更具体地,涉及一种基于云原生的多租户云ide管理系统。


技术介绍

1、传统的软件编程方式通常依赖于本地集成开发环境(ide)和相应的编译运行环境,例如visual studio和intellij idea等。在使用这些工具之前,用户需要下载和安装客户端软件,并进行一系列的配置工作,例如安装java开发工具包(jdk)、tomcat服务器以及idea等。

2、然而,本地开发方式存在一些问题。首先,安装客户端软件和配置复杂的编译运行环境对于许多用户来说是一项困难的任务,需要耗费大量的时间和精力。特别是在安装多个版本的开发套件或涉及多种编程语言的环境时,可能会出现环境冲突的情况。其次,大多数本地ide占用的资源较高,在配置较低的计算机上运行时可能会导致运行卡顿的问题,同时程序的编译和运行速度也可能较慢。

3、云上开发作为一种新兴的开发方式,已经引起了广泛的关注。云上集成开发环境(ide)作为一种部署在服务端的解决方案,为用户提供了无间断的云端工作空间。利用服务器的强大计算能力,云上ide可以提供高度配置灵活性的开发环境。用户使用云上ide无需进行繁琐的安装过程,只需打开浏览器即可启动一个完备的云ide,其中包括各种开发工具,并支持插件扩展、编译调试等功能。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于云原生的多租户云ide管理系统,其目的在于为用户提供一个云集成开发环境(ide)管理系统,通过该平台用户可以在云端快速创建出一个ide,并且支持多租户的云ide管理、多样化的开发环境支持、租户间环境隔离、按需配置资源以及即时启动的能力;租户间的工作空间隔离,确保每个租户都能够获得稳定可靠的开发环境,并且借助服务器的强大配置可以为用户提供一个运行流畅,硬件资源动态分配的云集成开发环境,减少用户在本地开发时环境配置的困难和时间消耗,减少用户焦虑,可以使用户专注于软件编程,提高工作效率。

2、一种基于云原生的多租户云ide管理系统,包括数据存储、ide管理服务、控制平面、租户工作空间和网关五个模块,这些模块的部署都是基于云原生容器编排系统(kubernetes)的。

3、数据存储模块提供数据持久化的功能,为ide管理服务和租户工作空间提供支持。

4、ide管理服务通过开放http接口向租户提供工作空间管理服务,它通过调用控制平面提供的远程过程调用(grpc)实现相关的工作空间管理功能。

5、控制平面包含三个功能:通过kubernetes控制租户的工作空间;为ide管理服务提供管理接口;通过网关提供的服务发现接口注册租户工作空间到网关。

6、租户工作空间由多个隔离的工作空间组成,每个工作空间包含运行于kubernetes的容器(pod)中的集成开发环境服务端(code-server)、持久化存储卷声明(pvc)和持久化存储卷(pv)。

7、网关用于ide管理服务的负载均衡,为控制平面提供工作空间的服务发现,并提供租户工作空间的反向代理。

8、可选的,所述数据存储模块包含数据库组件、缓存组件和网络文件系统组件,数据库组件用于存储ide管理服务中的工作空间模板、租户工作空间以及租户账户等各项数据;缓存组件用于存储运行中的工作空间的信息;网络文件系统组件用于存储租户工作空间中的产生的插件及代码等数据。

9、优选的,所述ide管理服务模块,包含一个web服务器集群,web服务器提供工作空间模板浏览、租户工作空间管理以及工作空间访问的功能;所述工作空间模板是预先构建的容器镜像,不同的工作空间模板包含了不同语言的开发环境(比如java开发环境、c++开发环境等),租户可以选择特定的模板来创建出一个具有相应功能的工作空间;所述租户工作空间管理功能,包括创建、启动、停止和删除工作空间。

10、进一步地,所述ide管理服务模块使用数据存储模块提供的数据库来存储租户和工作空间的数据,并且一个工作空间唯一地属于一个租户,而一个租户可以拥有多个工作空间,然而,在同一时刻,一个租户最多只能有一个工作空间处于运行状态;所述ide管理模块通过调用控制平面提供的grpc接口来实现工作空间的相应管理功能。

11、优选的,所述控制平面包含一个控制器,该控制器通过kubernetes来控制和协调工作空间的状态;使用kubernetes的自定义资源(crd),定义了工作空间这种自定义资源,从而可以通过kubernetes来创建和删除该资源,该资源通过一个配置文件来描述其期望状态和实际状态;控制器根据工作空间的期望状态来对工作空间控制和协调,以确保在一定时间后工作空间的实际状态和期望状态相符合。

12、进一步的,所述工作空间的配置文件中的描述字段包含唯一编号、容器镜像、硬件资源、监听的端口、数据卷挂载目录以及执行命令,所述硬件资源包括cpu核心数、内存和持久化存储空间大小,所述执行命令包括启动和停止工作空间;

13、所述控制器通过列出和监听(list-watch)的方式从kubernetes中获取工作空间的事件变化,包括添加、更新和删除事件;根据获取的事件,控制器协调工作空间的实际状态,工作步骤如下:

14、添加事件:控制器仅更新本地缓存;

15、更新事件:控制器根据所述执行命令进行不同的操作;例如,启动工作空间时,根据配置文件中的存储空间的大小创建一个持久化存储卷声明(pvc),如果pvc已经存在则不需要创建,然后根据配置文件中的容器镜像创建一个pod,并将pvc挂载到所述数据卷挂载目录中;停止工作空间时,控制器删除对应的pod,但保留pvc;

16、删除事件:控制器删除工作空间对应的pod和pvc。

17、进一步的,所述控制器在创建pod时根据工作空间配置文件中的硬件资源对pod可用的资源进行限制,这包含定义pod运行所需的最小资源(requestresource)以及可以使用的最大资源(limit resource);

18、所述控制器提供一组grpc接口,包含创建、启动、停止、删除和获取工作空间的功能。

19、进一步的,所述控制器在启动工作空间后,通过网关提供的服务发现接口将工作空间的ip地址和端口注册到网关中,使得网关可以将该租户的请求反向代理到工作空间中;并且在工作空间停止后,将其ip地址和端口从网关中删除。通过注册工作空间的地址信息,网关能够有效地路由请求,确保租户的请求能够正确地到达相应地工作空间。

20、优选的,所述工作空间通过唯一编号和租户id关联,以实现租户工作空间的区分;每个租户的工作空间运行于隔离的容器中,因此租户之间的工作空间互不影响,提供了数据资源的隔离以及更高的安全性。

21、优选的,所述网关由网关组件组成,网关组件提供负载均衡、反向代理和工作空间服务发现的功能;负载均衡功能确保请求能够均匀地分配到ide管理服务中,提高系统的性本文档来自技高网...

【技术保护点】

1.一种基于云原生的多租户云IDE管理系统,其特征在于,包括数据存储、IDE管理服务、控制平面、租户工作空间和网关五个模块;

2.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述控制平面包含三个功能:通过Kubernetes控制租户的工作空间;为IDE管理服务提供管理接口;通过网关提供的服务发现接口注册租户工作空间到网关。

3.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述数据存储模块包含数据库组件、缓存组件和网络文件系统组件;

4.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述IDE管理服务模块,包含一个Web服务器集群,Web服务器提供工作空间模板浏览、租户工作空间管理以及工作空间访问的功能;所述工作空间模板是预先构建的容器镜像,不同的工作空间模板包含了不同语言的开发环境,租户选择模板创建出具有相应功能的工作空间;所述租户工作空间管理功能,包括创建、启动、停止和删除工作空间。

5.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述IDE管理服务模块使用数据存储模块提供的数据库存储租户和工作空间的数据,并且一个工作空间唯一地属于一个租户,一个租户能拥有多个工作空间,但在同一时刻,一个租户最多只能有一个工作空间处于运行状态;所述IDE管理模块通过调用控制平面提供的GRPC接口实现工作空间的相应管理功能。

6.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述控制平面包含一个控制器,该控制器通过Kubernetes控制和协调工作空间的状态;使用Kubernetes的自定义资源CRD,定义了工作空间,并通过Kubernetes创建和删除该资源,该资源通过一个配置文件描述其期望状态和实际状态;控制器根据工作空间的期望状态对工作空间控制和协调。

7.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述工作空间的配置文件中描述字段包含唯一编号、容器镜像、硬件资源、监听的端口、数据卷挂载目录以及执行命令;所述硬件资源包括CPU核心数、内存和持久化存储空间大小,所述执行命令包括启动和停止工作空间。

8.根据权利要求1所述基于云原生的多租户云IDE管理系统,其特征在于,所述控制器通过列出和监听的方式从Kubernetes中获取工作空间的事件变化,包括添加、更新和删除事件。

9.根据权利要求8所述基于云原生的多租户云IDE管理系统,其特征在于,所述控制器根据获取的事件,控制器协调工作空间的实际状态,实现如下:

10.根据权利要求9所述基于云原生的多租户云IDE管理系统,其特征在于,所述控制器在创建Pod时根据工作空间配置文件中的硬件资源对Pod可用的资源进行限制,这包含定义Pod运行所需的最小资源以及使用的最大资源;

11.根据权利要求10所述基于云原生的多租户云IDE管理系统,其特征在于,所述控制器在启动工作空间后,通过网关提供的服务发现接口将工作空间的IP地址和端口注册到网关中,使得网关将该租户的请求反向代理到工作空间中;并且在工作空间停止后,将其IP地址和端口从网关中删除;

12.根据权利要求11所述基于云原生的多租户云IDE管理系统,其特征在于,所述网关由网关组件组成,网关组件提供负载均衡、反向代理和工作空间服务发现的功能;负载均衡功能确保请求能够均匀地分配到IDE管理服务中;工作空间服务发现和反向代理功能允许网关动态获取可用的工作空间,并且作为中间层将请求从外部客户端转发到对应的工作空间。

13.根据权利要求12所述基于云原生的多租户云IDE管理系统,其特征在于,租户访问IDE管理服务和工作空间时,网关作为流量的入口,所有请求都将流入,实现如下:

...

【技术特征摘要】

1.一种基于云原生的多租户云ide管理系统,其特征在于,包括数据存储、ide管理服务、控制平面、租户工作空间和网关五个模块;

2.根据权利要求1所述基于云原生的多租户云ide管理系统,其特征在于,所述控制平面包含三个功能:通过kubernetes控制租户的工作空间;为ide管理服务提供管理接口;通过网关提供的服务发现接口注册租户工作空间到网关。

3.根据权利要求1所述基于云原生的多租户云ide管理系统,其特征在于,所述数据存储模块包含数据库组件、缓存组件和网络文件系统组件;

4.根据权利要求1所述基于云原生的多租户云ide管理系统,其特征在于,所述ide管理服务模块,包含一个web服务器集群,web服务器提供工作空间模板浏览、租户工作空间管理以及工作空间访问的功能;所述工作空间模板是预先构建的容器镜像,不同的工作空间模板包含了不同语言的开发环境,租户选择模板创建出具有相应功能的工作空间;所述租户工作空间管理功能,包括创建、启动、停止和删除工作空间。

5.根据权利要求1所述基于云原生的多租户云ide管理系统,其特征在于,所述ide管理服务模块使用数据存储模块提供的数据库存储租户和工作空间的数据,并且一个工作空间唯一地属于一个租户,一个租户能拥有多个工作空间,但在同一时刻,一个租户最多只能有一个工作空间处于运行状态;所述ide管理模块通过调用控制平面提供的grpc接口实现工作空间的相应管理功能。

6.根据权利要求1所述基于云原生的多租户云ide管理系统,其特征在于,所述控制平面包含一个控制器,该控制器通过kubernetes控制和协调工作空间的状态;使用kubernetes的自定义资源crd,定义了工作空间,并通过kubernetes创建和删除该资源,该资源通过一个配置文件描述其期望状态和实际状态;控制器根据工作空间的期望状态对工作空间控制和协调。<...

【专利技术属性】
技术研发人员:马国浩林菲
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1