打造最专业的体育彩票数据门户

2019云计算开源产业大会丨刘迪:让软件开发在云(2)

2019-07-05 05:39栏目:产业动态

企业级应用开发的厂商采用敏捷的方式相对来说还是比较少的,更多的还是传统的分布式模型开发,但是我们为了适用发展提供的是四个方面的解决方式:

提供多模式的项目管控,就是项目管控的模板工具,定制不同的项目模板,适应瀑布或者敏捷开发场景,我们也可以提供针对公司现行的管理体系,包括ISO9000的管理方式尽量做到管理和研发不脱节。

提供多维度的研发看板,长期以来我们对研发人员的评估,包括外包单位研发人员的评估缺乏有效手段,我们实时提供研发进度和代码贡献度,实现对项目的精细化管控,试点项目的实际数据是每个研发人员每天贡献有效代码行数是370行,不过我们也在探讨什么是有效代码,每周可以完成3个任务,也和任务的体系化有关。

提供分布式的协同研发,项目经理将项目进行任务化的分解,研发人员通过云端环境,基于任务化的协同研发减少相应的沟通成本。

提供全过程的项目管控,需求、设计、研发、测试全过程,基于任务模式驱动,并且自动生成需求跟踪,通过开发人员任务代码相关联缩短缺陷的修复时间将近一半,实现每个任务向上向下追溯。

我们通过一体化开发云的建设提供全容器化的研发环境,根据项目的动态周期动态回收资源,提高基础资源的利用率。我们的空间分配分成两种:一种是为每一个研发人员提供独立的动态空间,登录PC机或者终端,也会为每个项目提供一个独立空间。国家电网公司作为一个独立企业,要求使用一系列自己特有的平台类的东西,包括有自己的流程工具和权限管理工具,外部厂商很难能够搭建一套完整的研发环境或者测试环境,通过这种配置给所有研发厂商动态生成符合研发测试要求的封闭环境。另一种就是项目进入测试期以后我们自动回收开发资源,缺陷修复的时候动态启动开发环境。

一体化开发云基于配置构建两极代码仓库形成分区体系,实现代码云端统一、分级管控。我们最开始的时候是想让所有的研发人员直接连到中央代码库,但是实践的过程当中我们发现这种体验并不太好。我们的研发人员相对比较集中,就是集中在福州、成都、北京和合肥这样几个城市,通过建设不同的开发基地,每个开发基地都有一个本地的缓存库。相当于在本地必须通过这样的检测才能进入本地缓存库,然后在本地缓存库当中执行自动化测试,版本再存入中央代码库。我们通过这种方式实现既不影响本地开发,又不实现异地协同研发的模式。

我们的开发云提供可拖拽式快速构建业务系统,并且支持自动化转维传统单极应用和微服务的代码,过去的十年当中国网公司的开发工具是我们做的,通过和不同项目组的长期合作,通过各个领域包括人财物、基建和招投标形成3000多个典型业务模板,才做到了这样的模板生成各类应用的快速迭代方式。构造阶段我们提供高保真的原型,而且和其它原型工具最大的区别是原型可以转换成后面项目直接应用代码,确保这种原型保真程度和不被曲解的程度,实现这种可视化的构造、快速开发和高质量的交付。

我们提供离线和在线两种研发模式,通过浏览器进行在线开发,离线方式之所以存在就是因为有些项目需要现场测试,因为只有生产环境或者准生产环境才能进行测试,我们支持这种代码的导出,包括代码设备需要进行生成认证,保证人员导出,整个代码的流失或者走向可追溯,外面实现远程开发或者本地环境调试之后可以同步回到本地。

这是一体化开发云提供的可定制化流水线的持续集成,我们提供企业级的研发流水线引擎,在线可视化流程定制,执行在线开发、在线检测、持续集成、业务部署,实现流水线自动化执行、快速迭代和持续交付。封装、打包、编译脚本、提供可视化向导,每天可以完成3000次左右的持续集成,运行效果非常稳定。全过程任务推动,各个阶段执行过程实现可视化,并且提供一站式部署在KPS上面的技术路线上云,屏蔽底层的技术细节,无论什么都是需要经过中国电科院第三方的安全检测上线,所以我们并没有实现真正从开发到测试到运行,只是在开发和自身的测试阶段实现这样的流水线。

我们项目去年开始试用,截止目前一体化开发云支撑30多个项目的建设,参与研发人员1000名左右,通过这种业务平台进行集成管理,初步统计整个硬件使用率提高130%,节约研发成本700余万元,但是实践过程当中还存在着大量的问题,每天仍然在修复缺陷。大概每天收集到的问题有几十个,而且由于网络限制,目前针对互联网开发或者移动应用开发支撑也有限,就是我们在大型企业研发上云的尝试或者应用的效果,可能和其它行业不完全相同,大家感兴趣的话会后我们可以进一步交流。