您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

2023软件架构和设计的趋势

时间:2023-12-04 16:53:42  来源:微信公众号  作者:程序新视界

2023年即将结束,值得回顾一下过去一年的软件架构设计流行话题。在本文中,我们将讨论一些常见的软件架构和设计,根据InfoQ的报告,这些架构和设计被广泛采纳。我们主要关注创新者和早期采用者部分。

设计可移植性的概念正在获得关注,像Dapr这样的框架专注于云原生抽象模型。这种方法使架构师能够将业务逻辑与实现细节分离。

大型语言模型有望以多种方式产生重大影响,例如帮助理解架构权衡,并赋予新一代低代码和无代码开发人员能力。

在未来几年,软件设计的可持续性将成为一个重要考虑因素,正在努力测量和减少软件系统的碳足迹。尽管去中心化应用正在将区块链的实用性扩展到加密货币和NFT之外,但由于缺乏消费者需求,它们的采用仍然有限。

架构师们不断寻求提升决策的文档化、沟通和理解的方式,大型语言模型可能在未来发挥作用。

首先来看看「创新者」的部分。

大型语言模型

大型语言模型(如GPT-3)代表了自然语言处理和人工智能能力的革命性飞跃。这些模型拥有数十亿个参数,在内容生成、语言翻译、聊天机器人和代码生成等各个领域具有应用。

它们使人与机器之间的交互更加类似人类,并有潜力彻底改变我们的沟通方式、工作方式和解决复杂问题的能力。

然而,它们也引发了关于数据偏见、隐私问题和负责任的人工智能部署等重要的伦理和社会问题,这些问题需要在它们的使用普及之际进行谨慎考虑。

软件供应链安全

随着针对软件开发过程的网络攻击日益普遍,软件供应链安全日益受到关注。它涉及确保构成软件应用的组件和依赖的完整性和安全性。这包括验证代码库的真实性、监测漏洞,并采用强大的持续集成和持续交付(CI/CD)实践。

最近的一些备受关注的供应链攻击,比如SolarWinds入侵事件,突显了组织加强软件供应链安全的紧迫性,以保护其系统和数据免受恶意行为者的侵害。

可持续性设计

可持续性设计是各个行业减少产品和服务对环境影响的关键方法。它包括环保设计原则、资源高效的制造过程和产品生命周期的考虑。

公司越来越多地将可持续性融入其设计和生产实践中,以应对气候变化和减少废物。可持续设计包括使用再生材料、最小化能源消耗和创建易于回收或重新利用的产品,最终为更环保负责、社会意识更强的商业生态系统做出贡献。

GraphQL联邦

GraphQL联邦是一种架构模式,它将多个GraphQL服务组合成一个统一的API。它允许组织将复杂的单体GraphQL模式分解为更小、更易管理的服务,这些服务可以独立开发和扩展。

联邦提供了一种处理大型和复杂数据图的强大方式,使构建高效灵活的API变得更加容易。对于采用微服务架构的组织来说,它特别有价值,可以在团队间分布开发工作的同时保持单一、协调的GraphQL模式。

策略即代码

策略即代码是一种实践,涉及使用代码定义和执行策略和合规要求,通常以声明性格式呈现。在云基础架构和DevOps的背景下,它被广泛应用于自动化策略执行,并确保系统符合安全、治理和合规标准。

通过将策略编码化,组织可以一致地应用和审计安全措施,跟踪变更,并降低手动错误的风险。像Terraform和Kube.NETes策略即代码框架这样的工具使得在复杂、动态的基础设施环境中实施和管理策略变得更加容易。

HTTP/3

HTTP/3是超文本传输协议(HTTP)的最新版本,它是互联网数据通信的基础。与其前身HTTP/2相比,它在速度、安全性和效率方面引入了重大改进。

