CN109104467B - 开发环境构建方法、装置以及平台系统和存储介质 - Google Patents
开发环境构建方法、装置以及平台系统和存储介质 Download PDFInfo
- Publication number
- CN109104467B CN109104467B CN201810822701.1A CN201810822701A CN109104467B CN 109104467 B CN109104467 B CN 109104467B CN 201810822701 A CN201810822701 A CN 201810822701A CN 109104467 B CN109104467 B CN 109104467B
- Authority
- CN
- China
- Prior art keywords
- development environment
- container
- information
- application service
- user
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种开发环境构建方法、装置以及平台系统和存储介质,涉及计算机技术领域,其中方法包括:基于接收到的开发环境建立请求获取配置信息;根据配置信息生成开发环境建立指令,容器集群系统基于开发环境建立指令构建开发环境容器并部署应用服务;将代理规则信息在反向代理装置注册,以使反向代理装置基于代理规则信息提供对于开发环境容器以及应用服务的访问服务。本公开的开发环境构建方法、装置以及平台系统和存储介质,解决了开发人员共享的开发环境的配置管理问题,提高了资源使用效率,降低了管理难度,增强了开发平台的可扩展性,提高了开发人员的工作效率,增强了开发产品的竞争力。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种开发环境构建方法、装置以及平台系统和存储介质。
背景技术
随着计算机技术的应用,出现了越来越多的开发工具。例如,Hadoop等系统的出现极大的解决了人们在大数据的存储和处理;Hive的出现让人们可以使用SQL语句代替编写map reduce任务;Spark的出现让人们可以在大数据上进行机器学习。每一种工具都分别使用了不同的开发语言,在使用时需要切换不同的开发环境。图1为一种现有的开发平台系统,由两个部分组成:大数据集群提供数据存储和分布式的数据处理,数据挖掘工具。客户端为一个物理机,允许用户通过ssh登录到这个物理机上,在物理机上运维人员安装好了hadoop,spark等工具的客户端程序,并且配置了相关的权限控制。但是,对于现有的开发平台系统,需要对每个开发人员都分配一个客户端,客户端的硬件资源浪费非常严重,成本较大,配置复杂;并且,现有的开发平台系统的扩展能力较差。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种开发环境构建方法、装置以及平台系统和存储介质。
根据本公开的一个方面,提供一种开发环境构建方法,包括:基于接收到的开发环境建立请求获取配置信息;根据所述配置信息生成开发环境建立指令,将所述开发环境建立指令发送给容器集群系统;所述容器集群系统基于所述开发环境建立指令构建开发环境容器并部署应用服务;建立与所述开发环境容器对应的代理规则信息,并将所述代理规则信息在反向代理装置注册,以使反向代理装置基于所述代理规则信息提供对于所述开发环境容器以及所述应用服务的访问服务。
可选地,所述开发环境建立请求中携带的信息包括:用户ID、容器类型、应用服务信息;所述基于接收到的开发环境建立请求获取配置信息包括:在所述配置数据库中获取与所述容器类型相对应的容器配置参数、与所述应用服务信息相对应的应用服务配置参数;所述根据所述配置信息生成开发环境建立指令包括:生成所述开发环境建立指令,其中,所述开发环境建立指令包括:用户ID、容器类型、容器配置参数、应用服务信息、应用服务配置参数。
可选地,使用容器创建API将所述开发环境建立指令发送给所述容器集群系统;接收到所述容器集群系统发送的创建成功消息以及所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息。
可选地,所述容器集群系统获取各个节点的负载信息,根据所述负载信息确定非繁忙节点;所述容器集群系统在所述非繁忙节点上创建所述开发环境容器并运行,生成与所述应用服务相对应的应用实例并将所述应用实例部署在所述开发环境容器。
可选地,所述建立与所述开发环境容器对应的代理规则信息包括:根据所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息设置所述用户ID和为此用户ID建立的所述开发环境容器以及所述应用服务相对应的访问地址的关联关系;其中,所述访问地址包括:应用服务访问地址、应用服务管理地址。
可选地,所述反向代理装置基于所述代理规则信息提供对于所述开发环境容器以及所述应用服务的访问服务包括:所述反向代理装置接收到访问请求,确定发送此访问请求的用户是否通过验证,如果否,则返回用户认证页面;如果是,则所述反向代理装置从所述访问请求中提取用户ID和应用请求信息,基于所述关联关系并根据所述用户ID和所述应用请求信息获取所述访问地址并返回与此访问地址相对应的页面。
可选地,从接收到的开发环境销毁指令中提取所述用户ID和开发环境容器的标识;获取与所述用户ID和所述开发环境容器的标识相对应的开发环境容器的部署信息;使用容器销毁API将所述开发环境容器的标识和部署信息发送给所述容器集群系统,以使所述容器集群系统销毁此开发环境容器。
可选地,在所述开发环境容器中部署至少一个所述应用服务,所述应用服务通过HTTP方式提供服务;所述应用服务包括:notebook应用服务、hive应用服务。
根据本公开的另一方面,提供一种开发环境构建装置,包括:信息获取模块,用于基于接收到的开发环境建立请求获取配置信息;指令处理模块,用于根据所述配置信息生成开发环境建立指令,将所述开发环境建立指令发送给容器集群系统;其中,所述容器集群系统基于所述开发环境建立指令构建开发环境容器并部署应用服务;注册处理模块,用于建立与所述开发环境容器对应的代理规则信息,并将所述代理规则信息在反向代理装置注册,以使反向代理装置基于所述代理规则信息提供对于所述开发环境容器以及所述应用服务的访问服务。
可选地,所述开发环境建立请求中携带的信息包括:用户ID、容器类型、应用服务信息;所述信息获取模块,用于在所述配置数据库中获取与所述容器类型相对应的容器配置参数、与所述应用服务信息相对应的应用服务配置参数;所述指令处理模块,用于生成所述开发环境建立指令,其中,所述开发环境建立指令包括:用户ID、容器类型、容器配置参数、应用服务信息、应用服务配置参数。
可选地,所述指令处理模块,用于使用容器创建API将所述开发环境建立指令发送给所述容器集群系统;接收所述容器集群系统发送的创建成功消息以及所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息。
可选地,所述容器集群系统获取各个节点的负载信息,根据所述负载信息确定非繁忙节点;所述容器集群系统在所述非繁忙节点上创建所述开发环境容器并运行,生成与所述应用服务相对应的应用实例并将所述应用实例部署在所述开发环境容器。
可选地,所述注册处理模块,用于根据所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息设置所述用户ID和为此用户ID建立的所述开发环境容器以及所述应用服务相对应的访问地址的关联关系;其中,所述访问地址包括:应用服务访问地址、应用服务管理地址。
可选地,所述反向代理装置接收到访问请求,确定发送此访问请求的用户是否通过验证,如果否,则返回用户认证页面;如果是,则所述反向代理装置从所述访问请求中提取用户ID和应用请求信息,基于所述关联关系并根据所述用户ID和所述应用请求信息获取所述访问地址并返回与此访问地址相对应的页面。
可选地,所述指令处理模块,用于从接收到的开发环境销毁指令中提取所述用户ID和开发环境容器的标识;获取与所述用户ID和所述开发环境容器的标识相对应的开发环境容器的部署信息;使用容器销毁API将所述开发环境容器的标识和部署信息发送给所述容器集群系统,以使所述容器集群系统销毁此开发环境容器。
可选地,在所述开发环境容器中部署至少一个所述应用服务,所述应用服务通过HTTP方式提供服务;所述应用服务包括:notebook应用服务、hive应用服务。
根据本公开的又一方面,提供一种开发平台系统,包括:容器集群系统、配置数据库、反向代理装置和如上所述的开发环境构建装置。
根据本公开的又一方面,提供一种开发环境构建装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。
根据本公开的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上所述的方法。
本公开的开发环境构建方法、装置以及平台系统和存储介质,解决了开发人员共享的开发环境的配置管理问题;通过容器的调度系统,可以实现不同开发人员的开发环境部署在一个物理机上,提高了资源使用效率;通过管理配置数据库中的配置项,降低了管理难度;对于新增的开发工具通过提供相应的插件并在配置数据库中增加新的配置项便可完成,增强了开发平台的可扩展性,提高了开发人员的工作效率,增强了开发产品的竞争力。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的开发平台系统的示意图;
图2为根据本公开的开发环境构建方法的一个实施例的流程示意图;
图3为根据本公开的开发环境构建方法的一个实施例中的反向代理装置提供接口的示意图;
图4为根据本公开的开发环境构建装置的一个实施例中的模块示意图;
图5为根据本公开的开发环境构建系统的一个实施例的部署示意图;
图6为根据本公开的开发环境构建装置的另一个实施例的模块示意图。
具体实施方式
下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。
图1为根据本公开的开发环境构建方法的一个实施例的流程示意图,如图1所示,开发环境构建方法包括步骤101-105。
步骤101,基于接收到的开发环境建立请求从配置数据库中获取配置信息。
步骤102,根据配置信息生成开发环境建立指令,将开发环境建立指令发送给容器集群系统。
步骤103,容器集群系统基于开发环境建立指令构建开发环境容器并部署应用服务。
步骤104,建立与开发环境容器对应的代理规则信息,并将代理规则信息在反向代理装置注册,以使反向代理装置基于代理规则信息提供对于开发环境容器以及应用服务的访问服务。
容器是指利用操作系统的资源隔离接口实现的轻量级的虚拟化运行环境,符合一定的规范能提供一系列服务。容器有多种,例如Docker等。Docker是一种能够在物理机上创建容器环境的工具,docker同时提供了一个镜像功能,可以帮助应用程序在容器内模拟相应的软件环境。可以在容器内捆绑应用程序组件等,可以部署应用程序,提供多种服务。反向代理(Reverse Proxy)方式是指以代理服务器来接受请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回。
在一个实施例中,配置数据库里记录了不同工具的配置信息,当用户在创建开发环境时,从配置数据库中加载相应的配置项,并且把配置项作为参数发送给容器集群系统,以使容器集群系统在启动的容器环境中设置对应的参数。
容器集群系统可以管理若干个物理机机器,并在物理机器上建立容器的运行资源环境,对容器提供管理功能,例如,容器集群系统接收创建、销毁容器的命令并进行相应的处理。容器集群系统如mesos,kuberntes等容器集群系统,拥有核心调度服务端,能同时管理若干个物理服务器,给用户提供接口,允许用户将自己的任务分发到某一个物理机上。
接收到用户通过终端发送的开发环境建立请求,开发环境建立请求中携带的信息包括用户ID、容器类型、应用服务信息等。在配置数据库中获取与容器类型相对应的容器配置参数、与应用服务信息相对应的应用服务配置参数。容器类型为需要建立的容器的类型,例如web容器、Docker容器等。应用服务包括Hive服务、notebook服务等。Hive是建立在Hadoop上的数据仓库基础构架,定义了简单的类SQL查询语言。Hive是一种底层封装了Hadoop的数据仓库处理工具,使用类SQL的HiveQL语言实现数据查询,所有Hive的数据都存储在Hadoop兼容的文件系统(例如,Amazon S3、HDFS)中。Hive在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS中Hive设定的目录下,notebook是一种web应用,使用Read-Eval-Print-Loop思想实现,可以让用户通过web编写python、shell、julia等多种脚本语言。
与容器类型相对应的容器配置参数可以为多种用于配置容器的参数,与应用服务信息相对应的应用服务配置参数为多种用于配置应用服务的参数,容器配置参数和应用服务配置参数可以根据具体的容器和应用服务的不同进行配置。
在一个实施例中,生成开发环境建立指令,开发环境建立指令包括:用户ID、容器类型、容器配置参数、应用服务信息、应用服务配置参数等。使用容器集群系统提供的容器创建API将开发环境建立指令发送给容器集群系统,容器集群系统根据开发环境建立指令创建容器以及应用服务。
容器集群系统获取各个节点的负载信息,节点可以为服务器,根据负载信息确定非繁忙节点。容器集群系统在非繁忙节点上创建开发环境容器并运行,生成与应用服务相对应的应用实例并将应用实例部署在开发环境容器。
在容器集群系统创建容器以及应用服务之后,接收到容器集群系统发送的创建成功消息以及开发环境容器的标识、部署信息和应用服务的访问接口信息。根据开发环境容器的标识、部署信息和应用服务的访问接口信息设置用户ID和为此用户ID建立的开发环境容器以及应用服务相对应的访问地址的关联关系,访问地址包括应用服务访问地址、应用服务管理地址等。反向代理装置上注册的代理规则信息可以包括关联关系等。
如图3所示,反向代理装置提供的web接口包含多个部分,有多个访问地址:/login:用于提供用户登录应用服务,可以利用企业已有的权限认证系统,进行认证、授权等;/user/[usr]/:用户可以在这个页面上创建、删除各种开发环境以及应用服务等;/user/[user/[app]:为用户提供不同类型的开发工具界面,/user/[user]/notebook可以提供可编程接口服务界面,/user/[user]/hive可以提供hive SQL的接口服务界面,如果想进一步扩展新的工具接口可以进行更多的扩展,例如,可以增加/user/[user]/tensorboard,用于给用户提供tensorbard工具界面。
在一个实施例中,反向代理装置接收到开发人员发送的访问请求,确定发送此访问请求的用户是否通过验证,如果否,则返回用户认证页面,进行用户认证;如果是,则反向代理装置从访问请求中提取用户ID和应用请求信息,应用请求信息可以为开发人员需要对哪个应用服务进行操作,操作包括访问、建立、删除等。基于关联关系并根据用户ID和应用请求信息获取访问地址并返回与此访问地址相对应的页面。
当开发者的开发任务完成,不再需要使用创建的容器时,则发送开发环境销毁指令。从接收到的开发环境销毁指令中提取用户ID和开发环境容器的标识,获取与用户ID和开发环境容器的标识相对应的开发环境容器的部署信息,使用容器集群系统提供的容器销毁API将开发环境容器的标识和部署信息发送给容器集群系统,以使容器集群系统销毁此开发环境容器。
开发环境容器由容器集群系统提供的接口创建,通过http接口提供某一特定功能的容器。在开发环境容器中部署至少一个应用服务,应用服务通过HTTP方式提供服务,应用服务包括:notebook应用服务、hive应用服务等。例如,notebook通过http为用户提供python、shell等编程语言接口,利用notebook将开发环境转换为http形式,进而借助反向代理装置实现开发环境的动态设置。
在一个实施例中,如图4所示,本公开提供一种开发环境构建装置40,包括:信息获取模块41、指令处理模块42和注册处理模块43。信息获取模块41基于接收到的开发环境建立请求从配置数据库中获取配置信息。指令处理模块42根据配置信息生成开发环境建立指令,将开发环境建立指令发送给容器集群系统,其中,容器集群系统基于开发环境建立指令构建开发环境容器并部署应用服务。注册处理模块43建立与开发环境容器对应的代理规则信息,并将代理规则信息在反向代理装置注册,以使反向代理装置基于代理规则信息提供对于开发环境容器以及应用服务的访问服务。
在一个实施例中,开发环境建立请求中携带的信息包括:用户ID、容器类型、应用服务信息等。信息获取模块41在配置数据库中获取与容器类型相对应的容器配置参数、与应用服务信息相对应的应用服务配置参数。指令处理模块43生成开发环境建立指令,其中,开发环境建立指令包括用户ID、容器类型、容器配置参数、应用服务信息、应用服务配置参数等。
指令处理模块42使用容器创建API将开发环境建立指令发送给容器集群系统,接收容器集群系统发送的创建成功消息以及开发环境容器的标识、部署信息和应用服务的访问接口信息。容器集群系统获取各个节点的负载信息,根据负载信息确定非繁忙节点。容器集群系统在非繁忙节点上创建开发环境容器并运行,生成与应用服务相对应的应用实例并将应用实例部署在开发环境容器。
注册处理模块43根据开发环境容器的标识、部署信息和应用服务的访问接口信息设置用户ID和为此用户ID建立的开发环境容器以及应用服务相对应的访问地址的关联关系,其中,访问地址包括应用服务访问地址、应用服务管理地址等。
在一个实施例中,反向代理装置接收到访问请求,确定发送此访问请求的用户是否通过验证,如果否,则返回用户认证页面;如果是,则反向代理装置从访问请求中提取用户ID和应用请求信息,基于关联关系并根据用户ID和应用请求信息获取访问地址并返回与此访问地址相对应的页面。
指令处理模块42从接收到的开发环境销毁指令中提取用户ID和开发环境容器的标识,获取与用户ID和开发环境容器的标识相对应的开发环境容器的部署信息。指令处理模块42使用容器销毁API将开发环境容器的标识和部署信息发送给容器集群系统,以使容器集群系统销毁此开发环境容器。
在一个实施例中,根据本公开的又一方面,如图5所示,提供一种开发环境构建系统,包括:容器集群系统、配置数据库、反向代理装置和如上任一个实施例中的开发环境构建装置。
图6为根据本公开的开发环境构建装置的另一个实施例的模块示意图。如图6所示,该装置可包括存储器61、处理器62、通信接口63以及总线64。存储器61用于存储指令,处理器62耦合到存储器61,处理器62被配置为基于存储器61存储的指令执行实现上述的开发环境构建方法。
存储器61可以为高速RAM存储器、非易失性存储器(non-volatile memory)等,存储器61也可以是存储器阵列。存储器61还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器62可以为中央处理器CPU,或专用集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本公开的开发环境构建方法的一个或多个集成电路。
在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的开发环境构建方法。
上述实施例中的开发环境构建方法、装置以及平台系统和存储介质,通过构建开发环境容器并提供访问服务,解决了开发人员共享的开发环境的配置管理问题;通过容器的调度系统,可以实现不同开发人员的开发环境部署在一个物理机上,提高了资源使用效率;通过管理配置数据库中的配置项,降低了管理难度;对于新增的开发工具通过提供相应的插件并在配置数据库中增加新的配置项便可完成,增强了开发平台的可扩展性,提高了开发人员的工作效率,增强了开发产品的竞争力。
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (17)
1.一种开发环境构建方法,包括:
基于接收到的开发环境建立请求获取配置信息;
根据所述配置信息生成开发环境建立指令,将所述开发环境建立指令发送给容器集群系统;
所述容器集群系统基于所述开发环境建立指令构建开发环境容器并部署应用服务;建立与所述开发环境容器对应的代理规则信息,并将所述代理规则信息在反向代理装置注册,以使反向代理装置基于所述代理规则信息提供对于所述开发环境容器以及所述应用服务的访问服务;
其中,所述建立与所述开发环境容器对应的代理规则信息包括:
根据所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息设置用户ID和为此用户ID建立的所述开发环境容器以及所述应用服务相对应的访问地址的关联关系;所述访问地址包括:应用服务访问地址、应用服务管理地址。
2.如权利要求1所述的方法,所述开发环境建立请求中携带的信息包括:用户ID、容器类型、应用服务信息;所述基于接收到的开发环境建立请求获取配置信息包括:
在所述配置数据库中获取与所述容器类型相对应的容器配置参数、与所述应用服务信息相对应的应用服务配置参数;
所述根据所述配置信息生成开发环境建立指令包括:
生成所述开发环境建立指令,其中,所述开发环境建立指令包括:用户ID、容器类型、容器配置参数、应用服务信息、应用服务配置参数。
3.如权利要求2所述的方法,还包括:
使用容器创建API将所述开发环境建立指令发送给所述容器集群系统;
接收到所述容器集群系统发送的创建成功消息以及所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息。
4.如权利要求3所述的方法,还包括:
所述容器集群系统获取各个节点的负载信息,根据所述负载信息确定非繁忙节点;
所述容器集群系统在所述非繁忙节点上创建所述开发环境容器并运行,生成与所述应用服务相对应的应用实例并将所述应用实例部署在所述开发环境容器。
5.如权利要求3所述的方法,所述反向代理装置基于所述代理规则信息提供对于所述开发环境容器以及所述应用服务的访问服务包括:
所述反向代理装置接收到访问请求,确定发送此访问请求的用户是否通过验证,如果否,则返回用户认证页面;
如果是,则所述反向代理装置从所述访问请求中提取用户ID和应用请求信息,基于所述关联关系并根据所述用户ID和所述应用请求信息获取所述访问地址并返回与此访问地址相对应的页面。
6.如权利要求3所述的方法,还包括:
从接收到的开发环境销毁指令中提取所述用户ID和开发环境容器的标识;
获取与所述用户ID和所述开发环境容器的标识相对应的开发环境容器的部署信息;
使用容器销毁API将所述开发环境容器的标识和部署信息发送给所述容器集群系统,以使所述容器集群系统销毁此开发环境容器。
7.如权利要求1至6任一项所述的方法,其特征在于,
在所述开发环境容器中部署至少一个所述应用服务,所述应用服务通过HTTP方式提供服务;所述应用服务包括:notebook应用服务、hive应用服务。
8.一种开发环境构建装置,包括:
信息获取模块,用于基于接收到的开发环境建立请求从配置数据库中获取配置信息;
指令处理模块,用于根据所述配置信息生成开发环境建立指令,将所述开发环境建立指令发送给容器集群系统;其中,所述容器集群系统基于所述开发环境建立指令构建开发环境容器并部署应用服务;
注册处理模块,用于建立与所述开发环境容器对应的代理规则信息,并将所述代理规则信息在反向代理装置注册,以使反向代理装置基于所述代理规则信息提供对于所述开发环境容器以及所述应用服务的访问服务;
其中,所述注册处理模块,具体用于根据所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息设置用户ID和为此用户ID建立的所述开发环境容器以及所述应用服务相对应的访问地址的关联关系;其中,所述访问地址包括:应用服务访问地址、应用服务管理地址。
9.如权利要求8所述的装置,所述开发环境建立请求中携带的信息包括:用户ID、容器类型、应用服务信息;
所述信息获取模块,用于在所述配置数据库中获取与所述容器类型相对应的容器配置参数、与所述应用服务信息相对应的应用服务配置参数;
所述指令处理模块,用于生成所述开发环境建立指令,其中,所述开发环境建立指令包括:用户ID、容器类型、容器配置参数、应用服务信息、应用服务配置参数。
10.如权利要求9所述的装置,其中,
所述指令处理模块,用于使用容器创建API将所述开发环境建立指令发送给所述容器集群系统;接收所述容器集群系统发送的创建成功消息以及所述开发环境容器的标识、部署信息和所述应用服务的访问接口信息。
11.如权利要求10所述的装置,其中,
所述容器集群系统获取各个节点的负载信息,根据所述负载信息确定非繁忙节点;所述容器集群系统在所述非繁忙节点上创建所述开发环境容器并运行,生成与所述应用服务相对应的应用实例并将所述应用实例部署在所述开发环境容器。
12.如权利要求10所述的装置,其中,
所述反向代理装置接收到访问请求,确定发送此访问请求的用户是否通过验证,如果否,则返回用户认证页面;如果是,则所述反向代理装置从所述访问请求中提取用户ID和应用请求信息,基于所述关联关系并根据所述用户ID和所述应用请求信息获取所述访问地址并返回与此访问地址相对应的页面。
13.如权利要求10所述的装置,其中,
所述指令处理模块,用于从接收到的开发环境销毁指令中提取所述用户ID和开发环境容器的标识;获取与所述用户ID和所述开发环境容器的标识相对应的开发环境容器的部署信息;使用容器销毁API将所述开发环境容器的标识和部署信息发送给所述容器集群系统,以使所述容器集群系统销毁此开发环境容器。
14.如权利要求8至13任一项所述的装置,其中,
在所述开发环境容器中部署至少一个所述应用服务,所述应用服务通过HTTP方式提供服务;所述应用服务包括:notebook应用服务、hive应用服务。
15.一种开发平台系统,包括:
容器集群系统、配置数据库、反向代理装置和如权利要求8至14任一项所述的开发环境构建装置。
16.一种开发环境构建装置,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810822701.1A CN109104467B (zh) | 2018-07-25 | 2018-07-25 | 开发环境构建方法、装置以及平台系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810822701.1A CN109104467B (zh) | 2018-07-25 | 2018-07-25 | 开发环境构建方法、装置以及平台系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109104467A CN109104467A (zh) | 2018-12-28 |
CN109104467B true CN109104467B (zh) | 2021-07-30 |
Family
ID=64847405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810822701.1A Active CN109104467B (zh) | 2018-07-25 | 2018-07-25 | 开发环境构建方法、装置以及平台系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109104467B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148419B (zh) * | 2019-06-28 | 2024-01-02 | 杭州海康威视数字技术股份有限公司 | 云平台中镜像管理方法、装置、系统及存储介质 |
CN110990025B (zh) * | 2019-12-06 | 2024-02-06 | 无锡华云数据技术服务有限公司 | 一种实例部署方法及系统 |
CN111857733B (zh) * | 2019-12-31 | 2023-12-05 | 北京嘀嘀无限科技发展有限公司 | 一种业务环境的构建方法、装置、系统以及可读存储介质 |
CN113391796B (zh) * | 2020-03-13 | 2024-01-30 | 华为云计算技术有限公司 | 一种集成开发环境的构建方法、装置、设备及介质 |
CN111459613B (zh) * | 2020-03-30 | 2023-08-15 | 浪潮通用软件有限公司 | 动态扩展开发环境的方法及装置 |
CN111367561B (zh) * | 2020-03-31 | 2023-09-22 | 中国工商银行股份有限公司 | 软件程序远程开发方法及装置 |
CN111475145A (zh) * | 2020-04-14 | 2020-07-31 | 北京思特奇信息技术股份有限公司 | 一种创建开发环境的方法、装置、计算设备和存储介质 |
CN111984312B (zh) * | 2020-08-28 | 2022-01-11 | 上海睿成软件有限公司 | 一种实现Java开发框架兼容的方法、装置及存储介质 |
CN112019622B (zh) * | 2020-08-28 | 2023-05-26 | 北京浪潮数据技术有限公司 | 一种流量控制方法、系统、设备及可读存储介质 |
CN112068847B (zh) * | 2020-09-07 | 2022-05-13 | 海南大学 | 基于kubernets平台的计算环境部署方法及装置 |
CN113448837B (zh) * | 2020-11-03 | 2024-03-19 | 北京新氧科技有限公司 | 开发及测试环境部署方法、系统、电子设备及介质 |
CN112416621A (zh) * | 2020-11-24 | 2021-02-26 | 武汉锂钠氪锶科技有限公司 | 一种基于Web技术管控系统资源的方法及系统 |
CN112631527A (zh) * | 2021-01-07 | 2021-04-09 | 上海明略人工智能(集团)有限公司 | 基于k8s多租户的Juypter Notebook代码远端存储方法及装置 |
CN113157281B (zh) * | 2021-03-26 | 2024-02-13 | 北京百度网讯科技有限公司 | 开发环境的创建方法、装置、电子设备和存储介质 |
CN113157339B (zh) * | 2021-04-23 | 2023-07-18 | 东云睿连(武汉)计算技术有限公司 | 一种基于osb的应用服务扩展方法、系统、存储介质及装置 |
CN113296892B (zh) * | 2021-05-28 | 2024-02-06 | 联仁健康医疗大数据科技股份有限公司 | 开发环境的休眠方法、装置、电子设备及存储介质 |
CN113741970B (zh) * | 2021-08-09 | 2024-02-02 | 广州市易工品科技有限公司 | 数据仓库生产环境和开发环境分离实现方法和装置 |
CN114371882B (zh) * | 2021-12-27 | 2024-09-10 | 天翼物联科技有限公司 | 一种应用的统一配置管理方法、系统、装置及存储介质 |
CN118369644A (zh) * | 2022-02-25 | 2024-07-19 | 华为云计算技术有限公司 | 远程开发的方法及装置 |
CN115378669A (zh) * | 2022-08-05 | 2022-11-22 | 北京达佳互联信息技术有限公司 | 云端集成开发环境ide远程用户权限确认方法及装置 |
CN116258622A (zh) * | 2023-02-16 | 2023-06-13 | 青软创新科技集团股份有限公司 | 一种基于容器的gpu分配方法、装置、电子设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245373A (zh) * | 2015-10-12 | 2016-01-13 | 天津市普迅电力信息技术有限公司 | 一种容器云平台系统的搭建及运行方法 |
CN105808240A (zh) * | 2016-03-01 | 2016-07-27 | 北京量邦信息科技股份有限公司 | 一种在线编程环境下实现用户隔离的方法 |
US9621643B1 (en) * | 2015-07-31 | 2017-04-11 | Parallels IP Holdings GmbH | System and method for joining containers running on multiple nodes of a cluster |
CN107426206A (zh) * | 2017-07-17 | 2017-12-01 | 北京上元信安技术有限公司 | 一种对web服务器的防护装置和方法 |
CN108039975A (zh) * | 2017-12-21 | 2018-05-15 | 北京搜狐新媒体信息技术有限公司 | 容器集群管理系统及其应用方法 |
-
2018
- 2018-07-25 CN CN201810822701.1A patent/CN109104467B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9621643B1 (en) * | 2015-07-31 | 2017-04-11 | Parallels IP Holdings GmbH | System and method for joining containers running on multiple nodes of a cluster |
CN105245373A (zh) * | 2015-10-12 | 2016-01-13 | 天津市普迅电力信息技术有限公司 | 一种容器云平台系统的搭建及运行方法 |
CN105808240A (zh) * | 2016-03-01 | 2016-07-27 | 北京量邦信息科技股份有限公司 | 一种在线编程环境下实现用户隔离的方法 |
CN107426206A (zh) * | 2017-07-17 | 2017-12-01 | 北京上元信安技术有限公司 | 一种对web服务器的防护装置和方法 |
CN108039975A (zh) * | 2017-12-21 | 2018-05-15 | 北京搜狐新媒体信息技术有限公司 | 容器集群管理系统及其应用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109104467A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104467B (zh) | 开发环境构建方法、装置以及平台系统和存储介质 | |
US20220179682A1 (en) | Task processing method, apparatus, and system based on distributed system | |
CN107145380B (zh) | 虚拟资源编排方法及装置 | |
CN102439564B (zh) | 在Linux容器中启动应用程序的方法和系统 | |
EP3432549B1 (en) | Method and apparatus for processing user requests | |
CN108255497B (zh) | 一种应用的部署方法及装置 | |
CN111641515B (zh) | Vnf的生命周期管理方法及装置 | |
WO2019184164A1 (zh) | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 | |
CN106445473B (zh) | 一种容器部署方法及装置 | |
CN108572845B (zh) | 分布式微服务集群的升级方法及相关系统 | |
CN113557747A (zh) | 使用动态网络接口的可互操作的基于云的媒体处理 | |
CN112860450B (zh) | 一种请求处理方法及装置 | |
CN112333017A (zh) | 一种服务配置方法、装置、设备及存储介质 | |
CN115525396A (zh) | 基于云原生的应用管理方法及装置 | |
CN116805946A (zh) | 一种消息请求处理方法、装置、电子设备及存储介质 | |
CN113821333A (zh) | 安卓应用程序迁移的方法和装置 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
CN111600755A (zh) | 上网行为管理系统和方法 | |
CN111767345B (zh) | 建模数据同步方法、装置、计算机设备及可读存储介质 | |
CN110858846A (zh) | 资源配置方法、装置和存储介质 | |
CN113691575B (zh) | 通信方法、装置及系统 | |
CN114675872A (zh) | 一种对应用程序的数据处理方法、装置、设备及存储介质 | |
CN113821303A (zh) | 一种部署harbor集群的方法、装置及可读存储介质 | |
CN112217852A (zh) | 一种基于工作流引擎的平台即服务系统及方法 | |
CN117056029B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |