Apache APISIX 在金山办公的开发和落地实践Apache APISIX 在金山办公的开发和落地实践 张强 金山办公 01 前情回顾&增补 02 关于 OpenResty 和 Lua 的思考 03 基于 Apache APISIX 破局 04 解决 Nginx 带来的问题 CONTENT W r i t e h e r e S o m e t h i n g a b o u t 前情回顾 & 增补 01 About •金山办公云原生应用组流量网关 Lead Developer •金山办公作为 Apache APISIX 较早的受益者,使用Apache APISIX 承载百万QPS流量,对 Apache APISIX 做了比较深 入的定制开发 W r i t e h e r e S o m e t h i n g Ab o u t 选择好 router radixtree_uri vs radixtree_host_uri 玩 •Lua 开发环境,特别是 OpenResty 相关的比较弱 •难招人,后端开发转 lua 成本高昂 “A programming language designed primarily for embedded use in applications” Wikipedia - Lua 关于 OpenResty 和 Lua 的思考 Nginx 的设计给 “ 平均水平 ” 终端开发者带来的问题0 码力 | 27 页 | 4.88 MB | 1 年前3
APISEVEN 和Kong EE 的性能评测2-云上的API管理5 API76 图1.API7技术架构7 Kong企业版7 3-GigaOmAPI负载测试设置9 API压⼒测试9 测试环境10 单节点10 环境清单10 软件版本信息11 4-测试结果12 图2.空转时的压⼒测试API的基线延迟12 图3.API7与KongEE在20,000rps时的对⽐13 分钟 内就能完成API节点的克隆和扩展。与本地部署相⽐,云有良好的扩展性,能更快地进⾏服务器部署和 应⽤程序开发,且能降低计算成本的开销。 更重要的是,许多组织也依赖API和微服务来实现⾼性能和可⽤性。在本⽂中,我们将“⾼性能”定义 为每秒负载超过1000个交易且在整个API环境中最⼤延迟⼩于30毫秒。对公司⽽⾔,对性能的需求和 对管理的需求⼀样,因为公司依靠API交易速率来跟上业务发展速度。 我们强烈建议你抛开产品的营销信息,⾃⼰去辨别 什么是有价值的。我们希望这份报告内容丰富,有助于你做选择,了解不同产品的细微差别。 我们在报告中提供了⾜够的信息去复现测试。我们建议你建⽴⾃⼰的测试环境。 2-云上的API管理 应⽤编程接⼝,或称API,是现代信息技术中⽆处不在的⽅法和通信标准。⼤公司已经使⽤API来传递 数据,将各个系统连接起来,并把数据变成⼀种服务。API已经开始⽤可复⽤、解耦的微服务来取代传0 码力 | 14 页 | 1.11 MB | 1 年前3
03-基于Apache APISIX的全流量API网关-温铭职在做服务端的开源项目开发。在极客时间专栏著有OpenResty从入门到实战。 我们发现很多应用和服务都在向微服务、容器迁移, 形成新的云原生时代。云原生是未来五到十年一个 非常大的一个技术的一个颠覆, 云原生重写了传统的一些企业的技术架构, 例如云原生中的K8S颠覆了传 统操作系统, 所有的"主机"(node上的容器)由k8s来控制和编排, 非常适用于公有云、私有云、混合云等 各种环境。云原生体系的特点之一就是由各种开源项目组成 任一请求都会负载到整个的单体服务集群上 在微服务架构上, 对应请求会负载到对应的微服务子服务集群上 微服务的精细管理带来服务的弹性伸缩、开发团队变得敏捷、服务之 间隔离、降低故障率 但是同样的带来的一些问题: 接口之间通用的功能重复开发、膨胀的 服务数量、难以管理 使用API网关模式 使用API网关进行API聚合 使用API网关实现灰度发布 使用API网关实现服务熔断 全动态:路由、SSL 证书、上游、插件… • 40 多个插件,覆盖:身份认证、安全、日志、可观测性… Apache APISIX 设计思路 • API 网关的数据面和控制面分离 • 通过插件机制来方便二次开发和运维 • 高可用,没有单点故障 • 安全和稳定第一:基于 Nginx 实现;mTLS 认证;敏感信息加密加盐(salt)保存 • 高性能:单核心 QPS 1.5 万,延迟低于 0.7 毫秒 • 运维友好:Prometheus,0 码力 | 11 页 | 6.56 MB | 6 月前3
Apache APISIX 在安信 PaaS 平台的应用中间件PaaS建设 DBaaS建设 API网关建设 信创容器云建设 ~ CICD工具链 Docker gRPC框架 为什么选择Apache APISIX 1、高性能 2、可扩展性强,对开发者友好 3、云原生发展规划与安信证券技术路线符合 4、社区活跃 W r i t e h e r e S o m e t h i n g a b o u t APISIX 在安信 PaaS 对接内部告警平台 初始化 upstream 和 API service1 service2 service3 service1/* service2/* service3/* DB 中间件 发布 环境选择 (sit、uat、prd) APISIX 初始化 一些思考 03 落地实践、用户反馈 独立集群:提供镜像,用户自主管理;学习成本高;运维成本高 共享集群:降低运维成本;故障风险扩大;用户信息安全 信息安全 短小、精悍;匹配标准场景 非标准场景适配 worker_processes ingress做网关入口可能产生的问题 1、独立集群 or 共享集群 2、插件场景匹配 3、云原生环境下的问题 下一步 04 共享集群、API市场、请求数据分析... 资源共享、工作分区隔离 中台系统的公共接口,比如日志平台、监控平台、告警平台等的对外接口 接口权限统一管理、流量控制 调用量、异常响应、延迟0 码力 | 14 页 | 621.17 KB | 1 年前3
从Apache APISIX 来看API 网关的演进• 提供灵活的插件机制 • 动态上游、动态路由、插件热加载 快速的成长 • 6 月 6 号开源 • 7 月被纳入 CNCF 全景图 • 8 月首家付费央企 • 9 月贝壳找房上生成环境,每日处理近 3 亿流量 • 10 月进入 Apache 孵化器,国内唯一由初创公司贡献的项目 • 11 月全面支持 ARM64 平台,并推出 apisix-ingress-controller controller • 借助 MQTT 插件作为 IoT 网关 • 借助 IdP 插件成为零信任网关 愿景:快速处理所有业务流量 微服务的演进史 1. 从单体到微服务 痛点:大量的重复开发 技术变革:容器 2. 微服务从类库到 proxy • Spring CLoud • Dubbo 痛点:语言绑定、升级难 3. 微服务从 proxy 到 sidecar • 技术变革:云原生0 码力 | 24 页 | 1.36 MB | 1 年前3
基于 Apache APISIX 的下一代微服务架构 -- 从 0 到 1:APISIX 的 Apache 之路• 提供灵活的插件机制 • 动态上游、动态路由、插件热加载 快速的成长 • 6 月 6 号开源 • 7 月被纳入 CNCF 全景图 • 8 月首家付费央企 • 9 月贝壳找房上生成环境,每日处理近 3 亿流量 • 10 月进入 Apache 孵化器,国内唯一由初创公司贡献的项目 • 11 月全面支持 ARM64 平台,并推出 apisix-ingress-controller controller • 借助 MQTT 插件作为 IoT 网关 • 借助 IdP 插件成为零信任网关 愿景:快速处理所有业务流量 微服务的演进史 1. 从单体到微服务 痛点:大量的重复开发 技术变革:容器 2. 微服务从类库到 proxy • Spring CLoud • Dubbo 痛点:语言绑定、升级难 3. 微服务从 proxy 到 sidecar • 技术变革:云原生0 码力 | 33 页 | 1.55 MB | 1 年前3
API7 ⽹关技术⽩⽪书⽤⼾与⻆⾊绑定,可实现针对某类⽤⼾细粒度的权限管控; • 多租⼾(多⼯作分区):⽀持基于⼯作分区隔离的多租⼾模型,管理员可创建不同的⼯作分区,并 指定哪些⽤⼾对⼯作分区有哪些资源的访问权限; • 多环境:⽀持多ETCD集群,集群之间数据不共享; • ⾝份验证:包含多种认证类插件,如basic-auth、jwt-auth、key-auth、wolf-rbac等。此外,借 助内置的HM traffic-split 该插件允许我们动态控制指向不同上游服务的流量⽐。 灰度 Serv erles s Serverless插件在⽹关access阶段动态执⾏Lua代码,以实现⽆服务环境下执⾏FaaS函数。 serverless-post- function 该插件中配置的函数,将在其它插件之前运⾏。 serverless-pre- function 该0 码力 | 19 页 | 1.12 MB | 1 年前3
Apache APISIX
微服务⽹关性能架构解析onlytiancai brileyhe 开源,开⼼心 什什么是 API ⽹网关 微服务 API ⽹网关 重复造轮⼦子 why? ⾏行行业⽼老老⼤大:⼤大多基于 Java + JS,性能差,不不⽀支持⼆二 次开发。⽐比如 Apigee、3Scale、Amazon 等。 ⾏行行业远⻅见者:多基于 OpenResty + Golang,少数开 源,⽐比如:Tyk、Kong 等,代码量量较重。 Apache center ??? Validator ??? Apache APISIX 技术选型 • 配置中⼼心 • 语⾔言或开发平台 • 数据校验 • 加分项:顶级路路由实现 Apache APISIX 技术选型 • 配置中⼼心:⾼高可⽤用、增量量订阅、历史记录 • 语⾔言或开发平台:动态、⾼高性能、⽹网关的周边资 源丰富 • 数据校验:开放标准、有⼀一定的⽣生态系统 • 学习竞对:从 析、⽐比较 Apache APISIX 技术选型 配置中⼼心 why etcd? • 集群⽀支持 • 历史+事务 • 低于毫秒的变化通知 Apache APISIX 技术选型 开发平台:Lua 或 Golang •OpenResty >= 1.15.8 •Tengine >= 2.3.2 •基于 Nginx •调⽤用动态库:C/C++,Golang 等 Apache0 码力 | 41 页 | 15.62 MB | 1 年前3
金卫-Apache APISIX 借助 Service Mesh 实现统一技术栈的全流量管理lua 易学易懂 二次开发相比 C++ 要简单许多 强大的扩展/定制化能力 配合CRD进行扩展,更灵活 更原生 不侵入Istio原有配置 降低用户迁移成本/减少冲突可 能 通过 controller 与 amesh 进行 配置推送 强大的扩展/定制化能力 APISIX 官方提供 80+ 插件 支持自定义插件,并且快速集成 支持多语言开发 golang python python java wasm ...... 满足多协议的需求 APISIX Service Mesh 上手成本低 开发及扩展相当容易 性能优(尤其是多路由场景) 生态丰富,80+ 插件开箱即用 兼容 xDS,方便迁移 自定义 CRD ,增量推送策略 支持多协议 https://github.com/api7/amesh 下一个版本发布时间 120 码力 | 34 页 | 3.50 MB | 6 月前3
有了 NGINX 和 Kong,为什么还需要 Apache APISIX-王院生⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 后端架构演变 -- 7 层处理 • 动态、性能、功能,不可兼得 • 控制⾯能⼒弱 • 技术栈不统⼀ • ⽆标准化⾼可⽤⽅案 • ⼆次开发成本 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 Nginx 和 Kong 的问题 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 • 服务⽹格 Sidecar:APISIX Mesh 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 APISIX:全流量数据⾯ • 统⼀数据⾯基础设施 • 降低开发成本 • 运维成本 • 监控、告警等周边设施⽆缝共 享 云 原 ⽣ 社 区 M e e t u p 第 四 期 · ⼴ 州 站 Q&A yuansheng@api7.ai 王院⽣0 码力 | 34 页 | 25.78 MB | 6 月前3
共 12 条
- 1
- 2













