QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

InfoQ 2022 年趋势报告:架构与设计篇

作者:Thomas Betts, Eran Stiller, Vasco Veloso 等

  • 2022-04-12
  • 本文字数:3497 字

    阅读完需:约 11 分钟

InfoQ 2022年趋势报告:架构与设计篇


每年,InfoQ 的编辑们都会讨论我们在整个软件开发领域所观察到的情况,并编制一些趋势报告,每份报告都有自己的采用曲线图。这有助于编辑团队将报告重点放在创新性技术和想法上,同时也让我们的读者对于需要关注的主题有个全局的认识。

 

该报告主要有两部分。第一部分是你正在阅读的这份书面报告,包括趋势图和过去一年中个别新增加或有变化的条目的详细介绍,以及 InfoQ 编辑们的概括性分析。

 

报告的第二部分是InfoQ播客上的一集内容。感兴趣的读者可以收听编辑们的部分对话,以及来自我们专家小组的一些轶事。

趋势图更新

2021 年,我们研究了架构师实现其设计的许多方式,考虑了主要的“非功能性需求(-ilities)”。今年,我们将“安全设计”添加到了该列表中,并在早期采用阶段就考虑。安全一直是一个考量因素,在设计一个系统及其组件时,及早并反复考虑安全问题越来越重要。

 

架构可能不是 DevSecOps 这个三元混合词的一部分,但它是这个理念的一个底层构件。网络安全和软件架构之间也有很多相似之处,这一点我们在 InfoQ 播客中与Maxime Lamothe-Brassard讨论过

 

我们考虑过添加“可扩展性设计”,但最终认为,可以从“弹性设计”和其他适应可扩展性的趋势之下捕获到这些信息。在大流行的第二年,在线服务消费继续增长,企业必须能够扩大规模才能满足需求。

 

eBPF,即扩展的伯克利包过滤器,是对 Linux 内核进行编程的一种方式。它允许开发者在运行时向操作系统添加功能。我们已经把 eBPF 作为一个创新趋势,并将在未来几年观察其采用情况。Liz Rice 在最近一期InfoQ播客中对该技术做了很好的概要介绍。

 

将”下一代 GraphQL“改为”GraphQL Federation“,因为它是各公司在其现有 GraphQL 实现之上所做的最重要的工作。

 

“数据网关”被删除,取而代之以“数据+架构”。另外,“架构师电梯”被替换为“架构决策记录”。下文会详细讨论这些变化。

 

Dapr 和 WebAssembly 都从创新变为早期采用。

 

有几个条目被删除了,因为在过去几年里没有被采用,也没有足够的创新,包括开放应用模型(OAM)和 RSocket&Reactive Streams。

数据+架构

我们看到了一个变化,从数据只在系统存储或传输层被考虑,到数据成为系统定义的一个元素。这在人工智能/ML 系统中尤其明显。这些系统是基于数据构建的,在事件源这样的设计模式中也是如此。有时,它表现为一个明确定义的概念,如数据网格,我们将把它作为一个独立的创新趋势继续关注。更多时候,架构师们只是考虑数据的方式不同而已,所以我们在今年的趋势图上增加了“数据+架构”。

 

InfoQ播客的采访中,Neal Ford 和 Mark Richards 谈到了在他们的新书 Software Architecture: the Hard Parts 中加入数据相关章节的必要性。Neal 说:


我们想确保我们提供了更全面的信息,因为我们坚信,数据加架构将是未来几年备受关注的主题之一。这也是我们现在在做的很多专业工作的主题——处理好这种关系,并使之成为一种顺利的工作关系,需要 DBA 和架构师之间的合作,还要使这些实践成为我们在架构和设计中习以为常的实践。


数据+架构包含了一些搜索引擎友好的术语,比如在趋势图上被它取代的数据网关。它还包括数据质量等概念,以及试图解决“我们如何确保我们使用的数据是正确的?我们如何知道它是否符合我们的预期?”这个问题的工具。这个问题不处理,其后果可能是灾难性的。

 

InfoQ 编辑 Eran Stiller 供职于Badook,他在工作中会考虑数据质量问题。他对这个问题的看法如下:


现如今的公司越来越依赖人工智能和机器学习算法。他们利用这些算法改善客户体验,预测销售和库存水平,并获得对其业务的宝贵洞察力。在某些情况下,它们甚至在没有人类干预的情况下完全自动化地做出决定。这些算法依赖于数据。如果数据好,用它构建的模型就可用。但遗憾的是,我们的数据会随着时间的推移而变化,其质量也在下降。数据收集出现错误,数据管道可能在不经意间对我们的数据造成破坏,而我们之前对数据所做的假设可能随着时间的推移不再有效,可能会造成灾难性的商业后果。

 

