Taming the C++ Filter View©2024 by josuttis.com 1 C++ Nicolai M. Josuttis josuttis.com @NicoJosuttis Taming the C++ Filter View September 17, 2024 16:45 - 17:45 MDT ©2024 by josuttis.com 2 C++ Nicolai M. Josuttis • Independent Other Topics: – Systems Architect – Technical Manager – SOA – X and OSF/Motif Nico Josuttis C++ Filter View @cppcon 2024-09-17 1©2024 by josuttis.com 3 C++ Views C++20 ©2024 by josuttis.com 4 C++ print(coll2); Output: 0 8 15 47 11 42 1 0 1 8 11 15 42 47 C++20 templateNico Josuttis C++ Filter View @cppcon 2024-09-17 2©2024 by josuttis.com 5 C++ C++20: Views void print(const auto& coll) 0 码力 | 43 页 | 2.77 MB | 6 月前3
13 Istio 流量管理原理与协议扩展 赵化冰缺省路由 (服务名) 5 Istio 流量管理 – 数据面 – Envoy配置模型和xDS协议 ADS Server LDS RDS CDS EDS Envoy 配置模型的主要概念: • Downstream:连接到 Envoy 的下游 Host,发送请求并接收响应。 • Upstream: 上游 Host 接收来自 Envoy 的连接和请求,并返回响应。 • Listener:监听器是命名网地址(可以是TCP domain socket),可以被 下游客户端连接。在 Envoy 中,Listener 可以绑定到端口上直接对外服务,也可以不绑 定到端口上,而是接收其他 listener 转发的请求。 • Cluster:集群是指 Envoy 连接的一组上游主机,集群中的主机是对等的,对外提供相 同的服务,组成了一个可以提供负载均衡和高可用的服务集群。Envoy 通过负载均衡 策略决定将请求路由到哪个集群成员。 xDS Istio 流量管理 – 数据面 – Istio 中的 Envoy Sidecar 配置 Istio中的 Envoy Sidecar 配置: • Istio 通过 Listener、Route Config 和 Cluster 为 Mesh 中的 Envoy 生成了入向和出向两个不同方向的处理流程的配 置。 • 在 Envoy 的基础上增加了 VirtualInboundListener,0 码力 | 20 页 | 11.31 MB | 6 月前3
Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展Plane Control Layer Application Layer通过Service Mesh控制面统一管理F5和Envoy https://aspenmesh.io/2019/03/expanding-service-mesh-without-envoy/ Control Plane Security Policy: • Enable mTLS between services 母,扩展支持其它协议? Ø 南向接口 • 面向流量和路由配置 • xDS v2将统一数据面标准? • xDS接口包含有较多实现相关内容:Listener, Filter, 能否可以成为一个通用的接口协议? 是否会出现Envoy之外的大量数据面实现? • 建议:对xDS接口进行改进,去掉实现相关内容 Ø Service Mesh的发展 • 控制面对数据面软硬件的统一控制能力? • 通过控制面API接入各种丰富的应用场景 MSB-SDClient MSB-Consul Jaeger DexMesh数据面 Pod Microservice Envoy Desktop OtherSystems Mobile DexMesh Ingress Pod Microservice Envoy (Telemetry, Policy check) 配置数据(服 务信息,路由 信息等) 定制Istio组件 应用微服务0 码力 | 27 页 | 11.99 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?增加端到端延迟 • 进程外适配器进一步增加了延迟 • 授权和认证功能是天然适合mixer pipeline的,但是由于mixer 设计 的延迟和SPOF(单点故障)特性,导致直接在Envoy中实现 (Envoy SDS) • 复杂性 • Mixer使用一组称为模板的核心抽象,来描述传递给适配器的数据。 这些包括“metrics”,“logentry”,“tracepan”等。这些抽 象与后 embedded in Envoy. There will no longer be any stand-alone Mixer service. This will improve performance and reduce operational complexity. Mixer-In-Proxy/Mixer合并进Proxy。 Mixer 将用C ++重写并直接嵌入到Envoy。 将不再有任何独立的 灵活的适配器模型,使其以下操作变得简 单: • 运维添加、使用和删除适配器 • 开发人员创建新的适配器(超过20个适配器)合并没问题,如何合并才是问题 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?Envoy在设计上是可扩展的 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? 扩展点: ● L4/L7 filters ● Access loggers ● Tracers ●0 码力 | 43 页 | 2.90 MB | 6 月前3
微博Service Mesh实践Server WM/ Server ⽬目标机器器 请求机器器 Client Cluster High Available Load Balance Filter Chain Transport Endpoint Filter Chain Serialize Endpoint EndpointService Mesh Meetup · BeiJing ⾼高可⽤用 �19 BeiJing Endpoint �20 微博Service Mesh实践 - WeiboMesh ⽬目标机器器 请求机器器 Keep Alive Weibo Mesh Endpoint filter call serialize channelsService Mesh Meetup · BeiJing Motan2 传输协议 �21 微博Service Mesh实践 - WeiboMesh Weibo Mesh 控制⾯面 �24 微博Service Mesh实践 - WeiboMesh ➢ 策略略扩展:Filter Chain ➢ 流量量调度:MCS(Mesh Command System)Service Mesh Meetup · BeiJing Motan Filter Chain �25 微博Service Mesh实践 - WeiboMesh Access Log Metric0 码力 | 43 页 | 1007.85 KB | 6 月前3
Apache APISIX How to implement plugin orchestration in API Gatewaytraffic:HTTP、HTTPS、TCP、UDP、MQTT、Dubbo、gRPC… • Replace Nginx to handle north-south traffic • Replace Envoy to handle east-west traffic between services • k8s ingress controller • Use MQTT plugin as IoT gateway plugin Envoy • C++ filter:difficult to get started • Lua filter:Few features, few developers can write Lua • Solution:WASM,not good enough in the short term Apache APISIX • Both Kong and Envoy’s solutions North-South API Gateway -> East-West Microservice • East-west service mesh -> North-south access layer • Envoy、Kong、Apache APISIX:full traffic access layer • no longer the traditional functions of Nginx and F50 码力 | 28 页 | 1.19 MB | 6 月前3
蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘V4 API ü支持xDS on ADS Ø支持全动态配置启动运行 Ø支持API核心功能点,不断完善中扩展机制 4 • 网络层扩展 • 事件订阅 • 自定义filter • 协议层处理扩展 • 事件订阅 • 自定义filter • TCP层自定义私有协议 • 自定义Codec • 自定义Stream • 其他 • 路由 • 后端管理4 性能单核优化点 1 Ø绑核 ü 更好的 0-327.ali2008.alios7.x86_64 Ø软件 üMOSN 0.1.0 üEnvoy 1.7 Ø场景 ü代理模式: client -> mesh -> server üClient直连server请求耗时1.6msSOFARPC + 1K字符串 8 指标\软件 SOFAMosn Envoy QPS峰值 103500 104000 RT(avg) 16.23ms 15.88ms 88ms MEM 31m 18m CPU 100% 100%HTTP/1.1 + 1K字符串 9 指标\软件 SOFAMosn Envoy QPS峰值 29670 38800 RT(avg) 5.715ms 5.068ms RT(P99) 16ms 7ms RT(P98) 13ms 7ms RT(P95) 11ms 6ms MEM 56m 24m CPU 100% 95%单核SOFARPC转发0 码力 | 44 页 | 4.51 MB | 6 月前3
Nacos架构&原理
cloud-alibaba/Seata/ Sentinel)最佳实践,是 Java 微服务生态最佳解决方案;除此之外,Nacos 也对微服务生态活跃 的技术做了无缝的支持,如目前比较流行的 Envoy、Dapr 等,能让用户更加标准获取微服务能力。 生态仓库:https://github.com/nacos-group Nacos 发展&规划 2018 年当我们决定做开源的时候,从 0.X 集群,在⼀次客户端发起写操作的流程中,当注册非持久化的实例 的写请求打到某台 Nacos 服务器时,Distro 集群处理的流程图如下。 Nacos 架构 < 40 整个步骤包括几个部分(图中从上到下顺序): 前置的 Filter 拦截请求,并根据请求中包含的 IP 和 port 信息计算其所属的 Distro 责任节点, 并将该请求转发到所属的 Distro 责任节点上。 责任节点上的 Controller 将写请求进行解析。 username varchar(50) 是 用户名 role varchar(50) 是 角色 Filter 拦截请求 目前发 sso 的时候我们 console server 都跑在⼀个进程里面。调用的接口都是 naming/config 的 openapi。 这些接口登录 filter 是不能拦截的,因为拦截需要登录,会影响 server 调用。 不 拦截,控制台的数据请求又拦截不了,登录请求也控制不了。0 码力 | 326 页 | 12.83 MB | 9 月前3
03-基于Apache APISIX的全流量API网关-温铭Apache APISIX 能做什么? • 处理 L4、L7 层流量:HTTP、HTTPS、TCP、UDP、MQTT、Dubbo、gRPC… • 替代 Nginx 处理南北向流量 • 替代 Envoy 处理服务间东西向流量 • k8s ingress controller • 借助 MQTT 插件作为 IoT 网关 • 借助 IdP 插件成为零信任网关 Apache APISIX 的技术优势 开放了自定义负载均衡的挂载点,其他网关都不支持 独创的插件编排/低代码 API 网关 Plugin Orchestration • Kong:支持 Go 编写的插件 • Envoy:支持 Lua、WASM 编写的 filter • Apache APISIX:为什么要“写”插件?ops、PM 也可以直接创造一个插件 • 解决方案:微插件、低代码,需要底层架构和插件足够灵活 有众多信赖的全球领军企业 网关:Kong、Apache APISIX • service proxy:Envoy • 公有云:CLB + API 网关、CLB + k8s ingress controller 东西向流量 • 随着微服务而兴起 • service mesh 和 API 网关的位置和愿景不同,但功能基本一致 • istio + Envoy 已经成为 service mesh 的标准 全流量通吃 • 南北向0 码力 | 11 页 | 6.56 MB | 6 月前3
蚂蚁金服网络代理演进之路负载均衡器 路由器 路由器 Internet网络代理有什么? Maglev Ipvs Katran GFE BFE TGW Nginx Apache httpd SOFAMosn Envoy Linkerd网络的挑战网络的挑战 高效接入 访问加速 容量 稳定性 高可用 灵活弹性 安全合规 防攻击蚂蚁金服网络接入十年变迁 2010年前部署商用设备 前世 01 2010 开始网络代理白盒 network filter 注册机制以及统一的 packet read/write filter 接口,实现了 Network filter 扩展机制, 当前支持: • TCP proxy • Fault injection ü StreamFilter 扩展 MOSN 通过提供 stream filter 注册机制以及统一的 stream send/receive filter 接口,实现了 接口,实现了 Stream filter 扩展机制, 包括支持: • 流量镜像,RBAC鉴权SOFAMosn能力扩展 心跳检查在Service Mesh场景下网络代理有着不同于接入层的挑战 • 无论应用是否接入Mesh,接入了多少Mesh,都需要保证可正常处理请求,做到可 灰度、可回滚的兼容,平滑迁移 • 通用的框架能力(SOFAMosn/Envoy)无法直接满足复杂的、定制的业务能力,需 要进行针对性的扩展实现0 码力 | 46 页 | 19.93 MB | 6 月前3
共 195 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20













