CN117850817A - 一种在线chart包编排系统 - Google Patents
一种在线chart包编排系统 Download PDFInfo
- Publication number
- CN117850817A CN117850817A CN202311775615.7A CN202311775615A CN117850817A CN 117850817 A CN117850817 A CN 117850817A CN 202311775615 A CN202311775615 A CN 202311775615A CN 117850817 A CN117850817 A CN 117850817A
- Authority
- CN
- China
- Prior art keywords
- package
- module
- online
- service
- hart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims abstract description 11
- 230000002688 persistence Effects 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims abstract description 6
- 241000380131 Ammophila arenaria Species 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 claims description 4
- 238000010009 beating Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000008676 import Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 7
- 238000012856 packing Methods 0.000 abstract description 3
- 238000010276 construction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种在线chart包编排系统,该系统采用分层模型,其中展示层分为PC端用户,传输层采用了WEB服务器,应用层提供了monaco‑editor服务、helm校验服务、helm创建服务、nexus管理服务、helm渲染服务、helm推送服务、helm打包服务、第三方仓库服务、本地仓库服务,数据层包含文件存储服务和数据库持久化服务。本编排系统方便用户不需要安装工具,打开浏览器输入地址就可以实时的进行chart包编写工作。同时支持用户的本地化自定义构建,可将服务构建为docker镜像,通过挂载helm客户端的方式,可以很容易替换和升级helm的api,方便快速安装部署和使用。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种在线chart包编排系统。
背景技术
随着互联网技术的应用和广泛普及,容器化系统和应用也越来越成熟。其中Kubernetes是一个比较成熟的开源的容器管理系统,可以帮助用户在多台服务器上部署和管理容器化应用。而helm是为其设计的一个包管理工具,方便应用的部署和安装等。但目前helm-chart包只能通过线下工具进行编排。
发明内容
发明目的:考虑到线下的编排的不方便,不仅需要安装Idea及helm插件、还需要安装helm客户端等工具,提出一种在线chart包编排系统,方便用户不需要安装工具,打开浏览器输入地址就可以实时的进行chart包编写工作。同时支持用户的本地化自定义构建,可将服务构建为docker镜像,通过挂载helm客户端的方式,可以很容易替换和升级helm的api,方便快速安装部署和使用,从而有效解决现有技术存在的上述问题。
本发明提出一种在线chart包编排系统,该系统包括:
展示层;所述展示层以客户端的形式展现;
传输层;所述传输层采用WEB服务器与所述客户端相互通信;
应用层,与所述传输层建立通信;所述应用层利用helm接口封装仓库管理模块、初始化创建模块、在线编排模块、第三方仓库模块、Chart包实时校验模块、Chart包实时渲染模块、Chart包打模块、包推送模块;
持久层,与所述应用层建立通信;所述持久层包括文件存储服务模块和数据库持久化服务模块。
在进一步的实施例中,所述仓库管理模块提供本地仓库维护,对本地仓库进行导入、导出、删除操作。
在进一步的实施例中,所述初始化创建模块用于在PC端用户登录后,进入自己的helm仓库管理页面,选择创建chart包,输入包名称等信息后点击创建,后端执行helmcreate能快速初始化创建一个编排基本包。
在进一步的实施例中,所述在线编排模块用于根据路径读取文件内容并展示到浏览器页面上。
在进一步的实施例中,用户在浏览器页面上进行改造和编写chart包里的文件内容并进行实时的文件保存,每次保存都会进行chart包内容的校验,如果存在编写错误等情况则进行高亮提示,告知使用者的语法错误及所在的文件名称、行和列数。
在进一步的实施例中,所述第三方仓库模块整合helm命令api接口,在浏览器页面上进行添加、删除、搜索、拉取第三方仓库的chart包,拉取成果后同样使用monaco-editor在线文件预览、修改。
在进一步的实施例中,每次monaco-editor的保存请求都会调用helm lint接口,所述Chart包实时校验模块用于校验chart包语法的完整性和正确性,并将检测结果在页面高亮展示和提示。
在进一步的实施例中,所述Chart包实时渲染模块支持边编写,边实时渲染功能,调用helm template接口,当前编辑的chart包进行渲染,并将选然后的内容展示到页面分栏进行代码对比。
在进一步的实施例中,chart包在线编写或修改完成后,由所述Chart包打模块调用helm package接口,生成tgz制品保存到服务器端,可选择下载。
在进一步的实施例中,所述包推送模块用于调用helm push接口,将tgz制品推送到仓库存储。
本发明具备如下有益效果:
基于monaco-editor在线编排界面:该界面简洁但不缺少必要的功能、用户需要在浏览器界面操作并不需要进行配置其他的东西。能够很快的就熟悉使用方法并且能够轻易上手。而且功能友好能够进行快捷的编排chart。相比较线下的编排用户只需要关注代码质量而不需要再关注工具和环境以及保存问题。
Spring-boot整合helm客户端api:使用java语言执行helm命令,以封装成果Restful接口的形式供浏览器端进行调用和传输信息。整合了仓库管理、helm创建、校验、渲染、打包、推送等功能。
Spring-boot整合nexus-api:整合了nexus的api,提供了在线仓库的管理维护、用户创建等功能。
helm客户端封装为docker镜像技术:用户可脱离内置定义,可以个性化定制自己的配置,可进行二次、多次封装。
结合上述设置,传统的线下编排需要进行复杂的工具和环境配置,且过程中需要在终端反复输入不同命令行、无法统一管理chart包、不能移植等缺点。Chart在线编排系统极大的方便了用户的编排需求,简便灵活。
附图说明
图1是chart在线编排系统业务架构图。
图2是monaco-editor的界面图。
图3是本地仓库管理拓扑结构图。
图4是helm接口封装模型示意图。
图5是helm仓库管理模型示意图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
如附图1所示的chart在线编排系统,整体业务架构采用了分层模型,其中展示层分为PC端用户,传输层采用了WEB服务器, 应用层提供了monaco-editor服务、helm校验服务、helm创建服务、nexus管理服务、helm渲染服务、helm推送服务、helm打包服务、第三方仓库服务、本地仓库服务,数据层包含文件存储服务和数据库持久化服务。
服务层整合了monaco-editor的预览和读写、同步到本地仓库文件功能,同时也整合了helm客户端的通用接口,可以满足用户的接口和命令行下的不同场景需求,实现了用户不再依赖线下编排工具,而是实现了在线上系统中快速编排的能力、同时提供仓库存储服务。因此,用户不在需要关注其他因素、只需要关注代码即可,解决了诸多的问题。安装部署都很方便。
展示层以客户端的形式展现。传输层采用WEB服务器与所述客户端相互通信。应用层与所述传输层建立通信;所述应用层利用helm接口封装仓库管理模块、初始化创建模块、在线编排模块、第三方仓库模块、Chart包实时校验模块、Chart包实时渲染模块、Chart包打模块、包推送模块。持久层与所述应用层建立通信;所述持久层包括文件存储服务模块和数据库持久化服务模块。
仓库管理模块:仓库列表可提供本地仓库维护、对本地仓库进行导入、导出、删除等操作。系统整合了nexus-api可为新用户创建仓库账号,实现不同用户的仓库数据隔离。
初始化创建模块:在PC端用户登录后,进入自己的helm仓库管理页面,选择创建chart包,输入包名称等信息后点击创建,后端执行helm create能快速初始化创建一个编排基本包。
在线编排模块:monaco-editor是微软发布的一款开源的轻量级在线编辑器,可以用于实现高级代码编辑和调试功能。它支持多种编程语言和语法高亮,可以帮助用户更加轻松地进行代码编辑和调试。monaco-editor服务会根据路径读取这个包的文件内容并展示到浏览器页面上,用户就可以在浏览器页面上进行改造和编写chart包里的文件内容并进行实时的文件保存,每次保存都会进行chart包内容的校验,如果存在编写错误等情况则进行高亮提示。能准确告知使用者的语法错误及所在的文件名称、行和列数。
第三方仓库模块:服务端整合了helm命令api接口,能够在浏览器页面上进行添加、删除、搜索、拉取第三方仓库的chart包,拉取成果后同样使用monaco-editor在线文件预览、修改等,相比传统方式下用户不需要下载tgz制品包到本地、直接在浏览器端进行操作。
Chart包实时校验模块:每次monaco-editor的保存请求都会调用helm lint接口,用于校验chart包语法的完整性和正确性,并将检测结果在页面高亮展示和提示。
Chart包实时渲染模块:支持边编写,边实时渲染功能,调用helm template接口,当前编辑的chart包进行渲染,并将选然后的内容展示到页面分栏进行代码对比。
Chart包打模块:chart包在线编写或修改完成后,调用helm package接口,生成tgz制品保存到服务器端,可选择下载。
包推送模块:调用helm push接口,将tgz制品推送到仓库存储。
基于monaco-editor的浏览器端可视化编辑功能,如附图2的浏览器端monaco-editor编排界面,模型界面设计简单易懂,没用很复杂的操作,和在线下编辑器里所呈现的几乎一样,只是从线下功能迁移到线上功能,用户只需要打开浏览器登录系统就可以直接进行编排,其速度、效率、便捷程度都提高很多。
临时本地仓库管理功能,如附图3的本地仓库管理, 以本地仓库进行持久化、同时将编排后的tgz制品包直接推送到nexus、harbor等线上仓库,做到了本地和线上的两端备份、数据更加安全。如果在线下的话,文件不能做到实时迁移、安全隐患较大,只能通过输入控制台命令行的形式推送到私人仓库、不能做到统一管理等缺点。
基于docker镜像的便捷封装,第一步封装环境:下载Helm官方二进制linux端客户端程序和使用docker pull openjdk:8-jdk-alpine的镜像并运行该镜像。然后cd /&mkdirhelm, 将下载的helm客户端文件拷贝到该目录下后执行chmod +x ./helm&ln -s /helm/helm /usr/local/bin/helm命令,使用helm version命令检测是否成功。
第二步封装仓库:编辑repositories.yaml文件,在里面加入仓库名称、url等仓库配置信息。运行时在docker-compose.yaml或k8s下的depolyment.yaml的environment位置配置环境变量HELM_REPOSITORY_CONFIG=/helm/config/repositories.yaml等环境变量、并将编辑后的文件repositories.yaml使用volume或configMap等形式挂载到容器内部;容器化的方式实现了高度选择性、方便性及可配置性。然后在此镜像的基础上封装java业务代码整合spring-boot开发为通用的Restful接口以供调用。如附图4的接口封装模型,系统封装了helm客户端api、对执行结果、日志等信息进行准确、有效记的记录。方便用户查询日志、错误记录。业务封装合理完善,满足了大部分用户的功能和使用需求。
对公有的制品仓库的搜索和支持,如附图5的helm仓库管理模型。系统提供web界面、支持搜索和添加helm第三方仓库、制品包等,支持在线查看第三方的制品包基本信息、chart、values以及模板渲染等信息。即使用户不点击下载,也能够让自己想要看到的信息一目了然的呈现在页面上,而到了线下环境,用户很难直接看到信息,只能通过页面跳转进行下载制品包然后拷贝到IDEA工具里进行查看对应的文件。
综上所述,本发明至少存在如下三个技术要点:
1、monaco-editor界面模型: 此模型整合了常用工具栏+文件导航栏+monaco-editor编辑器+操作按钮。工具为排版工具栏除了基本的转大小写、页面查询和替换等,还结合了错误检查、格式校验高亮提示、代码对比等功能。
2、helm客户端封装技术: 基于docker镜像容器化封装技术、将helm客户端内置入容器环境、并通过环境变量指定一些固定仓库等,可选择挂载helm插件,实现了高度选择性、方便性。并整合spring-boot开发为通用的Restful接口。
3、monaco-editor-service后端服务技术:后端服务提供文件读写,遍历、上下文导航功能。另外提供功能管理、安全控制、缓存以及并发控制等。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。
Claims (10)
1.一种在线chart包编排系统,其特征在于,包括:
展示层;所述展示层以客户端的形式展现;
传输层;所述传输层采用WEB服务器与所述客户端相互通信;
应用层,与所述传输层建立通信;所述应用层利用helm接口封装仓库管理模块、初始化创建模块、在线编排模块、第三方仓库模块、Chart包实时校验模块、Chart包实时渲染模块、Chart包打模块、包推送模块;
持久层,与所述应用层建立通信;所述持久层包括文件存储服务模块和数据库持久化服务模块。
2.根据权利要求1所述的在线chart包编排系统,其特征在于,所述仓库管理模块提供本地仓库维护,对本地仓库进行导入、导出、删除操作。
3. 根据权利要求1所述的在线chart包编排系统,其特征在于,所述初始化创建模块用于在PC端用户登录后,进入自己的helm仓库管理页面,选择创建chart包,输入包名称等信息后点击创建,后端执行helm create能快速初始化创建一个编排基本包。
4.根据权利要求1所述的在线chart包编排系统,其特征在于,所述在线编排模块用于根据路径读取文件内容并展示到浏览器页面上。
5.根据权利要求4所述的在线chart包编排系统,其特征在于,用户在浏览器页面上进行改造和编写chart包里的文件内容并进行实时的文件保存,每次保存都会进行chart包内容的校验,如果存在编写错误等情况则进行高亮提示,告知使用者的语法错误及所在的文件名称、行和列数。
6.根据权利要求1所述的在线chart包编排系统,其特征在于,所述第三方仓库模块整合helm命令api接口,在浏览器页面上进行添加、删除、搜索、拉取第三方仓库的chart包,拉取成果后同样使用monaco-editor在线文件预览、修改。
7. 根据权利要求1所述的在线chart包编排系统,其特征在于,每次monaco-editor的保存请求都会调用helm lint接口,所述Chart包实时校验模块用于校验chart包语法的完整性和正确性,并将检测结果在页面高亮展示和提示。
8. 根据权利要求1所述的在线chart包编排系统,其特征在于,所述Chart包实时渲染模块支持边编写,边实时渲染功能,调用helm template接口,当前编辑的chart包进行渲染,并将选然后的内容展示到页面分栏进行代码对比。
9. 根据权利要求1所述的在线chart包编排系统,其特征在于,chart包在线编写或修改完成后,由所述Chart包打模块调用helm package接口,生成tgz制品保存到服务器端,可选择下载。
10. 根据权利要求1所述的在线chart包编排系统,其特征在于,所述包推送模块用于调用helm push接口,将tgz制品推送到仓库存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311775615.7A CN117850817A (zh) | 2023-12-22 | 2023-12-22 | 一种在线chart包编排系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311775615.7A CN117850817A (zh) | 2023-12-22 | 2023-12-22 | 一种在线chart包编排系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850817A true CN117850817A (zh) | 2024-04-09 |
Family
ID=90547359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311775615.7A Pending CN117850817A (zh) | 2023-12-22 | 2023-12-22 | 一种在线chart包编排系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850817A (zh) |
-
2023
- 2023-12-22 CN CN202311775615.7A patent/CN117850817A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7490167B2 (en) | System and method for platform and language-independent development and delivery of page-based content | |
KR100290198B1 (ko) | 클라이언트와비상주서버프로그램사이의통신을위한시스템 | |
US7406659B2 (en) | Smart links | |
CN103731483B (zh) | 一种基于云计算的虚拟文件系统 | |
KR101038896B1 (ko) | 서비스 프로그램을 생성하는 시스템, 방법 및 서비스 프로그램을 생성하기 위한 프로그램을 기록한 컴퓨터 판독가능 매체 | |
US20030081003A1 (en) | System and method to facilitate analysis and removal of errors from an application | |
CN104216700B (zh) | 基于云计算的html5应用的打包、安装、卸载、运行方法的系统 | |
CN101192216B (zh) | 静态页面控件与web服务器互动的实现方法及web服务器 | |
US7454660B1 (en) | System and method for testing applications at the business layer | |
US20040215719A1 (en) | Method and system for designing, editing and publishing web page content in a live internet session | |
CN104636139A (zh) | 一种可视化跨平台移动应用开发与生成系统 | |
CN102479224A (zh) | 一种编辑应用网页的方法及应用网页编辑装置 | |
CN101291253B (zh) | 一种网管客户端基于图形界面的人机命令交互方法 | |
US20170206188A1 (en) | Manipulation of an ajax tree presentation | |
Chadwick et al. | Programming ASP. NET MVC 4: Developing Real-World Web Applications with ASP. NET MVC | |
CN113419969B (zh) | 基于浏览器插件的界面自动化成功率保障方法 | |
US6978218B1 (en) | System and method for testing applications at the presentation layer | |
US20180095807A1 (en) | Method and Apparatus for Automatic Processing of Service Requests on an Electronic Device | |
FR2730327A1 (fr) | Outil de generation et d'execution de commandes a interface graphique | |
Chang et al. | Developing mobile applications on the Android platform | |
JP2006277771A (ja) | 計算機ネットワーク用の端末装置および操作履歴記録方法 | |
CN117850817A (zh) | 一种在线chart包编排系统 | |
FR2827686A1 (fr) | Utilisation d'hyperliens dans un programme d'une application d'automatisme et station de programmation d'une telle application | |
Freeman | Essential Angular for Asp. Net Core MVC | |
CA2347148A1 (en) | Enterprise level integration and communication techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |