• 发布时间:2024-08-16 06:10:13•浏览次数:173
本文分享自华为云社区《提升软件质量?为什么不试试华为云CodeArts Check-云社区-华为云》,作者: 华为云头条。
1996年,欧洲最新的无人卫星发射火箭阿丽亚娜5号在首次发射后仅仅36秒,工程师就不得不按下了自毁按钮。
事后经分析查明,由于它重用了其前身阿丽亚娜4号的系统软件,发动机遭遇了之前没有被发现的漏洞,系统软件试图将一个64位的数字塞入16位的空间,由此产生的整形溢出问题导致了主计算机和备份计算机的崩溃。
一个小小的软件缺陷,让研发成本近80亿美元,并携带着造价5亿美元卫星的阿丽亚娜5号瞬间灰飞烟灭。
遗憾的是,这并不是个例。纵观历史,由于软件质量问题导致的“黑天鹅事件”不胜枚举,云服务宕机、金融交易失败、数据泄露等,给社会和用户造成了无法挽回的损失。事实上,软件存在的质量缺陷无法100%避免。因此,只有通过更加全面、严格、高效、安全的代码检查服务,才能最大程度地降低风险,使得软件开发过程在成本、进度和质量上得到充分保障。
国外先进的代码检查软件和服务虽多,但因种种原因不能在中国全面落地,或在某些方面存在局限性,并不能完全满足中国客户的实际需求。另外,在Gartner应用安全测试魔力象限中,至今尚无中国企业能够跻身领导者象限。那么,谁能打破行业坚冰,谁能更好地在软件开发阶段就将质量与安全隐患消灭于无形?
华为云CodeArts Check代码检查服务挺身而出,为用户提供包括代码风格、通用质量与代码安全风险等在内的检查能力,同时提供问题闭环处理、检查报告等功能,从而一站式完成代码检查作业,将代码质量保证活动从原始的人工检视中解脱出,确保代码的高质量并助力客户的商业成功。
著名软件工程专家和软件经济数据与度量专家卡珀斯·琼斯在其著作《Applied Software Measurement》中指出,80%的软件缺陷发生在编码阶段,而在后端测试修复缺陷的成本是开发阶段的40倍。
广泛的工业界实践也表明,在整个软件生命周期中,缺陷发现得越早、修复得越早,影响越小,付出的代价也越小。因此,“质量+安全”左移、DevSecOps等新理念不断涌现。华为非常赞同并在软件开发实践中积极落地和执行这些理念。
华为很早就开始关注软件质量的改进,并且持续吸收业界的优秀经验。“在我还是华为新员工的时候,就曾学习过半年的质量大事。”据一位华为云PaaS产品专家回忆,“1979年出版的《质量免费》中提到把事情做对的理念,与今天‘质量+安全’左移的概念不谋而合。最新推出的华为云CodeArts Check正是为了更好地在软件开发的前端弥补软件质量缺陷,同时还在代码检查上更进一步,加入了运营等新内容,让开发者受益匪浅。”
第三方市场研究报告显示,在中国,超过七成的软件厂商在使用DevSecOps的同时,也采用了代码自动检查工具。以华为为例,在其销售覆盖的全球100多个国家中,尤其是欧洲、中东地区的很多国家对于质量与安全问题高度敏感。
为此,华为内部很早就引入了相关工具,独立执行软件扫描,从技术、业务规范乃至公司文化等不同层面,确保自动化代码检查的有效落地,以保证华为所有产品的成功上线。
在软件质量与安全领域,技术相对比较成熟,早在上个世纪70年代左右就已经有了第一款商业化的代码检查软件。但是因为软件编码本身就是一件非常困难的事,而且开发人员的技能、知识储备参差不齐,再加上软件语言本身的特点也会天然造成缺陷,所以在开发阶段成功拦截所有代码质量问题始终是一个难点。
从瀑布式开发到今天流行的敏捷开发、云开发,开发模式的改变对于软件质量和安全的影响也是比较大的。假如软件扫描或分析的时间过长,则很难满足快速发布、快速迭代的要求。软件质量与开发效率之间似乎是鱼与熊掌难以兼得。再者,相对动态分析技术,静态分析技术本身存在一些局限,比如每一行代码在执行的过程中,每一次调用都会逐层逐路地进行分析,这对算力来说也是巨大的挑战,同样会影响开发效率。
保证软件质量与安全,挑战不言而喻,而且不仅仅体现在技术层面。在应用安全测试领域,标准是国外的,领导厂商是国外的,国内无论是从技术还是产品化、商业化程度来看,都相对较薄弱。华为云CodeArts Check的目标是和国内众多厂商一起,共建检查标准和生态,为中国软件行业的发展贡献更多技术与经验,进一步帮助广大中国软件企业提升产品质量。
从1998年到2007年,在华为内部,开发语言以C/C++为主,各业务团队按需引入Pclint等第三方工具开展代码质量检查。2007年至2012年期间,华为还发布了《华为通用编程规范》,规范以人工检视为主。
“从我们对源代码的质量有要求开始,就将当时业界顶尖的代码检查工具用了个遍。但在保证软件质量与安全方面,我们确实面临相当大的挑战。”华为云PaaS产品经理概括说,“首先,作为全球化的公司,我们的产品必须满足全球不同客户市场差异化且极其严格的要求;其次,在代码检查方面,我们不仅要实现对编码风格、简单质量问题等的检查,还希望通过检查发现更多潜在的质量问题,甚至是影响到网络安全的软件质量问题;最后,代码检查工具必须满足华为大体量的研发需求,具备卓越的工程化能力,包括高吞吐量、稳定和易用。”
并非原生商用的代码检查工具不够优秀,而是这些工具确实不能覆盖华为所有的应用场景。所以,华为走上了自研代码检查工具之路。在这里可以讲一个小插曲。
某次,华为的一个客户提出,要快速确认产品代码中是否使用了不安全的内存操作函数。华为最初采用商用工具进行了常规排查,但在排查之后发现,仍有遗漏的场景。同时客户又提出,除了要排查出是否使用了不安全的函数,还要确认使用了不安全函数的安全版本是否使用正确。
这一要求已经超出了当时商用工具的能力范围。华为积极投资快速响应客户的个性化要求,在极短的时间内通过自研弥补代码检查工具能力的不足。
此外,华为内部多种多样的应用场景,让开发团队能够不断补强、夯实代码检查的基本技术与能力,而不仅限于简单的词法、语法分析这样的检查。如今,自研工具已经成了华为代码检查的核心力量。
历史上,华为的各个业务部门,比如终端、ICT、运营商等,都会遵循公司对软件质量的统一要求,同时结合自身的业务特点,选择开源的或商用的自动化工具进行代码检查。随着业界对网络安全的关注,运营商对通信设备商的软件代码安全性提出了极高要求,并提出了内部规范是否统一落地的疑问:“我们用了华为那么多产品,华为如何保证每个产品线产品都能达到同等的质量要求与标准?华为内部是否有统一的质量保障规范?每个开发人员是否切实执行了相关的标准和规范?”
当时华为的状况是,虽然每一个产品都有针对性的检查规范,也配备了相应的检查工具,完全能够确保产品本身的质量与安全。于是,华为从公司规范入手,对照业界标准,重新梳理、刷新所有相关的安全规范、编程规范。
在此基础之上,每条产品线基于自身的业务特点,以及对安全性的细致要求,制定更加具体的要求和规则。这样一来,华为从整个公司层面,就能通过一个统一的平台,要求各产品线使用统一的必选规则集去执行软件扫描;而这个统一的平台还能有效汇聚、处理各业务线的数据,并将相关数据提供给外部客户,以满足第三方检查、认证等方面的需要。经此改变,华为的整体产品质量又跃上了一个新台阶。
■ 2018年,随着整个软件工具链的逐步完善,华为开始将用于内部的代码检查工具“外溢”,向外以服务的模式进行输出。
■ 2020年4月,CodeCheck2.0正式发布,多款代码检查工具(ReviewBot、SecBrella、CodeCheck等)归一至新版的代码检查服务CodeCheck,并构建起“IDE-代码仓门禁-版本发布”三级检查体系。
■ 2021年,CodeCheck经历多次技术攻关,实现了代码检查引擎对国外工具的核心安全及质量检测能力进行替换,不仅有效支撑了华为研发业务的连续,而且为深度安全及代码质量检查能力的商用交付夯实了基础。
■ 2022年4月,CodeCheck HCS版本交付,这也是CodeCheck首个正式对外商用的版本。经过近半年的精心准备,CodeCheck于2022年8月23日通过了业界标准CWE认证,具备了国际认可的专业资质;同年9月,CodeCheck完成了在墨西哥、巴西、新加坡等多个海外局点的开局,迈出全球化部署的关键一步。
经过持续的演进、完善,CodeCheck成了今天广大开发者在华为云上可以信手拈来的CodeArts Check服务,它既是华为多年来软件开发的成功实践、工程方法、管理要求以及优秀企业文化的结晶,同时又将经实践验证的好用的通用能力与功能,与广大客户和合作伙伴进行分享,进一步提升软件的质量。
华为云CodeArts Check服务能够在开发阶段全面深挖代码的安全问题,并从“可读性、可维护性、安全性、可靠性、可测试性、高效性、可移植性”这七个纬度全面评估安全代码的质量,为开发者提供大规模、高可用,且易用、便捷的云服务,从而更好地守护企业软件的质量与安全,助力企业商业成功。
你是不是好奇,华为云CodeArts Check到底有哪些过人之处?归纳来说,华为云CodeArts Check锻造出“六大利器”。
利器一:自研代码检查引擎,代码质量评估无死角。
华为云CodeArts Check采用的自研引擎融合了华为30多年对代码质量及可信度提升方面的持续思考与探索实践,能够帮助用户在一次扫描中针对代码的”可读性、可维护性、安全性、可靠性、可测试性、高效性、可移植性”七大质量特征进行全面分析。
利器二:五大业界主流标准、华为编程规范,一个也不能少。
华为云CodeArts Check不仅支持ISO 5055、CERT、CWE、OWASP TOP10、SANS TOP 25五大业界主流编程标准,而且内置了华为终端、网络、云计算、芯片等产品多年研发经验总结的编程规范,提升了产品代码规范度。
利器三:开发语言、检查规则一应俱全,用户开箱即用。
华为云CodeArts Check不仅支持C、C++、Java、Python、GO等十余种常见开发语言,而且提供了超过7000条检查规则,能够满足各类检查场景需求,开箱即用。
利器四:日均百亿级扫描能力,超大规模代码检查易如反掌。
华为云CodeArts Check具备强大的高并发处理能力,还可通过AZ容灾、跨Region级容灾多活,支持过载保护、服务依赖和隔离等一系列高可用技术,实现服务故障自探测、自隔离、自恢复。
利器五:一站式问题闭环修复。
由于内置了编程规范说明、正确示例、错误示例和修复建议,华为云CodeArts Check能够让问题精准定位到行并提供修复指导。得益于修复指导、自动修复、结果自动继承这三大能力,华为云CodeArts Check能够将检查问题处理和修复的效率提升100%。
利器六:三层缺陷防护,效率与质量兼得。
华为云CodeArts Check提供了丰富的API接口以及IDE代码检查插件,并与代码仓协同支持代码提交时自动检查,与流水线协同支持软件全量代码检查,三层防范代码缺陷引入。
“对于代码检查工具来讲,我们最关注的一是效率,二是误报和漏报问题。”华为云PaaS产品经理介绍说,“我们凭借在云化方面的积累和能力,实现了大规模分布式处理能力和效率的提升。针对漏报,在大量借鉴商业化工具和开源工具,以及自研工具的成功经验的基础上,我们不断开拓创新,有效提升检查能力;对于误报问题,结合华为技术专家、高校的科研成果,利用精准的智能分析,提升分析引擎的精准率。举例来说,华为内部每天扫描500亿-1000亿行代码,沉淀为一个庞大的历史信息数据库,结合AI技术,能够大幅提了自研引擎的准确度。上述这些都是华为云CodeArts Check差异化能力的具体体现。”
华为业务线众多,具有海量的代码检查需求,并且对产品质量始终保持着极高的敏感度和重视程度。从这个角度说,华为本身就是催熟代码检查工具的一个宝库。
例如,华为云CodeArts Check中采用的核心自研引擎,就是华为在吃自己的“狗粮”。这种“狗粮”吃得越多,CodeArts Check自身的能力和水平就越高。
另外,工程化能力也是华为云CodeArts Check的核心属性之一,融合了华为30积累的产品开发经验、产品开发过程、质量保证过程,能够更好地帮助客户在全工具链上复用华为的开发经验,事半功倍。
相比市场上现有的其他代码检查工具,华为云CodeArts Check除了在技术和功能上有自己独特的创新之外,在企业文化、规范、流程等方面同样底蕴深厚,并且独具匠心。
在业界中,CleanCode是一个成熟的概念,本质是追求代码的简洁化。基于对软件质量的严苛要求,同时参考业界的相关标准和大量成功实践,华为对CleanCode做出了进一步解读和扩展,即“可读性、可维护性、安全性、可靠性、可测试性、高效性、可移植性”七大质量特征。
据介绍,华为公司自上而下,从多个维度对七大质量特征进行解读和剖析,通过对应的代码案例和用例实现落地,并且提供自动度量的方法和工具,确保每条产品线都有对应的组织依此对各个层级进行赋能。每条产品线还会结合自身的实际需求,制定具体的计划,保证CleanCode切实有效地落地。
特别值得一提的是,除了不断增强代码检查工具本身的能力以外,华为云CodeArts Check还形成了独有的3级检查体系和3层运营体系。3+3的运营可以立体化、最大限度地保证检查工具应用到位。三层运营意味着不仅要把工具做到好用,还要让用户将工具用好。
因此,从公司层到各个产品线,再到具体的产品版本层面,华为都提供了分层的工具能力。掌握不同能力模型的专家通过分工合作,在各个层面制定出匹配不同产品形态的工具应用策略,做到人尽其才,物尽其用,最终目的还是服务好开发人员。
华为云CodeArts Check服务已于2023年1月12日正式上线。据了解,华为云CodeArts Check目前不仅支撑着华为15万研发人员、日均扫描逾500亿行的代码检查工作,而且也广泛应用于能源、物流等企业,服务新闻媒体及广大开发者,为企业生产高质量且安全的软件保驾护航。
已经在华为应用并得到成功验证的CodeArts Check不仅适用于大型企业的超大规模开发环境,而且由于其具有分层的能力和易用性,能够很好地适配不同开发环境,即使是普通开发者也能一键式开箱即用。凭借卓越的工程化能力,CodeArts Check既可以无缝连接华为自研的工具,还能灵活地与业界通用的工具无缝集成,每天执行几百亿行代码检查轻而易举。
“自己做的降落伞自己先跳”,这是华为一惯的作风和传统,在代码检查方面当然也不例外。举例来说,华为参考业界实践、ISO标准制定了华为各类开发语言的编程规范,明确开发阶段落地遵从编程规范的活动要求,以CodeArts Check服务华为的开发人员,支持30+语言,覆盖各类规范40+;并且通过“3+3”运营,让产品在保障遵从编程规范的同时选取最适合自己的检查规则进行扫描,并通过数据驱动运营,帮助公司、产品线、产品分层运营,使得代码检查活动落地可视、可管理。
今天,高质量的产品已成为客户愿买、敢买和政府接受、信任华为的基本条件。华为的产品和解决方案已在全球170多个国家安全稳定运行,积累和赢得了全球数万客户的信任。2019年3月,华为欧洲安全透明中心在比利时成立,其自研安全检查引擎与业界优秀工具一起,支撑了三家欧美独立评估机构对华为产品代码的安全评估,效果非常好。编写好代码能有效减少漏洞,降低系统脆弱性,是达成高质量产品的核心环节,也是华为始终坚守的信念。
华为云CodeArts Check服务商业用户的一个典型案例就是中国经济信息社(以下简称“中经社”)。
中经社是新华社旗下专业承担经济信息服务业务的直属机构,其综合信息服务体系遍布全国,并覆盖全球180个国家和地区。中经社与许多不同的软件开发商合作,由于研发标准不统一,软件开发商独立研发,使得各开发商的研发质量很难统一保障,协同效率低下。
中经社依托华为云CodeArts Check,通过研发运维一体化,规范研发过程,提升研发效率,实现质量活动从部署测试延伸到代码规范、安全检查。其中,代码检查自动触发,实现了代码问题解决前移,研发交付质量提升50%。
另外,华为云CodeArts Check还支撑许多大型开源社区开展代码检查工作,包括鸿蒙社区、码云等。以鸿蒙社区为例,每周支撑运行近2万个任务检查,代码扫描量超过300亿行。
平台+生态,更好地服务广大开发者,这是华为云CodeArts Check的初衷。华为云希望借助CodeArts Check平台,提供开放、集成的能力,与生态伙伴合作协同,为企业和开发者提供组合的优质服务。华为云CodeArts Check还推出了免费套餐,五人以下的团队可以免费使用。另外,华为云还将陆续推出丰富的训练课程,对开发者进行赋能,并在各技术社区中加强CodeArts Check的推广,共建代码检查的良好生态。
未来,华为云CodeArts Check将持续增强自动修复和代码深度安全检查能力,并进一步提升平台和引擎的开放性和扩展性,让开发者能够更加聚焦软件功能的开发,真正做到兼顾质量和效率,更好地助力企业商业成功。
点击下方,第一时间了解华为云新鲜技术~
华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云
#华为云开发者联盟#
本文分享自华为云社区《企业应用可观测性利器!华为云CodeArts APM发布-云社区-华为云,作者:华为云头条。
当前,企业数字化转型和业务互联网化逐渐加深,企业对应用的高可用、可靠性提出了更高的要求。随着企业快速引入云原生、微服务、分布式等技术,业务规模和运维管理对象数量成倍增加,服务之间的依赖、调用关系愈发复杂。一方面企业享受着开发效率指数提升的红利,同时也在承受着故障定位成本居高不下的痛楚。
由于传统的监控只覆盖了基础设施、中间件、业务指标相关的观测能力,缺少深入代码级的性能监控和对用户的真实体验感知,给开发者、运维性能分析、故障定位和恢复带来了极大的困难和挑战。
权威数据显示:每100毫秒延迟会使销售额下降1%,每一秒钟服务器延迟会导致收入下降2.8%。例如,某著名搜索服务结果页面从100毫秒放缓到400毫秒,会使收入流失4500万到1.35亿美元。由此可见,全面掌控、感知应用性能和用户体验已经变得愈发重要,甚至关系到商业公司生死存亡和社会影响。
4月14日,华为云全链路应用性能管理服务CodeArts APM全新上线,提供端到端的全链路性能管理服务,涵盖前端监控、应用性能监控,全面拥抱开源生态。
随着云原生技术逐渐普及,传统监控系统正朝可观测性系统演进,业界对可观测性的共识,是基于可观测性的三大支柱“metrics、logging、tracing”。其中应用性能管理形成了Tracing为核心的可观测性解决方案,作为企业可观测性产品选型的重要评估标准。
一款应用性能管理工具应当具备如下主要能力:
多语言支持:支持常用开发语言,涵盖java、php、go、node.js、python、.net、C++和主流应用框架。
无侵入式采集:用户无需修改应用代码,只需要部署探针包,修改相应的应用启动参数,就能对应用进行全方位监控。
自动发现应用间的调用关系:通过对调用信息进行动态分析、智能计算,自动生成分布式应用间调用关系。
调用链追踪:多个应用接入后,可自动针对某些请求进行采样,采集单个请求的服务之间调用关系以及中间调用的健康情况,实现全局调用链路的自动跟踪。
深入代码级的性能诊断:与传统监控系统不同,应用性能管理提供深入代码层面的应用性能剖析,无需开发人员或者运维人员到日志系统、甚至到真实的业务服务器上查看执行情况来解决问题。
全面准确的指标监控:可度量应用的整体健康状况,采集应用的各项性能指标,如服务间调用、异常、外部调用、数据库访问以及其他中间件的指标数据,帮助用户全面掌握应用的运行情况。
拥抱开源生态:基于OpenTelemetry标准,全面兼容各类开源生态,如Jaeger、Zipkin、SkyWalking。
感知终端用户的真实体验:对移动端App或Web的用户体验进行监控,涵盖所有移动端设备、浏览器以及小程序,了解终端用户真实体验感受,从而优化产品提升用户体验。
华为云CodeArts APM为华为内部百万微服务提供应用性能监控,帮助研发人员日常性能诊断、故障定位和排查,通过使用CodeArts APM实现现网故障1分钟感知、5分钟定界、10分钟恢复能力的构筑,有力的支撑了华为云、终端、车、能源等各类型产品的应用性能管理和日常运维保障。
现在,华为云将内部多年积累的应用性能管理能力沉淀到CodeArts APM,该工具具备5大特性:
▌特性一:全链路应用性能监控,提供从用户到代码层面的监控
华为云CodeArts APM提供全链路应用性能监控能力,涵盖前端监控、应用性能监控,实现前、后端链路的打通,完整还原用户的体验现场,为产品体验优化和问题定位指明方向。华为内部通过使用CodeArts APM,丰富问题排查手段,提升问题根因定位的效率,故障处理耗时减少45%。
▌特性二:前端性能监控,全面感知终端用户体验
华为云CodeArts APM对前端性能和用户体验数据进行多维度的可视化数据分析,包括页面加载性能、JS错误、API请求、服务流量,全面掌控终端用户的体验。通过华为云CodeArts APM,页面体验用时可优化至3S以内,被监控页面故障主动发现率从40%提升到90%,大幅降低用户页面体验的投诉率。
▌特性三:内置资源管理服务CMDB,解决海量资源对象与应用的管理难题
应用资源管理(CMDB)已被业界公认为运维解决方案的基石服务,华为云CodeArts APM通过应用、组件、环境的分层树形结构,清晰展示应用与资源的关系,并与华为云应用运维管理服务(AOM)协同,统一资源对象模型,有效管理海量分散资源,保障数据准确性和一致性,帮助企业解决运维难、变更难的问题。
▌特性四:自动发现应用访问拓扑关系,分钟级快速定位故障
华为云CodeArts APM可自动生成应用之间的访问拓扑图,发现应用、中间件、接口、实例间的调用关系和性能表现情况,异常问题清晰展现,帮助企业用户快速确定故障范围与影响,使得发现故障、问题定位时间从小时级降至分钟级,减少业务日常运维保障的压力。
▌特性五:分布式调用追踪,深入代码级的性能诊断和优化
华为云CodeArts APM自动为每次请求构筑完整的调用链访问路径,包含性能、代码堆栈、SQL语句等组件访问信息、相关的请求参数和性能指标数据,深入代码级的追踪帮助用户快速定位问题根因,为性能优化、故障处理提供详尽的数据支持。
得益于以上特性,华为云CodeArts APM如今已广泛应用于电力、物流、社保、汽车等领域,帮助企业提升用户体验,发现应用性能瓶颈,提升问题定位及处理的效率。
如深圳某知名物流企业通过使用华为云CodeArts APM,故障定位的平均耗时从120分钟降至5分钟,平均故障恢复时长从60分钟下降至10分钟,极大地提升了故障处理的效率,成为服务运维保障的利器。
未来,华为云CodeArts APM将不断沉淀大型企业应用性能管理的最佳实践,提供更丰富的应用性能管理特性,携手国内外客户、伙伴以及开发者,助力优化产品性能,共同提升问题定位及处理效率,打造卓越的数字化体验。
关注#华为云开发者联盟# 点击下方,第一时间了解华为云新鲜技术~
华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云
近日,中国信息通信研究院(以下简称“中国信通院”)举行了第十四批“可信数据库”评测评审会。其中,华为云GaussDB经过产品资料审核、测试报告审核、质询与答疑、集中评议等各环节的严苛考验,通过四项评测项目,获得专家团队一致认可。
“可信数据库”评测体系圈定了国内数据库产品厂商和服务商的第一梯队,成为了数据库产业发展的风向标。
在本次评审会中,华为云GaussDB(for openGauss)通过分布式事务型数据库基础能力、防篡改数据库基础能力、数据库管理系统智能化基础能力三大专项评测。此外,华为云GaussDB(for openGauss)是以最高分通过后两项评测的数据库产品。作为主打政企核心业务负载的企业级分布式数据库旗舰产品,华为云GaussDB(for openGauss)能满足客户高安全、高可靠、高性能、高扩展、智能化的需求,为企业提供功能全⾯、稳定可靠、扩展性强以及性能优越的企业级数据库服务。
在分布式事务型数据库基础能力评测中,华为云GaussDB(for openGauss)在基础能力、兼容能力、高可用等方面均以显著优势全数通过。华为云GaussDB(for openGauss)基于华为主导的开放生态openGauss而打造,采用Share-Nothing的先进分布式架构,有较好的SQL兼容性。该架构由众多独立且互不共享CPU、内存、存储等系统资源的逻辑节点组成,业务数据能被分散存储在多个计算节点上,数据查询任务被推送到数据所在位置就近执行,通过协调节点的协调,并行完成大规模的数据处理工作,实现对数据处理的快速响应。
在防篡改数据库基础能⼒专项评测中,华为云GaussDB(for openGauss)以最高分通过全部能力评测,共二十八项,包括防篡改能力、不可抵赖能力、安装适配及兼容能力、易用性能力、信任域能力以及风险识别能力,充分验证了防篡改数据库在保障数据安全方面的卓越性能。华为云GaussDB(for openGauss)不仅能保障数据在云上的增、删、改全生命周期可追溯、可校验,为数据完整性提供更强有力的保护,还能极大降低用户使用门槛和业务切换的难度,全方位实时保障企业数据安全。
华为云GaussDB(for openGauss)满足信通院数据库管理系统智能化标准的三十个能力项,具备数据库全方位智能化能力和全生命周期运维管理能力。其内置的DBMind自治运维管理系统具备多维度指标自动采集能力,通过异常检测和趋势预测算法,帮助企业及时发现潜在风险或问题;故障诊断系统基于人工智能算法分析指标间关联信息,结合故障规则经验,实现快捷迅速定位及SQL根因诊断;自动调优和恢复服务根据诊断建议,提供系统和SQL层面多粒度优化算法,全方位优化系统和业务性能;安全自治服务全面检测系统权限、访问和执行异常,为客户数据和业务在云上系统安全运行保驾护航。
作为一款企业级数据库,华为云GaussDB(for openGauss)受到众多有高性能和高可用应用场景需求的金融、政府、大企业等客户的青睐。在对数据库要求苛刻的金融行业, 6大国有商业银行中已有4家银行(包括工商银行、农业银行、建设银行、邮政储蓄银行),以及多家股份制银行和保险证券机构选择了华为云GaussDB(for openGauss)作为数字化转型的坚实数据底座。
此外,华为云另一款云数据库RDS for MySQL也在本次评测中顺利完成关系型云数据库基础能力的所有测试。
华为云RDS for MySQL拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等诸多特点,支持732天超长时间的自动备份恢复和按备份集和指定时间点恢复,保障数据不丢失,并能够全方位对数据库进行智能监控与诊断优化,为企业海量数据处理、智能存储、业务应用提供强有力的平台支撑。今年,华为云RDS for MySQL还解锁了应用无损透明(ALT)新特性,在业务发生故障时提供无损的应用连续性,保证企业业务不中断,故障0感知。
华为云RDS for MySQL已经广泛应用于互联网电商、电子政务、游戏等多个领域,并支撑深圳市中手游网络科技有限公司旗下大型手游《斗罗大陆-斗神再临》两个月内完成游戏内测与上线,业务上线流程缩短50%,上线首日流水突破1000万。
当前,华为云GaussDB已在超过2500家大客户中规模商用,遍布金融、政府、电信、能源、交通、物流、电商等诸多行业,帮助企业顺利上云,完成数字化转型。华为云GaussDB通过信通院多项评测,是得到了市场和行业的广泛认可的充分证明。未来,华为云GaussDB将持续深耕技术创新,牵手更多合作伙伴,共同打造更贴合用户场景的数据底座服务能力,携手共创数字化未来。
关注@华为云,了解更多资讯
1996年,欧洲最新的无人卫星发射火箭阿丽亚娜5号在首次发射后仅仅36秒,工程师就不得不按下了自毁按钮。
事后经分析查明,由于它重用了其前身阿丽亚娜4号的系统软件,发动机遭遇了之前没有被发现的漏洞,系统软件试图将一个64位的数字塞入16位的空间,由此产生的整形溢出问题导致了主计算机和备份计算机的崩溃。
一个小小的软件缺陷,让研发成本近80亿美元,并携带着造价5亿美元卫星的阿丽亚娜5号瞬间灰飞烟灭。
遗憾的是,这并不是个例。纵观历史,由于软件质量问题导致的“黑天鹅事件”不胜枚举,云服务宕机、金融交易失败、数据泄露等,给社会和用户造成了无法挽回的损失。事实上,软件存在的质量缺陷无法100%避免。因此,只有通过更加全面、严格、高效、安全的代码检查服务,才能最大程度地降低风险,使得软件开发过程在成本、进度和质量上得到充分保障。
国外先进的代码检查软件和服务虽多,但因种种原因不能在中国全面落地,或在某些方面存在局限性,并不能完全满足中国客户的实际需求。另外,在Gartner应用安全测试魔力象限中,至今尚无中国企业能够跻身领导者象限。那么,谁能打破行业坚冰,谁能更好地在软件开发阶段就将质量与安全隐患消灭于无形?
华为云CodeArts Check代码检查服务挺身而出,为用户提供包括代码风格、通用质量与代码安全风险等在内的检查能力,同时提供问题闭环处理、检查报告等功能,从而一站式完成代码检查作业,将代码质量保证活动从原始的人工检视中解脱出,确保代码的高质量并助力客户的商业成功。
著名软件工程专家和软件经济数据与度量专家卡珀斯·琼斯在其著作《Applied Software Measurement》中指出,80%的软件缺陷发生在编码阶段,而在后端测试修复缺陷的成本是开发阶段的40倍。
广泛的工业界实践也表明,在整个软件生命周期中,缺陷发现得越早、修复得越早,影响越小,付出的代价也越小。因此,“质量+安全”左移、DevSecOps等新理念不断涌现。华为非常赞同并在软件开发实践中积极落地和执行这些理念。
华为很早就开始关注软件质量的改进,并且持续吸收业界的优秀经验。“在我还是华为新员工的时候,就曾学习过半年的质量大事。”据一位华为云PaaS产品专家回忆,“1979年出版的《质量免费》中提到把事情做对的理念,与今天‘质量+安全’左移的概念不谋而合。最新推出的华为云CodeArts Check正是为了更好地在软件开发的前端弥补软件质量缺陷,同时还在代码检查上更进一步,加入了运营等新内容,让开发者受益匪浅。”
第三方市场研究报告显示,在中国,超过七成的软件厂商在使用DevSecOps的同时,也采用了代码自动检查工具。以华为为例,在其销售覆盖的全球100多个国家中,尤其是欧洲、中东地区的很多国家对于质量与安全问题高度敏感。
为此,华为内部很早就引入了相关工具,独立执行软件扫描,从技术、业务规范乃至公司文化等不同层面,确保自动化代码检查的有效落地,以保证华为所有产品的成功上线。
在软件质量与安全领域,技术相对比较成熟,早在上个世纪70年代左右就已经有了第一款商业化的代码检查软件。但是因为软件编码本身就是一件非常困难的事,而且开发人员的技能、知识储备参差不齐,再加上软件语言本身的特点也会天然造成缺陷,所以在开发阶段成功拦截所有代码质量问题始终是一个难点。
从瀑布式开发到今天流行的敏捷开发、云开发,开发模式的改变对于软件质量和安全的影响也是比较大的。假如软件扫描或分析的时间过长,则很难满足快速发布、快速迭代的要求。软件质量与开发效率之间似乎是鱼与熊掌难以兼得。再者,相对动态分析技术,静态分析技术本身存在一些局限,比如每一行代码在执行的过程中,每一次调用都会逐层逐路地进行分析,这对算力来说也是巨大的挑战,同样会影响开发效率。
保证软件质量与安全,挑战不言而喻,而且不仅仅体现在技术层面。在应用安全测试领域,标准是国外的,领导厂商是国外的,国内无论是从技术还是产品化、商业化程度来看,都相对较薄弱。华为云CodeArts Check的目标是和国内众多厂商一起,共建检查标准和生态,为中国软件行业的发展贡献更多技术与经验,进一步帮助广大中国软件企业提升产品质量。
从1998年到2007年,在华为内部,开发语言以C/C++为主,各业务团队按需引入Pclint等第三方工具开展代码质量检查。2007年至2012年期间,华为还发布了《华为通用编程规范》,规范以人工检视为主。
“从我们对源代码的质量有要求开始,就将当时业界顶尖的代码检查工具用了个遍。但在保证软件质量与安全方面,我们确实面临相当大的挑战。”华为云PaaS产品经理概括说,“首先,作为全球化的公司,我们的产品必须满足全球不同客户市场差异化且极其严格的要求;其次,在代码检查方面,我们不仅要实现对编码风格、简单质量问题等的检查,还希望通过检查发现更多潜在的质量问题,甚至是影响到网络安全的软件质量问题;最后,代码检查工具必须满足华为大体量的研发需求,具备卓越的工程化能力,包括高吞吐量、稳定和易用。”
并非原生商用的代码检查工具不够优秀,而是这些工具确实不能覆盖华为所有的应用场景。所以,华为走上了自研代码检查工具之路。在这里可以讲一个小插曲。
某次,华为的一个客户提出,要快速确认产品代码中是否使用了不安全的内存操作函数。华为最初采用商用工具进行了常规排查,但在排查之后发现,仍有遗漏的场景。同时客户又提出,除了要排查出是否使用了不安全的函数,还要确认使用了不安全函数的安全版本是否使用正确。
这一要求已经超出了当时商用工具的能力范围。华为积极投资快速响应客户的个性化要求,在极短的时间内通过自研弥补代码检查工具能力的不足。
■ 2007年,结合ISO 9126系统/产品质量模型,华为发布了《软件代码质量要求及样例》,明确了代码质量必须达到的6项要求——简洁、可靠、可维、可测、高效、可移植,并在此基础上打造出Program SMaRT1.0模型。
■ 2012年,华为对Program SMaRT模型进行了完善,着重扩展了安全性。
■ 2018年,华为基于对好代码的解读和追求,结合业界先进实践、专家学术研究和ISO标准,提出了华为的CleanCode主张,旨在满足功能正确的前提下,打造具有“可读、可维护、安全、可靠、可测试、高效、可移植”七大特征的高质量代码,建立人人编写CleanCode代码的软件文化。同时华为开始自研与各主流编程规范对应的自动化代码检查能力,相对应的编程规范检查工具CodeCheck也开始面向全公司开发人员进行推广普及。
此外,华为内部多种多样的应用场景,让开发团队能够不断补强、夯实代码检查的基本技术与能力,而不仅限于简单的词法、语法分析这样的检查。如今,自研工具已经成了华为代码检查的核心力量。
历史上,华为的各个业务部门,比如终端、ICT、运营商等,都会遵循公司对软件质量的统一要求,同时结合自身的业务特点,选择开源的或商用的自动化工具进行代码检查。随着业界对网络安全的关注,运营商对通信设备商的软件代码安全性提出了极高要求,并提出了内部规范是否统一落地的疑问:“我们用了华为那么多产品,华为如何保证每个产品线产品都能达到同等的质量要求与标准?华为内部是否有统一的质量保障规范?每个开发人员是否切实执行了相关的标准和规范?”
当时华为的状况是,虽然每一个产品都有针对性的检查规范,也配备了相应的检查工具,完全能够确保产品本身的质量与安全。于是,华为从公司规范入手,对照业界标准,重新梳理、刷新所有相关的安全规范、编程规范。
在此基础之上,每条产品线基于自身的业务特点,以及对安全性的细致要求,制定更加具体的要求和规则。这样一来,华为从整个公司层面,就能通过一个统一的平台,要求各产品线使用统一的必选规则集去执行软件扫描;而这个统一的平台还能有效汇聚、处理各业务线的数据,并将相关数据提供给外部客户,以满足第三方检查、认证等方面的需要。经此改变,华为的整体产品质量又跃上了一个新台阶。
■ 2018年,随着整个软件工具链的逐步完善,华为开始将用于内部的代码检查工具“外溢”,向外以服务的模式进行输出。
■ 2020年4月,CodeCheck2.0正式发布,多款代码检查工具(ReviewBot、SecBrella、CodeCheck等)归一至新版的代码检查服务CodeCheck,并构建起“IDE-代码仓门禁-版本发布”三级检查体系。
■ 2021年,CodeCheck经历多次技术攻关,实现了代码检查引擎对国外工具的核心安全及质量检测能力进行替换,不仅有效支撑了华为研发业务的连续,而且为深度安全及代码质量检查能力的商用交付夯实了基础。
■ 2022年4月,CodeCheck HCS版本交付,这也是CodeCheck首个正式对外商用的版本。经过近半年的精心准备,CodeCheck于2022年8月23日通过了业界标准CWE认证,具备了国际认可的专业资质;同年9月,CodeCheck完成了在墨西哥、巴西、新加坡等多个海外局点的开局,迈出全球化部署的关键一步。
经过持续的演进、完善,CodeCheck成了今天广大开发者在华为云上可以信手拈来的CodeArts Check服务,它既是华为多年来软件开发的成功实践、工程方法、管理要求以及优秀企业文化的结晶,同时又将经实践验证的好用的通用能力与功能,与广大客户和合作伙伴进行分享,进一步提升软件的质量。
华为云CodeArts Check服务能够在开发阶段全面深挖代码的安全问题,并从“可读性、可维护性、安全性、可靠性、可测试性、高效性、可移植性”这七个纬度全面评估安全代码的质量,为开发者提供大规模、高可用,且易用、便捷的云服务,从而更好地守护企业软件的质量与安全,助力企业商业成功。
你是不是好奇,华为云CodeArts Check到底有哪些过人之处?归纳来说,华为云CodeArts Check锻造出“六大利器”。
利器一:自研代码检查引擎,代码质量评估无死角。
华为云CodeArts Check采用的自研引擎融合了华为30多年对代码质量及可信度提升方面的持续思考与探索实践,能够帮助用户在一次扫描中针对代码的”可读性、可维护性、安全性、可靠性、可测试性、高效性、可移植性”七大质量特征进行全面分析。
利器二:五大业界主流标准、华为编程规范,一个也不能少。
华为云CodeArts Check不仅支持ISO 5055、CERT、CWE、OWASP TOP10、SANS TOP 25五大业界主流编程标准,而且内置了华为终端、网络、云计算、芯片等产品多年研发经验总结的编程规范,提升了产品代码规范度。
利器三:开发语言、检查规则一应俱全,用户开箱即用。
华为云CodeArts Check不仅支持C、C++、Java、Python、GO等十余种常见开发语言,而且提供了超过7000条检查规则,能够满足各类检查场景需求,开箱即用。
利器四:日均百亿级扫描能力,超大规模代码检查易如反掌。
华为云CodeArts Check具备强大的高并发处理能力,还可通过AZ容灾、跨Region级容灾多活,支持过载保护、服务依赖和隔离等一系列高可用技术,实现服务故障自探测、自隔离、自恢复。
利器五:一站式问题闭环修复。
由于内置了编程规范说明、正确示例、错误示例和修复建议,华为云CodeArts Check能够让问题精准定位到行并提供修复指导。得益于修复指导、自动修复、结果自动继承这三大能力,华为云CodeArts Check能够将检查问题处理和修复的效率提升100%。
利器六:三层缺陷防护,效率与质量兼得。
华为云CodeArts Check提供了丰富的API接口以及IDE代码检查插件,并与代码仓协同支持代码提交时自动检查,与流水线协同支持软件全量代码检查,三层防范代码缺陷引入。
“对于代码检查工具来讲,我们最关注的一是效率,二是误报和漏报问题。”华为云PaaS产品经理介绍说,“我们凭借在云化方面的积累和能力,实现了大规模分布式处理能力和效率的提升。针对漏报,在大量借鉴商业化工具和开源工具,以及自研工具的成功经验的基础上,我们不断开拓创新,有效提升检查能力;对于误报问题,结合华为技术专家、高校的科研成果,利用精准的智能分析,提升分析引擎的精准率。举例来说,华为内部每天扫描500亿-1000亿行代码,沉淀为一个庞大的历史信息数据库,结合AI技术,能够大幅提了自研引擎的准确度。上述这些都是华为云CodeArts Check差异化能力的具体体现。”
华为业务线众多,具有海量的代码检查需求,并且对产品质量始终保持着极高的敏感度和重视程度。从这个角度说,华为本身就是催熟代码检查工具的一个宝库。
例如,华为云CodeArts Check中采用的核心自研引擎,就是华为在吃自己的“狗粮”。这种“狗粮”吃得越多,CodeArts Check自身的能力和水平就越高。
另外,工程化能力也是华为云CodeArts Check的核心属性之一,融合了华为30积累的产品开发经验、产品开发过程、质量保证过程,能够更好地帮助客户在全工具链上复用华为的开发经验,事半功倍。
相比市场上现有的其他代码检查工具,华为云CodeArts Check除了在技术和功能上有自己独特的创新之外,在企业文化、规范、流程等方面同样底蕴深厚,并且独具匠心。
在业界中,CleanCode是一个成熟的概念,本质是追求代码的简洁化。基于对软件质量的严苛要求,同时参考业界的相关标准和大量成功实践,华为对CleanCode做出了进一步解读和扩展,即“可读性、可维护性、安全性、可靠性、可测试性、高效性、可移植性”七大质量特征。
据介绍,华为公司自上而下,从多个维度对七大质量特征进行解读和剖析,通过对应的代码案例和用例实现落地,并且提供自动度量的方法和工具,确保每条产品线都有对应的组织依此对各个层级进行赋能。每条产品线还会结合自身的实际需求,制定具体的计划,保证CleanCode切实有效地落地。
特别值得一提的是,除了不断增强代码检查工具本身的能力以外,华为云CodeArts Check还形成了独有的3级检查体系和3层运营体系。3+3的运营可以立体化、最大限度地保证检查工具应用到位。三层运营意味着不仅要把工具做到好用,还要让用户将工具用好。
因此,从公司层到各个产品线,再到具体的产品版本层面,华为都提供了分层的工具能力。掌握不同能力模型的专家通过分工合作,在各个层面制定出匹配不同产品形态的工具应用策略,做到人尽其才,物尽其用,最终目的还是服务好开发人员。
华为云CodeArts Check服务已于2023年1月12日正式上线。据了解,华为云CodeArts Check目前不仅支撑着华为15万研发人员、日均扫描逾500亿行的代码检查工作,而且也广泛应用于能源、物流等企业,服务新闻媒体及广大开发者,为企业生产高质量且安全的软件保驾护航。
已经在华为应用并得到成功验证的CodeArts Check不仅适用于大型企业的超大规模开发环境,而且由于其具有分层的能力和易用性,能够很好地适配不同开发环境,即使是普通开发者也能一键式开箱即用。凭借卓越的工程化能力,CodeArts Check既可以无缝连接华为自研的工具,还能灵活地与业界通用的工具无缝集成,每天执行几百亿行代码检查轻而易举。
“自己做的降落伞自己先跳”,这是华为一惯的作风和传统,在代码检查方面当然也不例外。举例来说,华为参考业界实践、ISO标准制定了华为各类开发语言的编程规范,明确开发阶段落地遵从编程规范的活动要求,以CodeArts Check服务华为的开发人员,支持30+语言,覆盖各类规范40+;并且通过“3+3”运营,让产品在保障遵从编程规范的同时选取最适合自己的检查规则进行扫描,并通过数据驱动运营,帮助公司、产品线、产品分层运营,使得代码检查活动落地可视、可管理。
今天,高质量的产品已成为客户愿买、敢买和政府接受、信任华为的基本条件。华为的产品和解决方案已在全球170多个国家安全稳定运行,积累和赢得了全球数万客户的信任。2019年3月,华为欧洲安全透明中心在比利时成立,其自研安全检查引擎与业界优秀工具一起,支撑了三家欧美独立评估机构对华为产品代码的安全评估,效果非常好。编写好代码能有效减少漏洞,降低系统脆弱性,是达成高质量产品的核心环节,也是华为始终坚守的信念。
华为云CodeArts Check服务商业用户的一个典型案例就是中国经济信息社(以下简称“中经社”)。
中经社是新华社旗下专业承担经济信息服务业务的直属机构,其综合信息服务体系遍布全国,并覆盖全球180个国家和地区。中经社与许多不同的软件开发商合作,由于研发标准不统一,软件开发商独立研发,使得各开发商的研发质量很难统一保障,协同效率低下。
中经社依托华为云CodeArts Check,通过研发运维一体化,规范研发过程,提升研发效率,实现质量活动从部署测试延伸到代码规范、安全检查。其中,代码检查自动触发,实现了代码问题解决前移,研发交付质量提升50%。
另外,华为云CodeArts Check还支撑许多大型开源社区开展代码检查工作,包括鸿蒙社区、码云等。以鸿蒙社区为例,每周支撑运行近2万个任务检查,代码扫描量超过300亿行。
平台+生态,更好地服务广大开发者,这是华为云CodeArts Check的初衷。华为云希望借助CodeArts Check平台,提供开放、集成的能力,与生态伙伴合作协同,为企业和开发者提供组合的优质服务。华为云CodeArts Check还推出了免费套餐,五人以下的团队可以免费使用。另外,华为云还将陆续推出丰富的训练课程,对开发者进行赋能,并在各技术社区中加强CodeArts Check的推广,共建代码检查的良好生态。
未来,华为云CodeArts Check将持续增强自动修复和代码深度安全检查能力,并进一步提升平台和引擎的开放性和扩展性,让开发者能够更加聚焦软件功能的开发,真正做到兼顾质量和效率,更好地助力企业商业成功。
*本文转载自公众号云报
关注@华为云,了解更多资讯
维修师傅服务态度很好,快速的解决了问题,维修速度很快很专业
不知道是因为什么原因,师傅上门来给我检查了,告诉我了是什么原因,什么问题,然后我就让他修了,修理的很好,价格收费什么的也很合理
师傅服务态度很好,按约定好的时间很准时到了,维修很专业,一会儿功夫就给修好了,现在终于可以正常运作了
师父上门维修特别快,很仔细很认真,工作态度端正,而且其他问题也能帮忙处理没有收其他费用很满意
预约了师傅马上来上门来了,费用还是可以接受的,师傅态度做事不错
有专业的技术的人员,都拥有专业的培训,服务质量好,态度满意,价格合理
收费合理,师傅上门准时。态度挺好
找了师傅上门,检查后说是线路故障了,换了一下,半个小时就修好了,很专业
下单后师傅很快就联系我了,跟师傅电话聊好价格就上门了,换了显示面板、目前没有再继续乱响。
已修好,师傅服务周到,态度很好