每月亿行代码、全球数万研发,落地DevOps的协同平台DevCloud

为什么传统开发模式存在问题?

在信息化企业的这条路上,我们已经走得很远了,从少数单机到集群的规模壮大;软件生态也不断丰富完善,从底层系统到上层的业务分析,ERP ,数据库等自研定或是第三方应用。正式因为有了这些IT 基础,云计算也开始生根发芽。

越来越多的社会业务依赖着IT 技术,IT 技术工作者们也越来越期望自己的产品可以更快地响应社会不断变化的需求。首个软件公司的诞生已经过去了七十年,技术日新月异,业务发展迅速的公司也逐渐发现传统开发模式已经不再适用了。市场机遇不断扩大,企业业务需求相应增加;而业务需求落地的速度超过研发所能承受的工作量。另外,由于发布产品越来越多,对应的测试工作也相应地越来越多,如何满足海量的开发测试需求,如何实现产品的快速迭代,快速发布,正在成为企业越来越强烈的诉求。

不少企业尝试通过扩充研发人员的方式加快产品落地速度,但是人员增多并不意味着开发时间的缩短;但是IT 技术的研发实现能力却不能跟上步伐,如何加快产品落地速度为企业争取先机成为重大课题

那么,为什么传统开发模式存在能力瓶颈呢?

1. 开发工具不统一,安装耗时:传统开发模式下,以Java 为例,一般人都是用Eclipse 或者MyEclipse 这样的IDE 工具,这类工具通过自带的各种插件,能够完成开发工具与执行环境的结合,但是如何保证你的插件一定能起作用,如果遇到问题怎么解决,这样的问题往往导致一个开发人员一整天都在搭建开发环境。

2. 没有统一的开发,测试平台:无论是开发环境(Dev ),还是集成环境(Staging ),亦或是生产环境(Production ),都需要能够快速部署环境。传统开发模式很容易出现的问题是需要花费大量时间统一各个环境的差异点。差异点包括基础环境差异和开发程序环境差异,基础环境差异指示是安装测试程序之前整个环境情况不明确,可能出现操作系统版本不一致,开发 依赖库版本不一致(例如JDK 版本),也可能会出现一个环境运行不了程序,但是又找不出原因这种情况。而对于开发程序环境差异,传统开发模式多使用脚本方式执行安装,部署过程,但是脚本的维护本身就是一个问题

3. 项目管理流程无法快速执行:无论传统开发模式,还是迭代开发模式,亦或是基于云端的开发模式,都需要严格执行项目质量管理流程,即需要对代码进行审核,单元测试,集成测试,系统测试,然后才能进行产品发布,上线,这一套套流程,在传统开发模式下,首先需要提交代码到SVN 这样的代码资源库软件,然后由Leader 进行代码审核,再开始个人开发环境上的单元测试,即便单元测试,集成测试通过,也未必意味着部署到测试环境一定没有问题,一整条线上有太多的不可控因素,任何一点都可以拖慢开发团队的迭代速度。而代码审核,分析,多依靠人工进行,无法进行真正的智能分析。

4. 无法并行,协同开发:传统开发模式下,我们需要将代码提交到SVN ,如果出现了代码冲突,还需要手动逐行校对,如果开发人员遍布全球,存在时差,那开发进度就会延期,这种方式下确实很难做到并行,协同开发。

为什么DevOps 备受关注?

回顾开发模式的发展历史,大致分为瀑布开发,敏捷开发和DevOps 三个阶段。

DevOps 就是想方设法避免从开发到交付过程中可能发生的冲突,同时让大家用更聪明更有效的方式去工作。它是一种框架,包含了很多优秀想法和原则,它鼓励开发部门和运维部门通力合作,提高产品实现的速度。在DevOps 环境中,开发人员和系统管理员会构建一些关系,流程和工具,从而更好的与客户互动,最终提供更好的服务。

真正想要实现的DevOps ,需要开发平台提供能力,促进软件开发向前发展和提升,而不仅仅是拥有思维。效率的本质是聚焦创造性工作,即解放双手,唤醒大脑。相关的曾经撰文对的DevOps 工具链进去了分类总结,对DevOps 不是很熟悉的读者可以移步DevOps 科普文“ DevOps 的前世今生 ”。

华为走过的路

