软件架构必备!一文解析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阅读排行榜 技术圈的风向标,有趣,有料,有货,有品又有用
评论
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 189浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 118浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 164浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 76浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 502浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 156浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 184浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 200浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 123浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 66浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 470浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 105浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 221浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 65浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