例如,房地产公司Zillow最近减记了5亿多美元,因为它用于预测房价和驱动其商业决策的数据模型未能适应不断变化的现实。

 

此外,世界各地的监管机构,如欧盟,正在对人工智能算法的创建和使用方式进行监管。最近,美国国会也出台了类似的《算法责任法案》。这些法规的一个关键部分将是确保用于推导算法的数据是正当的。

 

因此,我预测,数据质量和可靠性将成为大多数(如果不是所有)科技公司越来越关注的话题。就像测试代码一样,我们应该测试和验证我们的数据,确保它符合我们的期望。如果不这样做,我们可能会在某天早上醒来时,将我们的商业战略置于错误的预测之上,或者更糟糕,做出灾难性的全自动财务决策,这可能使我们损失数十亿美元。我相信,没人希望陷入这样的境地。

架构师与架构

在整个行业中,对架构师角色以及软件架构与设计实践的定义莫衷一是。许多公司都没有软件架构师的职位,而那些有这个职位的公司,其职责也有很大的差异。尽管如此,软件总是要设计,并且总是有一个架构。我们所面临的挑战是如何识别创新性的架构方式,以及这如何体现在软件架构师的角色中。

 

这个想法很难浓缩成趋势图上一个简短的概念。去年,我们有“架构师电梯”。Gregor Hohpe 的这个想法是说架构师需要在组织的多个层面上进行沟通。在此之前,我们有“架构师作为技术领导者”。这两个概念都属于早期采用的范畴。这主要是来自一种直觉,它们不一定是创新性的,但也没有被广泛采用。

 

今年,我们将“架构决策记录(ADR)”添加到早期采用。关于 ADR,Michael Nygard 在 2011 年发表了一篇很好的文章。大多数软件团队都熟悉“盒子和箭头”架构图,这无论是对于记录系统的期望状态还是当前状态都很有用。

 

然而,了解为什么做出这些设计决策通常是有好处的,这就是 ADR 的目的。通过记录决策,以及当时考虑的其他选项和所做的权衡分析,如果将来需要更新设计,ADR 就会非常有用,或者仅仅是在设计受到质疑时作为一种提醒。

 

构建分布式系统以及由半自主团队构建微服务有一个副作用,就是架构决策也变得分散。因此,架构师需要帮助团队执行架构任务,如权衡分析、做出正确的决策、记录和沟通这些决策。Andrew Harmel-Law认为,ADR 可以成为扩展软件架构的一个重要组成部分。

 

要了解更多关于架构师角色和软件架构实践的讨论,我强烈建议你听一听相应的播客



作者简介

Thomas Betts 是 InfoQ 架构与设计版块的首席编辑,也是 InfoQ 播客的联合主持人,同时还是 Blackbaud 高级首席软件架构师。二十多年来,他一直专注于提供让客户满意的软件解决方案。他曾供职于多个行业,包括零售、金融、医疗、国防和旅游。Thomas 与他的妻子和儿子住在丹佛,他们喜欢徒步旅行以及探索美丽的科罗拉多州。


Eran Stiller 是 Badook(位于澳大利亚墨尔本)的首席软件架构师。作为一名经验丰富的软件架构师和 CTO,Eran 设计、实施和审核过多个业务领域的各种软件解决方案。凭借在软件开发领域的多年经验,以及在公开演讲和社区贡献方面的记录,微软自 2016 年起授予他微软 Azure 最有价值专家(MVP)称号,并自 2018 年起让其担任微软区域总监(MRD)。


Vasco Veloso 从事软件开发和设计已有二十多年了。从汇编到 C、C++和 Prolog,再到 Java、Scala 和 Kotlin,从大型计算机到小型计算机,从软盘到 SSD,从企业内部到云端,他都见过,做过,也用过。他带领团队齐心协力开发出精心设计的软件。他还喜欢通过教学分享知识,并继续设计软件和联网设备。在业余时间,他喜欢探索阿姆斯特丹这座城市。他喜欢摄影,并对航空业非常感兴趣。他曾驾驶过超轻型飞机,并且相信,只要保持必要的专注,他就可以继续飞行,到达目的地,并享受沿途的风景。