最早期的软件开发堪称 “个人英雄主义时期”,但是随着团队的扩大,需要通过团队能力来承载团队研发,于是华为引入CMM 聚焦于大团队如何通过更加完整的流程进行软件交付,彼时交付周期为三到六个月。

此后,与行业整体历程相似,华为也走过了从最初IPD-CMM 到敏捷模式开发尝试,再到DevOps 研发能力及工具链建设,相应的研发,测试工具一直在跟随演进。

华为在全球有16 个研发中心,近8 万研发人员,对于这样一个量级的软件开发团体,想成功DevOps 改革并非易事。在决定落地DevOps 平台之时,就希望实现代码和作业上云,让开发只做开发。2014 年,华为已经开始研发一些DevOps 风格的工具,现如今已经实现了DevCloud 软件开发运平台,在云上实现了DevOps 的工具链,供开发者使用参考下面的DevOps 能力环来分析DevCloud :

华为希望的是将整个能力环的工作都放入到云端,开发者在完成代码的编写之后,不再关心后续环节的任何问题。换而言之,文中最早提到的开发模式的四大问题则直接由该平台处理,不再耗费人力逐一手动处理琐碎的代码之外工作,从而提高产品的落地效率。

华为对此DevOps 云端平台的功能划分如下:

华为称一切开发活动都在云端,即DevCloud 负责软件开发全生命周期的云服务。进行DevOps 改革之后,千万行代码级产品的版本迭代周期从8 周缩短到3 周。

从华为提供的整体统计数字来看,以前华为每个月有超过一亿行的代码,编译时间超过25 分钟;后来通过软件研发云将所有的编译资源进行了集中处理,将编译时间从25 分钟降到了7.5 分钟,版本的编译速度从94 分钟升级到31 分钟,研发环境的准备时间也由月级降低到了小时级,甚至分钟级。

通过三个应用场景看技术落地

应用场景一:代码检查

技术层

缺陷自动检查:代码缺陷模式库融合华为优秀代码实践与编程规范与业界通用的检查规则,覆盖常见的编码风格,架构,Web 安全等方面的问题。大规模分布式任务调度:基于并行智能任务调度算法,对检查节点进行自动弹性伸缩,检查任务根据检查规则类型智能分片和并行执行,支持大规模代码仓库的代码检查。

业务层

代码检查任务由“代码+ 检查规则+ 检查报表”构成,即:检查引擎从代码仓库(CodeHub )克隆代码,从规则库中获取检查规则,执行生成检查报表,保存到检查任务实例对象

表现层

华为将20+ 年的软件开发经验荟萃出一套完整的代码检查机制,可在线进行多种语言的代码静态检查,代码安全检查,质量评分,代码缺陷改进趋势分析,辅助管控代码质量。

提供华为典型检查规则集,支持web 检查,安全检查,架构检查,编码问题检查等场景。支持Java ,JavaScript ,CSS ,HTML ,C ++ 等语言检查,持续增加语言支持广度。精确定位缺陷,针对每个代码缺陷,提供详细的缺陷影响说明,正确示例,错误示例,修改建议。如果系统的检查不满足需求,SE 可通过定制规则集来实现挑选规则集;针对大量代码缺陷,用户可根据问题级别,问题分类,语言,文件目录等进行过滤,分级处理。

应用场景二:自动化流水线

技术层

并行智能任务调度:实现智能任务调度算法,用户根据任务特点自行编排并行/ 串行任务,系统感知执行器状态和健康度,动态分配执行器的任务,故障节点任务实现自动转移和熔断,结合资源弹性伸缩策略,实现调度器和执行器高可用和水平扩展。资源弹性伸缩:使用华为企业云弹性扩展服务,感知到业务集群资源使用情况,资源利用率超过阀值时,动态扩容;反之,自动缩容。流水线根据不同业务类型,配置不同的弹性伸缩策略和资源弹性伸缩组,从而实现短时间内迅速提升流水线总体吞吐量。编译构建并行技术:通过使用精准增量编译技术,结合并行智能任务调度,可实现按技术栈,目录等编译策略增量并行编译,加速编译构建的速度,大幅降低编译构建等待时间。

表现层

对于一切可以解放双手的任务都会工具自动化实现。一键式完成代码下载/ 代码检查/ 编译构造/ 系统部署/ 产品发布整个交付流程。任务并行执行,按需动态分配资源,显着提升资源利用效率及执行效率。可实现单模块或者单独子系统的个人级交付,也可实现多模块,多子系统的版本级交付可随时查看流水线执行进度/ 结果/ 报告/ 日志。

