CN105739960A - 可持续集成的软件研发环境架构 - Google Patents
可持续集成的软件研发环境架构 Download PDFInfo
- Publication number
- CN105739960A CN105739960A CN201410766331.6A CN201410766331A CN105739960A CN 105739960 A CN105739960 A CN 105739960A CN 201410766331 A CN201410766331 A CN 201410766331A CN 105739960 A CN105739960 A CN 105739960A
- Authority
- CN
- China
- Prior art keywords
- server
- development
- software
- research
- management server
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种可持续集成的软件研发环境架构,其包括源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器、持续集成服务器,源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器都与持续集成服务器连接。本发明解决现有技术中存在的问题,避免不必要的损失,提高安全性,加快开发速度。
Description
技术领域
本发明涉及一种研发环境架构,特别是涉及一种可持续集成的软件研发环境架构。
背景技术
软件公司或其它软件研发组织都会搭建自己的研发环境,研发环境的架构方案也是多种多样,小型公司搭建一台源码管理服务器和一台开发服务器就能满足要求,大型公司会多考虑部署一些持续集成软件来规范研发管理,架构中使用的软件也是千差万别,有用商业软件,也有用开源软件,架构方案的设计缺乏目的性,考虑的都不够全面,很多研发环境都存在很多风险,这些风险会导致研发任务失败,给研发组织带来直接的经济损失。
软件研发成果除了源码有些情况还包括数据,源码一般都会使用代码版本控制软件CVS(ConcurrentVersionSystem)或者SVN(Subversion)来管理,数据使用Mysql、Oracle等常用关系数据库来管理,很多研发组织都没有考虑对这些源码内容和数据库进行实时备份,一旦源码服务器和数据库服务器出现故障可能会导致研发成果丢失,问题会很严重。
软件研发过程中的把开发环境和测试环境部署在同一台服务器上的情况行业中屡见不鲜,还有的是几个研发组共享同一个开发环境,这些情况都会对软件的开发调试和版本测试工作带来混乱。研发组在开发环境调试功能会修改共享环境的配置或者对硬软件资源独占,这会对其它研发组的调试工作以及测试组的功能和性能测试工作带来影响。如何分离各组的工作环境是很有很必要,这会让各组的工作变得简单,工作效率提高。
软件的代码质量如何保证?现在常用做法是通过人工来检查代码,这对于小型项目还是可行的,但如果代码行数很多以后,会需要消耗很多人工成本。另一种做法就是在集成开发环境安装质量检查插件,开发员自己检查发现,但不利于整个工程的问题统计,不利于跟踪各版本的质量数据。如何能自动化执行并快速发现整个项目的代码质量问题,减少人工成本的投入,并能跟踪各版本的质量情况,这是软件行业发展的必然趋势,使用一些代码质量检查软件是很有必要,这会有利于管理者对研发质量有一个总体上的把控。
软件研发团队人员角色众多,包括研发组、测试组、产品经理、研发经理、系统管理员、数据库管理员等,组织不利会导致研发进度缓慢,出现问题责任相互推托。如何组织整个团队有效地协同工作,让大家责任明确,通过在研发环境中规范各角色的工作内容,从而规范各角色的职责,这样的协同才能有利于提高协同工作效率,确保研发进度。
软件研发环境的稳定可靠是很多研发组织容易忽视的部分,硬件和软件的故障会影响研发进度,实时监控研发环境中的硬件、软件、连通情况很有必要,要能提前预警以便做好预防工作,故障之前发生之前就能提前解决,或者故障发生时能快速锁定故障目标,快速修复,不影响研发环境的可用性,确保研发进度顺畅。
发明内容
本发明所要解决的技术问题是提供一种可持续集成的软件研发环境架构,其解决现有技术中存在的问题,避免不必要的损失,提高安全性,加快开发速度。
本发明是通过下述技术方案来解决上述技术问题的:一种可持续集成的软件研发环境架构,其特征在于,其包括源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器、持续集成服务器,源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器都与持续集成服务器连接。
优选地,所述源码管理服务器与一台SVN备份服务器连接。
优选地,所述数据库与一个热备服务器连接。
优选地,所述源码管理服务器采用SVN服务器。
优选地,所述代码质量管理服务器采用Sonar服务器。
优选地,所述仓库管理服务器采用Nexus服务器。
优选地,所述持续集成服务器采用Jenkins服务器。
本发明的积极进步效果在于:本发明实时备份研发源码和研发数据,确保研发成果的安全;开发和测试环境分离,确保测试结果准确可靠;各产品研发组开发环境分离,各测试组测试环境分分离,各自独享服务器硬件、软件资源,有利于各组的工作顺利开展;能及时监控软件代码质量,控制软件研发风险;软件代码质量按版本统计,便于管理者掌控代码质量整体发展趋势,为调整研发计划提供判断依据;人员角色分工明确、职责分明,协同工作规范,能提高团队合作效率;共享局域网内Maven资源库,系统在本地能快速完成构建,避免了下载互联网上的依赖包,节省了公司的带宽资源;通用功能模块统一上传到Maven仓库进行管理,有利于功能代码组织内共享,实现代码重用价值;能及时监控服务器和软件系统的状态,确保研发环境的安全性、可用性;系统持续集成自动部署减少了手动部署时间,节约人工成本;使用开源软件完成环境架构,无软件成本,为研发组织节省资源。
附图说明
图1为本发明可持续集成的软件研发环境架构的结构示意图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图1所示,本发明可持续集成的软件研发环境架构包括源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器、持续集成服务器,源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器都与持续集成服务器连接。源码管理服务器可以与一台SVN(SVN是Subversion的简称,是一个开放源代码的版本控制系统)备份服务器连接。数据库与一个热备服务器连接。源码管理服务器可以采用SVN服务器。代码质量管理服务器可以采用Sonar服务器。仓库管理服务器可以采用Nexus服务器。持续集成服务器可以采用Jenkins服务器。
此研发环境架构方案考虑全面,针对性强,解决了研发环境存在的诸多风险,架构中使用的都是开源软件,软件成本为零,硬件投入可以根据研发规模来确定硬件服务器的购置数量。架构图上列出的诸如SVN源码管理服务器、Nexus仓库管理等服务器都是指软件服务器,可以把几个软件服务器安装在一台硬件服务器上,具体实施时根据硬件服务器的性能和软件使用时的性能需求来计算。
架构图中配置了开发服务器和测试服务器都是独立的服务器,目的就是把开发环境和测试环境分开,以及各研发组、测试组相互之间的工作区域分开,每个组独享自己的工作环境,互不影响,硬件服务器数量多了会增加人工维护成本,所以购买一台性能很好的硬件服务器,通过虚拟技术为各组分配一个虚拟服务器环境来实现此设计的目的。
架构图中配置一台SVN(SVN是Subversion的简称,是一个开放源代码的版本控制系统)服务器用于源码管理,同时在分离的硬件服务器上配置一台SVN备份服务器,定时把SVN服务器中的源码同步到SVN备份服务器。数据库使用Mysql型数据库来存储研发数据,同样在分离的硬件服务器上配置一台Mysql型热备服务器,通过配置Mysql的主从备份,实时同步两个数据库中的数据。SVN和Mysql两个数据存储器同时配置备份,此设计目的是为了故障发生时确保研发源码和研发数据不丢失,确保研发成果的安全性。
架构图中的Nexus服务器、Jenkins服务器、Sonar服务器三个服务器是一套CI(ContinuousIntegration)组合使用的软件,分别用于Maven仓库管理、系统持续集成、代码质量管理,配合起来用作用强大,这三个软件可以配置在同一台服务器上。Nexus服务器作为局域网内的开源依赖包的仓库,便于局域网内快速构建工程,不需要从互联网上获取依赖包,节省了公司的带宽资源;另一方面可以把通用的功能包上传到Nexus服务器管理,便于组织内其它研发组重用,实现代码重用的目的。
使用Sonar服务器来管理软件源码的质量,Sonar服务器支持多种语言代码,分类统计代码问题,统计测试用例覆盖情况,按版本统计对比,方便管理者直接掌控研发质量,确保研发质量可控。Jenkins是一款持续集成软件,自动完成项目源码的编译、测试、构建、发布功能,执行迅速,可以设定定时任务自动完成开发和测试环境的版本部署,节约人工部署的成本,省时省工。
架构图中使用Nagios开源软件来监控研发环境内的硬件和软件的情况,设定预警条件,研发环境的任何异常情况都会发送邮件通知系统管理员,让其可以提前处理即将发生的异常,确保研发环境长时间可靠、可用。
架构图中使用的都是开源且成熟的软件,服务器上安装Centos开源操作系统,软件成本为零,减少研发组织的成本投入。
架构上可以分别列出与研发直接相关的几种角色,包括开发员、测试员、数据库管理,产品经理、研发经理、系统管理员,每个角色的工作职责通过架构直接体现,方便多个角色的协同工作,确保没有任何责任推托发生,这样协同工作的效率会更高。数据库管理员负责数据库的维护,系统管理员负责对研发环境中的硬软件、连接性进行监控,研发经理监控代码质量,产品经理验收功能,开发和测试分别负责自己的开发和测试工作,职责分明,责无旁贷。
本领域的技术人员可以对本发明进行各种改型和改变。因此,本发明覆盖了落入所附的权利要求书及其等同物的范围内的各种改型和改变。
Claims (7)
1.一种可持续集成的软件研发环境架构,其特征在于,其包括源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器、持续集成服务器,源码管理服务器、测试服务器、开发服务器、数据库、代码质量管理服务器、仓库管理服务器、网络监视服务器都与持续集成服务器连接。
2.如权利要求1所述的可持续集成的软件研发环境架构,其特征在于,所述源码管理服务器与一台SVN备份服务器连接。
3.如权利要求1所述的可持续集成的软件研发环境架构,其特征在于,所述数据库与一个热备服务器连接。
4.如权利要求1所述的可持续集成的软件研发环境架构,其特征在于,所述源码管理服务器采用SVN服务器。
5.如权利要求1所述的可持续集成的软件研发环境架构,其特征在于,所述代码质量管理服务器采用Sonar服务器。
6.如权利要求1所述的可持续集成的软件研发环境架构,其特征在于,所述仓库管理服务器采用Nexus服务器。
7.如权利要求1所述的可持续集成的软件研发环境架构,其特征在于,所述持续集成服务器采用Jenkins服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410766331.6A CN105739960A (zh) | 2014-12-11 | 2014-12-11 | 可持续集成的软件研发环境架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410766331.6A CN105739960A (zh) | 2014-12-11 | 2014-12-11 | 可持续集成的软件研发环境架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105739960A true CN105739960A (zh) | 2016-07-06 |
Family
ID=56240743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410766331.6A Pending CN105739960A (zh) | 2014-12-11 | 2014-12-11 | 可持续集成的软件研发环境架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105739960A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302667A (zh) * | 2016-08-04 | 2017-01-04 | 上海携程商务有限公司 | 代码管理系统及方法 |
CN107621946A (zh) * | 2017-08-16 | 2018-01-23 | 上海艾融软件股份有限公司 | 一种软件开发方法、装置及系统 |
CN108052316A (zh) * | 2017-12-26 | 2018-05-18 | 北京车联天下信息技术有限公司 | 一种车机客户端的开发系统 |
CN108241502A (zh) * | 2016-12-26 | 2018-07-03 | 航天信息股份有限公司 | 一种代码持续集成的方法及装置 |
CN110633095A (zh) * | 2018-12-07 | 2019-12-31 | 完美世界(北京)软件科技发展有限公司 | 一种用于代码管理的系统和方法 |
CN111209139A (zh) * | 2019-12-29 | 2020-05-29 | 航天信息股份有限公司 | 基于版本控制管理系统的容灾方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201226522Y (zh) * | 2008-03-14 | 2009-04-22 | 中国工商银行股份有限公司 | 一种软件测试环境的网络模拟系统 |
CN101572724A (zh) * | 2009-03-05 | 2009-11-04 | 国电南瑞科技股份有限公司 | 一种软件版本管理系统 |
CN103473328A (zh) * | 2013-09-17 | 2013-12-25 | 中电长城网际系统应用有限公司 | 一种基于mysql的数据库云及其建立方法 |
US20140289697A1 (en) * | 2013-03-21 | 2014-09-25 | The Procter & Gamble Company | Systems and Methods for Software Development |
-
2014
- 2014-12-11 CN CN201410766331.6A patent/CN105739960A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201226522Y (zh) * | 2008-03-14 | 2009-04-22 | 中国工商银行股份有限公司 | 一种软件测试环境的网络模拟系统 |
CN101572724A (zh) * | 2009-03-05 | 2009-11-04 | 国电南瑞科技股份有限公司 | 一种软件版本管理系统 |
US20140289697A1 (en) * | 2013-03-21 | 2014-09-25 | The Procter & Gamble Company | Systems and Methods for Software Development |
CN103473328A (zh) * | 2013-09-17 | 2013-12-25 | 中电长城网际系统应用有限公司 | 一种基于mysql的数据库云及其建立方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302667A (zh) * | 2016-08-04 | 2017-01-04 | 上海携程商务有限公司 | 代码管理系统及方法 |
CN108241502A (zh) * | 2016-12-26 | 2018-07-03 | 航天信息股份有限公司 | 一种代码持续集成的方法及装置 |
CN107621946A (zh) * | 2017-08-16 | 2018-01-23 | 上海艾融软件股份有限公司 | 一种软件开发方法、装置及系统 |
CN107621946B (zh) * | 2017-08-16 | 2020-05-12 | 上海艾融软件股份有限公司 | 一种软件开发方法、装置及系统 |
CN108052316A (zh) * | 2017-12-26 | 2018-05-18 | 北京车联天下信息技术有限公司 | 一种车机客户端的开发系统 |
CN110633095A (zh) * | 2018-12-07 | 2019-12-31 | 完美世界(北京)软件科技发展有限公司 | 一种用于代码管理的系统和方法 |
CN110633095B (zh) * | 2018-12-07 | 2023-07-14 | 完美世界(北京)软件科技发展有限公司 | 一种用于软件开发的系统和方法 |
CN111209139A (zh) * | 2019-12-29 | 2020-05-29 | 航天信息股份有限公司 | 基于版本控制管理系统的容灾方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105739960A (zh) | 可持续集成的软件研发环境架构 | |
US11475353B2 (en) | Automated application reliability management using adaptable machine learning models | |
CN105893050B (zh) | 一种基于PLMS、SVN和Jenkins进行软件项目全生命周期管理的方法 | |
CN110162471B (zh) | 一种基于容器云的压力测试方法及系统 | |
US9712418B2 (en) | Automated network control | |
CN104158910B (zh) | 一种云端Web应用自动化部署系统 | |
CN105631026A (zh) | 一种安全数据分析系统 | |
TWI644534B (zh) | Cloud platform monitoring method and cloud platform monitoring system | |
CN105490868B (zh) | 异地机房数据双向同步监控方法与系统 | |
US9483352B2 (en) | Process control systems and methods | |
CN107766502A (zh) | 一种Oracle RAC数据库容灾切换演练方法 | |
Nieuwenhuijs et al. | Modeling dependencies in critical infrastructures | |
CN104021438A (zh) | 基于业务模型对业务系统中物理设备进行监控的方法和装置 | |
CN113254279B (zh) | 一种智能灾备管理平台系统 | |
Veeraraghavan et al. | Maelstrom: Mitigating datacenter-level disasters by draining interdependent traffic safely and efficiently | |
US20210152446A1 (en) | Systems and methods of monitoring and controlling remote assets | |
CN102857371A (zh) | 一种面向集群系统的动态配置管理方法 | |
Trivedi et al. | System availability assessment using stochastic models | |
CN105574590A (zh) | 自适应总控灾备切换装置、系统及信号发生方法 | |
Punjabi et al. | User stories to user reality: A DevOps approach for the cloud | |
CN104036358A (zh) | 一种银行的作业自动化调度系统 | |
CN105653263A (zh) | 应用程序开发及运营系统 | |
DE112021004854T5 (de) | Dynamische ersetzung von verarbeitungselementen mit einem leistungsabfall in streaming-anwendungen | |
CN106649028A (zh) | 一种自动化Linux系统维护任务的方法 | |
CN108958713A (zh) | 一种新型可持续集成的软件研发环境架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160706 |
|
WD01 | Invention patent application deemed withdrawn after publication |