Service Mesh 在蚂蚁金服生产级安全实践2019.8.11 Service Mesh Meetup #6 广州站基于 Secret Discovery Service Sidecar 的证书管理方案 使用可信身份服务构建敏感数据下发通道 Service Mesh Sidecar 的 TLS 生产级落地实践 分享内容基于 Secret Discovery Service Sidecar 的证书管理方案 Kubernetes SDS方案,实现了 SDS Server 和 SDS 配置管理。Istio 方案中选择 UDS 通信方案,Istio的 方案证书管理流程由 Citadel , Citadel Agent , Pilot 协同完成 Pilot 负责 UDS 路径配置下发,用户通过 Policy CRD 和 DestinationRule 来决策需要给哪些 Sidecar 下发 Sidecar 收到SDS Config Agent请求证书 Citadel Agent 会将Sidecar 的请求包装成CSR 请求Citadel ,Citadel 会先检查缓存中是否已有证书,如果不 存在的话,会基于Citadel 启动时配置的二级ROOTCA签发证书基于 Secret Discovery Service Sidecar证书管理方案 Istio With Envoy SDS Benefits: The private0 码力 | 19 页 | 808.60 KB | 6 月前3
Service Mesh的实践分享Zookeeper • 胖客户端 • 基本服务治理功能 App OSP Server Service Registry Service Config Center 服务发现 服务注册 服务元数据下发 OSP client 服务路由 网络传输 服务元数据上报缺点 • 语言单一 • 升级困难 • 复杂代码嵌入对客户端进程影响大服务化体系2.0 - Service Mesh雏形 • 物理机、sidecar Server Service Registry Service Config Center Remote Proxy Cluster API Gateway 备用链路 服务发现 服务注册 配置下发 服务路由 网络传输 OSP client多语言客户端接入 • HTTP & TCP • Local & Remote • 根据接入对象的不同,制定 不同的接入策略,达到 • 接入简单 切换地址到remote proxy,轻 易实现优雅退出和滚动升级 • 增强隔离性 • Local Proxy被pod共享 • 自保护,对来源方限流和流量 转移 • 资源适配 • 根据宿主机的硬件配置定制不 同资源配置的Daemonset Local Proxy Pod 写入地址 监听变化 宿主机 Proxy address File Pod Remote Proxy Cluster0 码力 | 30 页 | 4.80 MB | 6 月前3
严选 ServiceMesh 实践遥感数据:主要依靠中间件 APM APM 访问日志:主要依靠日志平台 日志平台 日志平台11/24 性能视角 – cNginx vs Envoy(优化前) • 1600RPS+40个并发(主机配置均为 8C16G) • cNginx 的 RT overhead 在0.4ms左右 • Envoy(client模式)的 RT overhead 是0.6ms左右12/24 性能视角 – cNginx 灰度发布机制:业务灰度+流量灰度 • 演练测试 • 业务回归验证20/24 一些坑 • Envoy 目前编译版本存在 Bug • 在 Istio pilot 升级到加入 accesslog 相关配置下发功能版本后,Envoy 在一定压力访问或 有客户端主动断开请求时,会进入一段存在问题的断言(assert)逻辑,导致 envoy crash, 此时请求方体现为 502 异常 • 社区目前给出的优化建议是在 服务地图:可视化的服务关系,如业务拓扑、 服务依赖拓扑,集群视图 01.服务定义 • 限流、资源隔离、熔断、降级等配置 • 负载均衡:流量调配、分流、切流量等 • 服务路由 • 访问控制配置 03.调用控制 • 不可变信息配置 • 动态配置、实时下发 • 支持环境、集群等区分维度 05.配置管理感谢聆听0 码力 | 25 页 | 2.07 MB | 6 月前3
SOFAMesh的通用协议扩展Kubernetes 作为注册中心 • Service • Endpoint • Pod • 使用 DNS 寻址 • 使用 iptables/ebpf 透明地路由所有网络流量 • 服务治理规则,服务,实例和配置都是 Kubernetes 资源 • 使用 Controller Pattern 通过 CRD 扩展新的能力 • …MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 服务注册模型落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 服务的 XDS 配置下发 • 开发 DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持SOFA MESH 的统一解决方案 • 采用 Kubernetes Native 方式落地微服务应用 • 使用 为微服务框架提供轻量化客户端落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 服务的 XDS 配置下发 • 开发 DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持(开箱即用模式下也可以省掉)DNS 寻址目标 • 允许应用把接口当做域名来访问远端服务 • 支持在 Kubernetes0 码力 | 28 页 | 4.73 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践服务部署&弹性伸缩 Deployment 服务注册&服务发现 Service概念和分布式DNS API网关 简单路由功能 统一日志中心 Fluentd & ES 统一监控中心 Prometheus 统一配置管理 Configmap、Secret 负载均衡 简单负载均衡,基于Iptables Roundrobin 流量控制 简单根据服务实例进行控制云平台微服务演进之基于API网关的微服务方案 API网关功能增强 云平台微服务演进之基于Spring Cloud的微服务方案 NS A Service Zuul Nginx Eureka Server Service 1 Service 2 Ribbon 注册 业务服务 配置中心 启动获取 Monitor Turbine K8S流量 SC流量 同集群调用微服务 Spring Cloud管理平台基于Kubernetes的Spring Cloud实现 Devops: • …云平台微服务演进之Service Mesh云平台微服务演进之Service Mesh Pilot Envoy • 服务发现 • Envoy生命周期管理 • Envoy配置下发 • 服务模型 • 配置模型 • 负载均衡 • 智能路由(灰度、蓝绿) • 流量管理(超时、重试、熔断) • 故障处理 • 故障注入 • … Mixer • 前提条件检查:安全认证,黑白名单,0 码力 | 28 页 | 3.09 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?Infrastructure Backend Proxy 优点: • 架构优雅,职责分明,边界清晰 • Mixer的变动不影响Proxy • Proxy无需和Adapter耦合 • 读取配置 -> 连接k8s/Galley • Adapter的运行时资源开销 • 不受Adapter增减/更新/升级影响 • 保持Proxy代码简单 • 保持Proxy代码简单 • 数据平面可替换原则 Adapters Configurations 优点: • 架构更优雅,职责更分明,边界更清晰 • Out-of-Process Adapter不再是Istio的组成部分 • 安装部署 • 配置 • 维护Part 1:ServiceMesh灵魂拷问一:要架构还是要性能? Mixer v1 架构的优点 • 集中式服务: • 提高基础设施后端的可用性 • 为前提条件检查结果提供集群级别的全局2级缓存 这些包括“metrics”,“logentry”,“tracepan”等。这些抽 象与后端想要消费的数据不匹配,导致运维需要编写一些手动配置, 以便在规范的 Istio 样式和后端特定的样式之间进行映射。原本期望 这种映射可以在适配器中实现很大程度上的自动化,但是最终还是 太复杂并需要手动配置。如果要性能,该怎么做? Part 1:ServiceMesh灵魂拷问一:要架构还是要性能? Proxy Mixer0 码力 | 43 页 | 2.90 MB | 6 月前3
Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展Mesh是一个主要针对七层的网络解决方案,解决的是服务间的连通问题Service Mesh是下一代的SDN吗? 通信网络 l 互不兼容的专有设备 l 基于IP的通信缺乏质量保证 l 低效的业务部署和配置 ... 微服务系统 l 互不兼容的代码库 l 不可靠的远程方法调用 l 低效的服务运维 ... 通信网络和微服务系统面临类似的问题:Service Mesh是下一代的SDN吗? Network 具有较高的抽象层次,比较容易提取统一的控制面标准? • 主要面向layer 7及以上? • SMI能否统一控制面标准?如何避免成为最小公分母,扩展支持其它协议? Ø 南向接口 • 面向流量和路由配置 • xDS v2将统一数据面标准? • xDS接口包含有较多实现相关内容:Listener, Filter, 能否可以成为一个通用的接口协议? 是否会出现Envoy之外的大量数据面实现? • Desktop OtherSystems Mobile DexMesh Ingress Pod Microservice Envoy (Telemetry, Policy check) 配置数据(服 务信息,路由 信息等) 定制Istio组件 应用微服务 业务请求 控制流 图例说明 Pilot Mixer APP: Canary Deployment K8s API0 码力 | 27 页 | 11.99 MB | 6 月前3
进击的 Traefik | 云原生边缘路由器探秘Swarm, Kubernetes, M arathon, Mesos, Consul, Etcd, Z ookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的 配置文件进行设置Traefik 项目 •https://github.com/containous/traefik •MIT License •Written in Go •25,400+⭐ 2 Services 负责配置最终处理传入请求 的实际服务。 • 负载均衡(针对应用实例):轮询( 目前支持)、session 亲和性 • 带权重的轮询:仅可用于在 Service 之间,并且目前只支持 File Provider • Mirror:将发送到服务的请求镜像复 制到其他服务去,目前只支持 File ProviderMiddlewares配置 • 静态配置:Traefik 启动时的 启动时的 配置,Provider 连接信息、要 监听的 EntryPoints,通过配置 文件、命令行参数、环境变量 定义 • 动态配置:Traefik 处理请求 的所有配置,证书、路由、服 务、中间件等,动态改变、无 缝更新1 Traefik 介绍 2 Traefik 2.0 核心概念 3 Traefik With Docker 4 Traefik With KubernetesDocker0 码力 | 35 页 | 8.58 MB | 6 月前3
网易云Service Mesh的产品架构与实现单次上线需求列表多,上线时间长,影响面大 简化扩容: 由于业务多,每一次扩容需要增加的配置比较杂。一些不起眼的小业务虽然不是扩容的主要目 的,也需要慎重考虑 容灾降级:核心业务与非核心业务耦合,在关键时候互相影响 微服务拆分微服务架构要点 微服务架构 要点 服务发 现 负载均 衡 集群容 错 高可用 配置管 理 调度和 部署 伸缩性 集中化 日志 集中式 监控 分布式 Service Mesh作为微服务框架www.163yun.com Service Mesh生态www.163yun.com 数据面Envoy • 轻量级的proxy • 静态配置,热加载,热重启 • 动态配置,拉取模式www.163yun.com 控制面Pilotwww.163yun.com Service Mesh优缺点163yun.com 二、网易云微服务框架介绍163yun.com 163yun.com Haproxy作为service mesh的Agentwww.163yun.com 从haproxy到envoy consul consul consul 注册中心 配置中心 haproxy 平台 haproxy 订单 haproxy 会员 /agents/haproxy/haproxy.ctmpl /consul-template /haproxy0 码力 | 35 页 | 6.33 MB | 6 月前3
陌陌Service Mesh架构实践多语言支持 • Java、PHP、Python、Go、NodeJs • Redis传输协议 / 复用Redis客户端 • 服务发布Proxy / 并行调用Proxy 服务治理 • 服务治理平台、配置中心 • 监控、日志、分布式跟踪 • 异步调用、压测7/24 流量代理机制 PHP服务发布入流量代理 PHP并行调用出流量代理 16年起开始使用流量代理机制解决跨语言服务治理问题8/24 sidecar模式 • 与业务进程相同Pod不同Container 陌陌微服务容器化部署比例在80%以上 并且还在进一步推进 业务接入方式 • 研发人员:升级SDK版本 • SRE:发布系统配置发布项 sidecar模式部署17/24 数据平面升级方式 – 平滑升级机制 平滑要求 • 业务进程不重启 • 流量保持不变 方案选择 • FD迁移 vs 哨兵集群 原理 • sendmsg API层接口耗时增长小于6%21/24 数据平面资源占用 与业务容器共享CPU、内存资源配额 为Agent JVM分配256M内存资源 服务器消耗增加约10% 分配方式 内存资源 服务器资源 维持现有内存使用率与 服务器配置的最坏情况 实际需预留 600M内存22/24 数据平面兼容原有架构 对接原有系统 • 使用原有系统SDK、私有协议 直连访问 兼容未升级服务 • Proxy Agent支持以原有通信 协议处理请求、发起调用23/240 码力 | 25 页 | 1.25 MB | 6 月前3
共 23 条
- 1
- 2
- 3













