CN116069449A - 一种基于容器技术的实验环境部署方法及系统 - Google Patents

一种基于容器技术的实验环境部署方法及系统 Download PDF

Info

Publication number
CN116069449A
CN116069449A CN202310163871.4A CN202310163871A CN116069449A CN 116069449 A CN116069449 A CN 116069449A CN 202310163871 A CN202310163871 A CN 202310163871A CN 116069449 A CN116069449 A CN 116069449A
Authority
CN
China
Prior art keywords
container
experiment
user
experimental
management
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
CN202310163871.4A
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.)
East China University of Science and Technology
Original Assignee
East China University of Science and Technology
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 East China University of Science and Technology filed Critical East China University of Science and Technology
Priority to CN202310163871.4A priority Critical patent/CN116069449A/zh
Publication of CN116069449A publication Critical patent/CN116069449A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明涉及一种基于容器技术的实验环境部署方法及系统,其中方法包括:在资源层提交代码,调用Jenkins相关接口完成镜像到Harbor的创建与上传;Jenkins组件向K8s集群发送部署Pod的请求,K8s集群中的Pod组件将Harbor镜像库中已提交的镜像拉取到集群中并运行代码,完成部署;在业务层基于具体实验案例需求,建立用户与容器一对多映射关系,进而结合实验资源获取、实验环境接入、实验代码操作、实验结果反馈与评估,实现用户自主学习流程的一体化管理。其中系统包括业务管理层、云服务层和基础设施层,可以满足用户对不同实验环境的需求,具有资源利用效率高、可扩展性强、运维管理难度低等优点。

Description

