2020年InfoQ趋势报告 架构与设计 (2020年ipad是第几代)

2020年InfoQ趋势报告 架构与设计 (2020年ipad是第几代)

本文要点:

好的软件架构的目标是帮助管理复杂的系统。为了应对分布式系统、事件驱动架构和大数据,软件架构方面的最新创新希望能够利用正在出现的最佳实践,并且指导工程师远离常见的陷阱。

InfoQ 架构和设计的概览图关注主要的软件架构概念及其当前在行业中的采用现状。InfoQ 和 QCon 会关注图片左侧的内容,主要涵盖创新者(Innovators)和早期采用者(Early Adopters)的软件趋势状态。同时,我们也会寻找那些最终“跨越了鸿沟”并被大多数公司所采用的理念。

负责架构与设计(Architecture and Design,A&D)的 InfoQ 编辑会定期讨论这个概览图,识别我们应该关注的新趋势,并且指出现有条目的重要变化。本文提供了我们内部讨论的一些重点,并为概览图中所显示的内容添加了必要的注释。

本次讨论的贡献者包括:

在过去的一年中,我们在架构与设计领域看到了一些值得注意的新想法,其中每种想法都对应了一组不同的软件趋势。例如,随着微服务被越来越广泛地采用,实践者发现了它的更多优点和缺点,于是出现了一些模式,帮助我们强化那些运行良好的方面,并使下一代微服务更加成功。

创新者

在创新者方面包括四个新的趋势:微前端(Micro frontends)、AsyncAPI、数据网格(Data Mesh)和策略即代码(Policy as Code)。

微前端

微前端将微服务能够带来的收益引入到 UI 层。通过将复杂的系统拆分为更小、更易管理的部分,团队可以更快地开发和发布新特性和新功能。

继出现在InfoQ Podcast上之后,我们再次联系到了Building Micro Frontends一书的作者 Luca Mezzalira,了解他对未来一两年内的展望。

解决了 restful API 和事件驱动架构(EDA)与事件溯源之间的不一致性。随着微服务采用的不断增多,更多的公司实现了 EDA,从而出现了关于 EDA 的改进。但是,这些改进需要将同步的、请求/响应的 API 转换成专门为异步通信构建的 API。

Daniel Bryant 说到:“在一次与客户聊天的时候听说了这件事情,几乎所有采用了 Swagger/OpenAPI 的人都在关注像 AsyncAPI 这样的技术”。

数据网格

数据网格的概念最初由 ThoughtWorks 的 Zhamak Dehghani 在一篇文章中首先引入。这个值得思考的理念认为通过采用面向领域的数据所有权,可以避免传统数据仓库和单体数据湖的缺陷。

Thomas Betts 说,“我们过去没有跟踪过数据架构,但是我很感兴趣的是,为了增强大数据系统的敏捷性,我们是否会遵循将单体分解为微服务的趋势。”

就数据网格的现状和未来状态的问题,InfoQ 征询了 Dehghani 的想法。

策略即代码

在软件开发生命周期的管理方面,我们也看到了创新。策略即代码(Policy as Code)是一个很显著的趋势,它有助于为系统所需的状态构建结构。它建立在基础设施即代码的思想之上,在架构级别能够带来类似的好处。Bryant 看到和云供应商都在讨论策略即代码的话题。

早期采用者

Serverless

有一个话题总能激发有益的讨论,那就是Serverless。InfoQ 的编辑们认为 Serverless 还没有跨越鸿沟,而且这个想法也遇到了一些反对的声音。这与对微服务的反对有关,因为越来越多的团队意识到,Serverless 和微服务架构并不是所有问题的正确解决方案。

这引发了对正确构建分布式系统和模块化单体的讨论。

Jan Stenberg 观察到在最近的 DDD 欧洲会议上讨论了 Serverless 和分布式系统:

Stenberg 还认为模块化单体应该添加到早期采用者中:

Low-Code 和 No-Code

和 no-code 方案承诺将更多的功能交付给最终用户,并且不需要开发人员参与。虽然业界资深人士可能会对厂商的背后推动力表示怀疑,但使用这些平台进行试验的开发人员已经明显增多。

很明显,已经跨越了鸿沟,但是 InfoQ 编辑们的问题是它属于早期大众还是晚期大众。虽然 GraphQL 作为一项技术可能已经达到了晚期大众阶段,但是我们仍然可以看到在可扩展性和跨系统创建内聚的语言方面,GraphQL 的创新依然在影响着架构决策。

软件架构中的道德规范

Bryant 提出了一个问题,我们是否应该在这条话题中跟踪道德准则。“我越来越多地看到在和上关于伦理的演讲和话题。”我们最终决定不在生命周期概览图中包含道德规范,而将其包含到文化与方法的概览中。

Humble 提到了 QCon 和 InfoQ 几年来一直是如何讨论道德规范的:

Betts 将道德视为架构师作为技术领导者的一个重要方面:

其他话题

概览图的其余部分基本没有变化。反应式编程、HTTP/2 和 gRPC 已经跨越了鸿沟,其他项目都没有变化。这恰好也是架构与设计领域所期望的,因为与编程语言趋势相比,好的思想需要时间成长和更长的生命周期。

作为参考,2019 年初的概览图如下图所示。2020 年的版本在本文的顶部。

作者简介:

Thomas Betts 是 InfoQ 软件架构和设计的主编,同时是 IHS Markit 的首席软件工程师,目前该公司是 Informa Tech 的一部分。二十多年来,他一直致力于提供令客户满意的软件解决方案。他曾在多个行业工作,包括零售、金融、医疗、国防和旅游。Thomas 与妻子和儿子住在丹佛,他们喜欢徒步旅行,也喜欢探索美丽的科罗拉多州。

Charles Humble 于 2014 年 3 月开始担任 InfoQ.com 的主编,指导我们的内容创作,包括新闻、文章、书籍、视频演示和访谈。在担任 InfoQ 的全职工作之前,Charles 负责我们的 Java 报道,并担任 PRPi 咨询公司的首席技术官,PRPi 咨询公司是一家评估研究公司,于 2012 年 7 月被普华永道收购。他全面负责 PRPi 公司内部使用的定制软件的开发。他在企业软件领域工作了大约 20 年,曾经担任开发人员、架构师和开发主管。在业余时间,他为伦敦的 Twofish 创作音乐,首张专辑于 2014 年 2 月发行,他希望自己的时间能够尽可能多地与妻子和孩子在一起度过。

Daniel Bryant 是>

Jan Stenberg 是居住在瑞典北部的一名 IT 顾问,工作超过 25 年,他在.Net/C#和 JVM/Java 方面有着丰富的经验。他的经历涉及大型分布式和基于服务的系统,基于 Web 和富客户端应用程序,以及硬件相关的软件。

原文链接:

Software Architecture and Design InfoQ Trends Report—April 2020

声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。