System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种在线IDE的实现方法及系统技术方案_技高网

一种在线IDE的实现方法及系统技术方案

技术编号:40669058 阅读:4 留言:0更新日期:2024-03-18 19:04
本发明专利技术公开了一种在线IDE的实现方法及系统,属于计算机技术领域,该方法包括:通过Dockerfile制作IDE的docker镜像,并将所述docker镜像推送到Nexus仓库;基于云原生helm技术,使用helm的逻辑控制语句封装所述docker镜像、cephfs文件存储以及预设参数;生成针对IDE镜像的chart安装包,并将所述chart安装包上传到Nexus托管仓库,在数据库中添加相应的chart信息记录,以调用所述chart安装包在集群中快速部署在线IDE的实例;基于WebSocket和WebRTC技术,在集群内Android模拟器在远程Web浏览器显示界面,并通过浏览器对集群内模拟器进行实时反向控制;通过微服务集成helm环境,并将helm命令封装Restful接口。本方案能够提高IDE整体管理的便捷性,且可以在移动端通过Web浏览器进行预览和反向控制。

【技术实现步骤摘要】

本专利技术属于计算机,具体涉及一种在线ide的实现方法及系统。


技术介绍

1、集成开发环境(integrated development environment,ide)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。目前市面上的在线ide大都存在这样的缺陷:

2、1、ide镜像部署复杂且缓慢。使用原生docker镜像在k8s中进行集群部署的时候,需要的针对镜像资源编写yaml文件,然后使用操作符进行部署,例如:部署一个常规的ide镜像,一般需要部署deployment、service、ingress等资源,因为k8s缺少对发布的ide镜像版本的管理和控制,使得ide或模拟器镜像的部署维护和更新等面临许多的问题,如ide的整体管理复杂繁琐、易出错,例如:将某个版本的ide下线,首先要进行卸载,将一个一个服务的yaml文件执行delete操作,同样的道理,将某个ide版本进行上线,一个个去apply,虽然可以在目录里执行kubectl apply–f来执行当前目录所有镜像对应的yaml文件,但是不能保证每次都会在同一个目录;此外,无法做到ide镜像文件的高效复用,通常情况下,ide镜像都物理体积比较大,例如:使用yaml文件部署完一个名称为idea的deployment后,下次再做同一个ide的部署名称为idea2,又得将部署文件、资源文件全部重新复制过来修改、重新部署;

3、2、现有技术中的ide对移动端android开发的支持度低下,不支持模拟器通过web浏览器进行预览和反向控制,不支持本地手机远程连接实现在线联调。


技术实现思路

1、为了解决现有技术中的在线ide镜像部署复杂且缓慢、对移动端android开发的支持度低下的技术问题,本专利技术提供一种在线ide的实现方法及系统。

2、第一方面

3、本专利技术提供了一种在线ide的实现方法,包括:

4、s1:通过dockerfile制作ide的docker镜像,并将所述docker镜像推送到nexus仓库;

5、s2:基于云原生helm技术,使用helm的逻辑控制语句封装所述docker镜像、cephfs文件存储以及预设参数,所述预设参数包括命令、环境、生命周期;

6、s3:生成针对ide镜像的chart安装包,并将所述chart安装包上传到nexus托管仓库,在数据库中添加相应的chart信息记录,以调用所述chart安装包在集群中快速部署在线ide的实例;

7、s4:基于websocket和webrtc技术,在集群内android模拟器在远程web浏览器显示界面,并通过浏览器对集群内模拟器进行实时反向控制;

8、s5:通过微服务集成helm环境,并将helm命令封装restful接口,使用界面交互进行部署,以使用户在远程浏览器输入访问地址时可进行云端ide的鉴权和访问。

9、进一步地,所述s1具体包括:

10、s101:使用社区版的intellij idea community edition制作后端的docker镜像,或者使用vscode制作前端的docker镜像,或者使用android studio制作移动端的docker镜像;

11、s102:通过dockerfile根据第一参数定制相应的所述docker镜像,所述第一参数包括插件、运行环境、环境和用户变量中的至少一者。

12、进一步地,所述s3还包括:

13、使用ceph文件存储系统进行文件数据挂载,以为用户设置持久化目录。

14、进一步地,所述s4具体包括:

15、s401:通过dockerfile制作android指定系统版本的系统镜像,启动集群内镜像;