应用场景三:部署环境标准化,部署过程自动化

技术层

部署编排技术

提供一定的服务编排能力,在playbooks 中可以编排有序的执行过程,甚至于做到多组机器间,来回有序的执行特别指定的步骤。并且可以同步或异步的发起任务。

用流水线同时集成编译构建,代码检查,部署,从代码提交开始触发操作,完成整个DevOps 的自动化流程。流水线支持编排部署任务之间的依赖和顺序,通过串行任务和并行任务以及子流水线来组合,调度各个任务,从而实现高效部署。

大规模部署技术

可能本身就支持多并发部署,缺省的并发任务数是5. 但是DevCloud 的部署采用python API 实现,我们封装了python 的任务以多线程方式运行;同时采用了gunicorn 框架提供多进程复用技术,以最大限度的利用Ansibe 引擎的并行部署能力;对于超过200 以上并发的大规模部署,我们会采用横向扩展即增加AnsibleRest 的节点数来支持更多的并发部署; 此外,我们还提供部署任务排队机制来保障峰值任务时系统仍然能够正常运行。

表现层

一键式自动化部署,部署机器无需安装代理,过程可视化,支持主流编程语言和技术框架,支持并行部署和流水线无缝集成支持Web 应用程序和微服务部署,支持Tomcat ,Java ,Python ,NodeJS ,Go ,PHP ,Ruby 语言。通过流水线定制交付流程,支持并行和串行任务,系统自动执行所有任务,并可查看所有任务的执行状态,日志及报告。提供高级编辑功能,满足用户更改部署参数和自定义执行参数以在部署任务执行时动态输入执行参数。

  关于DevCloud 的更多细节

正所谓英雄所见略同,业界也有很多DevOps 方案和实践经验,比如微软公司Visual Studio + Team Foundation Server 方案,AWS 和Google 基于云的DevOps 模块化组件,其他公司自研搭建的DevOps 链。

华为推出的DevCloud 的侧重点是一站式的解决方案,旨在帮助企业在软件开发的过程中提升效率和质量。DevCloud 的中文名称为“华为软件开发云”,即面向的目标群体是团队规模在10-50 人的中小团队,如中小企业的软件开发者,众包开发团队,个人开发者,高校软件/ 计算机类的大学生。

华为告诉InfoQ 使用华为软件开发云的研发周期是1 天到两周交付的弹性版本周期。其中:重大变更,新服务或大特性上线,多服务间联调的需求会长达双周交付;而服务内新特性,体验优化等开发,独立升级则会于1-3 天交付。

使用DevCloud 的用户可以基于软件开发云进行应用的开发,测试,而把软件自动化部署到华为企业云,也可以把软件包下载到本地后部署到别家的公有云,混合云。

   

 

  

本文转自d1net(转载)

时间: 2024-09-23 19:31:39

每月亿行代码、全球数万研发,落地DevOps的协同平台DevCloud的相关文章

面对 20 亿行代码,Google 如何管理?

面对"Google 这家公司有多大?"这种问题,你可能会用收入.股票价格.客户数量或者是形而上学的影响力来回答这个问题.但是,这还不是全部.Google 作为全球最大的互联网公司,我们当然可以用"互联网思维"来思考这个问题,比如用代码数量来衡量它.来自于 Google 的 Rachel Potvin,在周一举办的硅谷工程会议上给了我们一个可以参考的答案. 她表示,运行所有 Google 互联网服务的软件,包括了 Google 搜索.Gmail.Google 地图等,

面对20亿行代码,Google如何管理?

面对"Google 这家公司有多大?"这种问题,你可能会用收入.股票价格.客户数量或者是形而上学的影响力来回答这个问题.但是,这还不是全部.Google 作为全球最大的互联网公司,我们当然可以用"互联网思维"来思考这个问题,比如用代码数量来衡量它. 来自于 Google 的 Rachel Potvin,在周一举办的硅谷工程会议上给了我们一个可以参考的答案.她表示,运行所有 Google 互联网服务的软件,包括了 Google 搜索.Gmail.Google地图等,大

多少行代码才能完成下列项目?1亿行代码是神马概念?