HTTP/3建立在QUIC传输协议之上,通过减少连接建立时间和优化数据传输来减小延迟。它还为安全连接提供了更好的性能,使网站更快、更具响应性。随着Web技术的不断发展,HTTP/3在改善用户体验和支持现代Web应用方面发挥着至关重要的作用。

dApps

去中心化应用(dApps)是建立在区块链技术上的软件应用。与依赖于集中式服务器的传统应用不同,dApps在去中心化网络上运行,提供了更高的透明度、安全性和抗审查能力。

这些应用使用智能合约,即预定义规则的自执行协议,来促进交易和自动化流程。dApps在金融、游戏、供应链管理等各个领域的潜力备受关注。然而,要实现其全部潜力并成为数字领域的主流解决方案,还需要解决可扩展性和用户采用等挑战。

以下是「早期采用者」相关技术。

可移植性设计

可移植性设计是软件和系统架构中的一个重要原则,强调创建能够在不同环境和平台上无缝运行的解决方案。它包括最小化对特定技术或基础设施的依赖,确保兼容性,并使用标准化接口。

通过遵循可移植性设计,组织可以实现更大的灵活性,减少供应商锁定,并简化应用程序和服务在云提供商或部署环境之间的迁移。

数据驱动架构

数据驱动架构将数据作为系统设计的核心组成部分,着重于数据建模、存储和可访问性,以支持决策、分析和洞察。

数据驱动架构通常使用数据仓库、数据湖和数据管道,以确保数据可用、准确和可用于各种业务流程和应用程序。

团队协作的架构

团队协作的架构代表了组织内架构设计和决策制定的协作性质。它承认架构不仅仅是架构师的责任,还需要来自各种利益相关者的参与和贡献,包括开发人员、运维团队、业务分析师等。

有效的架构决策需要跨职能的合作和共享目标和限制的理解,促进协调,并确保架构满足整个组织的需求。

WebAssembly(服务器端和客户端)

WebAssembly(Wasm)是一种多功能技术,可以让代码在Web浏览器及其它环境中以接近本机速度运行。

在客户端,它使得Web应用程序能够在浏览器内执行高性能代码,实现跨不同平台的高效运行。

在服务器端,WebAssembly用于提升无服务器函数和微服务的性能,便于部署轻量且可移植的服务器端代码。

安全设计

安全设计是软件和系统架构的基本方面,优先考虑从一开始识别和减轻潜在安全风险。它包括将安全措施纳入架构中,如访问控制、加密、身份验证和威胁建模,以防止漏洞和威胁。

通过将安全嵌入设计中,组织可以创建更具弹性的系统,降低安全漏洞和数据泄露的风险。

弹性设计

弹性设计关注创建能够优雅地承受和恢复故障和中断的系统。

这种架构方法包括冗余、容错和优雅降级,以确保即使在不利条件下,系统也能继续运行或以最小的停机时间和数据丢失恢复。在现代应用程序中,弹性设计至关重要,其中可用性和可靠性至关重要。

可观测性设计

可观测性设计强调构建易于监控和分析的系统。它包括为应用程序添加日志记录、跟踪和指标,以了解其行为、性能和健康状况。

通过设计可观测性,组织可以快速检测和诊断问题,提高故障排除效率,加快事故响应,并增强整体系统可靠性。

微前端

微前端是将微服务原则扩展到Web应用程序前端层的一种架构模式。它涉及将前端拆分为更小、可独立部署的组件,每个组件负责特定的用户界面部分。

这种方法使团队能够自主开发、测试和部署前端组件,促进更快的开发、测试和部署周期,同时保持一个统一的用户体验。

AsyncAPI

AsyncAPI是一种新兴的规范,用于设计、文档和定义异步API的接口。类似于OpenAPI用于RESTful API,AsyncAPI帮助开发人员和组织标准化描述消息驱动系统,如消息队列和事件驱动架构。

它提供了一种清晰的方式来定义消息的结构和行为,使构建、集成和维护异步系统变得更加容易。

