高效联调,可靠发布!华为云推出CodeArts Release发布管理服务
Posted 华为云开发者社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高效联调,可靠发布!华为云推出CodeArts Release发布管理服务相关的知识,希望对你有一定的参考价值。
摘要:华为云全新推出CodeArts Release发布管理服务,旨在将华为多年形成的发布实践外溢,帮助企业提升软件发布质量和效率,降低生产环境的发布风险。
本文分享自华为云社区《高效联调,可靠发布!华为云推出CodeArts Release发布管理服务》,作者:华为云头条。
在项目研发迭代的过程中,为了提升产品的竞争力,应用的部署上线尤为频繁。但如此高频的发布特性,不仅是对产品的质量考验,也对发布的颗粒度、范围等策略控制提出了更高要求。
软件开发中的发布管理,是通过一定的计划和策略设置,将软件从开发环境转移到生产环境的过程,在发布过程中根据可视化的现网流量观测,进行动态策略调整,将软件逐步的、平滑的交付给用户。其目的是将软件发布过程规范化,提升软件发布的效率和质量。
通常情况下,某些企业会采用“全量发布”的模式,即对所有用户都同时使用新版本,部署和发布便没有明显的界限。但是随着软件规模、集群规模以及用户规模的扩大,企业迫切需要一种平滑渐进式的发布模式来降低软件发布风险,部署和发布的解耦势在必行。
华为公司在软件开发领域具有30多年的经验,对软件发布管理有着深度的积累与实践。我们认为一款好的软件发布管理系统应具备如下功能:
- 环境分层管理
开发环境和生产环境资源分层,权限分级管控,提前发现质量风险,减少缺陷流转到下游的可能;
- 24小时在线
借助云原生负载均衡技术,可做到24小时随时发布,发布过程业务零中断,用户无感知;
- 灰度发布
针对不同的业务场景,提供Ring环、蓝绿/金丝雀、滚动升级等多种升级策略,让流量逐步开放给用户;
- 浸泡和拨测
在软件发布到生产环境的过程中,进行一段时间“浸泡”和“拨测”,逐步完成全网多个局点的软件升级;
- 特性开关
通过变量一键开关特性,避免因缺陷导致重复构建出包;
- 与生产环境高度一致的联调环境
完全仿照生产环境复制的联调环境,仿真生产环境联调测试;
- 智能发布
通过智能数据分析,对发布风险提前预警,减少人工操作与管理缺漏,使发布过程更加自动化、智能化,结合现网监控数据,实现发布过程无人值守。
近日,华为云全新推出CodeArts Release发布管理服务,旨在将华为多年形成的发布实践外溢,帮助企业提升软件发布质量和效率,降低生产环境的发布风险。华为云CodeArts Release具有以下四大特性:
▶特性一:微服务环境模型,助力企业DevOps发布治理
标准化的微服务环境,将企业DevOps治理模型从研发态延伸到发布态,通过微服务流水线串联软件开发、测试、发布全流程,使研发过程、发布过程、变更内容、变更对象全流程可追溯。
华为云CodeArts Release提供的微服务环境模型特性,其优势在于:
- 规范化企业组织树模型
基于企业、项目、微服务的企业管理组织树模型,规范化项目运作;
- 模型标准化
集成环境变量、策略编排及发布资源,打造标准化环境模型,精细化管控企业的研发资源,提高软件的可运维性;
- 环境分层管理
微服务资源相互隔离,测试环境与生产环境按不同角色进行权限区分,角色权限控制独立,杜绝越权非法操作。
▶特性二:云原生灰度发布,流程规范可视化
灰度发布,即先小范围分批平滑发布,然后逐渐扩大范围至整个生产环境。通过控制影响范围,降低发布风险,从而达到发布效率和质量之间的平衡。灰度发布是一种正确、规范、安全的发布过程。
华为云CodeArts Release此次重磅推出了云原生灰度发布特性,优势在于:
- 模板化管理
可将发布流程预置为模板,提升发布编排效率,规范发布流程;
- 多场景灰度发布模式
支持蓝绿发布、金丝雀发布、滚升发布等多种灰度策略编排;
- 发布流程控制
将一次发布任务分解为多个步骤,发布与测试同步,通过监控浸泡进行步骤流转,降低发布风险;
- 发布过程可视化
通过发布单实时观测微服务的健康情况,异常情况可一键回滚至旧版本。
▶特性三:环境变量管理,一次构建全网发布
Build once, deploy everywhere(一次构建,多次部署)是软件开发和持续交付的基本原则,旨在避免测试阶段重复性构建,提升软件发布效率。
华为云CodeArts Release提供的环境变量管理特性,其优势在于:
- 降低构建时间和构建成本
多套环境可以使用一次构建出包,缩短构建时长,同时降低企业构建资源成本;
- 代码一致性
一次构建可以保证所有环境都运行完全相同的代码;
- 软件部署与特性发布解耦
基于环境变量开关特性,减少代码部署的回滚次数,渐进向用户推出新功能,将软件发布风险最小化。
▶特性四:开发者联调环境,秒级发放一键部署
华为对内部多个产品线研发团队进行调研,收集开发人员在个人调测过程中遇到的环境相关诉求,主要问题集中在:
- 环境数量不充足,不能保证每个开发者拥有自己的调测环境;
- 环境申请流程长,等待环节多;
- 环境配置复杂,需大量手工配置管理;
- 缺少有效环境管理手段,导致大量的研发环境浪费。
如何让开发人员能保证充足的联调测试环境,同时又能有效降低开发资源成本?这不仅是华为当前面临的问题,也是业界亟待解决的课题。
华为云CodeArts Release此次发布的开发者联调特性,优势在于:
- 联调环境开箱即用
研发环境秒级发放、一键部署,为开发者提供高效协同的联调能力;
- 联调环境模板
提供基于模板的环境管理能力,支持环境快速复制;
- 资源和调度策略管理
调测环境按需发放和回收,最大化资源利用效率,降低企业资源使用成本。
基于以上四大特性,华为云CodeArts Release可以帮助企业建设敏捷的、高质量的DevOps发布系统,并通过发布管理与流水线相结合,持续规范企业DevOps发布流程。
未来,华为云CodeArts Release将继续外溢更多华为DevOps发布实践,并针对传统行业发布模式,提供版本编排、版本基线、版本发布等IPD发布模型,助力企业提质增效,打造卓越的数字化体验。
CodeArts Repo:6大特性助力企业代码稳定可靠安全无忧
摘要:华为云代码托管服务CodeArts Repo已于2月20日22:00正式上线,这是一款全栈自研、基于Git的云端代码托管服务,旨在保护企业核心代码资产安全,提升企业研发质量和效率。
本文分享自华为云社区《稳定可靠安全无忧,华为云发布代码托管服务CodeArts Repo》,作者:华为云头条 。
2022年2月,黑客窃取某著名公司大量源码,包含硬件原理图、源代码、显卡驱动源码等信息,并对企业勒索巨额赎金;3月,全球最大的开源代码托管网站经历了多次长达数个多小时的宕机,数百万开发者无法提交代码,导致开发活动中断。
源代码是企业最宝贵的资产之一,一旦保存源代码的系统出现安全性或稳定性问题,将给企业商业及信誉带来不可估量的损失。随着软件规模的不断扩大,生成软件的源代码规模也在急剧上升,单个软件系统规模已达数亿行、开发人员达数千人——如何管理好庞大的源代码,并让企业员工持续稳定的开展软件开发活动将成为一个重大的挑战。
2月20日,华为云代码托管服务CodeArts Repo将于22:00正式上线,这是一款全栈自研、基于Git的云端代码托管服务,旨在保护企业核心代码资产安全,提升企业研发质量和效率。
代码管理工具是软件开发的基础
不断提升研发质量和效率,缩短TTM(Time to Market)是软件企业商业成功的关键。如今,一款软件通常由多人协作开发而成,代码管理工具不仅是研发资产的重要载体,同时也支撑了版本化配置管理、代码开发的工作流等活动,通过与CI/CD工具服务集成,能够有效提升团队协作效率和自动化交付效率。
▲代码管理工具在开发活动中发挥着关键作用
为了让代码资产更加安全和稳定,一款现代化代码管理工具应当具备如下主要能力:
版本控制:包含代码存储功能,支持代码上传和下载,并能够简单、准确地记录和重现代码的任何一个历史版本。
协同开发:支持多人协同开发,如不同开发人员可同时在同一个软件模块上工作,同时对同一代码部分做不同的修改,即使是跨地域分布的开发团队也能互不干扰。
质量管控:提供在线阅读代码和代码检视功能,支持自动化持续集成与持续交付工具(CI/CD),对代码进行质量检查,确保符合质量的代码才能入库。
稳定可靠:支持多人并发在线作业,并发上传和下载代码,保持长期稳定,以保障企业研发活动不中断。
安全防护:能够保护企业的代码核心资产安全,抵御黑客盗取代码、对源代码投毒、恶意代码注入等攻击。
华为云CodeArts Repo,让代码核心资产安全无忧
为了支撑业务的高速发展,华为公司内部代码管理工具也在不断演进。从最开始满足基本配置管理需求,到支撑公司内源协同开发,再到支撑公司可信变革、达成CleanCode目标,华为的代码管理工具经历了“商用+开源”,到“边买边造”,再到“自给自足”的三个阶段。
自2019年来,通过历时3年的“云化改造、安全韧性构筑、全栈自研”三大战役,华为基于云原生打造了高安全、高韧性、全场景开发工作流覆盖的可信代码仓。
如今,华为云CodeArts Repo管理并保护着华为1100亿行代码,支撑15万人开发作业,日均1亿次下载量、1PB传输流量、3亿次API调用,一套系统支撑了华为嵌入式、云、终端、车等各类型产品代码管理和协同开发。
现在,华为云将内部多年积累的代码管理能力沉淀到CodeArts Repo工具,发布6大特性。
特性一:自研内核,确保代码安全,稳定高效开发
针对开源代码管理工具漏洞多、单体架构、存在连续性风险,和无法满足华为大规模、多场景开发作业流等问题,华为云CodeArts Repo通过自研内核,基于零信任思想进行设计和安全加固,从黑客视角建立攻击路径模型,落地6大类100+小类安全措施,从接入层、业务层,存储层到基础设施层全面构筑安全防护能力,确保代码不丢,系统不破,代码资产可恢复。
此外,华为成立了“蓝军”部门,每年例行专门针对代码托管工具进行模拟攻击测试,以攻促防,不断提升CodeArts Repo的安全能力。
为应对公司巨量业务增长,CodeArts Repo在架构上充分利用云原生技术优势,基于云化基础设施,实现容灾、备份、流控、服务降等,保障了业务不中断和数据不丢失,多维度提升可靠性。
CodeArts Repo在技术上突破底层硬件IO带宽限制、修改Git内核提升文件下载寻址效率、应用多级缓存等手段提升代码下载效率,经测试,相比开源同类产品具有超过10倍的写入、超过50倍的读取能力提升,可支撑万级并发下载,10万级并发在线作业。
特性二:覆盖基于Git的主要工作流,满足多种开发场景
华为云CodeArts Repo支持Git Flow、Gitlab Flow、Github Flow等所有工作流。华为将以前使用Gitlab、Github、Gerrit部署的100多套系统归一到CodeArts Repo一套系统,期间经历了超过10000条来自华为各产品线的需求锤炼,不断完善和优化,既能满足强流程规范的大规模产品协同开发,也适用于采用DevOps模式、快速上线的产品开发。
特性三:多形式代码检视活动,提升代码质量,传递开发经验
《代码大全》的研究结果显示,各种研发活动中,代码检视的代码检测率高达60%,可以有效提前发现显而易见的错误随代码上库,提升代码质量,并且实现高级开发人员的知识传递,增强团队质量意识。
华为云CodeArts Repo提供分散式和集中式的代码检视能力,支持团队随时开展代码检视活动。
以合并请求为例,开发人员发起代码合并请求后,系统可自动分配给不同检视人员,检视人员利用碎片化时间检视代码,配合门禁系统保证检视意见关闭才能合入该合并请求。团队成员也可以集中到一起,直接在浏览器中打开代码仓文件,进行在线检视,提出检视意见后使跟踪流程闭环检视意见。
另外,CodeArts Repo提供灵活的检视意见分类功能,既集成华为优秀的实践,使用此功能可以有效规范团队检视活动,同时沉淀团队经验和知识,将知识在公司、产品、项目等不同范围内传递。
特性四:质量门禁,确保每一行入库代码Clean
在软件生命周期中,缺陷发现越早、修复越早,缺陷的影响和修复代价就越小,数据显示,产品发布后每个缺陷的平均修复成本是验证阶段的6倍以上。因此为了避免有缺陷的代码合入主干,灵活有效的门禁控制必不可少。
华为云CodeArts Repo提供“人工审核+CICD自动化检查”双重看护代码质量机制。通过保护分支功能,针对不同的角色控制代码的推送和合并权限,确保代码在推送入库的时候就符合质量要求。
配合CI/CD自动化检查工具链,提供代码静态检查、安全检查、测试结果验证、代码检视人员角色和数量检查、检视意见闭环率等几十种细粒度门禁控制策略,用户可灵活配置以满足不同的企业规范。
特性五:记录代码来龙去脉,双向可追溯
软件的可追溯性是软件工程的基础属性,具备可追溯性是良好的软件工程能力的客观呈现。可追溯性要求软件生产过程中从需求分析到编码、构建、验证、发布过程中产生的需求、设计、代码、用例、缺陷、发布等业务对象以及其关系的准确记录。
华为云CodeArts Repo支持建立工作项和合并请求或者代码提交commit的双向关联关系,实现软件开发过程可追溯,通过可信的开发过程,保障结果可信。
以华为内部为例,团队通过在代码托管工具设置规则,确保了每次的代码入库都有对应的工作项,通过对关联关系数据进行识别、监控和预警,及时发现不合规的代码,提高产品质量。企业也可以在处理现网问题时根据关联关系找到对应的代码版本,快速修复。
特性六:内置多种模板,确保开发规范有序
软件开发是一项创造性的活动,也是一项复杂的多人协同活动。在软件开发过程中,企业需要选择适合的开发工作流,并建立规范的开发协作流程来保障产品能够持续高质量交付。
华为云CodeArts Repo凝聚了华为公司内部各类研发场景的规范,可以帮助企业进行组织级开发规则制定和落地,促进产品质量和开发效率提升。
典型如代码提交规则、分支/tag命名规则,代码上库审核规则、代码质量门禁规则等,也提供了灵活的模板配置能力,如仓库模板、代码检视模板、合并请求模板。企业可以通过这些规范确保团队开发行为一致,产生的研发数据格式一致,并基于研发数据做效能分析,持续改进研发能力。
得益于以上特性,华为云CodeArts Repo如今已广泛应用于国内外财政、社保、物流、能源等领域,加速企业数字化转型。
如上海某知名大型物流企业拥有超过100个系统平台,1000多个仓库,其业务涉及快递、物流、跨境、仓储与供应链等多项业务和解决方案。该企业使用CodeArts Repo管理代码和协助规范企业开发活动,有效提升研发团队协作效率,降低代码质量问题70%。
源于华为,服务世界,华为云CodeArts Repo着力将华为公司30余年的源代码管理经验外溢,服务千百行业。面向未来,华为云将对CodeArts Repo持续创新升级,探索边缘下载加速、多仓协同,提供更丰富的安全检查特性,携手国内外客户、伙伴以及开发者,共同提升软件开发质量和效率。
以上是关于高效联调,可靠发布!华为云推出CodeArts Release发布管理服务的主要内容,如果未能解决你的问题,请参考以下文章
稳定可靠安全无忧,华为云发布代码托管服务CodeArts Repo
教你如何通过CodeArts IDE插件调用API,高效合成语音
CodeArts Repo:6大特性助力企业代码稳定可靠安全无忧