Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?ServiceMesh发展趋势(续) 蚂蚁金服 敖小剑 棋到中盘路往何方Part 0:前言 5月底,我在Cloud Native Meetup上做了一个“ServiceMesh 发展趋势:云原生中流砥柱”的演讲,当时主要讲了三块内容: - Service Mesh产品动态 - Service Mesh发展趋势 - Service Mesh与云原生 今天的内容可以视为是上次演讲部分内容的深度展开,如社区 v1 架构的缺点 • 管理开销 • 管理Mixer是许多客户不想负担的 • 进程外适配器强制运维管理适配器,增加此负担 • 性能 • 即使使用缓存,在数据路径中同步调用Mixer也会增加端到端延迟 • 进程外适配器进一步增加了延迟 • 授权和认证功能是天然适合mixer pipeline的,但是由于mixer 设计 的延迟和SPOF(单点故障)特性,导致直接在Envoy中实现 (Envoy improve performance and reduce operational complexity. Mixer-In-Proxy/Mixer合并进Proxy。 Mixer 将用C ++重写并直接嵌入到Envoy。 将不再有任何独立的 Mixer 服务。 这将提高性能 并降低运维复杂性。Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? 性能有了,架构怎么办? Mixer合并到Sidecar之后Part0 码力 | 43 页 | 2.90 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路• 对于Check和Quota,性能损失太大,隔离的效果并不明显 应用 Sidecar Mixer 基础设施后端 但是多付出一次远程 调用是否有足够必要? 对基础设施后端的访问的确 可以下沉到Service Mesh探讨:何为基础设施后端?是否可以区别对待? ü 实现Check的Adapter: • listchecker (黑白名单) • opa (Open Policy Agent) Backend Backend Backend Backend Backend Backend Backend Backend Backend Backend Backend 通道收缩 流量聚集Report部分的隐忧:网络吞吐量 应用 Sidecar Mixer Backend 交换机 交换机 应用 Sidecar Backend 交换机 应用 Backend 交换机 调用服务Service-b 8.8.8.1 8.8.8.2 8.8.8.3 服务注册中心 同步注册信息 Cluster-1 3.转发请求到edge sidecar, 标注Destination为Service-B 1. 通过注册信息交换同步到其他服务 注册中心,包括服务和Edge sidecar 2. 通过注册中心可以得知 Service-B在Cluster2,和相 应的edge sidecar地址列表0 码力 | 37 页 | 7.99 MB | 6 月前3
SOFAMOSN持续演进路径及实践分享goroutine conn.read conn goroutine conn.read …… 调度切换/就绪通知技术案例 – 长连接网关RawEpoll模式 RawEpoll模式:使用epoll感知到可读事件之后,再从协程池中为其分配协程进行处理。 大幅减少goroutine实例数量,从而降低内存、调度开销 Netpoll implmented in Golang runtime conn.read 云原生场景下的多协议、路由&LB、后端管理、TLS、遥感监测、XDS对接等功能, 并充分优化了性能,目前已经在蚂蚁、UC生产环境进行了验证。落地实践案例蚂蚁落地 – 应用接入 ü 适用于蚂蚁当前的服务发现 体系 ü 通过中间件通道对应用推送 MOSN调用地址 ü 通过扩展cluster类型的方式 动态获取配置中心后端 ü MOSN出向路由基于明确的 服务依赖关系生成 ü 服务通过 id:version 定义 ü 适用于SOA化服务,标准微 Gzone Service B MOSN 2. 尝试在本 Zone内访 问B服务 3. 若当前 Rzone内不 存在B服务, 尝试在本机 房内部查找 3. 若当前机 房内不存在 B服务,路 由到Gzone 机房UC落地 - XProtocol DNS方案规划 & 展望MOSNG 待开源MOSN-X eBPF 加速卡 DPDK MOSN SSL Offload User Protocol0 码力 | 29 页 | 7.03 MB | 6 月前3
Service Mesh 在蚂蚁金服生产级安全实践2019.8.11 Service Mesh Meetup #6 广州站基于 Secret Discovery Service Sidecar 的证书管理方案 使用可信身份服务构建敏感数据下发通道 Service Mesh Sidecar 的 TLS 生产级落地实践 分享内容基于 Secret Discovery Service Sidecar 的证书管理方案 Kubernetes Secret 对接内部密钥管理系统 使用 AppLocalToken 替换 Service Account 支持多种Sidecar 通过Citadel Agent 获取证书使用可信身份服务构建敏感数据下发通道 背景介绍 通过应用Pod 中增加一个安全 Sidecar,以API接口的形式为APP及其他Sidecar 提供基础的身 份颁发、身份验证功能 解耦应用的业务逻辑与认证授权逻辑,减少开发量; 全网统一的认证授权方式,去凭证,减少攻击面; 为每个应用建立唯一的全局应用身份标识,提供服务调用全链路溯源能力,及可问责能 力(accountability)。使用可信身份服务构建敏感数据下发通道 身份获取 应用 A 构造 HTTP 请求,调用 安全Sidecar 提供的 JWT-SVID 颁发接口获取 JWT-SVID。 安全Sidecar 通过 Downward API 获取0 码力 | 19 页 | 808.60 KB | 6 月前3
蚂蚁金服网络代理演进之路灵活弹性 安全合规 防攻击蚂蚁金服网络接入十年变迁 2010年前部署商用设备 前世 01 2010 开始网络代理白盒 化,定制业务逻辑,软 硬件一体解决方案 自研 02 2015 年无线通道协议,安 全升级, 连接收编 All in 无线 03 PC时代 移动时代 万物互联云原生时代 2018 年协议,安全持续升 级(QUIC,MQTT,国密), 云原生 再启程 03前世 全面实践全网https 2012 • 首次全流量支撑双十一大促 2013 • 支持蚂蚁LDC架构,三地五中心容灾架构 • 全面上线SSL加速卡,提供软硬件一体加速方案 2015 • All in 无线,通信通道全面升级(MMTP,MTLS协议) 2016 • 安全防护能力提升,WAF,流量镜像 2018至 今 • 通信协议,架构,安全再次升级(物联终端接入,QUIC协议,国密,可信计算, 海外 国际支付咻一咻与敬业福咻一咻的挑战 亿级用户快速进入 亿级用户同时点击 剩余红包实时显示无线移动网络优化 § 统一通道:主长连接 + 短连接 § 统一协议:MTLS+MMTP § 统一调度:MobileDC 最优调度 网络探测 连接建立 传输+保持 通道复用 复合建连 握手优化 短连补偿 智能心跳 数据压缩 质量模型 自动重试 云端补偿 柔性建连 假连淘汰 动态超时0 码力 | 46 页 | 19.93 MB | 6 月前3
进击的 Traefik | 云原生边缘路由器探秘负载均衡(针对应用实例):轮询( 目前支持)、session 亲和性 • 带权重的轮询:仅可用于在 Service 之间,并且目前只支持 File Provider • Mirror:将发送到服务的请求镜像复 制到其他服务去,目前只支持 File ProviderMiddlewares配置 • 静态配置:Traefik 启动时的 配置,Provider 连接信息、要 监听的 EntryPoints,通过配置 "/whoami" backend: serviceName: webapp servicePort: 80Ingress CRD apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: traefik-webui namespace: kube-system spec: entryPoints: - traefik.containo.us/v1alpha1 kind: Middleware metadata: name: redirect-https namespace: kube-system spec: redirectScheme: scheme: https中间件附加到 Http apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute0 码力 | 35 页 | 8.58 MB | 6 月前3
蚂蚁金服Service Mesh渐进式迁移方案会师路线4 第一步:k8s 全面铺开 第三步:接入 (完善后的)Istio, 和社区方案统一 第二步:引入 Sidecar,对接 周边生态 特殊:已经在路 线4上演进的应用, 快速会师到路线11 Service Mesh演进路线 2 2 实现平滑迁移的关键 3 4 5 总结 DNS寻址方案的演进 DNS寻址方案的后续规划保证迁移前后服务间网络互通 Service A 服务发现 加密 负载均衡 请求路由 目标服务 的标识 序列化 链路追踪 故障注入 日志 监控 Metrics 熔断 限流 服务降级 前置条件检查 身份认证 密钥管理 访问控制 …… 下沉到 Service Mesh 轻量级客户端 传统 侵入式 客户端 客户端应该尽可能的轻薄通用: 实现简单,方便跨语言,减少升级可能 最简单,最通用,支持最广 泛的寻址方式方式是什么? 基于服务 services renew RPC DNS b.svc -> 10.0.3.100 1. 在客户端代码中, 请求发送给”b.svc” 2.DNS解析”b.svc”到 clusterIP 10.0.3.100 3. 流量劫持到 sidecar1 Service Mesh演进路线 3 2 实现平滑迁移的关键 3 4 DNS寻址方案的后续规划 5 总结 DNS寻址方案的演进DNS寻址方案的演进路线0 码力 | 40 页 | 11.13 MB | 6 月前3
Service Mesh Meetup #3 深圳站Reviewer 对 MR 进行 code review ,批准合并之后, feature/new_branch 会合并到 develop; • 5. 部署负责人将 develop 分支代码部署到测试环境,然后再通知 QA 测试;(脚本或者人工)有什么问题? • 效率低 • 没有代码检查; • 没有自动化测试(包括单元测试); • 沟通成本高 • 开发需要通知负责人、测试、产品等;(而且是每次构建/部署 s我是作者名称我是作者名称我是作者名称Talk is cheap, Show me the code!• 当使用一个客户端实例和多个后端实例进行部署时,所有的调用仅 路由到单个后端实例。当部署第二个客户端时,它可能被路由到另 一个后端实例。这不是所需的那种负载均衡,因为它不允许独立地 扩展客户端和服务器。当客户端实例比服务器实例少时,一些服务 器实例将处于空闲状态,所以 Kubernetes Service 的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服 务网格越来越难以理解和管理。 • 它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以 及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、 访问控制和端到端认证等。什么是 Istio • Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有 负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任 何改动。 • 想要让服务支持 I0 码力 | 45 页 | 18.62 MB | 6 月前3
Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展Layer 3 IP Address/Protocol SDN Layer 2 MAC/VLAN SDN Layer 1 Input Port SDN SDN : 主要关注1到4层 Service Mesh: 主要关注4到7层 类似的问题,不同的网络层次,通信网络的解决方案能为Service Mesh提 供哪些借鉴?通信网络的解决方案:SDN微服务应用层通信的解决方案-Service Mesh RequestConsul Registry遇到的坑: 1.0版本的Consul Registry只能算PoC(原型验证),远未达到产品要求 CPU占用率超高不下 (Pilot+Consul 占用冲高到 400%) • TIME_WAIT Sockets 太多导致FD耗光 Consul Registry优化 • 增加数据缓存,减少无谓的Consul Catalog API调用 • 将Pollin 后的同步时延 优化效果 • 200个服务的规模下,CPU占用率降低了一个数量级 • 服务数据变化同步时延从分钟级降低到秒级 • Consul调用导致的TIME_WAIT Sockets数量减少到个位级产品化增强-Ingress API Gateway K8S Ingress Load balancing SSL termination Virtual hosting Istio Gateway0 码力 | 27 页 | 11.99 MB | 6 月前3
严选 ServiceMesh 实践性能视角 – cNginx vs Envoy(优化后) • 优化方案 • 采用 sriov 容器网络 • Envoy:将1.13版本中 connection loadbalancer 特性移植到 1.10.x 版本 • Envoy 优化后在低并发(<64)的情况下,容器网络 client sidecar 优于 VM 网络直连 • Envoy 优化后在高并发(>=64)的情况下 • 容器网络 Envoy 热更新机制 • 灰度发布机制:业务灰度+流量灰度 • 演练测试 • 业务回归验证20/24 一些坑 • Envoy 目前编译版本存在 Bug • 在 Istio pilot 升级到加入 accesslog 相关配置下发功能版本后,Envoy 在一定压力访问或 有客户端主动断开请求时,会进入一段存在问题的断言(assert)逻辑,导致 envoy crash, 此时请求方体现为 /9083 • Mixer 性能陷阱 • 如打开 Mixer 的策略执行功能,每一次调用 Envoy 都会同步调用 Mixer 进行一次策略检查, 导致性能下降的非常迅速 • 社区也已经意识到并着手进行优化 • 作为 Mixer 策略执行的替代品, Istio 的 RBAC 也是可以满足一部分功能的,比如服务白名 单我们就是通过 RBAC 来实现21/24 规划与展望 /0422/240 码力 | 25 页 | 2.07 MB | 6 月前3
共 21 条
- 1
- 2
- 3













