CN117850817A - 一种在线chart包编排系统 - Google Patents

一种在线chart包编排系统 Download PDF

Info

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
Application number
CN202311775615.7A
Other languages
English (en)
Inventor
高普光
李成钢
蒋思玉
赵志宏
康鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
China Telecom Digital Intelligence Technology Co Ltd
Original Assignee
China Telecom Corp Ltd
China Telecom Digital Intelligence Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd, China Telecom Digital Intelligence Technology Co Ltd filed Critical China Telecom Corp Ltd
Priority to CN202311775615.7A priority Critical patent/CN117850817A/zh
Publication of CN117850817A publication Critical patent/CN117850817A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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包编排系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种在线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制品推送到仓库存储。
CN202311775615.7A 2023-12-22 2023-12-22 一种在线chart包编排系统 Pending CN117850817A (zh)

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)

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