一种基于容器技术的实验环境部署方法及系统
技术领域
本发明涉及云计算技术领域,尤其是涉及一种基于容器技术的实验环境部署方法及系统。
背景技术
随着人工智能、云计算、大数据等新一代信息技术的快速发展以及相关商业应用的快速推广,社会对相关领域人才的需求越来越大。然而,新一代信息技术的实践学习往往需要分布式集群实验环境,学习环境的构建和获取具有较高的技术门槛,从而造成学习者的学习积极性和学习效率较低;此外,新一代信息技术的自主学习途径较少,目前主要通过高校计算机机房开展相关实验教学,学习场所受地域、时间限制,并不适合新一代信息技术的普及和自主学习。因此,如何基于容器虚拟化技术,利用公有云算力按需分配、接入随处可得的优势,构建新一代信息技术学科自主学习与实践平台,对新一代信息技术的普及和人才培养具有重要意义。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于容器技术的实验环境部署方法及系统,解决新一代信息技术自主学习过程中所面临的实验环境构建耗时、学习效果评估困难、学习时间及场所受限等问题。
本发明的目的可以通过以下技术方案来实现:
一种基于容器技术的实验环境部署方法,包括以下步骤:
S1、使用K8s集群客户端作为容器中的存储后端,用于供用户提交代码、由Jenkins构建并保存到Harbor中的镜像库;
S2、用户选择实验类型,根据实验要求上传对应代码;
S3、系统通过语法检测后将所述代码打包上传到GitLab上;Gitlab组件上的Trigger webhook触发Jenkins组件为GitLab上的代码配置相应的镜像并提交到Harbor镜像库中;
S4、Jenkins组件向K8s集群发送部署Pod的请求,K8s集群中的Pod组件将Harbor镜像库中拉取相应的镜像,为用户实验创建相应的容器,在容器上运行用户提交的代码,完成部署并返回结果。
进一步地,步骤S2具体包括以下步骤:
S201、系统根据用户选择的实验类型,调用服务接口trainplat-api请求创建容器;
S202、调用服务接口trainplat-api请求获取容器状态;
S203、创建容器请求。
进一步地,步骤S3具体包括以下步骤:
S301、接收用户上传的代码后系统通过服务接口trainplat-api触发Jenkins为用户提交的代码配置相应的镜像并将其与代码进行结合;
S302、Jenkins将结合的结果上传到Harbor镜像库中。
进一步地,步骤S4具体包括以下步骤:
S401、Jenkins向K8s发送pod部署请求;
S402、部署好的Pod拉取Harbor镜像库中已提交的镜像,将结果成功部署在K8s集群中,执行实验操作,若本次操作是第一次实验,则执行以下步骤,否则执行步骤S403:
1)调用volume-api服务,为每个用户创建相应的硬盘并在业务层数据库保存用户id和云硬盘id的映射关系;
2)基于业务层数据库中每个用户id所关联的云硬盘id调用container-api服务,为用户的每个云硬盘绑定容器,并在业务层数据库保存用户id和容器id的映射关系;
S403、若本次操作不是第一次实验,则基于业务层数据库中每个用户id所关联的云硬盘id,调用container-api服务为用户创建相应容器,并在业务层数据库保存用户id和容器id的映射关系;
S404、代码运行结束后,根据业务层数据库保存用户id和容器id的映射关系,调用trainplat-api接口将每个用户所对应的容器删除,但保留容器所挂载的云硬盘;
S405、代码运行结束后,对容器中logging模块保存的日志文件进行数据过滤筛选并上传至云平台日志特征库,根据日志特征库中的数据对用户进行实验评估。
进一步地,步骤S4中的容器基于jupyter notebook实现代码编译,并安装xeus-cling丰富实验语言,用于供用户为相应的实验选择对应的编译语言。
一种基于容器技术的实验环境部署系统,用于实现如上所述的一种基于容器技术的实验环境部署方法,包括管理层、云服务层和基础设施层;
所述管理层提供以实验为中心的实验管理接口,用于对实验所涉及的实验用户和实验资源进行过程化管理;
所述云服务层用于对实验容器进行请求创建、调用和运行,具体解决容器创建异常问题及访问高峰期并发量大的问题;
所述基础设施层提供云计算和云存储的服务接口。
进一步地,所述的管理层包括用户管理模块和实验管理模块;
所述的实验用户管理模块,一方面用于对系统中的用户信息进行管理,所述用户信息包括用户名、密码及容器编号;另一方面用于对不同的用户分配相对应的角色,并根据不同的角色所对应的权限构建不同功能,从而实现基于角色的权限管理;
所述的实验管理模块包括实验信息管理单元、实验容器管理单元、实验题目管理单元和实验讨论管理单元;
所述的实验信息管理单元用于对基本实验类型和分布式集群实验类型进行增、删、改、查操作;其中,所述基本实验类型包括单机实验类型(如C++、C等程序设计类实验),所述分布式集群实验类型包括大数据、人工智能及区块链等实验;在单机实验类型中,系统会为用户创建调用一个相对的容器,在分布式集群实验类型中,系统为用户创建多个集群容器;
所述的实验容器管理单元用于为用户创建相应的云硬盘,在用户进入实验页面时将实验所关联的实验类型和用户信息发送至云服务层,进而为用户创建实验所需的分布式集群环境,并建立用户id和实验容器id的映射关系,在用户实验结束一段时间后,将用户信息发送至云服务层,对指定用户的实验容器进行删除操作,释放资源;
所述实验题目管理单元用于对实验的基本信息,包括实验名称、实验内容、实验难度和实验题解进行增、删、改、查操作,同时供用户根据实验难度选择相应的实验题目,在实验完成之后,用户能够查看题解并根据运行结果对该实验进行打分操作;
所述实验讨论管理单元用于对实验讨论进行增、删、查操作,同时供用户根据自身需要在实验讨论单元对相应的题目进行问题求助或答疑解惑。
进一步地,所述的云服务层包括请求创建模块、容器调用模块和容器运行模块;
所述的请求创建模块用于根据管理层发出的请求,包括用户id和实验类型两个字段,为其创建相对应的容器;
所述的容器调用模块用于建立用户id和实验容器id的映射关系并保存在基础设施层的云存储中;
所述的容器运行模块用于调用基础设施层所提供的云计算接口来运行用户在容器上提交的实验代码并返回结果。
进一步地,所述的容器创建异常问题解决方法为:若在容器状态巡检结束后返回的容器地址为空,则跳转到容器创建错误页面并给予用户处理方法,若解决方法未能生效,则提醒用户联系管理员。
进一步地,所述的访问高峰期并发量大的问题解决方法为:用户请求创建容器时,服务端增加随机延时(一般在0-30秒之间),返回到客户端时与JavaScript计时器函数相结合,等待时间减至0时方可创建容器,从而实现用户在合理时差内分时进行相应容器的创建,大大降低数据流量的峰值,减轻服务端压力;采用Nginx负载均衡技术进行服务器节点的水平扩展,将海量并发量请求分配到不同服务器节点上,使每台服务器节点都能发挥作用,减少单节点服务器的访问压力,提高系统吞吐量。
与现有技术相比,本发明具有以下有益效果:
1、本发明通过使用K8s集群客户端作为容器中用户提交代码、由Jenkins构建并保存到Harbor中镜像的存储后端,实现实验环境的快捷构建,基于实验案例需求自动实现分布式实验环境的部署,降低了实验技术门槛,极大提高了用户的学习效率。
2、本发明提供了一种便捷的实验环境部署方法,用户无需前往学校传统实验室机房进行实验,只需可以使用浏览器的设备就可以完成多种新一代信息技术学科的实验操作,不受时间和空间的限制,学习时间及场所灵活,能够大大提高学习效率。
3、本发明代码运行结束后,对容器中logging模块保存的日志文件进行数据过滤筛选并上传至云平台日志特征库,根据日志特征库中的数据可对用户进行实验评估;实现以学习板块为中心,绘制用户肖像,及时向用户提供反馈,学习效果易于评估,以便于用户了解其学习情况,帮助用户查漏补缺,提高学习内容的完整度。
附图说明
图1为本发明实施例中的用户实验操作流程图;
图2为本发明实施例中的系统后台管理模块结构示意图;
图3为本发明实施例中的云服务层功能结构图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
Kubernetes,简称“K8s”或“kube”,是一个开源的Linux容器自动化运维平台,它消除了容器化应用程序在部署、伸缩时涉及到的许多手动操作。真实的生产环境应用会包含多个容器,而这些容器还很可能会跨越多个服务器主机部署。Kubernetes提供了为那些工作负载大规模部署容器的编排与管理能力。Kubernetes编排能够构建多容器的应用服务,在集群上调度或伸缩这些容器,以及管理它们随时间变化的健康状态。
针对新一代信息技术自主学习过程中所面临的实验环境构建耗时、学习效果评估困难、学习时间及场所受限等问题。本发明提出了一种基于容器技术的实验环境部署方法及系统。
其中方法包括:首先通过使用K8s集群客户端作为容器中用户提交代码、由Jenkins构建并保存到Harbor中镜像的存储后端,然后用户根据实验要求上传对应的代码,系统通过语法检测后将其打包上传到GitLab上,Gitlab组件上的Trigger webhook触发Jenkins组件将用户上传的代码与其相应的镜像相结合并上传到Harbor镜像库中,同时,Jenkins组件向K8s集群发送部署Pod的请求,最后K8s集群中的Pod组件将Harbor镜像库中已提交的镜像拉取到集群中并运行代码,完成部署并返回结果,如图1所示,具体步骤如下:
S1、系统根据用户选择的实验类型判断实验环境是否为单机,若为单机,则为用户调取单机实验环境,否则为其调取集群实验环境;
S2、用户根据实验要求编写并提交实验代码,系统通过语法检测后判断用户是否第一次进行实验,若本次实验是第一次实验,则系统执行如下步骤:
(1)调用volume create命令,为每个用户创建相应云硬盘,并在业务层数据库user_volume表中保存用户id和云硬盘id的映射关系;
(2)基于user_volume中每个用户关联的云硬盘id,调用container create命令为用户的每个云硬盘绑定容器,并在业务层数据库的user_container表中保存用户id和容器id的映射关系;
若本次实验不是第一次进行实验,则基于user_volume表中每个用户关联的云硬盘id,直接调用container create命令为用户创建相应容器,并在业务层数据库中保存用户id和容器id的映射关系;
S3、调用服务接口trainplat createPod向后端请求创建容器;
S4、调用服务接口trainplat getPodStatus向后端请求获取容器状态;
S5、创建容器请求被后端接收后,系统通过Train-plat-controller接口触发Jenkins为用户提交的代码配置相应的镜像并将其与代码进行结合;
S6、Jenkins将结合的结果上传到Harbor镜像库中,
S7、Jenkins向K8s发送pod部署请求;
S8、K8s集群中的Pod将Harbor镜像库中已提交的镜像拉取到集群中,完成容器部署,同时运行用户所提交的代码;
S9、代码运行结束后,执行以下步骤:
1)自动触发Trigger触发器,运行Kubectl logs命令调用容器中logging模块输出并保存日志文件。
2)对日志文件进行数据过滤筛选,过滤掉所述日志流中不符合要求的数据。
3)将过滤后的所述日志文件通过数据接口上传到该系统改的日志特征库。
4)系统依据日志特征库对上传日志文件和相应实验测试点进行关联分析,得到实验评估结果。
5)返回实验评估结果到用户界面。
实施例2
如图2及图3所示,本实施例提供了一种基于容器技术的实验环境部署系统,用于实现如实施例1所述的一种基于容器技术的实验环境部署方法,该系统包括:管理层、云服务层和基础设施层。可以满足用户对不同信息技术学科实验环境的需求,具有资源利用效率高、可扩展性强、运维管理难度低等优点。
管理层用于提供以实验为中心的实验管理接口,用于对实验所涉及的实验用户和实验资源进行过程化管理,包括用户管理模块和实验资源管理模块;该单元具体模块描述如下:
1.用户管理模块包括对用户进行增、删、改、查以及基于角色的权限设置;具体而言,一方面用于对系统中用户的用户名、密码、容器编号等信息进行管理;另一方面用于对不同的用户分配相对应的角色,并根据不同的角色所对应的权限构建不同功能,从而实现了基于角色的权限管理;
2.实验资源管理模块包括实验信息管理单元、实验容器管理单元、实验题目管理单元和实验讨论管理单元;
a实验信息管理单元用于对实验的基本类型包括单机实验类型(如C++、C等程序设计类实验)和分布式集群实验类型(如大数据、人工智能、区块链等实验)进行增、删、改、查。在单机实验类型中,系统会为用户创建调用一个相对的容器,在分布式集群实验类型中,系统为用户创建多个集群容器;
b实验容器管理单元可以为用户创建相应的云硬盘,在用户进入实验页面时将实验所关联的实验类型和用户信息发送至云服务层,进而为用户创建实验所需的分布式集群环境,并建立用户id和实验容器id的映射关系,在用户实验结束一段时间后,将用户信息发送至云服务层,对指定用户的实验容器进行删除操作,释放资源;
c实验题目管理单元用于对实验的基本信息,包括实验名称、实验内容、实验难度和实验题解进行增、删、改、查,用户可以根据实验难度选择相应的实验题目,在实验完成之后,用户可以查看题解并根据运行结果对该实验进行打分操作;
d实验讨论管理单元用于对实验讨论进行增、删、查操作,同时供用户根据自身需要在实验讨论单元对相应的题目进行问题求助或答疑解惑。
云服务层用于对实验容器的请求创建、调用和运行,具体解决如下问题:容器创建异常的问题、访问高峰期并发量大的问题;包括请求创建模块、容器调用模块和容器运行模块;
请求创建模块用于根据管理层发出的请求,包括用户id和实验类型两个字段,为其创建相对应的容器;
容器调用模块用于建立用户id和实验容器id的映射关系并保存在基础设施层的云存储中;容器运行模块用于调用基础设施层所提供的云计算接口来运行用户在容器上提交的实验代码并返回结果;
作为优选的技术方案,针对容器创建异常问题的解决方法为:用户如果在容器状态巡检结束后返回的容器地址为空,则跳转到容器创建错误页面并给予用户处理方法,如果解决方法未能生效,则提醒用户联系管理员;
作为优选的技术方案,针对访问高峰期并发量大的问题解决方法为:用户请求创建容器时,服务端增加随机延时(一般在0-30秒之间),返回到客户端时与JavaScript计时器函数相结合,等待时间减至0时方可创建容器,从而实现用户在合理时差内分时进行相应容器的创建,大大降低数据流量的峰值,减轻服务端压力,还采用Nginx负载均衡技术进行服务器节点的水平扩展,将海量并发量请求分配到不同服务器节点上,使每台服务器节点都能发挥作用,减少单节点服务器的访问压力,提高系统吞吐量。
基础设施层用于提供云计算和云存储的服务接口。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (10)

