蚂蚁金服网络代理演进之路
(Ant Global Network Accelarator) 网商 信用 保险 财富 支付 国际支付 小程序 微贷 科技开放 物联网 Spanner LVS(四层负载) DNS 网络控制面 LDC1 Spanner Spanner APP APP APP APP Keycenter HTTP1 TLS1.2 MMTP Mtls MQTT HTTP2 TLS1.3 QUIC 保证防重放攻击,因此要求应 用程序自己保证防重放攻击 Small Ticket • 自定义Session Ticket编码格式 • 160 byte -> 76 byte • Session Ticket扩展 用于会话复用,加速握手过程 • Cached-info扩展 缓存证书等服务端信息,避免 再次握手时重复传输数据 • ECDHE-keyshare扩展 将TLS1.3草案中的1-RTT机制通 过扩展的方式提前应用 Mesh 控制面 Galley Inspector Citadel Pilot Pod Dubbo 应用 SOFAMosn Pod SOFA 应用 SOFAMosn KMI Pod SOFA 应用 SOFAMosn Sigma TLS,国密 服务鉴权 流量控制 镜像中心 流量镜像 流量镜像 TLS,国密 服务鉴权 流量控制 TLS,国密 服务鉴权 流量控制蚂蚁金服率先大规模落地SOFAMesh0 码力 | 46 页 | 19.93 MB | 5 月前3严选 ServiceMesh 实践
• 数据面:cNginx • 控制面:Consul 管理后台5/24 服务治理能力 – 基于严选第一代ServiceMesh(cNginx) 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:基于 Consul √ 调用控制 协议支持:HTTP 1.X/2.X,可扩展至 TCP √ 路由控制:提供简单的路由能力 √ 负载均衡:支持 Hash 等 √ 流量复制:不提供 × 故障转移:继承 Nginx 的 Failover 机制 √ 安全 访问控制:主要依靠中间件 × 中间件 治理控制 熔断降级:主要依靠中间件 中间件 限流:速率限制 √ 中间件 资源隔离:主要依靠中间件 中间件 故障注入:不提供 × 超时控制、重试、重写、重定向等:继承 Nginx 的 timeout 机制 √ 监控/故障诊断 链路追踪:主要依靠中间件 为多语言栈提供了服务治理能力7/24 持续演进的诉求 • 提供高质量的服务治理能力 • 增强流量管理能力 • 将更多治理特性(如限流、熔断、故障注入)与业务架构解耦 • 支持更多的协议 • 增强控制面 • 配合业务容器化上云及混合云架构8/24 行业技术演进 - 通用型 Service Mesh 出现 2017年1月23日 加入 CNCF 2017年4月25日 1.0Releases0 码力 | 25 页 | 2.07 MB | 5 月前3Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展
在实践中,服务网格通常实 现为一组轻量级网络代理,它们与应用程 序一起部署,但对应用程序透明。什么是Service Mesh?- by Istio 服务发现 负载均衡 流量控制 ... 黑白名单 限流 ... 身份认证 通信加密 权限控制 ... 调用追踪 指标收集 ...什么是Service Mesh?- 从网络的视角 Service Mesh关注点 网络视角: Service Mesh是一个主 Control Plane Programmable API APP ...... Data Plane Control Layer Application Layer通过Service Mesh控制面统一管理F5和Envoy https://aspenmesh.io/2019/03/expanding-service-mesh-without-envoy/ Control Plane Security 解决类似的问题:运维和通信的问题 • 相似的解决方案:数据面+控制面+应用 • 不同的协议层次:SDN 2-4层,Service Mesh 主要为7层 SDN对Service Mesh发展的启发: Ø 北向接口 • 面向业务和运维 • 具有较高的抽象层次,比较容易提取统一的控制面标准? • 主要面向layer 7及以上? • SMI能否统一控制面标准?如何避免成为最小公分母,扩展支持其它协议?0 码力 | 27 页 | 11.99 MB | 5 月前3Service Mesh 在蚂蚁金服生产级安全实践
通过K8s的RBAC方式控制访问权限 拓展Citadel Watch 密钥相关的CR,筛选后 下发至对应的Citadel Agent节点 安全Sidecar 与 Citadel Agent 采用基于UDS 通信的Grpc服务获取密钥等敏感信息Service Mesh Sidecar 的TLS 生产级落地实践 TLS 实践难点 证书管理 开关切换 灰度控制 SDS 证书管理方案 通信场景下,为保证平滑无损的TLS切换能力,需 要分别控制 Server (Provider) 和 Client (Consumer)端的 TLS 行为 对于Server 端利用Istio 的Policy CRD 实现 Namespace + Service 粒度的开关控制 对于Client 端理想情况下,希望是通过Istio 的 DestinationRule 和 VirtualService 来控制。但由于相 关条件尚未具备,因此通过现有注册中心来控制 关条件尚未具备,因此通过现有注册中心来控制 Client TLS 能力Service Mesh Sidecar 的TLS 生产级落地实践Service Mesh Sidecar 的TLS 生产级落地实践 灰度控制 新功能总是离不开灰度过程,社区已有的Policy CRD 实现 Namespace + Service 的灰度能力不能满足 蚂蚁金服生产落地的要求,需要具备单机灰度、回滚能力。 借鉴社区0 码力 | 19 页 | 808.60 KB | 5 月前3大规模微服务架构下的Service Mesh探索之路
可扩展和可定制化是必备的 可 控 性 社 区 支 持 技术输出 内部落地 如何让开源产品接受我们的改动? 如何让社区和客户认可我们的产品?开源方案选择之第一代Service Mesh Linkerd • 无控制平面 • Scala编写,基于JVM资源消耗大 • 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy 公司和产品在社区知名度和影响力有限国内公司的选择之一:自研 华为:CES Mesher • 使用Golang编写 • 由go chassis演进而来 • 走的是已有类库->加proxy->再加 控制平面的路线 • 部分对接Istio • 细节暂时不清楚,即将开源 新浪微博:Motan Mesh • 也是使用Golang编写 • 全新实现(原有类库是基于Java) 老成持重的稳健思路:以proxy为切入口,第 这个产品思路唯一的麻烦在于编程语言的选择国内公司的选择之二:开源方案定制 腾讯:Tencent Service Mesh • 数据平面选择Envoy:成熟产品,符合 腾讯语言体系,内部广泛使用 • 控制平面据传“挣扎了一下”,最终还 是选择Istio,进行定制和扩展,解耦k8s国内公司的选择之三:另辟蹊径 UCloud:Service Mesh • 非常有意思的轻量ServiceMesh实践0 码力 | 37 页 | 7.99 MB | 5 月前3深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统
分时调度 Agent Pod 资源 Node 分时调度 Agent Pod 资源 容量平台 监控平台 巡检平台 流量控制 流量平台 配置中心 流量控制器 流量状态CRD 资源状态CRD 资源及流量控制CRD 资源控制 分时调度 控制器 Pod 资源 Pod 资源 Pod 资源10/19 Part 2:资源分时调度 分时切换效果 数万台 应用 Pods 分钟级 Kubernetes 实践 • CRD 在定义时需要明确未来的最大数量,大量CR 业务最好采用 aggregate-apiserver 进行扩展 • CRD 必须 Namespaced scope,以控制影响范围 • MutatingWebhook + 资源 Update 操作会给运行时环境带来不可控破坏,尽量避免使用这种组合 • 任何 controllers 都应该使用 informers,并且对写操作配置合理限流0 码力 | 19 页 | 2.18 MB | 5 月前3Service Mesh 在『路口』的产品思考与实践
图片来源:https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh 流量控制、监控8/39 金融级网络安全 Part 1: 为什么需要Service Mesh? 身份标识/访问控制 Service (client) Sidecar Sidecar Service (server) mTLS 服务鉴权 蚂蚁金服的产品实践 SOFAStack 双模微服务平台 DB Advisor Pod Spring Cloud 应用 SOFAMosn SOFA 服务注册中心 Service Mesh 控制平面 Galley Citadel Inspector Pilot 双模微服务 = 传统微服务 + Service Mesh 双剑合璧 服务路由 服务限流 服务拓扑 实时监控 降低资源成本,提升开发效率,享受生态红利 • 云原生不是目的,而是手段 拥抱云原生Part 3: 展望未来 和 istio 社区共建, 融合控制平面和传统注册中心/配置中心,加强 Pilot 的能力 APP SDK 各种注册中心 Galley Nacos 控制平面 (Pilot) MCP MCP SOFARegistry MCP APP Sidecar xDS/UDPA0 码力 | 40 页 | 15.86 MB | 5 月前3金融级云原生 PaaS 探索与实践
可扩展 • 高性能6/20 业务背景 业务诉求 • 运维成本 突发流量应用 | 机房 生命周期 • 运维效率 大规模下基础设施稳定性 • 业务 Mesh 化 精细化流量控制 基础组件升级 • 业务可复制 业务敏捷 SaaS 面向站点级别输出7/20 PaaS 能力 • 面向多租户多环境; • 基础资源管控; • 应用发布运维体系; • 业务实时监控,日志收集; Dockerfile 管理和生成; • 基于组件关联的 FedAppInstance + revision 版本控制; • 快速构建能力 - binary2Image 能力; 发布运维体系15/20 发布运维体系 发布运维 • 基础运维能力下沉; 原地升级,分组驱动; 流量控制; • 多应用有序发布; • 应用 ReleasePipeline 管理; 应用依赖项顺序; 发布顺序; 发布顺序; Beta 发布 分组发布; • 变更管控能力;发布流程 无损发布流程控制; 内部流量: RPC 外部流量: SLB(ALB) DNS 发布运维体系 InPlaceSet Controller Pod Service/Endpoint Controller LoadBalancer Controller 创建 更新 等待3s 执行升级 ReadinessGate=true0 码力 | 20 页 | 1.71 MB | 5 月前3Service Mesh结合容器云平台的思考和实践
Prometheus 统一配置管理 Configmap、Secret 负载均衡 简单负载均衡,基于Iptables Roundrobin 流量控制 简单根据服务实例进行控制云平台微服务演进之基于API网关的微服务方案 API网关功能增强 • 安全认证 • 流量控制 • 审计日志 • 黑白名单 • …K8S集群 云平台微服务演进之基于Spring Cloud的微服务方案 NS A Service 智能路由(灰度、蓝绿) • 流量管理(超时、重试、熔断) • 故障处理 • 故障注入 • … Mixer • 前提条件检查:安全认证,黑白名单, ACL检查 • 限流管理 • 遥测报告:日志监控 控制平面 数据平面 Istio-Auth • 服务间认证 • 终端用户认证Istio的核心组件 • Envoy 是一个高性能轻量级代理,它掌控了service的入口流量和出口流量,它提供了很多内置功能,如动态负 如动态负 载服务发现、负载均衡、TLS终止、HTTP/2 & gRPC流量代理、熔断、健康检查等功能。 • Mixer 翻译过来是混音器,Mixer负责在整个Service Mesh中实施访问控制和使用策略。Mixer是一个可扩展组 件,内部提供了多个模块化的适配器(adapter)。 • Pilot 翻译过来是领航员,Pliot对Envoy的生命周期进行管理,同时提供了智能路由(如A/B测试、金丝雀部0 码力 | 28 页 | 3.09 MB | 5 月前3网易云Service Mesh的产品架构与实现
com 控制面Pilotwww.163yun.com Service Mesh优缺点163yun.com 二、网易云微服务框架介绍163yun.com 设计思路 • 发现容易搞定,治理难搞定 • 发现不易替换,治理易替换 • 解耦容器平台与微服务 • 解耦服务发现与服务治理163yun.com 设计思路 Agent热加载 兼容SpringCloud,Dubbo框架 控制面租户隔离 Storm集群 Hbase Hadoop Redis DDB NQS 监控平台 用户空间VPC 管理控制服务 云主机 云网络 云硬盘 UAS Agent 对象存储 UAS Server OpenStack 管控节点(主) 管控节点(备) 监控节点(主) 监控节点(备) 注册中心 控制中心163yun.com 三、基于容器服务的微服务架构实践www.163yun.com 内部金融产品架构www0 码力 | 35 页 | 6.33 MB | 5 月前3
共 24 条
- 1
- 2
- 3