工作流和决策自动化平台

工作流和决策自动化平台是用于简化和自动化业务流程和决策的软件工具或框架。它们使组织能够对复杂工作流进行建模、执行和监控,实现重复性任务和决策的高效自动化。

这些平台可以在各个行业中使用,从金融和医疗保健到供应链管理,以优化运营和改进决策流程。

低代码/无代码

低代码和无代码是一种开发方法,使具有不同技术水平的用户能够以最小的手写代码创建软件应用。低代码平台提供了一个可视化的开发环境,具有预构建的组件和模板,而无代码平台更进一步,通常不需要任何编码。

这些方法加速了应用程序的开发,使软件创作民主化,并使企业能够快速应对不断变化的需求,而无需广泛的编程技能。



Tags:架构   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
对于微服务架构监控应该遵守的原则
随着软件交付方式的变革,微服务架构的兴起使得软件开发变得更加快速和灵活。在这种情况下,监控系统成为了微服务控制系统的核心组成部分。随着软件的复杂性不断增加,了解系统的...【详细内容】
2024-04-03  Search: 架构  点击:(4)  评论:(0)  加入收藏
大模型应用的 10 种架构模式
作者 | 曹洪伟在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重...【详细内容】
2024-03-27  Search: 架构  点击:(13)  评论:(0)  加入收藏
哈啰云原生架构落地实践
一、弹性伸缩技术实践1.全网容器化后一线研发的使用问题全网容器化后一线研发会面临一系列使用问题,包括时机、容量、效率和成本问题,弹性伸缩是云原生容器化后的必然技术选择...【详细内容】
2024-03-27  Search: 架构  点击:(10)  评论:(0)  加入收藏
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  Search: 架构  点击:(9)  评论:(0)  加入收藏
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读
ByteHouse是一款OLAP引擎,具备查询效率高的特点,在硬件需求上相对较低,且具有良好的水平扩展性,如果数据量进一步增长,可以通过增加服务器数量来提升处理能力。本文将从兴趣圈层...【详细内容】
2024-03-22  Search: 架构  点击:(23)  评论:(0)  加入收藏
全程回顾黄仁勋GTC演讲:Blackwell架构B200芯片登场
北京时间3月19日4时-6时,英伟达创始人黄仁勋在美国加州圣何塞SAP中心登台,发表GTC 2024的主题演讲《见证AI的变革时刻》。鉴于过去一年多时间里AI带来的生产力变革,以及英伟达...【详细内容】
2024-03-19  Search: 架构  点击:(17)  评论:(0)  加入收藏
高并发架构设计(三大利器:缓存、限流和降级)
软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。引言1.高并发背景互联网行业迅速发展,用户量剧...【详细内容】
2024-03-13  Search: 架构  点击:(5)  评论:(0)  加入收藏
有了LLM,所有程序员都将转变为架构师?
编译 | 言征 出品 | 51CTO技术栈(微信号:blog51cto)生成式人工智能是否会取代人类程序员?可能不会。但使用生成式人工智能的人类可能会,可惜的是,现在还不是时候。目前,我们正在见...【详细内容】
2024-03-07  Search: 架构  点击:(19)  评论:(0)  加入收藏
如何判断架构设计的优劣?
架构设计的基本准则是非常重要的,它们指导着我们如何构建可靠、可维护、可测试的系统。下面是这些准则的转换表达方式:简单即美(KISS):KISS原则的核心思想是保持简单。在设计系统...【详细内容】
2024-02-20  Search: 架构  点击:(36)  评论:(0)  加入收藏
通用数据湖仓一体架构正当时
这篇博文中提出的建议并不新鲜。事实上许多组织已经投入了数年时间和昂贵的数据工程团队的工作,以慢慢构建这种架构的某个版本。我知道这一点,因为我以前在Uber和LinkedIn做过...【详细内容】
2024-01-15  Search: 架构  点击:(75)  评论:(0)  加入收藏
▌简易百科推荐
对于微服务架构监控应该遵守的原则
随着软件交付方式的变革,微服务架构的兴起使得软件开发变得更加快速和灵活。在这种情况下,监控系统成为了微服务控制系统的核心组成部分。随着软件的复杂性不断增加,了解系统的...【详细内容】
2024-04-03  步步运维步步坑    Tags:架构   点击:(4)  评论:(0)  加入收藏
大模型应用的 10 种架构模式
作者 | 曹洪伟在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重...【详细内容】
2024-03-27    InfoQ  Tags:架构模式   点击:(13)  评论:(0)  加入收藏
哈啰云原生架构落地实践
一、弹性伸缩技术实践1.全网容器化后一线研发的使用问题全网容器化后一线研发会面临一系列使用问题,包括时机、容量、效率和成本问题,弹性伸缩是云原生容器化后的必然技术选择...【详细内容】
2024-03-27  哈啰技术  微信公众号  Tags:架构   点击:(10)  评论:(0)  加入收藏
DDD 与 CQRS 才是黄金组合
在日常工作中,你是否也遇到过下面几种情况: 使用一个已有接口进行业务开发,上线后出现严重的性能问题,被老板当众质疑:“你为什么不使用缓存接口,这个接口全部走数据库,这怎么能扛...【详细内容】
2024-03-27  dbaplus社群    Tags:DDD   点击:(11)  评论:(0)  加入收藏
高并发架构设计(三大利器:缓存、限流和降级)
软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。引言1.高并发背景互联网行业迅速发展,用户量剧...【详细内容】
2024-03-13    阿里云开发者  Tags:高并发   点击:(5)  评论:(0)  加入收藏
如何判断架构设计的优劣?
架构设计的基本准则是非常重要的,它们指导着我们如何构建可靠、可维护、可测试的系统。下面是这些准则的转换表达方式:简单即美(KISS):KISS原则的核心思想是保持简单。在设计系统...【详细内容】
2024-02-20  二进制跳动  微信公众号  Tags:架构设计   点击:(36)  评论:(0)  加入收藏
详解基于SpringBoot的WebSocket应用开发
在现代Web应用中,实时交互和数据推送的需求日益增长。WebSocket协议作为一种全双工通信协议,允许服务端与客户端之间建立持久性的连接,实现实时、双向的数据传输,极大地提升了用...【详细内容】
2024-01-30  ijunfu  今日头条  Tags:SpringBoot   点击:(8)  评论:(0)  加入收藏
PHP+Go 开发仿简书,实战高并发高可用微服务架构
来百度APP畅享高清图片//下栽のke:chaoxingit.com/2105/PHP和Go语言结合,可以开发出高效且稳定的仿简书应用。在实现高并发和高可用微服务架构时,我们可以采用一些关键技术。首...【详细内容】
2024-01-14  547蓝色星球    Tags:架构   点击:(114)  评论:(0)  加入收藏
GraalVM与Spring Boot 3.0:加速应用性能的完美融合
在2023年,SpringBoot3.0的发布标志着Spring框架对GraalVM的全面支持,这一支持是对Spring技术栈的重要补充。GraalVM是一个高性能的多语言虚拟机,它提供了Ahead-of-Time(AOT)编...【详细内容】
2024-01-11    王建立  Tags:Spring Boot   点击:(124)  评论:(0)  加入收藏
Spring Boot虚拟线程的性能还不如Webflux?
早上看到一篇关于Spring Boot虚拟线程和Webflux性能对比的文章,觉得还不错。内容较长,抓重点给大家介绍一下这篇文章的核心内容,方便大家快速阅读。测试场景作者采用了一个尽可...【详细内容】
2024-01-10  互联网架构小马哥    Tags:Spring Boot   点击:(115)  评论:(0)  加入收藏
站内最新
站内热门
站内头条