Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(2)

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(2)

为什么选择了 Apache APISIX



image.png


考虑到产品成熟度和可拓展性,最终我们在 Kong 和 Apache APISIX 中进行对比选择。



image.png


从上图对比中可以发现,两者在很多方面基本不相上下,所以存储端成为我们重点考虑的一点。因为 etcd 在我们公司内部的运维体系上已经比较成熟,所以 Apache APISIX 相较 Kong 则略胜一筹。

同时考虑到在开源项目层面,Apache APISIX 的国内交流与跟进处理速度上都非常优秀,项目的插件体系比较丰富全面,对各个阶段的使用类型都比较契合。

所以在 2020 年调研之后,最终选择了 Apache APISIX 作为有赞即将推出云原生 PaaS 平台的流量网关。


使用 Apache APISIX 后的产品新貌


当我们开始接入 Apache APISIX 后,前文提到的两方面问题逐一得到了解决。


效果一:优化了架构性能


Apache APISIX 作为入口网关部署在内部服务区域边缘,前端的所有请求都会经过它。同时我们通过 Apache APISIX 的插件功能实现了与公司内部 CAS 单点登录系统的对接,之前负责流量转发的账号变为纯业务系统。同时在前端我们提供了一个负责鉴权的 SDK 与 Apache APISIX 鉴权接口进行对接,达成一套完整又自动化的流程体系。


image.png


于是问题得到了解决:

  1. 每次增加新的后端服务,只需调用 Apache APISIX 接口,将新的服务配置写入
  2. 流量转发通过 Apache APISIX 完成,在网关该做的事情上,它完成得十分优秀
  3. 网关不再是架构中的性能瓶颈
  4. 对不同的业务需求,可以统一使用同一个网关来实现;业务细节有差异,可以通过插件实现


效果二:内部服务接入标准化


接入 Apache APISIX 后,公司新的内部服务接入时将自带鉴权功能,接入成本极低,业务方可以直接开始开发业务代码。同时在新服务接入时,按内部服务的规范进行相关路由配置,后端服务可以统一拿到鉴权后的用户身份,省时省力。

具体关于内部服务的一些调整细节这里简单介绍一下。


鉴权插件 OPS-JWT-Auth


鉴权插件是基于 JWT-Auth 协议去开发的,用户访问前端时,前端会先去调用 SDK,去前端本地获取可用的 JWT-Token。然后通过下图的路径获得用户有效信息,放在前端的某个存储里,完成登录鉴权。



image.png



部署配置升级


在部署层面,我们从简单版本经历三次迭代后实现了目前的多集群配置部署。

  • 版本一:双机房 4 个独立节点,管理程序分别写入每个节点的 etcd
  • 版本二: 双机房 4 个独立节点,主机房三节点 etcd 集群
  • 版本三: 三机房 6 个独立节点,三机房 etcd 集群

目前我们还是计算与存储混合部署在一起,后续我们会去部署一个真正高可用的 etcd 集群,这样在管控平面 Apache APISIX 运行时就可以分离出来,以无状态模式部署。


新增鉴权插件 PAT-Auth


在今年我们又新增了 Person Access Token(PAT)的鉴权插件,这个功能类似于在 GitHub 上去调用 Open API 一样,会生成一个个人 Token,可以以个人身份去调用 Open API。

因为我们自己的运维平台也有一些这样的需求,比如本地的一些开发插件需要以个人身份去访问云平台上的接口时,这种情况下个人 Token 方式就比较方便,允许开发自己给自己授权。

目前 Apache APISIX 2.2 版本后已支持多个 Auth 插件使用,现在可以支持一个 Consumer 运行多个 Auth 插件的场景实现。


相关文章
|
1天前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
31 3
|
1天前
|
监控 Cloud Native 安全
云原生架构下的微服务治理实践
在数字化转型的浪潮中,云原生技术以其灵活性和可扩展性成为现代软件工程的基石。本文将深入探讨云原生架构下微服务治理的实践路径,从微服务的拆分、容器化部署、服务网格的应用到最终的监控与故障排除,提供一套全面的方法论。文章旨在为读者呈现一个清晰的云原生环境下,如何高效管理和维护微服务系统的全景图。
13 2
|
3天前
|
Kubernetes 负载均衡 Cloud Native
云原生时代的微服务架构演进之路
【7月更文挑战第13天】本文深入探讨了在云原生环境下,微服务架构如何逐步演进以适应日益复杂的业务需求。从微服务的基本概念出发,到容器化技术的融合,再到服务网格的引入,文章详细阐述了微服务在不同阶段的技术挑战和解决方案。同时,通过案例分析,展示了企业如何实践微服务架构,以及在转型过程中可能遇到的技术和管理上的挑战。最终,文章对微服务架构的未来趋势进行了预测,指出了云原生技术如何继续推动微服务的革新。
|
1天前
|
存储 Kubernetes Cloud Native
云原生架构下的微服务治理之道
【7月更文挑战第15天】本文将深入探讨在云原生架构下,如何高效地进行微服务的治理。我们将从微服务治理的基本原则出发,详细分析服务发现、配置管理、容错设计等关键实践,并结合具体案例,展示如何在云平台上构建和管理健壮、可扩展的微服务系统。文章旨在为开发者和架构师提供一套实用的方法论,以应对快速变化的市场需求和技术挑战。
|
4天前
|
监控 Kubernetes Cloud Native
云原生架构下的微服务治理之道
【7月更文挑战第12天】在数字化浪潮中,云原生技术以其灵活性、可扩展性成为企业转型的利器。本文深入探讨了云原生架构下微服务治理的核心要素,包括服务发现、配置管理、容错设计等,旨在为读者揭示在复杂云环境中实现高效治理的技术路径。我们将通过实际案例,展现如何在保障系统稳定性的同时,提升业务的敏捷性和创新速度。
|
1月前
|
监控 大数据 Java
使用Apache Flink进行大数据实时流处理
Apache Flink是开源流处理框架,擅长低延迟、高吞吐量实时数据流处理。本文深入解析Flink的核心概念、架构(包括客户端、作业管理器、任务管理器和数据源/接收器)和事件时间、窗口、状态管理等特性。通过实战代码展示Flink在词频统计中的应用,讨论其实战挑战与优化。Flink作为大数据处理的关键组件,将持续影响实时处理领域。
|
2月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5天前
|
关系型数据库 API Apache
Flink CDC:基于 Apache Flink 的流式数据集成框架
本文整理自阿里云 Flink SQL 团队研发工程师于喜千(yux)在 SECon 全球软件工程技术大会中数据集成专场沙龙的分享。
330 8
Flink CDC:基于 Apache Flink 的流式数据集成框架
|
2月前
|
数据处理 Apache 流计算
|
2月前
|
消息中间件 关系型数据库 MySQL
Apache Flink CDC 3.1.0 发布公告
Apache Flink 社区很高兴地宣布发布 Flink CDC 3.1.0!
659 1
Apache Flink CDC 3.1.0 发布公告

推荐镜像

更多