本发明涉及项目快速迭代开发及配置部署全生命周期的自动化配置管理领域,具体地说,涉及一种自动化软件项目开发全链路配置管理系统。
背景技术:
目前一般的软件项目或者产品从项目立项到正式上线都需要经过一个复杂的过程,从开发阶段开始包括开发、测试(单元测试、集成测试、用户验收测试)、试运行、上线等一整套流程,其中会经过无数轮的迭代开发以及回归测试过程。传统的做法是依据项目设计方案,在正式开发前需要准备好开发环境依赖的基础服务(比如数据库服务器、缓存服务器等),并且在随后的项目进程中需要逐步完成内部测试环境、UAT环境、预生产环境、生产环境等各个环境的配置。这些软件运行环境的配置不仅是一个重复且复杂的过程,而且随着项目数量的增加,会面临越来越多的重复操作。这些重复操作不仅浪费了宝贵的人力资源,而且相应的操作风险也会增加;并且随着项目数量的累积,项目的管理会越来越混乱,相应的维护人员需求也会逐步增加,最终增加了企业负担。
中国专利文献CN200710024861.3,公开日2009.01.07,公开了一种软件开发过程管理系统,该系统主要实现对软件开发过程中的项目计划,项目监督和控制,项目配置,项目采购及项目合同,项目风险,需求开发,技术决策,设计,编码,测试,质量管理,度量分析及量化等领域的管理,通过对以上领域的管理实现对整个软件开发过程过程进行控制,使得软件的开发效率和最终质量得到提高,同时软件失败的风险得到降低。中国专利文献CN200710026118.1,公开日2009.02.18,公开了一种实现5S管理的软件开发过程管理软件,该系统主要通过用户在软件中定义的规则,规范以及系统自带的代码识别器对所有的代码进行自动检测,及时跟踪,实现代码的整理,整顿,清扫;同时通过文档管理系统以及文档类别定义系统对知识文档进行整理,整顿,清扫,持续地使用该系统可以使得对软件开发过程的整理,整顿,清扫达到持续化和习惯化,从而达到提高软件项目的清洁以及提高员工职工的素养的目的,最终提高企业的综合竞争能力。然而,以上均未实现软件项目开发全链路的自动化配置管理。
综上所述,亟需一种可实现集中化的项目配置,使项目配置管理清晰有条理,从而降低项目维护复杂度,减轻运维人员工作负担,节约企业成本的管理系统,然而目前还未见相关报道。
技术实现要素:
本发明的目的是针对现有技术中的不足,提供一种自动化软件项目开发全链路配置管理系统。
本发明的再一的目的是,提供一种应用所述的自动化软件项目开发全链路配置管理系统进行自动化软件项目开发全链路配置管理的方法。
为实现上述第一个目的,本发明采取的技术方案是:
一种自动化软件项目开发全链路配置管理系统,由以下几个子系统组成:
a)版本管理系统:用于实现代码的历史版本以及分支、标签的管理;
b)可选的模板项目:用于生成新项目的基础代码;
c)项目持续构建系统:用于持续监控代码库的版本变更,自动运行单元测试并生成测试报告;利用Maven编译源代码并生成发布包;
d)项目部署系统:用于按项目容量需求预生成容器模板,并结合项目发布包部署容器实例;
e)公共服务资源系统:用于提供底层的公共服务资源;
f)自动化运维管理系统:用于控制所有的流程节点并负责调用各个子系统的接口生成或获取必要的资源。
所述的版本管理系统是以git为基础的。
所述的项目持续构建系统是以jenkins为核心的。
所述的项目部署系统采用的是docker容器技术。
所述的公共服务资源包括数据库服务、负载均衡服务、缓存服务和搜索服务资源。
为实现上述第二个目的,本发明采取的技术方案是:
应用所述的自动化软件项目开发全链路配置管理系统进行自动化软件项目开发全链路配置管理的方法,包括以下步骤:
步骤1-1:项目立项之初,项目管理人员向自动化运维管理系统提交立项申请,并选择项目模板以及项目容量需求;
步骤1-2:自动化运维管理系统审核立项申请,检验当前可用资源是否满足项目需求;
步骤1-3:自动化运维管理系统调用版本管理系统接口,以选择的模板项目代码为基础生成新项目代码库并分配权限,产出物:项目基础代码以及代码库地址;
步骤1-4:自动化运维管理系统调用jenkins接口配置项目构建参数,产出物:项目对应的构建环境;
步骤1-5:自动化运维管理系统依据项目容量选择合适的docker模板生成适用于应用服务器运行的容器实例,产出物:运行环境实例;
步骤1-6:自动化运维管理系统依据项目需求调用公共服务资源系统接口生成必要的服务资源,产出物:各个环境的公共服务资源配置参数;
步骤1-7:经过上述几个操作后,项目初始化完毕,项目所需的所有配置参数将会被持久化并反馈给项目负责人;
在项目开发阶段,通过自动化运维管理系统添加/删除服务依赖、调整运行环境应用服务器容量规划、发布项目至指定的运行环境、获取测试报告。
所述的发布项目步骤如下:
步骤2-1:开发人员在自动化运维管理系统提交发布申请,指定发布环境、待发布的代码版本、更新的功能点描述;
步骤2-2:自动化运维管理系统检查并获取指定版本源代码;
步骤2-3:自动化运维管理系统调用自动构建系统接口构建项目;
步骤2-4:自动化运维管理系统调用自动构建系统接口运行单元测试,测试失败时,退回本次发布申请;测试成功后进入下一步操作,产出物:单元测试报告;
步骤2-5:自动化运维管理系统调用自动部署系统将构建成功的发布包发布至指定环境并重启容器实例应用该发布包;
步骤2-6:自动化运维管理系统调用版本管理系统接口基于本次成功发布的代码版本打标签;
步骤2-7:自动化运维管理系统记录本次发布日志,本次发布完毕并提交测试。
本发明优点在于:
本发明提供了一种自动化软件项目开发全链路配置管理系统,负责从项目立项开发至最终发布上线的整个流程的自动化管理,实现了项目全生命周期的自动化配置管理,使项目配置管理更加清晰有条不紊,降低了项目维护复杂度以及对相关维护人员的需求,降低操作风险的同时降低了人员成本,将运维人员从日常的重复性的项目配置操作中解放出来,极大地降低了运维人员工作量,降低了企业运营成本。
附图说明
附图1是本发明的自动化软件项目开发全链路配置管理系统结构图。
附图2是实施例2的自动化独立商城开发全链路配置管理系统流程图。
具体实施方式
下面结合附图对本发明提供的具体实施方式作详细说明。
实施例1 本发明的自动化软件项目开发全链路配置管理系统
请参见图1,图1是本发明的自动化软件项目开发全链路配置管理系统结构图。所述的自动化软件项目开发全链路配置管理系统由以下几个子系统组成:
a)以git为基础的版本管理系统102(即图1中的代码库)
用于实现代码的历史版本以及分支、标签的管理。
b)一个可选的模板项目
用于生成新项目的基础代码。
c)以jenkins为核心的项目持续构建系统103(即图1中的自动化构建子系统)
用于持续监控代码库的版本变更,自动运行单元测试并生成测试报告;利用Maven编译源代码并生成发布包。
d)以docker容器技术为代表的项目部署系统104(即图1中的项目部署子系统)
用于按项目容量需求预生成容器模板,并结合项目发布包部署容器实例。
e)公共服务资源系统105(即图1中的公共服务子系统)
用于提供底层的公共服务资源,如数据库服务、负载均衡服务、缓存服务、搜索服务资源等。
f)自动化运维管理系统101
为各个子系统的协调者,是整个系统的核心,由它来控制所有的流程节点并负责调用各个子系统的接口生成或获取必要的资源。
由此,本发明的整个系统负责从项目立项到最终上线运营的所有节点的配置管理。
实施例2 本发明的自动化独立商城开发全链路配置管理系统
以标准的B2C单品牌官方商城项目为例来说明本发明的自动化软件项目开发全链路配置管理系统。
请参见图2,图2是实施例2的自动化独立商城开发全链路配置管理系统流程图,其管理过程如下:
步骤1-1:项目立项之初,项目管理人员向自动化运维管理系统提交立项申请,并选择项目模板以及项目容量需求;
步骤1-2:自动化运维管理系统审核立项申请,检验当前可用资源是否满足项目需求;
步骤1-3:自动化运维管理系统调用版本管理系统接口,以选择的模板项目代码为基础生成新项目代码库并分配权限。产出物:项目基础代码以及代码库地址;
步骤1-4:自动化运维管理系统调用jenkins接口配置项目构建参数。产出物:项目对应的构建环境;
步骤1-5:自动化运维管理系统依据项目容量选择合适的docker模板生成适用于应用服务器运行的容器实例。产出物:运行环境实例;
步骤1-6:自动化运维管理系统依据项目需求调用公共服务资源子系统接口生成必要的服务资源。产出物:各个环境的公共服务资源配置参数;
步骤1-7:经过上述几个操作后,项目初始化完毕,项目所需的所有配置参数将会被持久化并反馈给项目负责人,包括项目各个环境访问路径、公共资源连接参数、项目资源分配情况等。
在项目开发阶段,可以随时通过自动化运维管理系统添加/删除服务依赖、调整运行环境应用服务器容量规划、发布项目至指定的运行环境、获取测试报告等操作。以日常发布为例:
步骤2-1:开发人员在自动化运维管理系统提交发布申请,指定发布环境、待发布的代码版本、更新的功能点描述;
步骤2-2:自动化运维管理系统检查并获取指定版本源代码;
步骤2-3:自动化运维管理系统调用自动构建系统接口构建项目;
步骤2-4:自动化运维管理系统调用自动构建系统接口运行单元测试,测试失败时,退回本次发布申请;测试成功后进入下一步操作。产出物:单元测试报告;
步骤2-5:自动化运维管理系统调用自动部署系统将构建成功的发布包发布至指定环境并重启容器实例应用该发布包;
步骤2-6:自动化运维管理系统调用版本管理系统接口基于本次成功发布的代码版本打标签;
步骤2-7:自动化运维管理系统记录本次发布日志,本次发布完毕并提交测试。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
PHP网站源码长尾词在网站优化中有用吗唐山网站整站优化铜川网站关键词排名优化惠州行业网站优化收费网站seo优化渠道政府网站升级优化网站关键词排名优化策略商丘网站自然优化方案面试网站优化的问题网站优化被恶意点击怎么办优化企业网站有哪些技能静安区公司官方网站优化方案定制网站的优化总结延边网站排名优化好的网站优化公司深泽网站优化价格徐州网站排名优化公司阿克苏网站关键词优化网站关键词优化畅销易速达织梦网站需要优化网站快速优化就选vs火19星河源seo网站优化方法北京网站优化公司哪家好商丘百度网站优化选哪家唐山优化网站多少钱贵州鹤壁网站优化福建郴州企业网站优化方案优化网站推广营销价格杭州优化网站排名外包团队沈阳外贸网站优化招聘歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运