1为什么传统开发模式存在问题? 在信息化企业的这条路上,我们已经走得很远了,从少数单机到集群的规模壮大;软件生态也不断丰富完善,从底层系统到上层的业务分析、ERP、数据库等自研定制亦或是第三方应用。正式因为有了这些IT基础,云计算也开始生根发芽。 越来越多的社会业务依赖着IT技术,IT技术工作者们也越来越期望自己的产品可以更快地响应社会不断变化的需求。首个软件公司的诞生已经过去了七十年,技术日新月异,业务发展迅速的公司也逐渐发现传统开发模式已经不再适用了。市场机遇不断扩大,企业业务需求相应增加;而业务需求落地的速度超过研发所能承受的工作量。另外,由于发布产品越来越多,对应的测试工作也相应地越来越多,如何满足海量的开发测试需求,如何实现产品的快速迭代、快速发布,正在成为企业越来越强烈的诉求。 不少企业尝试通过扩充研发人员的方式加快产品落地速度,但是人员增多并不意味着开发时间的缩短;但是IT技术的研发实现能力却不能跟上步伐,如何加快产品落地速度为企业争取先机成为重大课题。那么,为什么传统开发模式存在能力瓶颈呢? 1. 开发工具不统一、安装耗时:传统开发模式下,以Java为例,一般人都是用Eclipse或者MyEclipse这样的IDE工具,这类工具通过自带的各种插件,能够完成开发工具与执行环境的结合,直播,但是如何保证你的插件一定能起作用,如果遇到问题怎么解决,这样的问题往往导致一个开发人员一整天都在搭建开发环境。 2. 没有统一的开发、测试平台:无论是开发环境(Dev),还是集成环境(Staging),亦或是生产环境(Production),都需要能够快速部署环境。传统开发模式很容易出现的问题是需要花费大量时间统一各个环境的差异点。差异点包括基础环境差异和开发程序环境差异,基础环境差异指的是安装测试程序之前整个环境情况不明确,可能出现操作系统版本不一致、开发依赖库版本不一致(例如JDK版本),也可能会出现一个环境运行不了程序,但是又找不出原因这类情况。而对于开发程序环境差异,传统开发模式多使用脚本方式执行安装、部署过程,但是脚本的维护本身就是一个问题。 3. 项目管理流程无法快速执行:无论传统开发模式,还是迭代开发模式,亦或是基于云端的开发模式,都需要严格执行项目质量管理流程,即需要对代码进行审核、单元测试、集成测试、系统测试,然后才能进行产品发布、上线,这一整套流程,在传统开发模式下,首先需要提交代码到SVN这样的代码资源库软件,然后由Leader进行代码审核,再开始个人开发环境上的单元测试,即便单元测试、集成测试通过,也未必意味着部署到测试环境一定没有问题,一整条线上有太多的不可控因素,任何一点都可以拖慢开发团队的迭代速度。而代码审核、分析,多依靠人工进行,无法进行真正的智能分析。 4. 无法并行、协同开发:传统开发模式下,我们需要将代码提交到SVN,如果出现了代码冲突,还需要手动逐行校对,如果开发人员遍布全球,存在时差,那开发进度就会延期,这种方式下确实很难做到并行、协同开发。 2为什么DevOps备受关注? 回顾开发模式的发展历史,j2直播,大致分为瀑布开发、敏捷开发和DevOps三个阶段。 DevOps就是想方设法避免从开发到交付过程中可能发生的冲突,同时让大家用更聪明更有效的方式去工作。它是一种框架,包含了很多优秀想法和原则,它鼓励开发部门和运维部门通力合作,提高产品实现的速度。在DevOps环境中,开发人员和系统管理员会构建一些关系、流程和工具,从而更好的与客户互动,最终提供更好的服务。 真正想要实现DevOps,需要开发平台提供能力,促进软件开发向前发展和提升,而不仅仅是拥有思维。效率的本质是聚焦创造性工作,即解放双手、唤醒大脑。InfoQ曾经撰文对DevOps工具链进行了分类总结,对DevOps不是很熟悉的读者可以移步DevOps科普文《DevOps的前世今生》: 3华为走过的路 最早期的软件开发堪称 “个人英雄主义时期”,但是随着团队的扩大,需要通过团队能力来承载团队研发,于是华为引入CMM聚焦于大团队如何通过更加完整的流程进行软件交付,彼时交付周期为三到六个月。 此后,与行业整体历程相似,华为也走过了从最初IPD-CMM到敏捷模式开发尝试,再到DevOps研发能力及工具链建设,相应的研发、测试工具一直在跟随演进。 (责任编辑:本港台直播) |