zl程序教程

您现在的位置是:首页 >  工具

当前栏目

为什么说DevCloud是敏捷和DevOps落地神器?

DevOps 为什么 神器 落地 敏捷 DevCloud
2023-09-27 14:20:47 时间

“人类生存于一个虚拟的、数字化的生存活动空间,在这个空间里人们应用数字技术从事信息传播、交流、学习、工作等活动,这便是数字化生存。”--尼葛洛庞帝!

21年前,尼葛洛庞帝在写下《数字化生存》一书时,谁都不会想到,书中所描绘的未来生活方式与今天如此相似,预言已然成真。

如今,数字化转型已经成为席卷全球的新趋势,人人都在讨论数字化转型,因为数字化转型并非是一种选择,而是唯一出路。

据Gartner的预测,到2017年25%的公司将因数字化能力不足而丢失业务。IDC的预测,到2027年,标准普尔500公司中将有75%被顶替出局。普华永道在调研了全球350位CEO后发现,80%的CEO认为企业数字化转型是第一考虑要务。

当年诺基亚在最风光时期市值高达2540亿美元,让人大跌眼镜的是,最终却被微软以70亿美元左右的价格收购。究其原因,只因为这个世界在变,它却没有紧跟数字化转型的脚步。

显然,企业必须确保比竞争对手更加敏捷、快速地响应迅速变化的数字化市场,才能赶上或者超过竞争对手,才可以在新时代下的市场中称雄。如果企业忽视数字化的作用,那么它将不可避免的陷入被淘汰的命运。

敏捷和DevOps是数字化转型的关键

什么才是“数字化转型”的正确姿势?CA Technologies的一项最新全球调查结果显示,89%的中国大陆受访企业同意敏捷及DevOps方案是致胜数字化转型的关键。

当前,数字化大时代下企业面对的商业环境瞬息万变,各种新技术突飞猛进的同时,新业务形态越来越复杂、需求变化越来越快、软件规模越来越大、交付周期越来越短、开发和维护成本越来越高,产品交付的风险急剧增加,传统研发模式无法适应快速变化的市场需求。

为了应对这些挑战,业界软件开发模式经历了持续的改进和变迁,从20世纪60年代作坊式开发,到80年代过程控制模型,到2001年敏捷、DevOps模式探索。

敏捷开发就是最适合应对转变的最优软件方法论,并被微软、华为、BAT等公司的开发人员广泛使用。而整合企业IT部门的软件开发与运维,实现开发与运维的一体化DevOps,则变得比以往任何时候都来得重要。

敏捷和DevOps落地需要成熟工具的帮助

虽然敏捷和DevOps是近几年来软件开发领域最火的词,但网上搜索,其实真正成功的案例并不多。显然大多数企业还徘徊在外,不得其门而入。

总结各种失败的原因,要推动敏捷和DevOps的落地生根,不仅要有相融的企业文化、领导支持、客户配合,还需要一系列成熟的工具平台来帮助企业的转变,否则数字化转型就只能是空中楼阁。

目前,网上敏捷和DevOps工具非常多,但大都比较分散单一,缺乏统一的一站式解决方案。不过,好在去年开始,国内企业终于不再缺席这个领域了。华为软件开发云(DevCloud)就正是这样一个工具平台。

众所周知,作为排名第129位的世界500强公司,华为在研发管理方面非常领先,而DevCloud正是基于华为近30年的研发实践,结合敏捷、精益、DevOps等先进研发理念,面向中小软件企业、软件外包企业、双创企业、互联网企业、高校和广大的软件开发者提供的一站式云端DevOps平台。这套工具可以大幅度提升软件研发的效率:以前华为每个月1亿行代码的编译时间,由原来的25分钟缩短到7.5分钟,版本级的编译速度也由94分钟缩短到31分钟。

从产品层面来看,软件开发云提供了“项目管理-配置管理-代码检查-编译构建-部署-测试-发布”等全生命周期服务,不仅能帮助企业实现一次开发、快速部署、快速迭代、快速反馈、持续开发集成与发布、多版本共享等数字化转型需要的敏捷开发能力,还能让企业获得开发与运维的高效融合,从而实现真正的开发与运维一体化,即DevOps,是真正的一站式服务。

DevCloud上敏捷和Devops特性的具体表现

说了这么多,DevCloud到底提供了哪些手段来保证企业能够实现敏捷/Devops开发?这是个关键性的问题,而回答这个问题需要从华为敏捷项目管理实践说起。

(注:PD,是Project Director的缩写,项目负责人)

通常我们熟知的敏捷开发流程可划分为准备、计划、开发、反馈四个阶段。

一、准备阶段(可选敏捷模式):使用软件开发云为敏捷项目管理工具,项目的开发流程可选创建“Scrum流程”项目或“精简流程”项目两种。精简流程项目是比敏捷模式更简洁的模式,适合小、微团队和个体开发者。

二、规划阶段(Story划分):Story划分是敏捷开发的标志之一,一个需求的接收,就是从Story的划分开始。Story划分并不是告诉开发人员一个需求怎么做?更多的是告诉开发人员一个需求为什么要做?需要做成什么样?实现什么样的价值。

软件开发云支持“Story” 创建,“项目规划”下创建的“Story”会同步到“Backlog”的需求列表中。在每个Spring启动前,按照优先级排序的Story制定迭代计划。

