ChatGPT大火的现状,告诉我们这个世界正在加速向AI时代演进。智能时代是数字世界,软件将无处不在。“软件定义”是新一轮科技革命和产业变革的新特征和新标志, 已成为驱动未来发展的重要力量。
“工欲善其事,必先利其器”。当软件变得越来越重要,做软件的工具也在愈发凸显其重要性。
一个软件从创意到发布,中间会有很多个环节,每一个环节都不容出错。
比如软件的上线发布,将代码从开发环境转换到生产环境的过程中,即使前期经过了严格的测试,都有可能会在进入实际应用时出现各种各样的问题。
在传统的发布中,往往都是“全量发布”,在凌晨先停止全部服务,再进行全部服务升级,最后启动全部服务的发布方式,所有用户都同时使用新版本。这样做虽然成本低,但是服务会中断,影响用户体验,而且一旦软件有问题,会导致所有用户都受到影响。举个例子:一款炒股软件发布,万一有了BUG,可能会导致数以万计的股民受到影响。
企业需要一种平滑渐进式的发布模式,以降低软件发布的风险,特别是在高频发布、大规模应用等情况下,发布管理尤为迫切。发布管理服务就是通过将软件发布过程规范化,实现提升软件发布的效率和质量的目标。
通过分析传统发布模式的痛点,我们可以发现部署和发布应该充分解耦,并且有颗粒度更细的策略控制。比如将开发环境和生产环境资源分层管理,将风险阻断;借助云原生负载均衡技术,可做到24小时随时发布,发布过程业务零中断,用户无感知;针对不同的业务场景,采用不同的灰度发布策略,确保稳定、安全升级等等。
前不久,华为云全新推出的CodeArts Release发布管理服务,就可以解决用户的痛点,满足当下的需求。整体来看,CodeArts Release有四大特征:
通过规范化企业组织树模型、模型标准化、环境分层管理等标准化的微服务环境,将企业DevOps治理模型从研发态延伸到发布态,通过微服务流水线串联软件开发、测试、发布全流程,使研发过程、发布过程、变更内容、变更对象全流程可追溯。
提供模板化管理,支持蓝绿发布、金丝雀发布、滚升发布等多种灰度策略编排,将一次发布任务分解为多个步骤通过发布流程控制降低发布风险,并且发布的过程可视化全程掌控进展。通过这些手段,达到发布效率和质量之间的平衡。
“一次构建,多次部署“是软件开发和持续交付的基本原则,避免了测试阶段重复性构建,从而提升软件发布效率。所以,华为云CodeArts Release多套环境可以使用一次构建出包降低构建时间和构建成本,一次构建可以保证所有环境都运行完全相同的代码,软件部署与特性发布解耦渐进向用户推出新功能。
如何以更优的成本让开发人员能保证充足的联调测试环境?华为云CodeArts Release首先打造了开箱即用的联调环境,为开发者提供高效协同的联调能力;其次,提供基于模板的环境管理能力,支持环境快速复制;最后,通过资源和调度策略管理,最大化资源利用效率,降低企业资源使用成本。
综上,华为云CodeArts Release可以帮助企业建设敏捷的、高质量的DevOps发布系统,并通过发布管理与流水线相结合,持续规范企业DevOps发布流程。最终达成的目标有二:一是提升发布效率,二是保障发布质量。
发布,只是软件全流程中的一个环节。一个软件的开发,都需经历从创意到需求分解、设计、编码、测试、发布、调整等诸多环节,特别是现在的软件需求越来越复杂,对每一个环节的挑战都非常大。
我们以华为汽车BU的软件需求为例。一个车的需求,会横跨网络、无线、芯片以及其它很多终端产品线的协同,才能把一个车的需求做好。整个需求的卷积过程和协作的模块都非常多,这其中要是某一个环节出现了误差,就有可能导致整个解决方案或者整个产品无法向前去推进。此外,软件需求为源头,与设计、仿真、测试、制造,各个环节去打通,鉴于汽车软件的复杂度,所以整个需求的追溯过程也是非常难的。
华为汽车BU在成立之初就直接启用了华为云的需求管理系统——即CodeArts Req这个工具,端到端的去帮助华为的车载业务落地。这个过程中发现,华为云原有的能力还不够,又做了很多增强、优化。最终,华为汽车BU在华为端到端的需求管理平台的帮助下,高效地拉通了上下游的环节,以及内外部客户的需求,精准地捕捉了市场趋势,为华为汽车BU的整个业务高速发展奠定基础。
华为汽车BU的故事,只是华为软件开发的一个缩影。华为作为中国最大的软件企业之一,在过去三十年中遇到了很多问题,这些问题都转化为经验,研发能力不断提升。
同时,汽车BU的需求,也代表了现在很多企业的需求,业务要快速创新,快速上线,快速迭代,才能保持行业竞争力。华为十万研发团队凝练出来的能力和经验外溢,开放出来与行业共享,这就是华为云CodeArts。你可以说它是软件开发工具,也可以说这就是一条最先进的、高效的软件生产线。
在懂懂看来,这套华为历经三十年、从十万人研发团队中凝结出来的方法论,有几个明显的优势:
除了华为内部的验证与认可,CodeArts也吸引了来自政府、金融、教育、物流、软件等十多个行业百万级使用者,持续服务四大核心应用场景:互联网/SaaS服务商、软件及解决方案提供商、软件及解决方案提供商、高校/培训机构。
可见,从创意到应用,CodeArts可以全流程助力多场景的软件研发,堪称一条“现代化“的软件生产线。
软件定义一切的时代,软件的繁荣,决定社会的进步速度,决定经济发展的进程。软件如此重要,软件怎么高效、高质量地生产出来?
随着云计算、AI的应用,今天做软件的形式跟以前完全不同。以前的软件产品,是做盒子的封闭思路。现在是基于云,在一个完全开放的生态中做软件,此时不再是看一个一个单独的产品,也不是孤立的工具,生态建设变得尤为重要。
如果软件产业是一个生态,那么生态发展有两个关键要素:一是根茎强壮发达,才能更好地向生态输送能量;二是物种丰富,生态才更有活力。
在新时代、新发展、新格局下,软件的规模化、复杂化程度也在不断提升,基础软件开发亟需迎来新一轮纵深化发展。以前我们都知道,操作系统、数据库是基础软件,是软件生态的根,其实软件开发工具也是根,属于基础软件范畴。
因为,没有软件开发工具,操作系统上的应用就“长“不出来,这样的操作系统是不可能成功的。所以,软件开发工具与操作系统、数据库并重,都是生态的基础,是底座。
根深才能叶茂,按照华为的一贯作法,向下扎到根,向上捅破天,所有的根(基础)技术都要做好,这就相当于给生态打好地基。华为将能力外溢,推出CodeArts,就是要让生态的根基更深、更厚、更肥沃。
今天,大家都在说AI会把所有的产业都重新做一遍,无论2C还是2B。人们的生活方式可能会被改变,每一个产业的运作模式也都面临颠覆性的升级。站在AI时代的新起点,未来可以想象的空间巨大,每一个开发者在AI时代,都有机会创造一个奇迹。而软件开发工具,可以激发开发者的热情和创造力,帮助他们更好地在云上实现自己的梦想,创造更多的新应用、新模式。
生态为什么重要?还有一个不得不说的原因,就是自主可控。我们从两个维度来看:
这么多年积累下来,已经在很多关键技术上有所突破,比如操作系统和数据库。在此基础上如果要快速繁荣生态,先进的生产工具必不可少。特别是一些中国高科技企业被加入实体清单之后,我们发现全链条的自主可控尤为迫切。
好了,回到Code Arts的初衷,从这个品牌的名字,就可以看出华为云是希望程序员能像艺术家一样去创造,助力他们的创造力得以极大地发挥,去实现自己的梦想,而不是以前大家认为的“码农“。当每一个开发者的能量被极大释放,生态的物种也将更丰富。多样性,就是生态繁荣的标志。
【结束语】
数字时代,是软件定义一切的时代,软件将是未来企业的竞争力所在,进而也是一个国家的竞争力所在。
与此同时,软件越来越复杂,更新越来越快,这对开发的效率和质量提出了全新的挑战。华为CodeArts,全流程提升开发效率,保证软件质量,让程序员的创造力得以绽放,同时助力生态伙伴在软件时代先人一步、快人一步。