Daniel Bryant 在 Ambassador Labs 担任 DevRel 部门的总监,同时也是 InfoQ 的新闻经理和 QCon 伦敦大会的主席。目前,他主要致力于“DevOps”工具、云/容器平台和微服务实现。Daniel 是伦敦 Java 社区(LJC)的领导者。他为多个开源项目做贡献,为 InfoQ、O'Reilly 和 DZone 等知名技术网站撰稿,并定期在 QCon、JavaOne 和 Devoxx 等国际会议上发表演讲。


Sarah Wells 做了 20 年的开发,领导过咨询、金融服务和媒体行业的交付团队。使用基于微服务的架构构建 FT 的内容和元数据发布平台,使她对可操作性、可观察性和 DevOps 产生了浓厚的兴趣。2018 年初,她承担起了金融时报的运营和可靠性职责。最近,Wells 转而接管工程实施部门,将平台和安全工程加入其中。她在金融时报领导了多个团队,为其他工程师构建工具和服务。2021 年底,Wells 离开 FT。她决定在采取下一步行动之前休息一段时间。您可以通过 Twitter 联系她(@sarahjwells)。

 

原文链接:

Software Architecture and Design InfoQ Trends Report—April 2022

2022-04-12 09:347016

评论

发布
暂无评论
发现更多内容

一文带你了解 TypeScript 泛型

程序员海军

typescript 三周年连更

走进社区客户端测试 | 得物技术

得物技术

测试

如何开发一个小程序自定义组件

Onegun

小程序 前端 小程序组件

深度分享 | API 测试经济学与 API First 践行

Apifox

程序员 前端 接口 后端 API

卷起来了!阿里最新出品“微服务全阶笔记”,涵盖微服务全部操作

收到请回复

架构 #编程 #微服务

面试还不懂JVM性能调优,看这篇文章就够了!

程序员小毕

程序员 面试 后端 JVM jvm调优

乌合之众再次上演,打工人将被AI一键淘汰?

引迈信息

人工智能 AI 低代码 AIGC ChatGPT

九科信息流程挖掘产品bit-Miner即将开放面向对象流程挖掘能力

九科Ninetech

流程挖掘

视频大文件传输的演变:从“卷轴男孩”到自动化

镭速

“精准测试” 在商家地址专项的探索 | 得物技术

得物技术

提交代码「前置处理」,向前一小步,效率提升「亿点点」

极狐GitLab

DevOps 极狐GitLab git hook lefthook 代码前置

iOS MachineLearning 系列(4)—— 静态图像分析之物体识别与分类

珲少

烟雾弹?突然转变?如何看待微软发声:中国是主要的对手

加入高科技仿生人

人工智能 AI 数智化 ChatGPT

中国垂直行业SaaS,这样走可能是新出路

ToB行业头条

MobTech MobLink|引流统计一站式服务

MobTech袤博科技

让 AI 更简单 人工智能平台 SEAL 携手龙蜥落地达摩院算法能力 | 龙蜥案例

OpenAnolis小助手

开源 操作系统 SEAL 达摩院 龙蜥案例

北大GPT解题有数学老师内味了,用人话讲难题,从高中数学到高数都能搞定

Openlab_cosmoplat

人工智能 开源社区

智慧园区数字转型下的移动App建设策略

Onegun

移动应用 智慧城市 智慧园区

向量嵌入:AutoGPT的幻觉解法?

OneFlow

世界读书日特辑 | 华为阅读深耕精品书,让读书变得赏心“悦目”

最新动态

您有一份直播回放待查收!

BinTools图尔兹

直播回放 版本发布

手势识别:让你的手成为计算机的新界面

数据堂

HarmonyOS Codelabs最新参考

坚果

OpenHarmony 三周年连更

把“ai模型+低代码”应用在项目管理中,效率翻了好几倍

优秀

AI 低代码

selenium源码通读·10 |webdriver/common/proxy.py-Proxy类分析

Python 测试 自动化测试 源码剖析 selenium

vue 入门知识点有哪些?

海拥(haiyong.site)

三周年连更

MegEngine 使用小技巧:量化

MegEngineBot

量化 MegEngine

在企业内容城池边,它建立起一支保卫军

ToB行业头条

Nautilus Chain :基于模块化架构的Layer3正在走向成熟

股市老人

Go RWMutex:高并发读多写少场景下的性能优化利器

陈明勇

Go golang 读写锁 三周年连更 RWMutex

InfoQ 2022年趋势报告:架构与设计篇_架构_InfoQ精选文章