本发明涉及计算机技术领域,尤其是涉及一种项目研发环境部署系统。
背景技术:
在大型企业组织(比如银行、电信等)中,研发团队和it团队是两个分离的组织。研发团队负责提供研发环境的需求,it团队负责企业的it基础架构设施相关的安装、配置、运维等工作。
1.对于it部门而言,it部门要提供、管理研发团队的研发所需的资源,并且持续不断的支持研发部门新的资源需求。
2.对于研发部门而言,在云上进行应用研发时,项目开始前,项目通常根据需求需要设定研发环境配置包括版本、软件、函数库等。项目开始后,组建项目研发团队,研发团队成员每个人也都需要一个与项目研发环境配置一致的研发环境,整个团队也需要一个共同的代码管理、集成、测试服务。项目进行时,研发环境的配置会根据需求的变化而变化,比如有新的版本或者补丁等。这些配置变更需要一致性的反映到每研发成员的自己的研发环境中。项目完成后,研发环境所要的资源会释放出来,供下一个项目使用。
3.通常情况下it组织接受研发部门的请求,进行手动的安装、配置,而且支持多个研发团队的研发环境资源请求的管理随着项目的增加,复杂度也大幅提升。
4.在企业应用进行研发时,企业授权软件和支持的操作系统、编译环境等受版权保护的软件的使用需要得到授权使用,使用的情况也需要得到监控。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种项目研发环境部署系统。
本发明的目的可以通过以下技术方案来实现:
一种项目研发环境部署系统,该系统包括:
路由器,接收外部请求;
部署控制器集群,实现部署控制;
交换机,实现tcp/ip参考模型中链路层的交换;
私有云控制器,分别与所述路由器和交换机连接,在所述部署控制器集群的控制下实现项目研发环境的创建和部署,同时通过交换机实现对项目研发环境的访问;
所述部署控制器集群、交换机和路由器接入一应用研发环境部署网中,所述项目研发环境接入一项目研发网,所述应用研发环境部署网和项目研发网在tcp/ip参考模型的链路层上隔离;
所述部署控制器集群包括:
部署控制界面,用于接收环境部署指令;
部署控制器,根据所述环境部署指令控制私有云控制器生成项目研发环境;
身份管理服务器,在所述部署控制器的控制下实现研发项目成员信息和角色的注册和管理;
管理服务器,在所述部署控制器的控制下实现研发环境包含的云主机和应用信息注册和管理;
软件仓库,存储有供所述部署控制器调用的授权软件。
进一步地,该系统还包括:
堡垒机,接入所述应用研发环境部署网中,并与路由器连接,实现对部署控制器集群的管理员级别访问。
进一步地,不同项目研发环境接入不同项目研发网,每个项目研发网为一个独立的vlan。
进一步地,所述交换机和私有云控制器之间的连接为trunk方式,且私有云控制器控制交换机上vlan的划分。
进一步地,所述项目研发环境包括至少一个个人研发环境和一个研发协同工作平台,各个人研发环境共享所述研发协同工作平台,所述个人研发环境和研发协同工作平台均与所述身份管理服务器实现信息集成。
进一步地,所述研发协同工作平台包括文档管理工具、代码仓库、bug管理工具和持续集成工具。
进一步地,所述环境部署指令包括个人研发环境选配信息、协同工作平台选配信息和项目成员角色信息。
进一步地,所述身份管理服务器对研发项目成员信息和角色的管理包括:
在接收到研发团队人员访问请求时,对所对应的研发团队人员信息进行认证,根据认证结果生成访问权限。
进一步地,所述管理服务器对研发环境包含的云主机和应用信息的管理包括:对云主机和应用信息进行状态监控,实现全生命周期管理。
在项目开发结束时,部署控制器控制私有云控制器删除项目研发环境,释放资源。
本发明是一种it部门在共享的基础架构资源之上,向团队提供统一的研发环境、并且能够对它进行统一的管理、更新等操作,安全隔离的系统。随着研发团队和研发项目的增加,本系统增加的额外工作量很小,极大的提高了it组织和研发团队之间的协同工作效率,也提高了资源的利用率。
与现有技术相比,本发明具有以如下有益效果:
1、本发明可以让企业it团队根据研发团队的需求向研发团队提供团队所需要的研发环境。
2、本发明构建的项目研发环境是可以配置的,研发团队可以按照需求在部署控制界面灵活配置所需要的组件,并且选择所需要的研发环境的个数,部署控制器收到请求后,可以自动的创建项目研发环境,并且按照所要求的个数进行复制。
3、本发明构建的项目研发环境包括一个研发协同工作平台,研发协同工作平台和项目研发环境的集成是在项目研发环境创建时完成的。集成效果是,项目研发环境中开发的代码可以直接上传代码仓库,并且通过持续集成工具触发编译,和相关的自动测试。研发人员使用文档管理工具对研发文档进行管理。每个项目都有自己独立的研发协同工作平台,确保了研发项目之间不互相干扰,并且保证了研发交付物,代码,文档的保密性。
4、本发明部署的项目研发环境和统一身份管理服务器在环境创建时自动进行了集成,研发人员登陆研发环境后,研发环境会从统一身份管理服务中拿到研发人员身份的令牌,根据令牌中的角色来赋予研发人员权限。研发协同管理平台中的文档管理工具、代码仓库、bug管理工具、持续集成工具和统一身份管理服务进行了集成。集成效果是,研发人员只用登陆一次,就可以使用这些工具,不要再输入密码。并且密码的修改和收回都在统一身份管理服务进行,不用到项目研发环境中的每个计算机和工具中修改和收回。方便了研发人员对于账号安全性的管理。
5、本发明的项目研发环境和管理服务在环境创建时自动进行了集成。管理服务在研发环境创建时就注册了项目研发环境中包含的计算机的ip、应用等信息,并且对其中计算机,应用和工具进行监控,进行管理,补丁等全生命周期管理。当出现问题时,it团队会得到邮件或者短信通知,及时修复项目研发环境,提高了环境的可靠性,当出现新的补丁时,管理服务也可以对项目研发环境中的计算机,应用和工具打补丁,使得研发人员可以专心在研发工作上。
6、本发明中,不同项目研发环境位于不同的项目研发网中,是在tcp/ip参考模型中的链路层上隔离,防止了不同项目之间的链路层报文广播风暴、链路层的攻击和因研发环境中使用到dhcp、arp等链路层服务,而对其他研发环境造成的干扰。最终效果是,使得不同项目之间的项目研发环境不相互干扰,也不能相互访问,保证了安全。
7、项目结束时,本发明可以以自服务的方式通过部署控制界面操作,方便的把研发环境删除,以释放资源,提高资源的利用率。
8、本发明的项目研发环境在应用研发环境部署网中创建,研发过程正常运行在项目研发网中运行,这两个是隔离的网络,相互不影响。这样的设计保证了在创建过程中项目研发环境所在的计算机和部署控制集群交互时产生的大安装文件的下载、传输,以及部署控制集群启动的dhcp、ftp等服务不会干扰项目研发环境的正常运行。同时it团队的主要工作范围主要限定在应用研发环境部署网中,使得it团队的工作和研发团队的工作隔离,方便管理。
9、本发明的部署控制集群中,以项目研发环境模板为驱动,通过私有云控制器,实现了项目研发环境部署自动化、项目研发环境的网络隔离和项目研发环境的资源回收;通过统一身份管理服务提供了对项目研发环境的统一身份管理,对研发人员进行角色授权,这个角色是项目经理在部署控制界面上通过配置勾选的方式灵活配置的;通过管理服务对项目研发环境进行全生命周期的管理;实现了对于授权软件的管理。本发明的部署控制集群是项目研发环境创建过程的管理中枢,实现了项目研发环境的一键配置和部署、回收、身份统一管理、研发环境包含的计算机和应用软件的全生命周期管理以及授权软件的使用监督与管,有效降低环境部署成本,提高环境部署效率。
附图说明
图1为本发明的整体网络结构示意图;
图2为本发明的部署控制界面示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,本发明提供一种项目研发环境部署系统,该系统包括路由器145、部署控制器集群105、交换机142和私有云控制器140等,路由器145接收外部请求,包括it人员访问请求和研发人员访问请求;交换机142实现tcp/ip参考模型中链路层的交换;私有云控制器140在所述部署控制器集群105的控制下实现项目研发环境的创建和部署,同时通过交换机142实现对项目研发环境的访问。该系统能够有效降低环境部署成本,提高环境部署效率。
本发明的项目研发环境部署系统可以分为以下几个部分:
一、可靠、稳定的网络结构
1、应用研发环境部署网125
部署控制器集群105、交换机142和路由器145等接入应用研发环境部署网125中,所有连接到研发环境部署网125的设备都物理的连接在一起。该应用研发环境部署网125与项目研发环境接入的项目研发网在tcp/ip参考模型中的链路层上隔离。本实施例中部署有两个项目研发环境160和168,对应有项目研发网170和175。
应用研发环境部署网和项目研发网隔离目的在于:
a)所有安装部署和配置的工作都在部署网125完成,因为软件安装需要下载比较多的软件,会对网络造成比较大的冲击,这种隔离会保护开发网170和175不受安装的影响。同时研发过程中使用的dns或者dhcp等tcp/ip参考模型中的网络层以上的协议不会对环境部署网125产生影响。
b)it团队管理的资产包括授权软件需要一个相对的封闭的环境进行管理。
应用研发环境部署网125为it部门151的管理范围,项目研发网是研发部门152的管理范围。
2、交换机142
交换机142提供tcp/ip参考模型中的链路层的交换功能,并且它具有对于vlan进行划分和管理的功能。
a)堡垒机155的149接口、路由器145的146接口以及承载部署控制集群105的核心组件的物理计算机或者虚拟机或者容器都物理的连接到交换机142,并且被划入一个同一个vlan之中。
b)交换机142和私有云控制器140之间的连接144是trunk方式,并且私有云控制器144可以控制交换机142上的vlan的划分,包括指定vlanid。私有云控制器140创建的基于云主机的项目研发环境160属于同一个vlan,通过连接144接入交换机。以图1为例,私有云控制器144创建两个项目研发环境160和168,他们在不同的vlan中,属于不同的研发网,每个研发网都是一个独立的vlan。项目研发网170和175位于在私有云控制器管理的云网络中,以软件的方式实现的,图中以虚线的方式进行表示。研发环境160和研发环境168在不同的vlan中,等效于在tcp/ip参考模型中的链路层进行隔离,防止广播风暴和链路层的一些攻击。同时,私有云控制器指令交换机142创建两个研发环境对应的vlan,所有研发环境中的网络报文都通过trunk连接144,汇聚到交换机142,在交换机中142中进行交换。
c)交换机142以虚线的方式连接项目研发网170和175。研发网170和175是由私有云控制器140创建并且管理的云网络中的2个vlan,通过trunk方式的连接144,接入交换机142,网络报文的交换在交换机142内完成。
3、路由器145
路由器145可以是专门的设备,或者共享企业it基础设施中的外网路由器。为安全考虑,路由器145把it人员103和研发团队人员100与私有云控制器140管理的云网络进行隔离,同时也提供it人员103对于部署控制集群105,研发团队人员100对于研发环境160和研发环境168的访问路由控制。
a)该路由器一个接口147连接私有云控制器140,提供研发团队人员100和私有云控制器140所控制的私有云云网络之间的基于tcp/ip参考模型中的网络层的连接通道。研发团队人员100可以使用网络层以上的协议访问项目研发环境。
b)一个接口146和应用研发环境部署网125进行连接,提供研发团队人员100,对于部署控制界面200的tcp/ip参考模型中的应用层的连接,主要是研发团队项目经理在创建新的项目环境时,可以连接部署控制界面200以自服务的方式进行创建。
二、部署控制器集群105
部署控制器集群105是整个系统的核心组件,是一个整体,提供完整的部署控制服务,其中的组件包含大量敏感数据,比如身份,授权软件等。部署控制器集群105包括身份管理服务器280、管理服务器310、部署控制界面200、部署控制器300和软件仓库260共计5个组件。
1、身份管理服务器280,与应用研发环境部署网125连接,对外提供身份的认证和授权服务,该服务可以由一台独立的物理计算机或者虚拟机或者容器提供。
身份管理服务器280在部署控制器300控制云控制器生成研发环境162时,由部署控制器300执行配置程序配置研发环境162的云主机和研发协同工作平台163中的应用使用身份管理服务器280来统一管理身份。
2、管理服务器310,与应用研发环境部署网125连接,对外提供监控、管理、升级功能的服务,该服务可以由一台独立的物理计算机或者虚拟机或者容器提供。管理服务器310通过api接口接受部署控制器300注册的研发环境节点和应用配置信息,对这些节点和应用进行监控,补丁,升级178的全生命周期的管理。
3、部署控制界面200,与应用研发环境部署网125连接,对外提供部署控制界面,研发团队pm通过该界面可以选择要部署的研发环境的模板,数量等参数。该服务可以由一台独立的物理计算机或者虚拟机或者容器提供。研发团队pm可以通过路由器连接到部署控制界面,根据项目的需求选择研发环境的配置,制定项目成员和他们的角色,以自服务的方式完成研发环境的创建。
如图2所示,部署控制界面描述如下:
研发项目的需求不同,对应的研发项目的研发环境不相同,但是基本的研发环境架构是可以抽象出来的,一般是三层架构模式,包括研发环境界面201、研发环境协同工作平台界面205和项目成员、角色界面207。每一层中可以包含不同的组件,部署控制界面就是把这一结构通过可视化的方式呈现出来,形成模板,方便的让项目研发团队pm去选择。
a)研发环境界面201包括项目名称202、研发环境的数量207、负载均衡器203、应用服务器208的数据库等的填写和选择。
负载均衡器是可选的,负载均衡器的类型也是可以选的,承载负载均衡器的操作系统类型也是可选的,负载均衡器可以运行在物理机,也可以是虚机也可以是容器中。应用服务器的类型是可选的,承载应用服务器的操作系统类型也是可选的,是weblogic还是tomcat,运行的环境是java还是python等,应用服务器208可以运行在物理机,也可以是虚机也可以是容器中。数据库的类型是可选的,承载数据库的操作系统类型也是可选的,数据库可以运行在物理机,虚机也可以是容器中。
b)研发环境协同工作平台界面205包括文档管理工具、代码仓库、bug管理工具、持续集成工具的选配。研发环境协同工作平台可以运行在物理机、虚机或容器中。
c)项目成员、角色界面207用于定义项目成员的名字209和对应的角色208,比如是项目经理还是架构师,还是开发者。
4、部署控制器300,实现了对于授权软件的管理,当它收到部署控制界面200发过来的请求(其中包括研发环境的模板)时,可以把模板中的组件分解出来,在部署控制器中也记录了所有组件的安装配置程序,和软件仓库中对应的安装介质的位置,以组件名为索引可以找到组件的安装配置程序和介质的位置,同时记录下相关组件的使用情况,比如是什么项目,什么人在使用,做到对授权软件的使用情况的记录,便于事后的监管。同时在在部署控制器也有授权软件控制策略,可以根据项目,开发人员,使用的次数等多个维度来控制授权软件的使用,当不符合策略时,整个创建过程会失败。
a)部署控制器300通过应用研发环境部署网125连接到交换机142,进而连接到私有云控制器140,部署控制器300通过私有云控制器140的api可以创建、管理、删除云主机和云网络。
b)部署控制器300和部署控制界面200以消息机制进行连接,部署控制器300接受研发环境的配置消息,消息中包括项目的成员和角色和研发环境的组件信息。
c)部署控制器300使用身份管理服务器280api接口,把研发项目的成员信息和角色注册到身份管理服务器280中。
d)部署控制器300使用管理服务器310api接口,把研发环境包含的云主机和应用信息注册到管理服务器310中。
5、软件仓库260,与应用研发环境部署网125连接,提供授权软件的存放,可以由一台独立的物理计算机或者虚拟机或者容器提供。软件仓库260管理着企业授权软件和自主知识产权的组件,和它们的版本历史记录。软件仓库260支持保密文件传输,不支持匿名访问,仅接受秘钥方式的访问。
三、其他部分
1、堡垒机155,提供it人员103对于部署控制集群105安全的访问控制,所有对于部署控制集群的管理员级别的访问都需要经由堡垒机,该堡垒机针对部署控制集群提供安全的访问控制,堡垒机一个接口148连接路由器145,一个接口149连接应用研发环境部署网125。
2、私有云控制器140,提供开发环境所需要的云主机、云网络等资源的管理和对云资源管理的api接口,它管理着私有云资源。
a)一个接口144以trunk方式连接交换机,控制器上可以指令交换机划分vlan。私有云控制器140的另一接口147连接路由器,it研发人员通过路由器,可以以tcp/ip参考模型中的网络层协议以上的方式访问项目研发环境。
b)私有云控制器140管理着私有云资源,项目研发环境需要的资源由私有云提供,因为私有云控制器具有完备的api接口,部署控制器300可以指令私有云控制器140按照项目经理的要求创建、管理、删除项目研发环境。
如图1所示,本发明创建部署的项目研发环境160具体描述包括:
1、因为会有多个研发项目并行进行,每个研发项目都有一个对应的专门的研发环境,每个研发环境处于自己的vlan之中,支撑研发环境的资源是由私有云控制器140控制的私有云提供的。研发环境包括至少一个个人研发环境162和研发协同工作平台163:
a)每个个人研发环境162可以由一个或多个云主机构成,每个项目组成员都有一套相同的研发环境,以提高项目开发的效率;
b)每个项目组都会有一套协同工作平台,协同工作平台中包括研发必要的一些组件,包括文档管理工具、代码仓库、bug管理工具和持续集成工具。
研发环境162和研发协同工作平台163位于同一个网络中,个人研发环境中开发的代码可以直接上传代码仓库,并且通过持续集成工具触发编译,和相关的自动测试。
2、个人研发环境162中的计算机和部署控制集群105中的身份管理服务器280进行了集成,同时研发协同工作平台163中的文档管理工具、代码仓库、bug管理工具、持续集成工具和身份管理服务器280进行了集成。研发人员用自己的身份登录自己的研发环境一次,登录会首先到身份管理服务器280中进行认证,然后拿到令牌,令牌中包含研发人员的角色授权信息,研发人员得到令牌后使用研发环境的计算机,根据角色的不同,可以对项目不同的模块有不同权限,例如研发者角色允许修改代码并编译运行等。只有项目经理角色可以编辑研发环境中与整体项目相关的配置文件。
3、项目研发环境中的计算机也和部署控制集群105中的管理服务器310进行了集成,管理服务可以管理这些计算机的运行状况,并且进行全生命周期的管理包括监控、打补丁、销毁等操作。研发团队成员可以专心的在研发上,研发环境的管理可以让it团队进行管理。
4、项目研发环境160由私有云控制器140进行管理,在项目开发结束时,部署控制器300可以指令私有云控制器140删除研发环境160包括该环境对应的由私有云控制器140管理的项目研发网170,以释放资源。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。