应用网关的演进历程和分类

作者:耿蕾蕾(如葑)

唯一不变的是变化,在现代复杂的商业环境中,企业的业务形态与规模往往处于不断变化和扩大之中。这种动态发展对企业的信息系统提出了更高的要求,特别是在软件架构方面。为了应对不断变化的市场需求和业务扩展,软件架构必须进行相应的演进和优化。网关作为互联网流量的入口,其形态也在跟随软件架构持续演进迭代中。我们下面就聊一聊网关的演进历程以及在时下火热的 AI 浪潮下,网关又会迸发怎样新的形态。

网关演进形态概览

软件架构的演进是一个不断适应技术发展和业务需求变化的过程,伴随着软件架构的演进网关的形态也在随之持续迭代,在不同软件架构阶段中网关也呈现其不同的形态。

软件架构的演进是技术发展和业务需求不断推动的结果,从早期的简单设计到如今复杂的多层次架构,体现了软件系统在可扩展性、维护性和性能方面的不断追求。

  1. 单体架构: 在软件工程的初期,单体架构是最常见的形式。所有的功能模块都集成在一个整体应用中。这种架构的优点是初期开发和部署比较简单,但随着系统功能的扩展和复杂性增加,维护和升级变得越来越困难,单点故障的风险也越来越高。
  2. 垂直架构: 为了解决单体架构带来的维护问题,逐渐发展出垂直架构。不同的业务功能被拆分成不同的模块,每个模块独立开发和部署。虽然这种架构在一定程度上提升了效率,但模块之间的依赖关系依然紧密,扩展和协作问题仍然存在。
  3. SOA 架构(面向服务的架构): SOA 架构通过服务松耦合来解决垂直架构中的依赖问题。系统被设计成一组相互协作的微服务,每个服务通过定义明确的接口进行通信。这种方式提高了系统的灵活性和可扩展性,但管理和运维复杂度增加,需要采用成熟的服务治理框架。
  4. 微服务架构: 微服务架构是 SOA 架构的发展和细化,它将应用进一步拆分成更小的服务单元,每个单元可以独立开发、部署和扩展。微服务架构强调容错和自动化运维,适合大规模、高复杂度的系统。但其实施也需要更复杂的测试、监控和管理工具支持。
  5. 云原生架构: 云原生架构进一步解放了开发者,允许他们专注于代码逻辑,而不需要关心底层的基础设施。通过统一的 K8s 运维底座,系统的扩展和缩减可以更加灵活地自动进行。云原生架构带来了更高的弹性和资源利用率,同时也要求开发者适应新的开发和运维模式。
  6. AI 原生架构: 随着人工智能和机器学习技术的发展,AI 原生架构应运而生。这种架构将大规模语言模型集成到应用系统中,提供自然语言处理、智能推荐等功能。AI 原生架构不仅改变了传统应用的交互方式,还带来了更智能的业务决策支持。但这种架构也对计算资源和数据隐私提出了更高的要求。

总体来看,软件架构演进的每一步都在寻求解决当前架构的瓶颈和不足,通过技术创新和最佳实践,使得软件系统能够更好地应对不断变化的业务需求和技术环境。

网关演进之流量网关

流量网关作为网络架构中的关键组件,主要负责管理和优化数据流量,以提升业务的可伸缩性和高可用性。Nginx 作为流量网关的代表性软件,以其高效的性能和灵活的配置广受欢迎。流量网关的核心目的是解决多业务节点的流量负载均衡问题, 通过智能调度将客户请求分配到不同的服务器上,从而均匀分摊负载,避免单点故障,确保服务的稳定性和连续性。

网关演进之 ESB

企业服务总线(ESB)网关是一个专为企业设计的关键集成解决方案,旨在标准化和简化不同系统和服务之间的通信与消息传送。作为核心通信基础设施,ESB 网关可以减少系统间的耦合性,提高互操作性和灵活性,确保数据和服务的无缝整合。遵循服务导向型架构(SOA)原则,ESB 通过集中管理消息路由、转换和安全,实现服务的快速部署和高效运作。它支持不同协议和数据格式,提升了系统的扩展性和可维护性,帮助企业在不断变化的业务环境中保持竞争力与创新。

