软件架构必备!一文解析5种超实用度量方法

IT阅读排行榜 2024-11-04 15:45

关于软件架构有许多定义,但在实践中,大多数在架构上具有重要意义的决策都与满足利益相关者对系统质量的需求有关,包括性能、韧性和安全性。架构师以前解决这些复杂问题的方式是进行大量的“前期”设计和思考,但如今架构师们需要更快地行动,更有效地适应变化。


许多方法,如持续交付、RCDA和持续架构等,都试图减少前期的架构活动,更多地将架构活动贯穿在交付生命周期中。这样,团队就可以在获得更多信息后再做出重要决策,并支持系统创建过程中出现的变更;但难点在于如何确定自己是否已经完成了足够的架构工作以及是否把时间花在了最重要的事情上,以最大化工作收益。


要做的事情太多,时间总是不够用,因此你需要明智地选择任务,并知道何时停止去解决下一个问题。度量就是解决方案。通过在特定时间点对系统的质量进行度量,而不是凭直觉或遵循僵化的架构方法,你就能了解自己所处的位置。随着时间的推移进行度量,你就能看到趋势,并根据这些质量属性的演变来确定你的方向。以这种方式使用度量,可以指导你的架构活动,并最大限度地发挥其价值。


拥有可靠且经济高效的度量方法非常重要。在本文接下来的部分,我们将介绍软件架构中,度量的五种方法。


01 应用和基础设施的运行时度量