class="post_content" itemprop="articleBody"> 多少行代码才能完成下列项目?据统计,平均一个 iPhone APP 是4万行代码,PS CS6 是5百万行,facebook 的总体项目则高达6000多万行代码-- 我们也可以从这张信息图中看到,早期的 Windows 3.1 只有200多万行代码,到了 Vista 年代则是将近5000万行,也可以看出 Windows 7 比 viata 精简了许多.

俄陨石坑现数万亿克拉钻石达此前全球储量十倍

据英国<每日邮报>9月17日报道,俄罗斯日前公布了一个20世纪70年代发现的钻石矿.该矿位于西伯利亚东部地区的一个直径超过100公里的陨石坑内,储量估计超过万亿克拉,能满足全球宝石市场3000年的需求.科学家们表示,这个被称为"珀匹盖"(Popigai)的陨石坑的历史超过3500万年,它下面的钻石储存量估计是全球其他地区钻石储量之和的十倍.俄罗斯之前一直隐瞒这个发现,目的是防止钻石价格被压垮而损害自己的钻石业利益."珀匹盖"的钻石又被称为"冲击

利用SS7漏洞可追踪全球数十亿部手机 黑客千里之外窃听澳洲议员

本文讲的是 利用SS7漏洞可追踪全球数十亿部手机 黑客千里之外窃听澳洲议员,澳大利亚版电视节目<60分钟时事>(60 Minutes)展示了黑客如何在数千公里外的德国窃听并追踪澳洲参议员 存在于现代通讯技术中的一个大型安全漏洞使得全球数十亿手机用户的数据可能遭到秘密窃取,黑客可以窃听电话并追踪受害者地理位置. 手机信令系统System Signalling Number 7(SS7)存在漏洞,黑客.骗子.流氓政府和肆无忌惮的商业运营商得以使用数以百计的在线端口进行入侵. "六十分钟时

联想赵海生:如何管理数万个店面和上亿的消费者

摘要: 联想中国区数字运营总监赵海生 2014年中国互联网大会于8月26日在北京举行.大会现场,联想中国区数字运营总监赵海生发表了主旨演讲.赵海生在演讲中分享了联想做电商的历史以及 联想中国区数字运营总监赵海生 2014年中国互联网大会于8月26日在北京举行.大会现场,联想中国区数字运营总监赵海生发表了主旨演讲.赵海生在演讲中分享了联想做电商的历史以及经验. 赵海生称,联想电子商务是从1999年开始的,那个时候更多是B2D的,特别是联想和渠道之间的B2D连接,这种连接是很高效的. 赵海生表示,到

NSA是这样入侵数万亿加密连接的

本文讲的是 NSA是这样入侵数万亿加密连接的,爱德华·斯诺登(Edward Snowden)2013年泄密称,美国国家安全局(NSA)能够破解互联网上使用的一些强加密算法,拦截基于VPN.SSH和HTTPS的数万亿通信连接,阅读数全球数百万计的私人电子邮件.但这已经不是什么新鲜消息了,如今人们更加关注NSA是通过何种方法获得破解能力的.经过来自多个知名机构的14位密码学专家协同研究,这个问题如今可能有了答案. 亚历克斯·哈德曼(Alex Halderman)和纳蒂亚·赫宁格(Nadia Heni

2010年全球数显量具需求将达2000万套

我国成为全球第二大量具生产国 我国量具行业经过几十年的建设与发展,已经初步形成产品门类比较齐全,具有一定生产规模和开发能力的产业体系,成为全球除日本外第二大量具生产国.据不完全统计,2006年我国工量具生产企业总数为400多家,其中以生产量具为主的企业约为100多家.2006年我国量刃具工业总产值244.89亿元,与2005年 同比增长28.3%:产品销售收入230.45亿元,与2005年同比增长27.7%. 改革开放20多年来,我国量具行业得到了快速发展.据统计,2005年量具出口量占销售量的

2020年中国电商规模将达30万亿 将成为全球第一大电子商务经济体

扬子晚报讯(记者 徐晓风)2013年2月27日,在北京召开的"信息社会50人论坛"2013年第一次会议上,阿里巴巴集团研究中心(以下简称"阿里研究中心")发布了一项正在进行的关于信息经济前景的研究,首次提出了"电子商务经济体"的概念,并预计在2020年,中国的电子商务规模(包括B2B在线交易)将达到30万亿,成为全球第一大电子商务经济体. 阿里研究中心认为,信息经济正在成为继"金砖五国"之后全球经济最重要的发展引擎.其标志是互