金卫-Apache APISIX 借助 Service Mesh 实现统一技术栈的全流量管理
Apache APISIX借助ServiceMesh 实现统一技术栈的全流量管理 金卫(API7 解决方案架构师) • 支流科技 - 解决方案架构师 • Apache APISIX PMC • Apache APISIX Ingress Controller Founder • Apache skywalking committer • Github: https://github.com/gxthrj 将通用能力下沉 应用专注于业务逻辑 注册发现 流量管理 可观测性 安全防护 服务网格的痛点 方案众多,各有缺陷 与基础设施整合成本高 性能损耗 资源的额外消耗 扩展难度高 理想的服务网格应该是什么样? 易于扩展 理想的服务网格 业务无感知 落地成本低 动态且增量配置 安全管控 可观测 流量精细化管理 跨集群部署 性能损耗低 资源消耗低 按需下发配置 是当前最为流行的服务网格方案 社区活跃 几乎所有主流云厂商都对 istio 有支持 基于 istio 做商业支持的公司也很多,比如 tetrate, solo APISIX作为Istio数据面 使用动态库的方式加载到APISIX 与APISIX生命周期一致 转换 xDS 协议 资源消耗可控 APISIX原生支持 增加了xds discovery 配合CRD进行扩展 Apache0 码力 | 34 页 | 3.50 MB | 6 月前3API7 ⽹关技术⽩⽪书
⽤于承载并处理业务流量,管理员在配置路由规则后,⽹关将根据预设规则将请求转发⾄上游服务。 此外,借助API7内置的50多种插件,可实现⾝份验证、安全防护、流量控制、分析监控、请求/响应 转换等常⻅业务需求;若内置插件⽆法满⾜需求,我们也⽀持使⽤Lua、Java、Go、Python语⾔⾃ 定义插件,可作⽤于请求进⼊、上游响应各个阶段。 ManagerAPI 2. ⽤于管理API⽹关 全局插件、消 费者等资源的管理。 控制⾯板 3. 为了简化⽹关管理,管理员可以通过Dashboard控制⾯板以可视化形式操作⽹关,⽀持监控分析、⽇ 志审计、多租⼾管理、多集群切换、多⼯作分区等能⼒。 1.1技术架构 数据平⾯ 1. 数据平⾯⽤于接收并处理调⽤⽅请求,使⽤Lua与Nginx动态控制请求流量。当请求进⼊时,将根据 预设路由规则进⾏匹配,匹配到的请求将被⽹ 关转发⾄对应上游服务。在此过程中,⽹关有能⼒根据 预设规则中不同插件的配置,使⽤⼀系列插件对请求从进⼊到离开的各个阶段进⾏操作。例如:请求 可能会经过⾝份认证(避免重放攻击、参数篡改等)、请求审计(请求来源信息、上游处理时⻓ 等)、路由处理(根据预设规则获取最终上游服务地址)、请求转发(⽹关将请求转发⾄上游⽬标节 点)、请求响应(上游处理完成后,⽹关将结果返回给调⽤⽅)等⼏个步骤。 控制平⾯0 码力 | 19 页 | 1.12 MB | 1 年前3APISEVEN 和Kong EE 的性能评测
APISEVEN和KongEE的性能评测--GigaOm ⾼性能API管理测试 产品评估:API7和Kong企业版 1-摘要3 2-云上的API管理5 API76 图1.API7技术架构7 Kong企业版7 3-GigaOmAPI负载测试设置9 API压⼒测试9 测试环境10 单节点10 环境清单10 软件版本信息11 000rps时的1,000条路由的对⽐14 5-结论15 6-附录16 7-关于GigaOm19 8-关于API720 1-摘要 本报告重点介绍了部署在云上的API管理平台。云让企业通过微服务快速地构建差异和创新,在⼏分钟 内就能完成API节点的克隆和扩展。与本地部署相⽐,云有良好的扩展性,能更快地进⾏服务器部署和 应⽤程序开发,且能降低计算成本的开销。 更 毫秒。对公司⽽⾔,对性能的需求和 对管理的需求⼀样,因为公司依靠API交易速率来跟上业务发展速度。 API管理解决⽅案不能成为性能瓶颈。许多公司都在寻找跨多个API端点的负载均衡和⾼交易量吞吐的 解决⽅案。如果业务每秒有1000个交易,⼀个⽉内就会有30亿次API调⽤。拥有⼤流量的公司通常每 ⽉API调⽤次数超过100亿次。因此,在选择API管理解决⽅案时,性能是⼀个关键因素。0 码力 | 14 页 | 1.11 MB | 1 年前303-基于Apache APISIX的全流量API网关-温铭
任一请求都会负载到整个的单体服务集群上 在微服务架构上, 对应请求会负载到对应的微服务子服务集群上 微服务的精细管理带来服务的弹性伸缩、开发团队变得敏捷、服务之 间隔离、降低故障率 但是同样的带来的一些问题: 接口之间通用的功能重复开发、膨胀的 服务数量、难以管理 使用API网关模式 使用API网关进行API聚合 使用API网关实现灰度发布 使用API网关实现服务熔断 的所有功能:反向代理、负载均衡 • 动态上游、动态 SSL 证书、动态限流限速 • 主动/被动健康检查、服务熔断 不同的云原生下的新功能 • 对接 Prometheus、Zipkin、Skywalking • gRPC 代理和协议转换(REST <=> gRPC) • 身份认证:OpenID Relying Party、OP(Auth0、okta…) • 高性能、无状态、随意扩容和缩容 • 动态配置,不用 reload 6.7 亿美元收购 NGINX Apache APISIX 简介 关于 Apache APISIX • 天然的云原生 API 网关 • 中国最快毕业的 Apache 顶级项目 • 全动态:路由、SSL 证书、上游、插件… • 40 多个插件,覆盖:身份认证、安全、日志、可观测性… Apache APISIX 设计思路 • API 网关的数据面和控制面分离 • 通过插件机制来方便二次开发和运维0 码力 | 11 页 | 6.56 MB | 6 月前3有了 NGINX 和 Kong,为什么还需要 Apache APISIX-王院生
社 区 M e e t u p 第 四 期 · ⼴ 州 站 后端架构演变史 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 后端架构演变 -- 7 层处理 • 动态、性能、功能,不可兼得 • 控制⾯能⼒弱 • 技术栈不统⼀ • ⽆标准化⾼可⽤⽅案 • ⼆次开发成本 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 Nginx 和 Kong e e t u p 第 四 期 · ⼴ 州 站 Nginx 问题 • 低活跃度的社区 • 社区不友好:提交代码困难 • 静态配置 + reload • 路由太弱 • gRPC 周边弱 • ⽆统⼀管理控制⾯ 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 Kong 问题 • 架构选型:Nginx + PostgreSQL • 云原⽣ API ⽹关 • 代码臃肿 ⾼性能 • 动态 • 社区活跃 • 云原⽣架构 • 多语⾔ • 插件编排 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 APISIX 定位 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 LB / API Gateway (1) • 基于 Nginx,⽀持 Nginx -> APISIX 灰度迁移 • 全动态,⽆需 reload0 码力 | 34 页 | 25.78 MB | 6 月前3从Apache APISIX 来看API 网关的演进
下一代微服务架构是什么? Apache APISIX 是什么? • 云原生微服务 API 网关 • 基于 Nginx 和 etcd 实现 • 集成了控制面和数据面 • 提供灵活的插件机制 • 动态上游、动态路由、插件热加载 快速的成长 • 6 月 6 号开源 • 7 月被纳入 CNCF 全景图 • 8 月首家付费央企 • 9 月贝壳找房上生成环境,每日处理近 3 亿流量 • 10 月:即将推出新一代微服务架构方案 NASA 也在使用 API 网关的传统功能 • 让 API 请求更安全、更高效的得到处理 • 覆盖 Nginx 的所有功能:反向代理、负载均衡 • 动态上游、动态 SSL 证书、动态限流限速 • 主动/被动健康检查、服务熔断 云原生下的新功能 • 对接 Prometheus、Zipkin、Skywalking • gRPC 代理和协议转换(REST <=> • Spring CLoud • Dubbo 痛点:语言绑定、升级难 3. 微服务从 proxy 到 sidecar • 技术变革:云原生 • proxy 的痛点:路由、上游、证书等不能动态 4. 从 sidecar 到 Service Mesh • 痛点:不通用、抽象层次不够 • Service Mesh 想做为基础设施下沉 • Istio + Envoy:控制面和数据面0 码力 | 24 页 | 1.36 MB | 1 年前3基于 Apache APISIX 的下一代微服务架构 -- 从 0 到 1:APISIX 的 Apache 之路
下一代微服务架构是什么? Apache APISIX 是什么? • 云原生微服务 API 网关 • 基于 Nginx 和 etcd 实现 • 集成了控制面和数据面 • 提供灵活的插件机制 • 动态上游、动态路由、插件热加载 快速的成长 • 6 月 6 号开源 • 7 月被纳入 CNCF 全景图 • 8 月首家付费央企 • 9 月贝壳找房上生成环境,每日处理近 3 亿流量 • 10 月:即将推出新一代微服务架构方案 NASA 也在使用 API 网关的传统功能 • 让 API 请求更安全、更高效的得到处理 • 覆盖 Nginx 的所有功能:反向代理、负载均衡 • 动态上游、动态 SSL 证书、动态限流限速 • 主动/被动健康检查、服务熔断 云原生下的新功能 • 对接 Prometheus、Zipkin、Skywalking • gRPC 代理和协议转换(REST <=> • Spring CLoud • Dubbo 痛点:语言绑定、升级难 3. 微服务从 proxy 到 sidecar • 技术变革:云原生 • proxy 的痛点:路由、上游、证书等不能动态 4. 从 sidecar 到 Service Mesh • 痛点:不通用、抽象层次不够 • Service Mesh 想做为基础设施下沉 • Istio + Envoy:控制面和数据面0 码力 | 33 页 | 1.55 MB | 1 年前3Apache APISIX 微服务⽹关性能架构解析
6 8⽉月 10 ⽉月 7⽉月 9⽉月 今天 Apache APISIX 第⼀一⾏行行代码 4⽉月 Apache APISIX ⾃自豪 • 核⼼心代码量量,3892 ⾏行行 • 极致的动态转发性能 • 平均请求延迟: 740 us • 插件热加载/卸载 • 允许插件挂载任何阶段 • 路路由⾃自身也是插件 Apache APISIX ⾃自豪 • ⽀支持 ARM64 配置中⼼心 • 语⾔言或开发平台 • 数据校验 • 加分项:顶级路路由实现 Apache APISIX 技术选型 • 配置中⼼心:⾼高可⽤用、增量量订阅、历史记录 • 语⾔言或开发平台:动态、⾼高性能、⽹网关的周边资 源丰富 • 数据校验:开放标准、有⼀一定的⽣生态系统 • 学习竞对:从 Ganter 报告中获取前辈列列表,做分 析、⽐比较 Apache APISIX 技术选型 Apache APISIX 技术选型 开发平台:Lua 或 Golang •OpenResty >= 1.15.8 •Tengine >= 2.3.2 •基于 Nginx •调⽤用动态库:C/C++,Golang 等 Apache APISIX 技术选型 数据校验:jsonschema • 数据校验规范:Google 排名第⼀一 • 有多个不不同语⾔言客户端,涵盖了了⼏几乎⽬目前主流的0 码力 | 41 页 | 15.62 MB | 1 年前3Apache APISIX 在金山办公的开发和落地实践
a b o u t 关于 OpenResty 和 Lua 的思考 一个菜鸟的视角 02 关于 OpenResty 和 Lua 的思考 Lua 适合 “ 平均水平 ” 的大团队做大工程吗 •动态类型语言 •网关产品对 runtime error 容忍度比较低 •Lua 开发环境,特别是 OpenResty 相关的比较弱 •难招人,后端开发转 lua 成本高昂 “A programming 构建为 shared object 供 lua 直接使用 • 支持 rust 高级语义 基于 Apache APISIX 破局 基于 Apache APISIX 破局 在 Luajit 上引入动态 lib 的性能考虑 • C/Rust to Lua的context switch • 参数和结果的类型转换 • jit下无需担心 ASLR / PLT,但也是indirect call 基于0 码力 | 27 页 | 4.88 MB | 1 年前3Apache APISIX Roadmap
e h e r e S o m e t h i n g a b o u t APISIX Way == Community Way • 基金会项目 • 安全 • 稳定 • 高性能 • 动态 • 社区活跃 • 云原生架构 • 多语言 • 插件编排 • Loadbalancer • API 网关 • K8s Ingress • 服务网格 全流量 • 多种配置中心 • 智能诊断0 码力 | 26 页 | 2.68 MB | 1 年前3
共 11 条
- 1
- 2