正如Cindy Sridharan在Distributed Systems Observability(O'Reilly,2018)一书中所指出的,目前可用的度量机制一般有三种:日志、跟踪和指标。


  • 日志为我们提供了一系列带有时间发的事件记录,以显示某个技术组件在一段时间内发生了什么。

  • 跟踪则是对这一理念的延伸,它是直接相关事件的集合,记录了软件内端到端跨组件场景,如请求处理。

  • 指标是对一段时间内系统特性的直接数字度量,例如虚拟机的CPU使用率或图像存储器的存储大小。


我们可以从系统基础架构和应用程序本身收集日志、跟踪和指标。


通常情况下,从基础架构设施访问日志、跟踪和指标更简单,因为大多数基础架构设施环境(如公共云平台)都有复杂且功能齐全的信息收集系统,无须进行太多工作即可提供这三种信息。应用程序日志、跟踪和指标通常需要更多的工作,因为你必须自己直接或通过重用度量机制(如应用程序性能管理(APM)工具)来实现它们。不过,应用程序度量是针对具体情况的,这可以为利益相关者真正关心的特性(如产生的收入等业务指标,而不仅仅是纯粹的技术指标)提供更多见解。

02 软件分析

俗话说:“代码不会说谎。”代码一经编写,就可以成为丰富的度量来源。


静态代码分析是一个高度发展的领域,有各种功能强大的工具,然而,它仅限于度量常见的编程错误和代码结构特征(如复杂性或耦合性)。这对于评估维护性和可扩展性以外的许多架构质量特性没有帮助。


不过,对于评估质量(例如安全性),代码分析度量(如发现的奖符漏洞数量)可以作为一种有用的替代度量方法。

03 设计分析

代码分析的明显问题是,在代码编写完成之前,你无法使用它,因此它只能提供回顾性而非预测性的度量结果。而在实现之前捕捉设计的某些方面,就可以使用设计分析来创建预测性度量,如是否符合标准,或可能的架构质量,如可伸缩性。


我不建议制作老式的详细设计文档,因为这些文档一完成就会过时,但在实施前捕捉一些最基本但准确的设计表述,可以对可能的系统特性提供有洞察力的估算,从而指导你的工作。

04 估算和模型

使用模型和估算来创建预测性度量,可以在交付周期的早期,编写大量代码之前指导架构工作。


你可以利用自己以前的经验、对其他类似系统的度量结果以及已公布的基准或测试结果来创建数学模型,通常是在电子表格中创建。这些模型试图捕捉运行参数(如数据库大小、请求量、请求类型、服务器数量和内存大小)与由这些参数产生的质量属性值之间的基本关系。


这种预测性度量存在一些问题。首先,它最适用于易于用数字表示的架构特性,如可扩展性和性能。而对于安全性这样的特性,则比较难以使用这种方法。其次,除了最简单的系统外,要创建一个简单易懂、结果可靠的模型也非常困难(而且昂贵)。最后,在系统建成之前,也很难验证此类模型的预测能力,此时你只需对其进行度量即可。确保你创建的是真正有用的东西。

05 适应度函数

Neil Ford、Rebecca Parsons和Patrick Kua在Building Evolutionary Architectures(O"Reilly,2017)一书中提出了用于质量属性度量的“适应度函数”。与其说适应度函数是一种新的度量机制,不如说它是一种利用度量来监控系统质量属性并确保其保持在可接受范围内的机制。

适应度函数为一个或多个质量属性定义了一个或一组可接受的值,以及如何检查系统是否至少达到了这些质量属性数值的方法。理想情况下,适应度函数应作为自动化流程来实施,但许多有用的适应度函数无法自动化,因此手动的适应度函数(如电子表格计算)仍然很有价值。举个简单的例子,如果你知道某一特定类型的所有请求都应在100毫秒内处理完毕,那么你就可以在运行环境中创建一个自动化的适应度函数,用于监控请求处理时间,并在请求处理时间超长时发出警报。


适应度函数并不能使质量属性度量变得更容易。你仍然需要使用本节中概述的技术。但它们可以帮助你使用度量数据来引导和聚焦你的架构工作。


总结


本文从常用度量方法的角度介绍了如何在软件架构中使用度量。每种重要质量(如性能、可扩展性、可用性和安全性等)在度量时都有自己的特点,需要结合这些特点使用不同的度量方法。


如果您对软件的度量指标感兴趣,想要进一步了解其在软件架构中的具体应用,推荐您阅读《软件架构指标:度量软件系统的性能和架构质量》一书。


- END -

作者简介:
  • Christian Ciceri,一名软件架构师,也是Apiumhub的联合创始人。
  • Dave Farley,持续交付、DevOps和软件开发领域的思想领袖。

  • Neal Ford,Thoughtworks的总监、软件架构师和文化塑造师。

  • Andrew Harmel-Law,Thoughtworks的技术主管。

  • Carola Lilienthal,博士,Workplace Solutions GmbH的总经理。

  • Michael Keeling,一位经验丰富的软件架构师、敏捷实践者和程序员。

  • João Rosa,Xebia的首席顾问。

  • Alexander von Zitzewitz,hello2morrow的创始人之一。

  • Rene Weiss,Finabro的首席技术官。

  • Eoin Woods,Endava的首席技术官。


本文摘编自《软件架构指标:度量软件系统的性能和架构质量》,经出版方授权发布,转载请保留文章来源。


延伸阅读软件架构指标

推荐理由:本书通过10位杰出实践者的贡献,分享了关键的软件架构指标,帮助你设定正确的关键绩效指标并衡量结果。软件架构指标是软件项目的可维护性和架构质量的关键,它们可以在项目早期向你发出警告,提醒你注意架构和技术债务的积累。本书不是一本关于理论的书。它更多的是关于实践,关于已经尝试过并行之有效的方法。本书面向渴望探索成功案例的软件架构师和软件开发人员,旨在帮助读者进一步了解决策和测量的有效性。



  • 本文来源:原创,图片来源:原创、pexels

  • 责任编辑:王莹,部门领导:宁姗

  • 发布人:白钰

IT阅读排行榜 技术圈的风向标,有趣,有料,有货,有品又有用
评论 (0)
  • 职场之路并非一帆风顺,从初入职场的新人成长为团队中不可或缺的骨干,背后需要经历一系列内在的蜕变。许多人误以为只需努力工作便能顺利晋升,其实核心在于思维方式的更新。走出舒适区、打破旧有框架,正是让自己与众不同的重要法宝。在这条道路上,你不只需要扎实的技能,更需要敏锐的观察力、不断自省的精神和前瞻的格局。今天,就来聊聊那改变命运的三大思维转变,让你在职场上稳步前行。工作初期,总会遇到各式各样的难题。最初,我们习惯于围绕手头任务来制定计划,专注于眼前的目标。然而,职场的竞争从来不是单打独斗,而是团队协
    优思学院 2025-04-01 17:29 249浏览
  • 探针本身不需要对焦。探针的工作原理是通过接触被测物体表面来传递电信号,其精度和使用效果取决于探针的材质、形状以及与检测设备的匹配度,而非对焦操作。一、探针的工作原理探针是检测设备中的重要部件,常用于电子显微镜、坐标测量机等精密仪器中。其工作原理主要是通过接触被测物体的表面,将接触点的位置信息或电信号传递给检测设备,从而实现对物体表面形貌、尺寸或电性能等参数的测量。在这个过程中,探针的精度和稳定性对测量结果具有至关重要的影响。二、探针的操作要求在使用探针进行测量时,需要确保探针与被测物体表面的良好
    锦正茂科技 2025-04-02 10:41 122浏览
  • 在智能交互设备快速发展的今天,语音芯片作为人机交互的核心组件,其性能直接影响用户体验与产品竞争力。WT588F02B-8S语音芯片,凭借其静态功耗<5μA的卓越低功耗特性,成为物联网、智能家居、工业自动化等领域的理想选择,为设备赋予“听得懂、说得清”的智能化能力。一、核心优势:低功耗与高性能的完美结合超低待机功耗WT588F02B-8S在休眠模式下待机电流仅为5μA以下,显著延长了电池供电设备的续航能力。例如,在电子锁、气体检测仪等需长期待机的场景中,用户无需频繁更换电池,降低了维护成本。灵活的
    广州唯创电子 2025-04-02 08:34 182浏览
  • 随着汽车向智能化、场景化加速演进,智能座舱已成为人车交互的核心承载。从驾驶员注意力监测到儿童遗留检测,从乘员识别到安全带状态判断,座舱内的每一次行为都蕴含着巨大的安全与体验价值。然而,这些感知系统要在多样驾驶行为、复杂座舱布局和极端光照条件下持续稳定运行,传统的真实数据采集方式已难以支撑其开发迭代需求。智能座舱的技术演进,正由“采集驱动”转向“仿真驱动”。一、智能座舱仿真的挑战与突破图1:座舱实例图智能座舱中的AI系统,不仅需要理解驾驶员的行为和状态,还要同时感知乘员、儿童、宠物乃至环境中的潜在
    康谋 2025-04-02 10:23 196浏览
  • 文/郭楚妤编辑/cc孙聪颖‍不久前,中国发展高层论坛 2025 年年会(CDF)刚刚落下帷幕。本次年会围绕 “全面释放发展动能,共促全球经济稳定增长” 这一主题,吸引了全球各界目光,众多重磅嘉宾的出席与发言成为舆论焦点。其中,韩国三星集团会长李在镕时隔两年的访华之行,更是引发广泛热议。一直以来,李在镕给外界的印象是不苟言笑。然而,在论坛开幕前一天,李在镕却意外打破固有形象。3 月 22 日,李在镕与高通公司总裁安蒙一同现身北京小米汽车工厂。小米方面极为重视此次会面,CEO 雷军亲自接待,小米副董
    华尔街科技眼 2025-04-01 19:39 248浏览
  • 退火炉,作为热处理设备的一种,广泛应用于各种金属材料的退火处理。那么,退火炉究竟是干嘛用的呢?一、退火炉的主要用途退火炉主要用于金属材料(如钢、铁、铜等)的热处理,通过退火工艺改善材料的机械性能,消除内应力和组织缺陷,提高材料的塑性和韧性。退火过程中,材料被加热到一定温度后保持一段时间,然后以适当的速度冷却,以达到改善材料性能的目的。二、退火炉的工作原理退火炉通过电热元件(如电阻丝、硅碳棒等)或燃气燃烧器加热炉膛,使炉内温度达到所需的退火温度。在退火过程中,炉内的温度、加热速度和冷却速度都可以根
    锦正茂科技 2025-04-02 10:13 111浏览
  • 据先科电子官方信息,其产品包装标签将于2024年5月1日进行全面升级。作为电子元器件行业资讯平台,大鱼芯城为您梳理本次变更的核心内容及影响:一、标签变更核心要点标签整合与环保优化变更前:卷盘、内盒及外箱需分别粘贴2张标签(含独立环保标识)。变更后:环保标识(RoHS/HAF/PbF)整合至单张标签,减少重复贴标流程。标签尺寸调整卷盘/内盒标签:尺寸由5030mm升级至**8040mm**,信息展示更清晰。外箱标签:尺寸统一为8040mm(原7040mm),提升一致性。关键信息新增新增LOT批次编
    大鱼芯城 2025-04-01 15:02 232浏览
  • 提到“质量”这两个字,我们不会忘记那些奠定基础的大师们:休哈特、戴明、朱兰、克劳士比、费根堡姆、石川馨、田口玄一……正是他们的思想和实践,构筑了现代质量管理的核心体系,也深远影响了无数企业和管理者。今天,就让我们一同致敬这些质量管理的先驱!(最近流行『吉卜力风格』AI插图,我们也来玩玩用『吉卜力风格』重绘质量大师画象)1. 休哈特:统计质量控制的奠基者沃尔特·A·休哈特,美国工程师、统计学家,被誉为“统计质量控制之父”。1924年,他提出世界上第一张控制图,并于1931年出版《产品制造质量的经济
    优思学院 2025-04-01 14:02 159浏览
  • 文/Leon编辑/cc孙聪颖‍步入 2025 年,国家进一步加大促消费、扩内需的政策力度,家电国补政策将持续贯穿全年。这一利好举措,为行业发展注入强劲的增长动力。(详情见:2025:消费提振要靠国补还是“看不见的手”?)但与此同时,也对家电企业在战略规划、产品打造以及市场营销等多个维度,提出了更为严苛的要求。在刚刚落幕的中国家电及消费电子博览会(AWE)上,家电行业的竞争呈现出胶着的态势,各大品牌为在激烈的市场竞争中脱颖而出,纷纷加大产品研发投入,积极推出新产品,试图提升产品附加值与市场竞争力。
    华尔街科技眼 2025-04-01 19:49 249浏览
  • 北京贞光科技有限公司作为紫光同芯授权代理商,专注于为客户提供车规级安全芯片的硬件供应与软件SDK一站式解决方案,同时配备专业技术团队,为选型及定制需求提供现场指导与支持。随着新能源汽车渗透率突破40%(中汽协2024数据),智能驾驶向L3+快速演进,车规级MCU正迎来技术范式变革。作为汽车电子系统的"神经中枢",通过AEC-Q100 Grade 1认证的MCU芯片需在-40℃~150℃极端温度下保持μs级响应精度,同时满足ISO 26262 ASIL-D功能安全要求。在集中式
    贞光科技 2025-04-02 14:50 234浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