1.一种基于容器技术的实验环境部署方法,其特征在于,包括以下步骤:
S1、使用K8s集群客户端作为容器中的存储后端,用于供用户提交代码、由Jenkins构建并保存到Harbor中的镜像库;
S2、用户选择实验类型,根据实验要求上传对应代码;
S3、系统通过语法检测后将所述代码打包上传到GitLab上;Gitlab组件上的Triggerwebhook触发Jenkins组件为GitLab上的代码配置相应的镜像并提交到Harbor镜像库中;
S4、Jenkins组件向K8s集群发送部署Pod的请求,K8s集群中的Pod组件将Harbor镜像库中拉取相应的镜像,为用户实验创建相应的容器,在容器上运行用户提交的代码,完成部署并返回结果。
2.根据权利要求1所述的一种基于容器技术的实验环境部署方法,其特征在于,步骤S2具体包括以下步骤:
S201、系统根据用户选择的实验类型,调用服务接口trainplat-api请求创建容器;
S202、调用服务接口trainplat-api请求获取容器状态;
S203、创建容器请求。
3.根据权利要求1所述的一种基于容器技术的实验环境部署方法,其特征在于,步骤S3具体包括以下步骤:
S301、接收用户上传的代码后系统通过服务接口trainplat-api触发Jenkins为用户提交的代码配置相应的镜像并将其与代码进行结合;
S302、Jenkins将结合的结果上传到Harbor镜像库中。
4.根据权利要求1所述的一种基于容器技术的实验环境部署方法,其特征在于,步骤S4具体包括以下步骤:
S401、Jenkins向K8s发送pod部署请求;
S402、部署好的Pod拉取Harbor镜像库中已提交的镜像,将结果成功部署在K8s集群中,执行实验操作,若本次操作是第一次实验,则执行以下步骤,否则执行步骤S403:
1)调用volume-api服务,为每个用户创建相应的硬盘并在业务层数据库保存用户id和云硬盘id的映射关系;
2)基于业务层数据库中每个用户id所关联的云硬盘id调用container-api服务,为用户的每个云硬盘绑定容器,并在业务层数据库保存用户id和容器id的映射关系;
S403、若本次操作不是第一次实验,则基于业务层数据库中每个用户id所关联的云硬盘id,调用container-api服务为用户创建相应容器,并在业务层数据库保存用户id和容器id的映射关系;
S404、代码运行结束后,根据业务层数据库保存用户id和容器id的映射关系,调用trainplat-api接口将每个用户所对应的容器删除,但保留容器所挂载的云硬盘;
S405、代码运行结束后,对容器中logging模块保存的日志文件进行数据过滤筛选并上传至云平台日志特征库,根据日志特征库中的数据对用户进行实验评估。
5.根据权利要求1所述的一种基于容器技术的实验环境部署方法,其特征在于,步骤S4中的容器基于jupyter notebook实现代码编译,并安装xeus-cling丰富实验语言,用于供用户为相应的实验选择对应的编译语言。
6.一种基于容器技术的实验环境部署系统,其特征在于,用于实现如权利要求1-5任一所述的一种基于容器技术的实验环境部署方法,包括管理层、云服务层和基础设施层;
所述管理层提供以实验为中心的实验管理接口,用于对实验所涉及的实验用户和实验资源进行过程化管理;
所述云服务层用于对实验容器进行请求创建、调用和运行,具体解决容器创建异常问题及访问高峰期并发量大的问题;
所述基础设施层提供云计算和云存储的服务接口。
7.根据权利要求6所述的一种基于容器技术的实验环境部署系统,其特征在于,所述的管理层包括用户管理模块和实验管理模块;
所述的实验用户管理模块,一方面用于对系统中的用户信息进行管理,所述用户信息包括用户名、密码及容器编号;另一方面用于对不同的用户分配相对应的角色,并根据不同的角色所对应的权限构建不同功能,从而实现基于角色的权限管理;
所述的实验管理模块包括实验信息管理单元、实验容器管理单元、实验题目管理单元和实验讨论管理单元;
所述的实验信息管理单元用于对基本实验类型和分布式集群实验类型进行增、删、改、查操作;其中,所述基本实验类型包括单机实验类型,所述分布式集群实验类型包括大数据、人工智能及区块链实验;在单机实验类型中,系统会为用户创建调用一个相对的容器,在分布式集群实验类型中,系统为用户创建多个集群容器;
所述的实验容器管理单元用于为用户创建相应的云硬盘,在用户进入实验页面时将实验所关联的实验类型和用户信息发送至云服务层,进而为用户创建实验所需的分布式集群环境,并建立用户id和实验容器id的映射关系,在用户实验结束一段时间后,将用户信息发送至云服务层,对指定用户的实验容器进行删除操作,释放资源;
所述实验题目管理单元用于对实验的基本信息,包括实验名称、实验内容、实验难度和实验题解进行增、删、改、查操作,同时供用户根据实验难度选择相应的实验题目,在实验完成之后,用户能够查看题解并根据运行结果对该实验进行打分操作;
所述实验讨论管理单元用于对实验讨论进行增、删、查操作,同时供用户根据自身需要在实验讨论单元对相应的题目进行问题求助或答疑解惑。
8.根据权利要求6所述的一种基于容器技术的实验环境部署系统,其特征在于,所述的云服务层包括请求创建模块、容器调用模块和容器运行模块;
所述的请求创建模块用于根据管理层发出的请求,包括用户id和实验类型两个字段,为其创建相对应的容器;
所述的容器调用模块用于建立用户id和实验容器id的映射关系并保存在基础设施层的云存储中;
所述的容器运行模块用于调用基础设施层所提供的云计算接口来运行用户在容器上提交的实验代码并返回结果。
9.根据权利要求6所述的一种基于容器技术的实验环境部署系统,其特征在于,所述的容器创建异常问题解决方法为:若在容器状态巡检结束后返回的容器地址为空,则跳转到容器创建错误页面并给予用户处理方法,若解决方法未能生效,则提醒用户联系管理员。
10.根据权利要求6所述的一种基于容器技术的实验环境部署系统,其特征在于,所述的访问高峰期并发量大的问题解决方法为:用户请求创建容器时,服务端增加随机延时,返回到客户端时与JavaScript计时器函数相结合,等待时间减至0时方创建容器;采用Nginx负载均衡技术进行服务器节点的水平扩展,将海量并发量请求分配到不同服务器节点上,使每台服务器节点都能发挥作用,减少单节点服务器的访问压力。
CN202310163871.4A 2023-02-24 2023-02-24 一种基于容器技术的实验环境部署方法及系统 Pending CN116069449A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310163871.4A CN116069449A (zh) 2023-02-24 2023-02-24 一种基于容器技术的实验环境部署方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310163871.4A CN116069449A (zh) 2023-02-24 2023-02-24 一种基于容器技术的实验环境部署方法及系统