16、s402:进入所述系统镜像,创建docker容器和指定abi版本的模拟器avd;

17、s403:进入容器内启动无ui模拟器;

18、s404:启动所述无ui模拟器的界面监听服务,捕获用户在浏览器的鼠标以及键盘输入事件,并且捕获鼠标移动坐标,通过比例换算转化成实际android模拟器的坐标,最后将其发送回服务器。

19、进一步地,所述s5具体包括:

20、s501:通过微服务集成helm环境,选择下载kubernetes版本对应的helm客户端程序,执行helm version;

21、s502:基于微服务将helm命令封装restful接口,对传入响应的安装参数进行执行命令进程,并捕获正确结果或者异常消息;

22、s503:据不同ide的不同特点,设计前端form表单参数内容;

23、s504:使用界面交互进行部署,以使用户在远程浏览器输入访问地址时可进行云端ide的鉴权和访问。

24、第二方面

25、本专利技术提供了一种在线ide的实现系统,包括:

26、镜像生成模块,用于通过dockerfile制作ide的docker镜像,并将所述docker镜像推送到nexus仓库;

27、数据封装模块,用于基于云原生helm技术,使用helm的逻辑控制语句封装所述docker镜像、cephfs文件存储以及预设参数,所述预设参数包括命令、环境、生命周期;

28、集群部署模块,用于生成针对ide镜像的chart安装包,并将所述chart安装包上传到nexus托管仓库,在数据库中添加相应的chart信息记录,以调用所述chart安装包在集群中快速部署在线ide的实例;

29、反向控制模块,用于基于websocket和webrtc技术,在集群内android模拟器在远程web浏览器显示界面,并通过浏览器对集群内模拟器进行实时反向控制;

30、鉴权访问模块,用于通过微服务集成helm环境,并将helm命令封装restful接口,使用界面交互进行部署,以使用户在远程浏览器输入访问地址时可进行云端ide的鉴权和访问。

31、进一步地,所述镜像生成模块具体用于:

32、使用社区版的intellij idea community edition制作后端的docker镜像,或者使用vscode制作前端的docker镜像,或者使用android studio制作移动端的docker镜像;

33、通过dockerfile根据第一参数定制相应的所述docker镜像,所述第一参数包括插件、运行环境、环境和用户变量中的至少一者。

34、进一步地,所述集群部署模块还用于:

35、使用ceph文件存储系统进行文件数据挂载,以为用户设置持久化目录。

36、进一步地,所述反向控制模块具体用于:

37、通过dockerfile制作android指定系统版本的系统镜像,启动集群内镜像;

38、进入所本文档来自技高网...

【技术保护点】

1.一种在线IDE的实现方法,其特征在于,包括:

2.根据权利要求1所述的在线IDE的实现方法,其特征在于,所述S1具体包括:

3.根据权利要求1所述的在线IDE的实现方法,其特征在于,所述S3还包括:

4.根据权利要求1所述的在线IDE的实现方法,其特征在于,所述S4具体包括:

5.根据权利要求1所述的在线IDE的实现方法,其特征在于,所述S5具体包括:

6.一种在线IDE的实现系统,其特征在于,包括:

7.根据权利要求6所述的在线IDE的实现系统,其特征在于,所述镜像生成模块具体用于:

8.根据权利要求6所述的在线IDE的实现系统,其特征在于,所述集群部署模块还用于:

9.根据权利要求6所述的在线IDE的实现系统,其特征在于,所述反向控制模块具体用于:

10.根据权利要求6所述的在线IDE的实现系统,其特征在于,所述鉴权访问模块具体用于:

【技术特征摘要】

1.一种在线ide的实现方法,其特征在于,包括:

2.根据权利要求1所述的在线ide的实现方法,其特征在于,所述s1具体包括:

3.根据权利要求1所述的在线ide的实现方法,其特征在于,所述s3还包括:

4.根据权利要求1所述的在线ide的实现方法,其特征在于,所述s4具体包括:

5.根据权利要求1所述的在线ide的实现方法,其特征在于,所述s5具体包括:

6.一种在...

【专利技术属性】
技术研发人员:李成钢康鹏赵志宏蒋思玉管颖操
申请(专利权)人:中电信数智科技有限公司
类型:发明
国别省市:

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

1