网关演进之微服务网关

微服务网关是微服务架构中的关键组件,负责集中管理微服务的路由规则,增强系统安全性,提供性能监控,并简化访问流程,从而提高整个系统的可靠性。微服务网关可以实现负载均衡、限流、熔断、身份验证等功能,通过统一入口管理和优化各微服务间的交互。此举不仅简化了客户端与微服务的通信复杂性,还为系统安全提供了额外的保护,Spring Cloud Gateway 是一个广泛应用的微服务网关,它基于 Spring 生态系统,易于与 Spring Boot 项目集成,因其灵活、高效和可扩展性受到了开发者的青睐。

网关演进之云原生网关

云原生网关是伴随 K8s 的广泛应用而诞生的一种创新网关,K8s 集群内外网络天然隔离的特性要求通过网关来将外部请求转发给集群内部服务,K8s 采用 Ingress/Gateway API 来统一网关的配置方式,同时 K8s 提供了弹性扩缩容来帮助用户解决应用容量调度问题,基于此用户对网关产生了新的诉求:期望网关既能有流量网关的特性来处理海量请求,又具备微服务网关的特性来做服务发现与服务治理,同时要求网关也具备弹性扩缩容能力解决容量调度问题,能够让开发者能够专注于业务逻辑的实现,而无需担心底层架构的容量、维护和管理。

网关演进的下一站:AI 网关

AI 网关是专为处理 AI 流量设计的关键组件,具备长连接、大带宽、高延时的特性,能够高效管理和优化数据传输。在 AI 应用、AI 平台和大型语言模型(LLM)中,不同的场景对 AI 网关的性能和功能有着多样化的需求。为更好地满足这些需求,AI 网关提供了丰富的 AI 插件集,开发者可以通过低代码方式轻松集成和构建复杂的 AI 应用。这不仅大幅降低了开发难度,还显著提高了效率,使得 AI 技术在各类应用和平台中更加易用和普及。AI 网关因此成为推动 AI 创新和应用落地的核心推动力。

API 网关去哪了?

读到这里的同学可能会有这么一个问题:API 网关去哪了?我们耳熟能详的 API 网关为什么没有提到呢?回答这个问题之前我们可以先问自己一个问题:API 是什么?API 包含什么?

在流量网关中我们配置的路由本身也是一种 API,只是没有定义规范的请求/响应标准而已,通常我们称为 HTTP API,在 AWS API Gateway 中的 HTTP API 指的就是这个,目前 HTTP API 使用最简单、应用最广;REST API 相信大家基本都或多或少听说过,它采用 JSON 格式来规范请求/响应,在微服务网关中应用较广;Websocket/gRPC/Dubbo API 这些相信大家同样不会陌生,因此可以说支持 API 访问的都是 API 网关,API 网关是贯穿软件架构演进的各个阶段。时间来到了当下,在 AI 浪潮下 API 网关又会迸发出怎样新的特性呢?

Higress:AI 原生的 API 网关

Higress 源自阿里巴巴内部电商、交易等核心生产场景的实践沉淀,遵循 Ingress/Gateway API 标准,将流量网关、微服务网关、安全网关三合一,并在此基础上扩展了服务管理插件、安全类插件和自定义插件,高度集成 K8s 和微服务生态,包括 Nacos 注册和配置、Sentinel 限流降级等能力,并支持规则变更毫秒级生效等热更新能力。

在 AI 浪潮下,Higress 面向 AI Native 场景提供原生扩展能力以满足复杂的 AI 应用需求。它不仅支持常见的 API 管理、流量控制和安全策略,还具备与 AI 模型无缝集成的特性。Higress 通过灵活的插件机制,允许开发者轻松添加自定义功能,提升扩展性和适应不同应用场景的能力。借助高性能的处理能力和智能流量调度,Higress 网关可以显著减少延迟,提升 AI 服务的响应速度。此外,Higress 强大的监控和日志功能,帮助开发者快速定位和解决问题,使 AI 应用的开发和运维变得更加高效和可靠。