Publications (1)

Publication Number Publication Date
CN116069449A true CN116069449A (zh) 2023-05-05

Family

ID=86180133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310163871.4A Pending CN116069449A (zh) 2023-02-24 2023-02-24 一种基于容器技术的实验环境部署方法及系统

Country Status (1)

Country Link
CN (1) CN116069449A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117519989A (zh) * 2024-01-03 2024-02-06 上海燧原智能科技有限公司 一种分布式系统托管方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117519989A (zh) * 2024-01-03 2024-02-06 上海燧原智能科技有限公司 一种分布式系统托管方法、装置、电子设备及存储介质
CN117519989B (zh) * 2024-01-03 2024-04-02 上海燧原智能科技有限公司 一种分布式系统托管方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Barika et al. Orchestrating big data analysis workflows in the cloud: research challenges, survey, and future directions
CN109951545B (zh) 自适应的容器和云桌面的融合系统及其获取云资源的方法
CN103118073B (zh) 一种云环境下虚拟机数据持久化存储系统和方法
CN112395736B (zh) 一种分布交互仿真系统的并行仿真作业调度方法
CN107145673B (zh) 一种联合仿真系统和方法
CN105912389A (zh) 基于数据虚拟化实现混合云环境下的虚拟机迁移系统
CN103077034B (zh) 混合虚拟化平台java应用迁移方法与系统
CN111274223A (zh) 一种一键部署大数据和深度学习容器云平台及其构建方法
CN114500623A (zh) 网络靶场互联互通方法、装置、设备及可读存储介质
Trunov et al. Legacy applications model integration to support scientific experiment
CN112256406B (zh) 作业流程平台化调度方法
CN116069449A (zh) 一种基于容器技术的实验环境部署方法及系统
Zhao et al. Notebook‐as‐a‐VRE (NaaVRE): From private notebooks to a collaborative cloud virtual research environment
CN114691050B (zh) 基于kubernetes的云原生存储方法、装置、设备及介质
CN114356521A (zh) 任务调度方法、装置、电子设备及存储介质
CN113014653B (zh) 一种服务于分布式实验教学环境的在线教育云平台
CN114489954A (zh) 基于虚拟化平台的租户创建方法、租户访问方法及设备
CN113806097A (zh) 一种数据处理方法、装置、电子设备以及存储介质
e Silva et al. Application execution management on the InteGrade opportunistic grid middleware
CN112445602A (zh) 资源调度方法、装置、系统及电子设备
CN111352664A (zh) 分布式机器学习任务启动方法、系统、设备及存储介质
CN115408101A (zh) 一种基于容器的软件实训系统
CN101247309A (zh) 一种通用访问多网格平台的系统
CN114422542A (zh) 一种终端域管系统
Xiao et al. A Metadata-driven Cloud Computing Application Virtualization Model.

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