三、开发阶段(代码质检、自动化持续交付):软件开发云可在线进行多种语言的代码静态检查、代码安全检查(如未授信访问)、编码问题(如空指针引用)、圈复杂度、重复率、编程风格,只有在问题清零才允许构建出包。

与传统敏捷模式强调持续构建CI不同的是,融合了DevOps理念的新型敏捷模式,通过云端自动化的持续交付流水线,实现持续构建、持续测试(功能、接口、性能、可靠性等,据说能实现100%自动化)、持续部署(包括脚本自动下发、比对、蓝绿部署)、持续发布(灰度发布)、持续反馈,可将Ops端手工操作的时间减少80%,全功能团队可以聚焦于业务分析、开发交付及运营上,显著提升效率和产品质量。

代码提交时按照规范备注Story ID,即可将代码关联到对应需求上。创建测试用例和缺陷时,也需关联需求,这样就实现了“需求-代码-用例-缺陷”的双向追溯。

四、反馈阶段(质量回溯):通常反馈阶段主要开展验收和回顾活动。这里需要重点提到质量回溯会议,对应于敏捷迭代回顾会议,是华为持续改进的实践精华。

质量回溯,这个词,在华为是一个高频的词汇,华为为了持续改进质量管理体系、提高客户的满意度,在公司内部提出了质量回溯的概念。

质量回溯重点在于分析问题根因,并识别出管理、流程、技术、工具上可落地的改进点。这些改进点每一个都必须符合Smart原则,是可落地、可执行的,不能出现大话空话套话。而且这些问题都要求最晚在下一个迭代中,执行落地,以避免问题再次出现。

小结

总的来说,企业数字化转型,关键就在于敏捷和DevOps的落地。在工具平台选择上,相比企业基于开源工具或者商业工具建立工具平台,不仅成本高昂,可靠性难以保障,还存在安全的隐患。DevCloud对中小企业而言,显然会是一种更好的选择。

不过,虽然软件开发云是华为基于本身长期实践的成功结晶,是神器级工具平台。但是,并不是使用了平台,就可以期待奇迹的发生,它毕竟只是个工具。

敏捷和DevOps的落地是需要企业做出真正的组织变革。否则敏捷和DevOps也就无法实现。

据悉,未来几年,华为将重点推进软件开发云3个“1”工程落地,3个“1”指的是服务100万个软件开发者、服务于10万家软件企业来使用软件开发云、服务1000家院校、培训机构。

就华为实力及影响力而言,这显然并非太困难的事儿。也许未来某一天,华为软件开发云真会成为国内企业级主流软件开发工具。


本文作者:老鱼

来源:51CTO


DevOps落地思考 为什么团队开发运维方式备受诟病?说到底还是一个效率问题,因为研发和运维之间的利益是不一致的,所以导致效率就很低下。其实DevOps目的最重要的理顺研发和运维之间的关系,能满足彼此之间的关系,调动大家积极性,从而提升效率。
阿里巴巴DevOps实践指南(三)| 阿里巴巴 DevOps 实施的价值主张 数字化转型是对互联网公司和产业内公司的共同挑战。产业公司要应用数字化能力,提升用户体验和运作效率;互联网公司要将数字化能力与具体的产业结合,带来更广更深的创新。共同点是,它们都需要升级 IT 的交付和运行模式,都离不开 DevOps 的能力。
阿里巴巴DevOps实践指南(一)| 为什么DevOps的必然趋势是BizDevOps 从精益思想出发,我们可以看到DevOps的必然发展方向,那就是向业务侧延伸。业务是产品开发和运维的源头,完整的价值流必须从源头开始。这不是预测,而是正在发生的事实
DevOps 在企业项目中的实践落地 “我们把DevOps和研发任务协同结合起来,打破了研发团队的最后一道隔阂。” 往往在产品开发过程中,研发人员需要掌控的最多的工具和平台。 代码,环境,部署,容器,服务器一大堆的工具和平台要使用,但是很多平台之间无法互通,导致了工作无法同步,反复的记录报告又增加了工作量。
DevOps落地实践,BAT系列,敏捷看板 DevOps 自 2009 年诞生以来,至今整整过去了十年,从最初的摸索,逐步变成一种主流的软件开发交付模式。BAT在2014年左右,甚至更早的时候,内部的DevOps系统就已经差不多成型了,比如腾讯的织云、蓝鲸,阿里的AOne,百度的效率云等。
DevOps与自动化测试的新挑战 有时候出问题,并不仅仅是简单的代码出错。可能是环境问题,可能是易用性问题用户体验不好,或者是当整个系统运行到一定时间才出现的问题。这时候并不只能单单依靠测试人员,因为这些问题测试人员有时候难以找出,所以这正是之前所说的团队的重要性,人人皆测试,每个环节的人员都需要密切关注或者考虑,哪那些地方可能出问题,这里这样做是否合理。
给产品经理讲讲,什么是持续交付和DevOps 在传统的软件开发中,整合过程通常在每个人完成工作之后、在项目结束阶段进行。整合过程通常需要数周乃至数月的时间,可能会非常痛苦。持续集成是一种在开发周期的早期阶段进行集成的实践,以便构建、测试、整合代码可以更经常的进行。