CN117435215A - 研发环境部署方法、系统、计算机设备和存储介质 - Google Patents

研发环境部署方法、系统、计算机设备和存储介质 Download PDF

Info

Publication number
CN117435215A
CN117435215A CN202210816079.XA CN202210816079A CN117435215A CN 117435215 A CN117435215 A CN 117435215A CN 202210816079 A CN202210816079 A CN 202210816079A CN 117435215 A CN117435215 A CN 117435215A
Authority
CN
China
Prior art keywords
template
environment
resource pool
target
development environment
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
CN202210816079.XA
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210816079.XA priority Critical patent/CN117435215A/zh
Publication of CN117435215A publication Critical patent/CN117435215A/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/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种研发环境部署方法、系统和计算机设备。所述方法涉及云技术,包括:接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求,根据研发环境需求,确定对应的目标资源池和目标环境模板。获取目标资源池对应的集群访问信息配置文件,并根据集群访问信息配置文件确定目标资源池所在的集群命名空间,进而基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将目标研发环境部署至目标资源池所在的集群命名空间中。采用本方法能够避免多个研发人员使用同一套研发环境导致的冲突问题,且无需针对每个研发人员在不同研发阶段分别搭建完整的研发环境,可减少研发环境的搭建时间,进一步提升研发效率。

Description