本文整理自《统一多层网关架构视频课程》的第一期视频。

关注「阿里云云原生」公众号,后台回复:1105即可下载课程 PPT。

点击此处,查看直播回放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833036.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue网站发布到iis后提示404页面不可访问

vue重定向和跨域配置:https://zhuanlan.zhihu.com/p/5306882511.安装组件:URL Rewrite:https://www.iis.net/downloads/microsoft/url-rewriteApplication Request Routing:https://www.iis.net/downloads/microsoft/application-request-routing2.新建一个web.config 放到…

fastadmin 数据记录行上添加操作按钮并设置权限

1. 一键 curd 以及配置菜单 编写控制器方法 - 业务逻辑 再次一键生成菜单 - 生成刚刚写审核通过方法的控制器。 2. 自定义控制器中方法。 3. 查看角色组的权限,并授予该角色权限。 4. 前端修改 index 页面,因为需要权限所以需要加上一句话data-operate-log="{:$auth-&g…

10 倍性能提升, GraalVM 应用可观测实践

ARMS 发布了支持 GraalVM 应用的 Java Agent 探针,可为 GraalVM 应用提供开箱即用的可观测能力。作者:铖朴、层风 GraalVM 静态编译 背景介绍 随着云原生浪潮的蓬勃发展,利用云原生技术为企业应用提供极致的弹性能力是企业数字化升级的核心诉求。但 Java 作为一种解释执行+运…

日立移动硬盘插在电脑有异响数据恢复

当日立移动硬盘插在电脑上出现异响且数据无法读取时,这通常表明硬盘可能遇到了某些问题。以下是一些建议的解决步骤和数据恢复方法: 一、异响原因排查 供电不足: 移动硬盘需要足够的电力供应才能正常工作。如果电脑的USB接口供电不足,可能会导致移动硬盘发出异响且无法读取…

辣椒销售策略:智慧应对顾客,洞悉销售真谛

售卖辣椒的商贩常常面临这样的询问:“你的辣椒辣不辣?”回答这个问题时,他们面临两难:若答辣,怕辣之人即刻离去;若答不辣,或许又错失了喜辣的顾客,交易依旧难以达成。 某日闲暇,我驻足于一位售卖辣椒的妇人三轮车旁,好奇她如何解决这一逻辑悖论。 见暂无顾客,我自以…

idea无法打开:Cannot collect JVM options

idea报错:Cannot collect JVM options Caused by: 0: Cannot read:"C:\\Program Files(x86)\\新建文件夹\\jetbra-ded4f9dc4fcb60294b21669dafa90330f2713ce4\jetbra vmoptionsllidea.vmoptions" 1:stream did not contain valid UTF -8 划重点,错误信息提示流没…

Spring boot HibernateJPA CRUD

连接数据库和创建表 1. pom安装<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifact…

GitLab 中文版如何禁止从 UI 上下载代码?

本文分享如何通过配置来禁止用户从 GitLab 中文版 UI 界面上下载源代码。 GitLab 中文版也就是极狐GitLab,使用界面和 GitLab 一样。常规下载代码的方式也一样,要么使用 SSH 或者 HTTP 克隆,要么直接从 UI 上下载源代码:但是有些企业不想让员工从这个界面上通过下载源代码的…

交换机

$Never\ Give\ Up$

在webstorm里面使用prettier

1. 安装 Prettier bash复制代码 npm install --save-dev prettier2. 创建 Prettier 配置文件 在项目根目录下创建一个 .prettierrc 文件来定义 Prettier 的代码风格规则。以下是一个简单的 Prettier 配置文件示例: json复制代码{"semi": false, // 不…

Delphi通过ODBC连接到GBase 8s数据库

Delphi通过ODBC连接到GBase 8s数据库作者: liaosnet时间: 2021-12-27分类: 默认分类,运维管理阅读:2615 次测试使用Delphi连接到GBase 8s数据库,使用的是ODBC连接方式。 1)、安装ODBC驱动(CSDK) 通过地址https://gbasedbt.com/dl/odbc/GBase8s_3.0.0_1-Win32-ODBC-Driver.z…