研发环境部署方法、系统、计算机设备和存储介质
技术领域
本申请涉及云技术领域,特别是涉及一种研发环境部署方法、系统、计算机设备和存储介质。
背景技术
随着互联网、实时数据流的多样化发展,以及对不同应用程序或应用平台的开发、测试和更新等研发需求的推动,云技术作为各类行业数据的系统后盾支撑,迅速发展起来。
传统上,对于不同企业而言,对应用程序或应用平台进行研发时,需要为企业内部研发人员配备独立使用的研发环境,具体来说,针对研发过程中的环境需求,研发人员或运维人员可根据环境需求申请资源,再基于所申请到的资源,部署业务服务以及相关依赖组件,同时从仓库拉取业务服务代码镜像进行部署,以搭建得到新的研发环境,供研发人员使用。
然而,发明人发现,传统研发环境的搭建是由研发人员或者运维人员执行创建的,通常需要针对不同研发人员的需求,比如开发环境、测试环境、集成测试环境、演示环境、客户体验环境以及正式环境等不同环境需求,搭建一套完整的研发环境,其搭建流程繁琐,且搭建周期较长,十分耗费时间,导致研发效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少研发环境搭建时间,提升研发效率的研发环境部署方法、系统、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种研发环境部署方法。所述方法包括:
接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
在其中一个实施例中,在所述对所述对象权限进行类别识别,获得所述对象权限的类别之后,还包括:
若所述对象权限为研发环境管理权限,则检测研发环境管理指令;
响应所述研发环境管理指令,执行与所述研发环境管理指令对应的研发环境管理操作;其中,所述研发环境管理指令包括环境新建指令、环境删除指令、环境修改指令、环境升级指令、回滚指令、以及升级历史记录查询指令;与所述研发环境管理指令对应的研发环境管理操作,包括:与所述环境新建指令对应的研发环境新建操作,与所述环境删除指令对应的研发环境删除操作,与所述环境修改指令对应的研发环境修改操作,与所述环境升级指令对应的研发环境升级操作,与所述回滚指令对应的研发环境回滚操作,以及与所述升级历史记录查询指令对应的环境升级历史记录查询操作。
在其中一个实施例中,在所述对所述对象权限进行类别识别,获得所述对象权限的类别之后,还包括:
若所述对象权限为企业管理权限,则检测对应的企业管理指令;
响应所述企业管理指令,执行与所述管理指令对应的企业管理操作;其中,所述企业管理指令包括创建指令、添加指令、切换指令、删除指令、移交指令以及对象权限修改指令;所述企业管理操作包括与所述创建指令对应的企业创建操作,与所述添加指令对应的企业添加操作,与所述切换指令对应的企业切换操作,与所述删除指令对应的企业删除操作,与所述移交指令对应的企业移交操作和待移交企业的关联对象的移交操作,与所述对象权限修改指令对应的对象权限修改操作。
在其中一个实施例中,所述方法还包括:
若检测到资源池详情获取指令,则响应所述资源池详情获取指令,获取已连接的集群的集群名称、已部署的研发环境列表、资源池中的各处理节点的详情信息以及资源池管控信息;
若检测到集群命名空间管理指令,则响应所述集群命名空间管理指令,对已连接的集群的命名空间进行设置操作、修改操作或管理操作;
若检测到资源池检测指令,则响应所述资源池检测指令,对已连接的集群的集群运行状态、所述资源池中已部署的组件服务、业务服务或资源占用详情进行检测操作。
在其中一个实施例中,所述环境模板管理指令还包括:模板访问指令、模板删除指令、模板下载指令以及模板下发指令;与所述环境模板管理指令对应的环境模板管理操作,包括:与所述模板访问指令对应的环境模板访问操作,与所述模板删除指令对应的环境模板删除操作,与所述模板下载指令对应的环境模板下载操作,以及与所述模板下发指令对应的环境模板下发操作。
第二方面,本申请还提供了一种研发环境部署系统。所述系统包括:
研发环境需求获取模块,用于接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
第一确定模块,用于根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
第二确定模块,用于获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
目标研发环境部署模块,用于基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
上述研发环境部署方法、系统、计算机设备、存储介质和计算机程序产品中,通过接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求,进而根据研发环境需求,确定对应的目标资源池和目标环境模板,可为不用研发人员的研发环境需求,分别确定出对应的目标资源池和目标环境模板,以构建得到符合各自的研发环境需求的目标研发环境,避免多个研发人员使用同一套研发环境导致的冲突问题。而通过获取目标资源池对应的集群访问信息配置文件,可根据集群访问信息配置文件,确定目标资源池所在的集群命名空间,进而可基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,以将目标研发环境部署至目标资源池所在的集群命名空间中,通过对集群的有效利用,减少研发过程的资源消耗。而由于无需针对每个研发人员在不同研发阶段分别搭建完整的研发环境,可减少研发环境的搭建时间,进一步提升研发效率。
附图说明
图1为一个实施例中研发环境部署方法的应用环境图;
图2为一个实施例中研发环境部署方法的流程示意图;
图3为另一个实施例中研发环境部署方法的流程示意图;
图4为一个实施例中业务服务请求的转发和处理流程示意图;
图5为一个实施例中研发环境部署方法的资源池管理交互示意图;
图6为一个实施例中研发环境部署方法的环境模板管理交互示意图;
图7为一个实施例中研发环境部署方法的研发环境管理交互示意图;
图8为一个实施例中研发环境部署方法的企业管理交互示意图;
图9为又一个实施例中研发环境部署方法的流程示意图;
图10为一个实施例中研发环境部署系统的结构框图;
图11为一个实施例中研发环境部署系统的架构示意图;
图12为一个实施例中企业管理模块的结构框图;
图13为一个实施例中资源池管理模块的结构框图;
图14为一个实施例中环境模板管理模块的结构框图;
图15为一个实施例中研发环境管理模块的结构框图;
图16为一个实施例中访问管理模块的结构框图;
图17为一个实施例中账号管理模块的结构框图;
图18为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的研发环境部署方法涉及云技术,其中,云技术(Cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术表示基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。由于不同技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站,因此云计算技术将变成重要支撑,提供计算、存储、处理和共享等所需的资源。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,因此各类行业数据皆需要强大的系统后盾支撑,可通过云计算来实现。
其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。其中,提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,称为IaaS(Infrastructure as a Service,即基础设施服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、以及网络设备等。其中,按照逻辑功能划分,在IaaS(Infrastructure as a Service,即基础设施服务)层上可以部署PaaS(Platform as a Service,即平台服务)层,PaaS层之上再部署SaaS(Software as aService,即软件服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等,SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
本申请实施例提供的研发环境部署方法涉及云技术中的云计算,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104通过接收终端102送的业务服务处理请求,并获取业务服务处理请求携带的研发环境需求。进而服务器104可根据研发环境需求,确定对应的目标资源池和目标环境模板,并获取目标资源池对应的集群访问信息配置文件,以根据集群访问信息配置文件确定目标资源池所在的集群命名空间。其中,资源池可部署在公有云、私有云或混合云等多云上的集群(具体可以是Kubernetes集群,即容器编排器集群)及集群命名空间中(具体可以是Kubernetes Namespace,即容器编排器集群的集群命名空间,表示容器编排器集群内具有隔离能力的资源类型)。进一步地,服务器104可基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,进而将目标研发环境部署至目标资源池所在的集群命名空间中。其中,研发环境表示研发人员开发应用程序或者应用平台的平台系统,包括SaaS(即软件即服务)应用及其运行的PaaS(即平台服务)组件。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种研发环境部署方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求。
其中,业务服务处理请求表示基于浏览器发起的web请求,具体可以是研发人员基于浏览器发起的研发环境访问请求,其中,不同类型的研发环境访问请求对应的研发环境需求不同,比如在对应用程序或者应用平台等的研发过程中,不同研发阶段对应的研发环境需求,即需要访问的研发环境类型不同,比如开发阶段需要访问开发环境,测试阶段需要访问测试环境、单元测试环境或集成测试环境等,上线阶段需要访问演示环境、客户体验环境以及正式环境等不同的研发环境。
可以理解的是,应用程序或者应用平台的研发过程包括的研发阶段,并不局限于上述的开发阶段、测试阶段以及上线阶段等,还可以根据实际项目或者应用程序的研发要求,增加其他研发阶段,比如生产阶段,仿真阶段,验收阶段等。同样地,不同研发阶段所需要访问的研发环境也不局限于上述的开发环境、测试环境或演示环境等,同样可根据研发要求新增其他不同的研发环境,比如生产环境、验收测试环境、以及仿真环境等。
具体地,通过接收业务服务处理请求,并解析业务服务处理请求,以获取业务服务处理请求携带的研发环境需求。其中,研发环境需求可以理解为不同项目或者应用程序的在不同研发阶段,所需要访问和使用的研发环境,比如不同项目或应用程序开发过程中的开发需求、版本升级需求、测试需求、以及演示需求等,而针对不同研发环境需求,对应的目标资源池和目标环境模板也相同。
在一个实施例中,基于浏览器发起的业务服务处理请求,除了研发环境访问请求,还可以是企业管理请求、企业下各对象的管理请求、账户管理请求、资源池访问(或管理)请求、环境模板访问(或管理)请求、研发环境访问(或管理)请求、以及模板仓库访问(或管理)请求等不同处理请求。
具体地,通过获取业务服务请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,进而获得对象权限的类别,以根据不同对象标识所具有的对象权限,确定是否响应该对象所发起的不同业务服务处理请求,以及是否允许执行不同业务服务处理请求对应的各处理操作。
进一步地,对象权限的类别包括访问权限和管理权限,访问权限用于访问资源池、模板仓库或研发环境等,而管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限。其中,企业管理权限对应企业管理请求,即需要对发起企业管理请求的对象进行权限校验,即判断发起企业管理请求的对象是否具有企业管理权限,如果该对象不具有企业管理权限,则不对该对象发起的企业管理请求进行响应,同时反馈“不具有操作权限”的提示信息,而如果确定该对象具有企业管理权限,则响应所发起的企业管理请求,并执行对应的企业管理操作,包括执行企业创建操作、企业添加操作、企业切换操作、企业删除操作、或企业移交操作等不同处理操作。
同样地,针对其他业务服务请求,包括资源池访问(或管理)请求、环境模板访问(或管理)请求、研发环境访问(或管理)请求、以及模板仓库访问(或管理)请求等,同样需要进行权限校验,比如针对资源池访问请求,则需要判断发起资源池访问请求的对象,是否具有资源池访问权限,又比如针对环境模板管理请求,则需要判断发起环境模板管理请求的对象,是否具有环境模板管理权限,以进一步根据是否具有相应的权限进行后续的处理操作,包括执行对应权限下的处理操作,或者反馈“不具有操作权限”的提示信息。
步骤S204,根据研发环境需求,确定对应的目标资源池和目标环境模板。
其中,目标资源池表示从集群中部署的资源池列表中所选定的资源池,具体可以是发起业务服务处理请求的对象,比如某企业的某个项目的研发人员,根据研发环境需求从集群中部署的资源池列表中所选定的资源池。同样地,目标环境目标,表示从环境版本列表中所选定的目标环境模板标识对应的环境模板,具体可以是发起业务服务处理请求的对象,比如某企业的某个项目的研发人员,根据研发环境需求从环境版本列表中选择的目标环境模板标识对应的环境模板。
具体地,通过获取集群中部署的资源池列表,和模板仓库中的环境版本列表,并根据研发环境需求,从资源池列表中确定出对应的目标资源池,并进一步基于研发环境需求,从环境版本列表中确定出目标环境模板标识,并根据目标环境模板标识,从模板仓库中拉取对应的目标环境模板。
其中,本申请实施例中的集群具体可以是Kubernetes集群,即容器编排器集群,还可以是其他能够提供云计算、云存储、云处理等资源的不同类型的集群。可以理解的是,通过获取Kubernetes集群中部署的资源池列表,以及模板仓库中的环境版本列表,可获知Kubernetes集群中具体部署的各资源池,同时获取模板仓库中实际存储的环境模板,可以包括默认的内置模板,发起业务服务处理请求的对象自行新建的环境模板,以及不同企业或者相同企业的其他对象新建并上传的环境模板等。
进一步地,基于研发环境需求,从环境版本列表中确定出目标环境模板标识后,需要根据目标环境模板标识,具体可是目标环境模板版本编号,即根据目标环境模板版本编号,从模板仓库中拉取对应的目标环境模板。也就是说,各环境模板和各自对应的环境模板版本编号,按照一一对应的关系存储在模板仓库中。
步骤S206,获取目标资源池对应的集群访问信息配置文件,并根据集群访问信息配置文件确定目标资源池所在的集群命名空间。
具体地,集群访问信息配置文件用于建立资源池和集群之间的连接,以将资源池部署在集群上。在本实施例中,集群具体可以是Kubernetes集群,对应的集群访问信息配置文件具体可以是KubeConfig文件(即容器编排器集群的访问配置信息文件),通过KubeConfig文件可连接公有云、私有云或混合云等多云上的Kubernetes集群以及Kubernetes Namespace(即容器编排器集群的集群命名空间),以将资源池部署在Kubernetes集群上。
进一步地,集群访问信息配置文件(即KubeConfig文件),还可用于确定目标资源池所在的集群命名空间(即Kubernetes Namespace)。其中,由于目标研发环境部署在目标资源池中,而目标资源池则是部署在Kubernetes集群上,进而通过确定出目标资源池在Kubernetes集群的具体集群命名空间,可将所确定出的目标环境模板安装至对应的集群命名空间中。
其中,将目标环境模板安装至对应的集群命名空间中后,进一步获取目标资源池中和目标环境模板关联的环境组件和业务组件,并根据目标环境模板,以及进而目标环境模板关联的环境组件和业务组件,搭建得到目标研发环境,并将目标研发环境部署至集群命名空间中。
步骤S208,基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将目标研发环境部署至目标资源池所在的集群命名空间中。
具体地,通过判断目标资源池中是否已具有与目标环境模板关联的环境组件和业务组件,当确定目标资源池中已配备好与目标环境模板关联的环境组件和业务组件时,可基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境。
其中,研发环境表示研发人员开发应用程序或者应用平台的平台系统,包括SaaS(即软件即服务)应用及其运行的PaaS(即平台服务)组件。目标资源池中的环境组件表示用于搭建研发环境所需要的环境配置,比如搭建、运行研发环境的环境配置参数,包括运行过程中临时文件的存储位置、研发环境的环境模板的存储位置、以及在研发环境中进行业务处理的处理结果的存储位置等。
进一步地,业务组件,具体是和业务服务处理请求的研发环境需求相对应,以提供不同的业务服务,比如不同项目或者应用程序的在不同研发阶段,所需要访问和使用的研发环境不同,包括开发环境、测试环境、演示环境或仿真环境等,所需要提供的业务服务不同,比如开发服务、测试服务、演示服务、以及仿真服务等,则需要用到不同的业务组件提供相应的业务服务。
上述研发环境部署方法中,通过接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求,进而根据研发环境需求,确定对应的目标资源池和目标环境模板,可为不用研发人员的研发环境需求,分别确定出对应的目标资源池和目标环境模板,以构建得到符合各自的研发环境需求的目标研发环境,避免多个研发人员使用同一套研发环境导致的冲突问题。而通过获取目标资源池对应的集群访问信息配置文件,可根据集群访问信息配置文件,确定目标资源池所在的集群命名空间,进而可基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,以将目标研发环境部署至目标资源池所在的集群命名空间中,通过对集群的有效利用,减少研发过程的资源消耗。而由于无需针对每个研发人员在不同研发阶段分别搭建完整的研发环境,可减少研发环境的搭建时间,进一步提升研发效率。
在一个实施例中,如图3所示,提供了一种研发环境部署方法,具体包括以下步骤:
步骤S302,根据与目标资源池对应的负载均衡配置信息,将各业务服务处理请求均衡分配至目标资源池的各处理节点。
具体地,将目标研发环境部署至目标资源池所在的集群命名空间中后,针对相应的目标研发环境,添加目标资源池的负载均衡配置信息,其中,负载均衡配置信息用于保证访问目标研发环境时,可均衡地将业务服务请求分配到目标资源池中的不同各处理节点进行处理。
其中,负载均衡配置信息,可以理解为针对资源池中各个处理节点的请求的转发规则信息,即业务服务处理请求进来后,会通过负载均衡配置信息,选择其中一个处理台节点去处理数据,即每个请求只选择其中一个处理节点,来获取并处理业务数据,不存在一个处理节点同时处理多个请求,而导致冲突的情况。
步骤S304,通过处理节点,获取与业务服务处理请求对应的目标业务数据。
具体地,资源池中的资源具体指不同业务服务,及存储的相关的业务数据,进而通过目标资源池中的不同处理节点,可均衡地去获取目标资源池中的不同业务服务相关的业务数据,即可获取与业务服务处理请求对应的目标业务数据。
步骤S306,根据对应处理节点部署的业务转发服务,确定各业务服务处理请求对应的业务服务地址。
其中,目标资源池中部署的不同业务转发服务,具体可以是nginx服务,其中,nginx服务是一种高性能的HTTP和反向代理web服务器,还可以提供电子邮件(IMAP/POP3)代理服务。而业务服务处理请求对应的业务服务地址,表示业务服务处理请求需要访问的服务地址,即通过访问对应的服务地址,在对应的服务地址下,执行业务服务处理请求对应的业务处理操作。
具体地,通过处理节点部署的业务转发服务,即nginx服务,可确定各业务服务处理请求对应的业务服务地址。具体来说,根据nginx服务配置的转发规则信息,确定各业务服务处理请求需要访问的业务服务地址,以将业务服务处理请求转发至对应业务服务地址,并基于对应业务服务地址,对所获取的业务数据进行业务处理。
步骤S308,将各业务服务处理请求,转发至与业务服务地址对应的目标研发环境,并基于目标研发环境对目标业务数据进行处理。
具体地,通过目标资源池中的处理节点部署的业务转发服务,可将各业务服务处理请求,转发至与业务服务地址对应的目标研发环境中,进而基于目标研发环境对目标业务数据进行业务处理。
举例来说,根据业务服务处理请求,以及业务转发服务配置的转发规则信息,可对业务服务处理请求所要访问的业务服务地址进行识别和判断,确定实际的目标研发环境,比如存在业务服务处理请求A和业务服务处理请求B,则对业务服务处理请求A的业务服务地址进行识别时,确定业务服务处理请求A的业务服务地址属于资源池访问服务时,则可将业务服务处理请求A转发至与资源池访问服务对应的研发环境中。又比如,对业务服务处理请求B的业务服务地址进行识别时,确定业务服务处理请求B的业务服务地址属于环境模板管理服务时,则可将业务服务处理请求B转发至与环境模板管理服务对应的研发环境中。
在一个实施例中,上述研发环境部署方法,还包括:
获取业务转发服务携带的转发模板文件,并从转发模板文件中提取转发规则信息;将转发规则信息在转发规则管理页面进行展示;若在转发规则管理页面检测到修改操作,获取对所选择的转发规则信息的修改内容;根据修改内容,对所选择的转发规则信息的转发模板文件进行修改,以对业务转发服务进行更新,得到更新后的业务转发服务;更新后的业务转发服务,用于重新确定对应业务服务处理请求对应的业务服务地址。
其中,业务转发服务的转发规则信息,可从业务转发服务携带的转发模板文件中提取得到,转发模板文件,具体可用于部署业务转发服务的规则信息、文件存储路径、最大连接数、超时时间、锁文件、安全相关参数以及运行日志文件等不同配置信息。
具体地,通过将转发规则信息在转发规则管理页面进行展示,发起业务服务处理请求的对象,可基于转发规则管理页面触发修改操作。其中,触发修改操作时,首先需要选定待修改的转发规则信息,并获取针对该转发规则信息的修改内容,进而根据对转发规则信息的修改内容,进一步对所选择的转发规则信息的转发模板文件进行适应性修改,避免修改不同步的问题,进而通过对转发模板文件进行修改,实现对业务转发服务的更新和升级,以根据更新和升级后的业务转发服务,重新确定对应业务服务处理请求对应的业务服务地址,以保证可正常访问业务服务地址,执行相应的业务处理。
在一个实施例中,如图4所示,提供了一种业务服务请求的转发和处理流程,参照图4可知,各对象,比如企业应用程序或平台的研发人员,可基于浏览器触发业务服务处理请求,其中,在发起业务服务处理请求时,可获知访问研发环境的主机的DNS(即域名解析记录)信息,域名解析记录可以包括主机记录、记录类型、线路类型、记录值以及TTL(生存时间值,单位为秒)。其中,基于对主机的域名解析记录,可获得该主机需要访问的研发环境的业务服务地址,nginx服务用于对业务服务地址进行识别和判断,确定出对应的目标研发环境,并将该主机发起的业务服务处理请求,转发至对应的目标研发环境中。
具体地,参照图4可知,创建研发环境env-1和env-2后,进一步通过nginx模板下发nginx服务,当下发nginx服务时,通过解析该nginx服务的模板文件,
从转发模板文件中提取转发规则信息(具体可以是server_name/proxy_name等规则信息),将转发规则信息存储至数据库(比如MySQL,即关系型数据库管理系统)中,并将转发规则信息在转发规则管理页面进行展示。
其中,通过调用已创建的DNS接口和负载均衡接口,将对应目标研发环境的DNS和负载均衡配置信息,添加至目标研发环境中,通过与目标资源池对应的负载均衡配置信息,将各业务服务处理请求均衡分配至目标资源池的各处理节点。
进一步地,参照图4可知,比如在集群命名空间(NameSpace)中创建了研发环境env-1和env-2,在处理节点1的nginx服务中配置有转发规则信息,当业务服务处理请求进来后,通过负载均衡将该业务服务处理请求分配至处理节点1,针对处理节点1部署的nginx服务,则通过nginx服务配置的转发规则信息,可对业务服务处理请求的业务服务地址进行识别和判断。
简单举例来说,比如业务服务处理请求的地址是123.web1.dev.com(比如代表用户管理服务),则nginx服务将请求转发至地址为http://node1.50081的业务服务中进行处理。又比如业务服务处理请求的地址是234.web2.dev.com(比如代表订单管理服务),则nginx服务将请求转发至地址为http://node1:50082的业务服务中进行处理。其中,业务服务处理请求的地址,比如123.web1.dev.com,具体是通过对主机的DNS解析获得。
其中,通过为目标资源池以及目标研发环境,配置DNS信息、负载均衡配置信息以及nginx服务配置的转发规则信息,不同研发人员或运维人员等对象,可基于浏览器(即WEB端)进行业务服务访问或处理,同时,在各类信息配置完成后同样可利用命令行扥方式,进行业务服务访问或处理。
本实施例中,根据与目标资源池对应的负载均衡配置信息,将各业务服务处理请求均衡分配至目标资源池的各处理节点,并通过处理节点,获取与业务服务处理请求对应的目标业务数据,进而根据对应处理节点部署的业务转发服务,确定各业务服务处理请求对应的业务服务地址,以将各业务服务处理请求,转发至与业务服务地址对应的目标研发环境,并基于目标研发环境对目标业务数据进行处理。实现了对各业务服务处理请求的均衡分配,避免出现处理冲突的问题,同时通过将各业务服务处理请求,分别转发至对应的目标研发环境中,进行业务服务处理,提升对研发过程中不同业务处理服务的快速、高效处理,减少资源消耗,进一步提升研发效率。
在一个实施例中,提供了一种研发环境部署方法,具体包括:
提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限;对对象权限进行类别识别,获得对象权限的类别;对象权限的类别包括访问权限和管理权限,访问权限用于访问资源池、模板仓库或研发环境,管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限;
若对象权限为资源池管理权限,则响应所检测到的资源池新建指令,新建资源池,并为资源池添加集群访问信息配置文件;基于集群访问信息配置文件触发集群连接操作,并通过集群连接操作获得集群访问信息配置文件的有效性;若确定集群访问信息配置文件有效,基于集群访问信息配置文件建立和集群的连接,并将资源池部署在已连接的集群中;
若检测到资源池删除指令,且确定资源池中未部署与研发环境相关的环境组件或业务组件时,执行与资源池删除指令对应的资源池删除操作;或若确定资源池中部署有与研发环境相关的环境组件或业务组件,则反馈删除失败的提示信息。
其中,在接收到接收业务服务处理请求后,提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别。其中,对象权限的类别包括访问权限和管理权限,访问权限用于访问资源池、模板仓库或研发环境,而管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限。
具体地,通过判断当前对象权限具体属于管理权限中的哪一种权限,比如判断对象权限为资源池管理权限时,则表明当前根据与资源池管理权限对应的资源池管理指令,对资源池进行管理操作,其中,与资源池管理权限对应的资源池管理指令,可以包括资源池新建指令、资源池删除指令、资源池详情获取指令、集群命名空间管理指令以及资源池检测指令等。
进一步地,当检测到资源池新建指令时,响应资源池新建指令,新建资源池,并为资源池添加集群访问信息配置文件,其中,集群访问信息配置文件用于建立和集群的连接,以将资源池部署在已连接的集群中。
其中,在根据集群访问信息配置文件建立资源池和集群之间的连接之前,基于集群访问信息配置文件触发一次集群连接操作,并通过集群连接操作,判断所添加的集群访问信息配置文件的有效性。只有确定集群访问信息配置文件有效时,才进一步基于集群访问信息配置文件建立和集群的连接,以将资源池部署在已连接的集群中。
在一个实施例中,当检测到资源池删除指令时,进一步检测资源池是否部署有可使用的研发环境,当确定资源池中未部署与研发环境相关的环境组件或业务组件时,则执行与资源池删除指令对应的资源池删除操作。相反地,若确定资源池中部署有与研发环境相关的环境组件或业务组件,则无法删除该资源池,并反馈删除失败的提示信息。
在一个实施例中,与资源池管理权限对应的资源池管理指令,还包括:资源池详情获取指令、集群命名空间管理指令以及资源池检测指令,则该研发环境部署方法,还可以包括以下步骤:
若检测到资源池详情获取指令,则响应资源池详情获取指令,获取已连接的集群的集群名称、已部署的研发环境列表、资源池中的各处理节点的详情信息以及资源池管控信息;
若检测到集群命名空间管理指令,则响应集群命名空间管理指令,对已连接的集群的命名空间进行设置操作、修改操作或管理操作;
若检测到资源池检测指令,则响应资源池检测指令,对已连接的集群的集群运行状态、资源池中已部署的组件服务、业务服务或资源占用详情进行检测操作。
具体地,当检测到资源池详情获取指令时,则响应资源池详情获取指令,执行对应的资源池详情获取操作,具体来说,需要获取已连接的集群的集群名称、已部署的研发环境列表、资源池中的各处理节点的详情信息以及资源池管控信息等,其中,已连接的集群的集群名称可以是不同类型的集群,以及各类型下的集群名称,具体可以是通过KubeConfig文件所连接的不同Kubernetes集群,已部署的研发环境列表,则用于表示资源池中已部署的可访问和使用的各研发环境,资源池中的各处理节点的详情信息,包括资源池中各处理节点的处理性能、支持的处理业务、以及处理节点占用情况等信息。
同样地,当检测到集群命名空间管理指令时,则响应集群命名空间管理指令,执行相应的集群命名空间管理操作,具体来说,集群命名空间管理操作,可以包括对已连接的集群的命名空间进行设置操作、修改操作、以及管理操作等,其中,具体可以是对Kubernetes集群的命名空间进行设置操作、修改操作以及管理操作等。
进一步地,当检测到资源池检测指令时,则响应资源池检测指令,执行对应的资源池检测操作,具体是执行对已连接的集群的集群运行状态、资源池中已部署的组件服务、业务服务或资源占用详情的检测操作。其中,集群的运行状态包括Kubernetes集群的运行状态,即可以包括集群是否正常运行,集群内存占用详情等,而资源池中已部署的组件服务、业务服务,可以包括用于搭建研发环境的环境配置、研发环境支持的业务服务(比如针对不同模块或组件的访问服务、管理服务等)等,资源占用详情用于表示集群中部署的资源池中,资源的占用情况,比如资源池中部署的组件服务、业务服务的占用情况,即是否被用于搭建研发环境,是否存在空闲状态的组件服务或业务服务等详情信息。
在一个实施例中,如图5所示,提供了一种研发环境部署方法的资源池管理交互过程,参照图5可知,进行资源池管理的交互过程如下:
步骤S501,基于WEB端(即浏览器端)发起注册或登录请求,并将注册或登录请求反馈至账号系统。
其中,具体可以是研发人员或运维人员等对象,基于WEB端发起注册或登录请求。
步骤S502,账号系统接收到注册或登录请求时,根据注册或登录请求进行对象的注册或者登录,注册或登陆成功后,向WEB端反馈注册或登录结果。
步骤S503,当确定登录成功后,基于WEB端触发新建资源池指令,通过响应新建资源池指令,新建资源池,并为资源池添加集群访问信息配置文件。
步骤S504,资源池管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有连接集群的操作权限。
其中,也可以对判断当前登录的对象是否为当前业务的拥有者,来确定当前登录的对象是否具有操作权限。
步骤S505,当确定当前登录的对象具有连接集群的操作权限时,资源池管理模块通过集群访问信息配置文件触发和集群的连接操作。
其中,集群访问信息配置文件具体可以是KubeConfig文件,可建立连接的集群具体可以是Kubernetes集群。
步骤S506,资源池管理模块接收Kubernetes集群反馈的连接结果,当确定连接成功时,将资源池部署在集群中,并将集群相关的信息保存到数据库中。
步骤S507,资源池管理模块向WEB端反馈资源池的新建结果。
其中,新建结果可以包括新建成功和新建失败。
步骤S508,基于WEB端发起资源池删除指令。
步骤S509,资源池管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有删除资源池的操作权限。
步骤S510,当确定当前登录的对象具有删除资源池的操作权限时,资源管理模块通过研发环境管理模块,判断资源池中是否部署有与研发环境相关的环境组件或业务组件。
步骤S511,研发环境管理模块将判断结果反馈至资源管理模块。
步骤S512,当未部署与研发环境相关的环境组件或业务组件时,资源池管理模块执行与资源池删除指令对应的资源池删除操作。
步骤S513,当部署有与研发环境相关的环境组件或业务组件时,向WEB端反馈删除失败的提示信息。
本实施例中,通过提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,进而对对象权限进行类别识别,获得对象权限的类别,并根据不同对象权限的类别执行相应的处理操作。当对象权限为资源池管理权限时,则响应所检测到的资源池新建指令,新建资源池,并为资源池添加集群访问信息配置文件,并基于集群访问信息配置文件触发集群连接操作,通过集群连接操作获得集群访问信息配置文件的有效性。当确定集群访问信息配置文件有效时,则基于集群访问信息配置文件建立和集群的连接,并将资源池部署在已连接的集群中。同样地,当检测到资源池删除指令,且确定资源池中未部署与研发环境相关的环境组件或业务组件时,执行与资源池删除指令对应的资源池删除操作,而如果确定资源池中部署有与研发环境相关的环境组件或业务组件,则反馈删除失败的提示信息。实现了根据不同的对象权限类别,对相应的模块或者组件进行管理,进而通过对组件进行管理,为不同业务服务处理请求提供相应的研发环境和业务处理地址,避免处理冲突,提升研发效率和业务处理效率。
在一个实施例中,提供了一种研发环境部署方法,具体包括:
提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限;对对象权限进行类别识别,获得对象权限的类别;对象权限的类别包括访问权限和管理权限,访问权限用于访问资源池、模板仓库或研发环境,管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限;
若对象权限为环境模板管理权限,则检测环境模板管理指令;其中,环境模板管理指令包括模板新建指令;响应模板新建指令,获取对应的模板名称;若确定模板仓库中不存在与模板名称一致的环境模板,则调用集群的包管理组件创建与模板名称对应的模板数据文件,并将模板数据文件上传至模板仓库中。
具体地,在接收到接收业务服务处理请求后,提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别。进一步地,通过判断当前对象权限具体属于管理权限中的哪一种权限,比如判断对象权限为环境模板管理权限时,则表明当前根据环境模板管理权限对应的环境模板管理指令,对各环境模板进行管理操作。其中,环境模板管理指令包括模板新建指令,模板修改指令、模板访问指令、模板删除指令、模板下载指令以及模板下发指令等。
进一步地,当检测到模板新建指令时,响应模板新建指令获取对应的模板名称,并判断模板仓库中是否存在与模板名称一致的环境模板。若确定模板仓库中不存在与模板名称一致的环境模板,则调用集群的包管理组件创建与模板名称对应的模板数据文件,并将模板数据文件作为待安装的环境模板上传至模板仓库中,以供当前对象或其他对象进行访问、调用等处理操作。
在一个实施例中,环境模板管理指令还包括模板修改指令;响应环境模板管理指令,执行与环境模板管理指令对应的环境模板管理操作的步骤,还包括:
响应模板修改指令,获取待修改的目标模板,并对目标模板进行修改权限校验,得到对应的校验结果;若校验结果为目标模板允许修改,则执行与模板修改指令对应的模板修改操作,得到修改后的环境模板;基于修改后的环境模板进行合法性校验,得到对应的校验结果;若校验结果为校验通过,将修改后的环境模板提交至模板仓库中存储。
具体地,当检测到模板修改指令时,响应模板修改指令,获取待修改的目标模板,并对目标模板进行修改权限校验,得到对应的校验结果,并进一步根据校验结果判断所选定的目标模板是否允许被当前对象修改。其中,针对当前对象而言,该对象预先新建并上传至模板仓库中的环境模板允许被修改,而如果是默认模板或者其他对象创建并上传至模板仓库的环境模板,则不允许被当对象修改,即当前对象不具备修改权限。
进一步地,当根据校验结果确定目标模板允许修改时,则执行与模板修改指令对应的模板修改操作,得到修改后的环境模板,并进一步对修改后的环境模板进行合法性校验,即判断对环境模板的修改是否合法,具体可以是判断对环境模板的修改是否为恶意修改,是否符合研发环境的合法性要求,以及是否符合集群的合法性要求等。其中,只有当校验结果为校验通过时,则表明当前修改有效,将修改后的环境模板提交至模板仓库中进行存储,以供下次查看、调用或者修改等。
在一个实施例中,环境模板管理指令还包括:模板访问指令、模板删除指令、模板下载指令以及模板下发指令;与环境模板管理指令对应的环境模板管理操作,包括:与模板访问指令对应的环境模板访问操作,与模板删除指令对应的环境模板删除操作,与模板下载指令对应的环境模板下载操作,以及与模板下发指令对应的环境模板下发操作。
具体地,当检测到模板访问指令时,则判断需要访问的环境模板是否已存在模板仓库中,如果存在,则执行模板访问操作,如果确定模板仓库中不存在需要访问的环境模板,则需进一步触发相应的模板新建指令,以新建得到所需的环境模板。
同样地,当检测到模板下载指令时,则判断需要下载的环境模板是否已存在模板仓库中,如果存在,则执行模板下载操作,如果确定模板仓库中不存在需要下载的环境模板,则需进一步触发相应的模板新建指令,以新建得到所需的环境模板,进行访问和下载。
进一步地,模板下发指令用于从模板仓库中选择对应的目标模板进行下发,通过下发环境模板,可以在资源池搭建研发环境。其中,当检测到模板下发指令时,则进一步判断需要下发的环境模板是否已存在模板仓库中,如果存在,则执行模板下发操作,如果不存在,则需要进一步触发相应的模板新建指令,以新建得到所需的环境模板,进行模板下发操作。
在一个实施例中,当检测到模板删除指令时,响应模板删除指令,获取待删除的目标模板,并对目标模板进行删除权限校验,得到对应的校验结果,并进一步根据校验结果判断所选定的目标模板是否允许被当前对象删除。
具体地,针对当前对象而言,该对象预先新建并上传至模板仓库中的环境模板允许被删除,而如果是默认模板或者其他对象创建并上传至模板仓库的环境模板,则不允许被当对象删除,即当前对象不具备删除权限。而当根据校验结果确定目标模板允许删除时,则执行与模板修改指令对应的模板删除操作,删除所选定的目标模板。
在一个实施例中,针对所创建的环境模板,需要按所指定的仓库命名空间上传到模板仓库中统一进行存储。其中,针对模板仓库会设置相应的仓库命名空间管理模块,通过在创建仓库时对应设置好仓库命名空间,即仓库命名空间用于对仓库进行划分,并分别设置相应的命名空间,不同命名空间中存储有不同的环境模板。其中,所指定的仓库命名空间表示在上传环境模板时,所指定的在模板仓库中的具体存储位置。
在一个实施例中,如图6所示,提供了一种研发环境部署方法的环境模板管理交互过程,参照图6可知,进行环境模板管理的交互过程包括:
步骤S601,基于WEB端(即浏览器端)发起注册或登录请求,并将注册或登录请求反馈至账号系统。
其中,具体可以是研发人员或运维人员等对象,基于WEB端发起注册或登录请求。
步骤S602,账号系统接收到注册或登录请求时,根据注册或登录请求进行对象的注册或者登录,注册或登陆成功后,向WEB端反馈注册或登录结果。
步骤S603,当确定登录成功后,基于WEB端触发模板新建指令,并将模板新建指令发送至环境模板管理模块。
步骤S604,环境模板管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有新建模板的权限。
其中,也可以对判断当前登录的对象是否为当前业务的拥有者,来确定当前登录的对象是否具有操作权限,比如新建环境模板的权限等。
步骤S605,获取模板新建指令对应的模板名称,并判断是否存在与模板名称一致的环境模板。
步骤S606,当确定存在与模板名称一致的环境模板时,向WEB端反馈模板已存在的提示信息。
步骤S607,当确定不存在与模板名称一致的环境模板时,调用集群的包管理组件创建与模板名称对应的模板数据文件。
步骤S608,包管理组件将模板数据文件作为环境模板上传至模板仓库中。
步骤S609,模板仓库将上传结果反馈至环境模板管理模块。其中,上传结果包括上传成功和上传失败。
步骤S610,环境模板管理模块向WEB端反馈环境模板的上传结果。
步骤S611,环境模板管理模块将环境模板的相关信息存储至数据库中。
步骤S612,环境模板管理模块接收基于WEB端触发的模板访问请求,并判断当前登录的对象是否具有访问模板的权限。
步骤S613,当确定当前登录的对象具有访问模板的权限时,环境模板管理模块根据模板访问请求携带的目标环境模板标识,从模板仓库中拉取对应的目标环境模板。
步骤S614,环境模板管理模块将目标环境模板以及对应的模板内容,反馈至WEB端。
步骤S615,环境模板管理模块接收基于WEB端触发的模板修改请求,并判断当前登录的对象是否具有修改模板的权限。
步骤S616,当确定当前登录的对象具有修改模板的权限时,环境模板管理模块获取修改后的环境模板,并校验修改后的环境模板的合法性。
步骤S617,当确定修改后的环境模板的校验结果为校验合法时,环境模板管理模块将修改后的环境模板提交至模板仓库中存储。
步骤S618,环境模板管理模块将环境模板的相关信息存储至数据库中。
步骤S619,环境模板管理模块向WEB端反馈对环境模板的修改结果。其中,修改结果包括修改成功和修改失败。
本实施例中,通过提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别,进而根据不同类别的对象权限执行相应的处理操作。若对象权限为环境模板管理权限,则检测并应模板新建指令,获取对应的模板名称,当定模板仓库中不存在与模板名称一致的环境模板时,调用集群的包管理组件创建与模板名称对应的模板数据文件,并将模板数据文件上传至模板仓库中。实现了根据不同的对象权限类别,对相应的环境模板或者组件进行管理,进而通过对各模板或组件的管理,满足不同业务服务处理请求的研发环境需求,可避免需求处理冲突,提升研发效率和业务处理效率。
在一个实施例中,提供了一种研发环境部署方法,具体包括:
提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限;对对象权限进行类别识别,获得对象权限的类别;对象权限的类别包括访问权限和管理权限,访问权限用于访问资源池、模板仓库或研发环境,管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限;
若对象权限为研发环境管理权限,则检测研发环境管理指令;响应研发环境管理指令,执行与研发环境管理指令对应的研发环境管理操作;其中,研发环境管理指令包括环境新建指令、环境删除指令、环境修改指令、环境升级指令、回滚指令、以及升级历史记录查询指令;与研发环境管理指令对应的研发环境管理操作,包括:与环境新建指令对应的研发环境新建操作,与环境删除指令对应的研发环境删除操作,与环境修改指令对应的研发环境修改操作,与环境升级指令对应的研发环境升级操作,与回滚指令对应的研发环境回滚操作,以及与升级历史记录查询指令对应的环境升级历史记录查询操作。
具体地,在接收到接收业务服务处理请求后,提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别。进一步地,通过判断当前对象权限具体属于管理权限中的哪一种权限,比如判断对象权限为研发环境管理权限时,则表明当前根据研发环境管理权限对应的研发环境管理指令,对各研发环境进行管理操作。其中,研发环境管理指令包括环境新建指令、环境删除指令、环境修改指令、环境升级指令、回滚指令、以及升级历史记录查询指令。
进一步地,当检测到环境新建指令时,获取与环境新建指令对应的待创建的研发环境,并修改待创建的环境状态为创建中,通过获取模板仓库中的环境版本列表,从环境版本列表中,确定出目标环境模板标识,即确定出待创建的研发环境的版本,进而根据目标环境模板标识,从模板仓库中拉取对应的目标环境模板。
其中,需要根据环境新建指令对应的研发环境需求,从资源池列表中确定出用于部署目标研发环境的目标资源池,并获取目标资源池对应的集群访问信息配置文件,以通过解析集群访问信息配置文件,确定对应的集群命名空间。进一步调用集群的包管理组件,将目标环境模板安装至集群中指定的集群命名空间中,其中,调用集群的包管理组件时,会将部署在目标资源池中与目标环境模板相关的环境组件或业务组件,和目标环境模板进行组合后得到目标研发环境,并将目标研发环境部署至集群指定的集群命名空间中。
在一个实施例中,当检测到环境删除指令时,响应环境删除指令,则判断需要删除的研发环境是否已存在资源池中,如果存在,则获取待删除的研发环境,并对研发环境进行删除权限校验,得到对应的校验结果,并进一步根据校验结果判断所选定的研发环境是否允许删除。具体来说,需要判断该研发环境的是否达到相应的使用期限,或者该研发环境是否已完成不同研发人员的研发需求,如果研发环境已达到使用期限或者已完成不同研发人员的研发需求,则表明当前研发环境允许被删除,进而执行对应的研发环境删除操作,删除所选定的研发环境。
同样地,当检测到环境修改指令、或环境升级指令、或回滚指令时,响应环境修改指令或环境升级指令或回滚指令,判断需要修改或升级或回滚的研发环境是否已存在资源池中,如果存在,则获取待修改或升级或回滚的研发环境,执行相应的研发环境修改操作、或研发环境升级操作、或研发环境回过操作。
其中,当检测到历史升级记录查询指令时,判断当前对象是否具有历史记录查询权限,当确定当前对象具有历史记录查询权限时,执行与升级历史记录查询指令对应的环境升级历史记录查询操作,获取所需的环境升级历史记录。
在一个实施例中,如图7所示,提供了一种研发环境部署方法的研发环境管理交互过程,参照图7可知,进行研发环境管理的交互过程包括:
步骤S701,基于WEB端发起注册或登录请求,并将注册或登录请求反馈至账号系统。
步骤S702,账号系统接收到注册或登录请求时,根据注册或登录请求进行对象的注册或者登录,注册或登陆成功后,向WEB端反馈注册或登录结果。
步骤S703,当确定登录成功后,资源池管理模块向WEB端反馈已部署的资源池列表。
步骤S704,当确定登录成功后,模板管理模块向WEB端反馈模板仓库中的环境版本列表。
步骤S705,WEB端根据研发环境需求,从资源池列表中确定出对应的目标资源池,并从环境版本列表中确定出目标环境模板标识。
步骤S706,基于WEB端触发新建研发环境指令,并将新建研发环境指令发送至研发环境管理模块。
步骤S707,研发环境管理模块根据新建研发环境指令,对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有新建研发环境的权限。
其中,研发环境管理模块,还可接收基于WEB端触发的环境模板下发指令,并对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有下发环境模板的权限。
步骤S708,当确定具有新建研发环境的权限时,研发环境管理模块,获取目标资源池对应的集群访问信息配置文件,以通过解析集群访问信息配置文件,确定对应的集群命名空间。
步骤S709,研发环境管理模块调用集群的包管理组件,根据目标环境模板标识,从模板仓库中拉取对应的目标环境模板。
步骤S710,研发环境管理模块调用集群的包管理组件,将部署在目标资源池中与目标环境模板相关的环境组件或业务组件,和目标环境模板进行组合,得到目标研发环境。
步骤S711,研发环境管理模块调用集群的包管理组件,将目标研发环境部署至集群指定的集群命名空间中。
步骤S712,集群向研发环境管理模块反馈部署结果。
步骤S713,研发环境管理模块将部署结果反馈至WEB端。其中,部署结果包括研发环境部署成功,以及研发环境部署失败。
本实施例中,通过提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别,进而根据不同类别的对象权限执行相应的处理操作。若对象权限为研发环境管理权限,则检测并响应研发环境管理指令,执行与研发环境管理指令对应的研发环境管理操作。其中,具体可以执行对研发环境的研发环境新建操作,研发环境删除操作,研发环境修改操作,研发环境升级操作,研发环境回滚操作,以及环境升级历史记录查询操作等,通过对研发环境整个生命周期的管控,在为不同研发人员提供研发环境以执行业务服务处理,并满足不同研发环境需求的基础上,及时进行研发环境的删除,避免环境一直占用服务器资源,减少服务资源消耗,以降低应用程序或应用平台的研发成本。
在一个实施例中,提供了一种研发环境部署方法,具体包括:
提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限;对对象权限进行类别识别,获得对象权限的类别;对象权限的类别包括访问权限和管理权限,访问权限用于访问资源池、模板仓库或研发环境,管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限;
若对象权限为企业管理权限,则检测对应的企业管理指令;响应企业管理指令,执行与管理指令对应的企业管理操作;其中,企业管理指令包括创建指令、添加指令、切换指令、删除指令、移交指令以及对象权限修改指令;企业管理操作包括与创建指令对应的企业创建操作,与添加指令对应的企业添加操作,与切换指令对应的企业切换操作,与删除指令对应的企业删除操作,与移交指令对应的企业移交操作和待移交企业的关联对象的移交操作,与对象权限修改指令对应的对象权限修改操作。
具体地,在接收到接收业务服务处理请求后,提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别。进一步地,通过判断当前对象权限具体属于管理权限中的哪一种权限,比如判断对象权限为企业管理权限时,表明当前根据与企业管理权限对应的企业管理指令,执行相应的企业管理操作。
其中,企业管理指令包括创建指令、添加指令、切换指令、删除指令、移交指令以及对象权限修改指令,企业管理操作包括:企业创建操作,企业添加操作,企业切换操作,企业删除操作,企业移交操作,待移交企业的关联对象的移交操作,以及对象权限修改操作。
进一步地,当检测到创建指令或删除指令时,获取当前对象的对象级别,若当前对象的对象级别为企业拥有者,则表明当前对象可触发相应的创建指令或删除指令,并响应对应的创建指令或删除指令,执行与创建指令对应的企业创建操作,或企业删除操作。其中,当前对象的对象级别包括企业拥有者以及企业普通对象。
其中,若当前对象的对象级别为企业拥有者,则表明当前对象具有企业创建操作,企业添加操作,企业切换操作,企业删除操作,企业移交操作,待移交企业的关联对象的移交操作,以及对象权限修改操作等的操作权限。而如果当前对象的对象级别为企业普通对象,则当前对象具有企业添加操作,企业切换操作等操作权限。
进一步地,当检测到添加指令时,响应相应的添加指令,将当前对象添加至除当前企业之外的其他企业,同样地,当检测到切换指令时,响应相应的切换指令,获取当前对象已加入的企业,并切换至除当前企业之外的其他企业,或者切换至当前对象所指定的其他企业。
在一个实施例中,当检测到移交指令时,获取当前对象的对象级别,若当前对象的对象级别为企业拥有者,则表明当前对象可触发移交指令,则响应对应的移交指令,搜索当前企业下的所有对象,并从所有对象中确定出待移交的目标对象,执行企业移交操作,将企业移交至所选择的目标对象。
其中,企业移交指的是当前对象所具有的企业管理的操作权限(可以包括具有执行针对当前企业的企业删除操作,企业移交操作、对象权限修改操作等操作的操作权限),移交至当前企业下的目标对象,同时将待移交企业的关联对象,也同步移交至目标对象,移交后当前对象成为企业普通对象,而被移交的目标对象则成为企业拥有者。
进一步地,当前对象为企业拥有者时,还可以触发对象权限修改操作,以修改当前企业内的各对象的对象权限,或者触发对象搜索操作和对象权限添加操作,以搜索其他对象添加到当前企业中,并为各对象配置不同的对象权限以及对象级别。
具体来说,当检测到对象权限修改指令时,并确定当前对象的对象级别为企业拥有者时,执行与对象权限修改指令对应的对象权限修改操作。同样地,触发对象搜索操作和对象权限添加操作时,具体可以搜索其他对象添加到当前企业中,并分配企业下的各对象作为企业普通对象或管理员,其中,并配置加入该企业的其他的对象访问当前企业下的资源数据的权限。其中,管理员的对象权限高于企业普通对象,但其对象权限低于企业拥有者,比如管理员可对企业普通对象进行搜索,确定当前企业内的所有企业普通对象。
在一个实施例中,如图8所示,提供了一种研发环境部署方法的企业管理交互过程,参照图8可知,进行企业管理的交互过程包括:
步骤S801,基于WEB端发起注册或登录请求,并将注册或登录请求反馈至账号系统。
其中,具体可以是研发人员或运维人员等对象,基于WEB端发起注册或登录请求。
步骤S802,账号系统接收到注册或登录请求时,根据注册或登录请求进行对象的注册或者登录,注册或登陆成功后,向WEB端反馈注册或登录结果。
步骤S803,当确定登录成功后,基于WEB端触发创建指令,并将创建指令发送至企业管理模块。
步骤S804,企业管理模块接收创建指令,根据创建指令创建对应的企业,并将创建结果反馈至WEB端。其中,创建结果包括创建成功和创建失败。
步骤S805,当接收到添加指令时,企业管理模块根据添加指令,将当前对象添加至所选定的企业中,并将添加结果反馈至WEB端。其中,添加结果包括添加成功和添加失败。
步骤S806,当接收到删除指令时,企业管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有删除企业的权限。
步骤S807,当确定当前登录的对象具有删除企业的权限时,响应删除指令,执行企业删除操作,并向WEB端反馈相应的删除结果。其中,删除结果包括删除成功和删除失败。
步骤S808,当接收到切换指令时,企业管理模块获取当前登录的对象所加入的所有企业,并从所有企业中确定出待切换的目标企业。
步骤S809,响应切换指令,企业管理模块将当前登录的对象所属的企业切换成目标企业,并向WEB端反馈响应的切换结果。其中,切换结果包括切换成功和切换失败。
步骤S810,当接收到移交指令时,企业管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有移交企业的权限。
步骤S811,当确定当前登录的对象具有移交企业的权限时,企业管理模块响应移交指令,搜索当前待移交的企业下的所有对象,并从所有对象中确定出目标对象,执行企业移交操作,将当前待移交的企业移交至目标对象,并将移交结果反馈至WEB端。其中,移交结果包括移交成功和移交失败。
步骤S812,当接收到对象搜索指令时,企业管理模块搜索当前企业和其他企业的已注册对象,得到相应的搜索结果,并将搜索结果反馈至WEB端。
步骤S813,当接收到针对搜索结果的对象添加指令时,企业管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有添加对象的权限。
步骤S814,当确定当前登录的对象具有添加对象的权限时,响应对象添加指令,将搜索得到的各已注册对象添加至当前企业,并为各已注册对象添加对象权限。
步骤S815,企业管理模块将与对象添加指令对应的对象添加结果反馈至WEB端。其中,对象添加结果包括添加成功和添加失败。
步骤S816,当接收到对象权限修改指令时,企业管理模块对当前登录的对象的对象权限进行校验,判断当前登录的对象是否具有修改对象权限的权限。
步骤S817,当确定当前登录的对象具有修改对象权限的权限时,企业管理模块响应对象权限修改指令,将所选定的对象的对象权限修改为指定的目标对象权限。
步骤S818,企业管理模块将与对象权限修改指令对应的权限修改结果,反馈至WEB端。其中,权限修改结果包括修改成功和修改失败。
本实施例中,通过提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限,以对对象权限进行类别识别,获得对象权限的类别,进而根据不同类别的对象权限执行相应的处理操作。若对象权限为企业管理权限,则检测并响应对应的企业管理指令,执行与企业管理指令对应的企业管理操作。其中,具体可以执行企业创建操作,企业添加操作,企业切换操作,企业删除操作,企业移交操作,待移交企业的关联对象的移交操作,以及对象权限修改操作。实现了对根据不同的对象权限类别,执行相应的企业管理操作,并保证不同企业下不同对象的对象权限的准确性,避免出现对象权限混乱,而导致企业内部管理混乱的问题,减少企业管理部分的资源占用,进而避免服务内存占用导致的处理冲突,提升研发效率和业务处理效率。
在一个实施例中,如图9所示,提供了一种研发环境部署方法,参照图9可知,该方法具体包括以下步骤:
步骤S901,当检测到基于WEB端触发的注册或登录请求时,执行对应的注册或登录操作。
步骤S902,当确定基于WEB端成功登录时,执行与添加指令对应的企业添加操作,将当前登录的对象添加至所选定的目标企业中。
步骤S903,当检测到模板新建指令时,响应模板新建指令,新建自定义环境模板或修改默认环境模板,得到可用环境模板,并将可用环境模板存储至模板仓库中。
步骤S904,当检测到业务服务处理请求时,获取与业务服务处理请求对应的研发环境需求。
步骤S905,根据研发环境需求,从集群中部署的资源池列表中确定出对应的目标资源池。
步骤S906,根据研发环境需求,从模板仓库的环境版本列表中确定出目标环境模板标识,并根据目标环境模板标识,从模板仓库中拉取对应的目标环境模板。
步骤S907,获取目标资源池对应的集群访问信息配置文件,并根据集群访问信息配置文件确定目标资源池所在的集群命名空间。
步骤S908,基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境。
步骤S909,将目标研发环境部署至目标资源池所在的集群命名空间中。
步骤S910,为目标资源池添加对应的负载均衡配置信息,并根据负载均衡配置信息,将各业务服务处理请求均衡分配至目标资源池的各处理节点。
步骤S911,通过处理节点,获取与业务服务处理请求对应的目标业务数据。
步骤S912,为各处理节点部署业务转发服务,并根据对应处理节点部署的业务转发服务,确定各业务服务处理请求对应的业务服务地址。
步骤S913,将各业务服务处理请求,转发至与业务服务地址对应的目标研发环境。
步骤S914,访问目标研发环境,并基于目标研发环境对目标业务数据进行处理。
上述研发环境部署方法中,通过接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求,进而根据研发环境需求,确定对应的目标资源池和目标环境模板,可为不用研发人员的研发环境需求,分别确定出对应的目标资源池和目标环境模板,以构建得到符合各自的研发环境需求的目标研发环境,避免多个研发人员使用同一套研发环境导致的冲突问题。而通过获取目标资源池对应的集群访问信息配置文件,可根据集群访问信息配置文件,确定目标资源池所在的集群命名空间,进而可基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,以将目标研发环境部署至目标资源池所在的集群命名空间中,通过对集群的有效利用,减少研发过程的资源消耗。而由于无需针对每个研发人员在不同研发阶段分别搭建完整的研发环境,可减少研发环境的搭建时间,进一步提升研发效率。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的研发环境部署方法的研发环境部署系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个研发环境部署系统实施例中的具体限定可以参见上文中对于研发环境部署方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种研发环境部署系统,包括:研发环境需求获取模块1002、第一确定模块1004、第二确定模块1006以及目标研发环境部署模块1008,其中:
研发环境需求获取模块1002,用于接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求。
第一确定模块1004,用于根据研发环境需求,确定对应的目标资源池和目标环境模板。
第二确定模块1006,用于获取目标资源池对应的集群访问信息配置文件,并根据集群访问信息配置文件确定目标资源池所在的集群命名空间。
目标研发环境部署模块1008,用于基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将目标研发环境部署至目标资源池所在的集群命名空间中。
上述研发环境部署系统中,通过接收业务服务处理请求,并获取业务服务处理请求携带的研发环境需求,进而根据研发环境需求,确定对应的目标资源池和目标环境模板,可为不用研发人员的研发环境需求,分别确定出对应的目标资源池和目标环境模板,以构建得到符合各自的研发环境需求的目标研发环境,避免多个研发人员使用同一套研发环境导致的冲突问题。而通过获取目标资源池对应的集群访问信息配置文件,可根据集群访问信息配置文件,确定目标资源池所在的集群命名空间,进而可基于目标环境模板、目标资源池中的环境组件和业务组件,获得对应的目标研发环境,以将目标研发环境部署至目标资源池所在的集群命名空间中,通过对集群的有效利用,减少研发过程的资源消耗。而由于无需针对每个研发人员在不同研发阶段分别搭建完整的研发环境,可减少研发环境的搭建时间,进一步提升研发效率。
在一个实施例中,提供了一种研发环境部署系统,还包括:请求均衡分配模块,用于根据与目标资源池对应的负载均衡配置信息,将各业务服务处理请求均衡分配至目标资源池的各处理节点;目标业务数据获取模块,用于通过处理节点,获取与业务服务处理请求对应的目标业务数据;业务服务地址确定模块,用于根据对应处理节点部署的业务转发服务,确定各业务服务处理请求对应的业务服务地址;业务服务处理请求转发模块,用于将各业务服务处理请求,转发至与业务服务地址对应的目标研发环境,并基于目标研发环境对目标业务数据进行处理。
在一个实施例中,提供了一种研发环境部署系统,还包括:转发规则信息提取模块,用于获取业务转发服务携带的转发模板文件,并从转发模板文件中提取转发规则信息;转发规则信息展示模块,用于将转发规则信息在转发规则管理页面进行展示;修改内容获取模块,用于若在转发规则管理页面检测到修改操作,获取对所选择的转发规则信息的修改内容;业务转发服务更新模块,用于根据修改内容,对所选择的转发规则信息的转发模板文件进行修改,以对业务转发服务进行更新,得到更新后的业务转发服务;更新后的业务转发服务,用于重新确定对应业务服务处理请求对应的业务服务地址。
在一个实施例中,第一确定模块,还用于:获取集群中部署的资源池列表,和模板仓库中的环境版本列表;根据研发环境需求,从资源池列表中确定出对应的目标资源池;基于研发环境需求,从环境版本列表中确定出目标环境模板标识,并根据目标环境模板标识,从模板仓库中拉取对应的目标环境模板。
在一个实施例中,提供了一种研发环境部署系统,还包括对象权限类别识别模块,用于:提取业务服务处理请求携带的对象标识,并获取对象标识对应的对象权限;对对象权限进行类别识别,获得对象权限的类别;对象权限的类别包括访问权限和管理权限;其中,访问权限用于访问资源池、模板仓库或研发环境;管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限。
在一个实施例中,如图11所示,提供了一种研发环境部署系统架构参照图11可知,研发环境部署系统包括企业管理模块1102、资源池管理模块1104、环境模版管理模块1106、研发环境管理模块1108、仓库管理模块1110、访问管理模块1112以及账号管理模块1114等多个模块。其中,可通过浏览器(即WEB端)访问研发环境部署系统,研发环境部署系统中的各个模块负责不同业务功能,实现在公有云、私有云或混合云等多云上的Kubernetes集群上快速搭建多套研发环境,并对研发环境进行全生命周期管理。其中:
企业管理模块1102,用于管理多个企业,以及对不同企业和各对象之间的关系进行管理,还用于对企业下的各对象对资源池、环境模版、研发环境以及模板仓库的操作权限进行管理。
具体地,企业管理模块1102用于:若对象权限为企业管理权限,则检测对应的企业管理指令,并响应企业管理指令,执行与管理指令对应的企业管理操作。其中,企业管理指令包括创建指令、添加指令、切换指令、删除指令、移交指令以及对象权限修改指令;企业管理操作包括与创建指令对应的企业创建操作,与添加指令对应的企业添加操作,与切换指令对应的企业切换操作,与删除指令对应的企业删除操作,与移交指令对应的企业移交操作和待移交企业的关联对象的移交操作,与对象权限修改指令对应的对象权限修改操作。
在一个实施例中,如图12所示,提供了一种企业管理模块,企业管理模块用于实现企业和各对象之间的关系的管理(即对象是否加入企业,以及企业中包括哪些对象等关系),还可用于对企业下的各对象对资源池、环境模版、研发环境以及模板仓库的操作权限。
具体地,参照图12可知,企业管理模块,用于执行企业创建操作,企业添加操作,企业切换操作,企业删除操作,企业移交操作(移交企业的同时,包括对待移交企业的关联对象的移交操作),对象权限修改操作以及企业设置操作。
资源池管理模块1104,主要用于管理通过集群访问信息配置文件(即KubeConfig文件)所连接的公有云、私有云或混合云等多云上的Kubernetes集群及Kubernetes集群命名空间。
具体地,资源池管理模块用于:若对象权限为资源池管理权限,则响应所检测到的资源池新建指令,新建资源池,并为资源池添加集群访问信息配置文件;基于集群访问信息配置文件触发集群连接操作,并通过集群连接操作获得集群访问信息配置文件的有效性;若确定集群访问信息配置文件有效,基于集群访问信息配置文件建立和集群的连接,并将资源池部署在已连接的集群中。
进一步地,资源池管理模块还用于:若检测到资源池删除指令,且确定资源池中未部署与研发环境相关的环境组件或业务组件时,执行与资源池删除指令对应的资源池删除操作;或若确定资源池中部署有与研发环境相关的环境组件或业务组件,则反馈删除失败的提示信息。
在一个实施例中,资源池管理模块还用于:若检测到资源池详情获取指令,则响应资源池详情获取指令,获取已连接的集群的集群名称、已部署的研发环境列表、资源池中的各处理节点的详情信息以及资源池管控信息;若检测到集群命名空间管理指令,则响应集群命名空间管理指令,对已连接的集群的命名空间进行设置操作、修改操作或管理操作;若检测到资源池检测指令,则响应资源池检测指令,对已连接的集群的集群运行状态、资源池中已部署的组件服务、业务服务或资源占用详情进行检测操作。
在一个实施例中,如图13所示,提供了一种资源池管理模块,参照图13可知,资源池管理模块用于执行:新建资源池操作、资源池删除操作、资源池详情获取操作、集群命名空间管理操作以及资源池检测操作等。
环境模板管理模块1106,用于管理对象基于helm(集群的包管理组件)创建的自定义环境模板,或修改默认的内置模板,得到可用环境模板,并通过模板下发可快速部署一套研发环境。
具体地,环境模板管理模块用于:若对象权限为环境模板管理权限,则检测环境模板管理指令,响应环境模板管理指令,执行与环境模板管理指令对应的环境模板管理操作。
进一步地,环境模板管理指令包括模板新建指令,环境模板管理模块还用于:响应模板新建指令,获取对应的模板名称;若确定模板仓库中不存在与模板名称一致的环境模板,则调用集群的包管理组件创建与模板名称对应的模板数据文件,并将模板数据文件上传至模板仓库中。
同样地,环境模板管理指令还包括模板修改指令,环境模板管理模块还用于:响应模板修改指令,获取待修改的目标模板,并对目标模板进行修改权限校验,得到对应的校验结果;若校验结果为目标模板允许修改,则执行与模板修改指令对应的模板修改操作,得到修改后的环境模板;基于修改后的环境模板进行合法性校验,得到对应的校验结果;若校验结果为校验通过,将修改后的环境模板提交至模板仓库中存储。
在一个实施例中,环境模板管理指令还包括模板访问指令、模板删除指令、模板下载指令以及模板下发指令,环境模板管理模块还用于:执行与模板访问指令对应的环境模板访问操作,与模板删除指令对应的环境模板删除操作,与模板下载指令对应的环境模板下载操作,以及与模板下发指令对应的环境模板下发操作。
在一个实施例中,如图14所示,提供了一种环境模板管理模块,其中,环境模板管理模块用于执行:环境模板新建操作、环境模板访问操作、环境模板修改操作、环境模板删除操作、环境模板下载操作、环境模板下发操作以及模板列表获取操作等。
研发环境管理模块1108,用于管理通过模板下发或新建环境所创建的研发环境,并进一步对研发环境进行升级、回滚、删除以及日志查看等操作。
具体地,研发环境管理模块用于:若对象权限为研发环境管理权限,则检测研发环境管理指令;响应研发环境管理指令,执行与研发环境管理指令对应的研发环境管理操作;其中,研发环境管理指令包括环境新建指令、环境删除指令、环境修改指令、环境升级指令、回滚指令、以及升级历史记录查询指令;与研发环境管理指令对应的研发环境管理操作,包括:与环境新建指令对应的研发环境新建操作,与环境删除指令对应的研发环境删除操作,与环境修改指令对应的研发环境修改操作,与环境升级指令对应的研发环境升级操作,与回滚指令对应的研发环境回滚操作,以及与升级历史记录查询指令对应的环境升级历史记录查询操作。
在一个实施例中,如图15所示,提供了一种研发环境管理模块,其中,研发环境管理模块用于执行:研发环境新建操作,研发环境删除操作,研发环境修改操作,研发环境升级操作,研发环境回滚操作,研发环境列表获取操作、研发环境详情信息获取操作以及环境升级历史记录查询操作等。
仓库管理模块1110,用于管理自建的仓库及仓库命名空间,其中,针对所创建的环境模板,需要按所指定的仓库命名空间上传到模板仓库中统一进行存储。其中,所指定的仓库命名空间表示在上传环境模板时,所指定的在模板仓库中的具体存储位置。
具体地,仓库管理模块1110,用于对模板仓库进行管理,并在创建模板仓库时对应设置好仓库命名空间。其中,仓库命名空间用于对仓库进行划分,并分别设置相应的命名空间作为不同的存储位置,进而可在不同命名空间中分别存储不同的环境模板。
访问管理模块1112,基于将研发环境部署至集群后,通过访问管理模块,添加DNS信息(域名解析记录)、负载均衡配置信息以及业务转发服务(nginx服务)的转发规则信息,以实现创建的研发环境,可通过浏览器供研发人员、运维人员等不同对象进行访问。
具体地,如图16所示,提供了一种访问管理模块,访问管理模块用于执行:DNS信息管理操作、负载均衡配置操作以及转发规则信息部署操作等。
具体地,基于访问管理模块,可为目标资源池添加对应的负载均衡配置信息,并根据负载均衡配置信息,将各业务服务处理请求均衡分配至目标资源池的各处理节点。同时,基于访问管理模块,还可为各处理节点部署业务转发服务,则根据对应处理节点部署的业务转发服务,确定各业务服务处理请求对应的业务服务地址,进而将各业务服务处理请求,转发至与业务服务地址对应的目标研发环境。
账号管理模块1114,用于管理不同已注册的对象,同时提供基本的账号注册、登录、注销、删除、账号信息查看和修改等功能。
具体地,如图17所示,提供了一种账号管理模块,参照图17可知,账号管理模块用于执行:账号注册操作、账号登录操作、账号注销操作、账号删除操作、账号信息查看操作、以及账号信息修改操作等。
上述研发环境部署系统采用B/S架构,将资源池状态、研发环境模版的不同版本、以及研发环境状态等信息存储在MySQL(关系型数据库)中,环境模板文件则存储在COS(对象存储)中。其中,WEB端即浏览器的作用是为研发人员提供发起访问请求的接口,上述各个管理模块,用于对Kubernetes集群上的各研发环境的服务组件、业务信息或业务组件等数据进行管理。
上述研发环境部署系统,可为不用研发人员的研发环境需求,分别确定出对应的目标资源池和目标环境模板,以构建得到符合各自的研发环境需求的目标研发环境,避免多个研发人员使用同一套研发环境导致的冲突问题,通过将各研发环境部署在集群上进行适应,可实现对集群的有效利用,减少研发过程的资源消耗。而由于无需针对每个研发人员在不同研发阶段分别搭建完整的研发环境,可减少研发环境的搭建时间,进一步提升研发效率。
上述研发环境部署系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图18所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储研发环境需求、目标资源池、目标环境模板数据、集群访问信息配置文件、集群访问信息配置文件、环境组件、业务组件、目标研发环境以及集群等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种研发环境部署方法。
本领域技术人员可以理解,图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (13)

1.一种研发环境部署方法,其特征在于,所述方法包括:
接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据与所述目标资源池对应的负载均衡配置信息,将各所述业务服务处理请求均衡分配至所述目标资源池的各处理节点;
通过所述处理节点,获取与所述业务服务处理请求对应的目标业务数据;
根据对应所述处理节点部署的业务转发服务,确定各所述业务服务处理请求对应的业务服务地址;
将各所述业务服务处理请求,转发至与所述业务服务地址对应的目标研发环境,并基于所述目标研发环境对所述目标业务数据进行处理。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取业务转发服务携带的转发模板文件,并从所述转发模板文件中提取转发规则信息;
将所述转发规则信息在转发规则管理页面进行展示;
若在所述转发规则管理页面检测到修改操作,获取对所选择的转发规则信息的修改内容;
根据所述修改内容,对所选择的所述转发规则信息的转发模板文件进行修改,以对所述业务转发服务进行更新,得到更新后的业务转发服务;所述更新后的业务转发服务,用于重新确定对应所述业务服务处理请求对应的业务服务地址。
4.根据权利要求1所述的方法,其特征在于,所述根据所述研发环境需求,确定对应的目标资源池和目标环境模板,包括:
获取集群中部署的资源池列表,和模板仓库中的环境版本列表;
根据所述研发环境需求,从所述资源池列表中确定出对应的目标资源池;
基于所述研发环境需求,从环境版本列表中确定出目标环境模板标识,并根据目标环境模板标识,从所述模板仓库中拉取对应的目标环境模板。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:
提取所述业务服务处理请求携带的对象标识,并获取所述对象标识对应的对象权限;
对所述对象权限进行类别识别,获得所述对象权限的类别;所述对象权限的类别包括访问权限和管理权限;其中,所述访问权限用于访问资源池、模板仓库或研发环境;所述管理权限包括企业管理权限、资源池管理权限、环境模板管理权限以及研发环境管理权限。
6.根据权利要求5所述的方法,其特征在于,在所述对所述对象权限进行类别识别,获得所述对象权限的类别之后,还包括:
若所述对象权限为资源池管理权限,则响应所检测到的资源池新建指令,新建资源池,并为所述资源池添加集群访问信息配置文件;
基于所述集群访问信息配置文件触发集群连接操作,并通过所述集群连接操作获得所述集群访问信息配置文件的有效性;
若确定所述集群访问信息配置文件有效,基于所述集群访问信息配置文件建立和集群的连接,并将所述资源池部署在已连接的集群中;
若检测到资源池删除指令,且确定所述资源池中未部署与研发环境相关的环境组件或业务组件时,执行与资源池删除指令对应的资源池删除操作;或若确定所述资源池中部署有与研发环境相关的环境组件或业务组件,则反馈删除失败的提示信息。
7.根据权利要求5所述的方法,其特征在于,在所述对所述对象权限进行类别识别,获得所述对象权限的类别之后,还包括:
若所述对象权限为环境模板管理权限,则检测环境模板管理指令;
响应所述环境模板管理指令,执行与所述环境模板管理指令对应的环境模板管理操作。
8.根据权利要求7所述的方法,其特征在于,所述环境模板管理指令包括模板新建指令;所述响应所述环境模板管理指令,执行与所述环境模板管理指令对应的环境模板管理操作,包括:
响应所述模板新建指令,获取对应的模板名称;
若确定模板仓库中不存在与所述模板名称一致的环境模板,则调用集群的包管理组件创建与所述模板名称对应的模板数据文件,并将所述模板数据文件上传至模板仓库中。
9.根据权利要求7所述的方法,其特征在于,所述环境模板管理指令还包括模板修改指令;所述响应所述环境模板管理指令,执行与所述环境模板管理指令对应的环境模板管理操作,包括:
响应所述模板修改指令,获取待修改的目标模板,并对所述目标模板进行修改权限校验,得到对应的校验结果;
若所述校验结果为所述目标模板允许修改,则执行与所述模板修改指令对应的模板修改操作,得到修改后的环境模板;
基于所述修改后的环境模板进行合法性校验,得到对应的校验结果;
若所述校验结果为校验通过,将所述修改后的环境模板提交至所述模板仓库中存储。
10.一种研发环境部署系统,其特征在于,所述系统包括:
研发环境需求获取模块,用于接收业务服务处理请求,并获取所述业务服务处理请求携带的研发环境需求;
第一确定模块,用于根据所述研发环境需求,确定对应的目标资源池和目标环境模板;
第二确定模块,用于获取所述目标资源池对应的集群访问信息配置文件,并根据所述集群访问信息配置文件确定所述目标资源池所在的集群命名空间;
目标研发环境部署模块,用于基于所述目标环境模板、所述目标资源池中的环境组件和业务组件,获得对应的目标研发环境,并将所述目标研发环境部署至所述目标资源池所在的集群命名空间中。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
CN202210816079.XA 2022-07-12 2022-07-12 研发环境部署方法、系统、计算机设备和存储介质 Pending CN117435215A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210816079.XA CN117435215A (zh) 2022-07-12 2022-07-12 研发环境部署方法、系统、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210816079.XA CN117435215A (zh) 2022-07-12 2022-07-12 研发环境部署方法、系统、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN117435215A true CN117435215A (zh) 2024-01-23

Family

ID=89546667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210816079.XA Pending CN117435215A (zh) 2022-07-12 2022-07-12 研发环境部署方法、系统、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117435215A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117608632A (zh) * 2024-01-23 2024-02-27 企家有道网络技术(北京)有限公司 一种saas系统演示环境的设置方法、装置及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117608632A (zh) * 2024-01-23 2024-02-27 企家有道网络技术(北京)有限公司 一种saas系统演示环境的设置方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US10606881B2 (en) Sharing container images between mulitple hosts through container orchestration
JP6621543B2 (ja) ハイブリッドアプリケーションの自動更新
US11501881B2 (en) Apparatus and method for deploying a mobile device as a data source in an IoT system
CN108304201B (zh) 对象更新方法、装置及设备
CN108513657B (zh) 数据转换方法及备份服务器
CN108287758A (zh) 一种应用资源管理方法、使用方法及装置
CN108881228A (zh) 云端注册激活方法、装置、设备和存储介质
CN108683668A (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN111651418B (zh) 一种文档内容下载方法、装置、计算机设备和存储介质
US20160269446A1 (en) Template representation of security resources
US10430441B1 (en) Tagging resources of a remote computing service based on locality
CN117435215A (zh) 研发环境部署方法、系统、计算机设备和存储介质
CN112199200B (zh) 资源调度方法、装置、计算机设备和存储介质
CN111222153A (zh) 应用程序权限管理方法、装置和存储介质
CN113885915A (zh) 一种服务更新方法、模块及系统
CN113971191A (zh) 一种数据导入方法、装置和计算机可读存储介质
CN104135503A (zh) 数据下载的方法、装置及系统
CN115914219A (zh) 任务请求处理方法、装置、系统、可读存储介质和电子设备
US20130290830A1 (en) System and method for managing a viewstate of a web application
US20240078144A1 (en) Process sequencing using meta domain model
US20240112062A1 (en) Quantum circuit service
US9235382B2 (en) Input filters and filter-driven input processing
KR102334093B1 (ko) 데이터 관리 장치 및 방법
US11074223B2 (en) Orphaned content remediation
CN108875070B (zh) 一种设置留言类网页的方法、设备和系统

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