Service Mesh结合容器云平台的思考和实践
• 解决微服务化后带来的问题 温饱问题 • 计算资源的快速分配 • 基本的监控 • 快速部署 • 易于分配的存储 • 易于访问的外围(负载均衡) • 服务注册和发现 致富问题 • 认证和授权 • 智能路由 • 流量管理 • 服务降级 • … • 微服务拆分原则 • 业务API设计 • 数据一致性保证 • 可扩展性考虑 • …Kubernetes对于微服务的支撑 Configmap、Secret 负载均衡 简单负载均衡,基于Iptables Roundrobin 流量控制 简单根据服务实例进行控制云平台微服务演进之基于API网关的微服务方案 API网关功能增强 • 安全认证 • 流量控制 • 审计日志 • 黑白名单 • …K8S集群 云平台微服务演进之基于Spring Cloud的微服务方案 NS A Service Zuul Nginx Eureka 智能路由(灰度、蓝绿) • 流量管理(超时、重试、熔断) • 故障处理 • 故障注入 • … Mixer • 前提条件检查:安全认证,黑白名单, ACL检查 • 限流管理 • 遥测报告:日志监控 控制平面 数据平面 Istio-Auth • 服务间认证 • 终端用户认证Istio的核心组件 • Envoy 是一个高性能轻量级代理,它掌控了service的入口流量和出口流量,它提供了很多内置功能,如动态负0 码力 | 28 页 | 3.09 MB | 5 月前3Service Mesh 在蚂蚁金服生产级安全实践
配置管理。Istio 方案中选择 UDS 通信方案,Istio的 方案证书管理流程由 Citadel , Citadel Agent , Pilot 协同完成 Pilot 负责 UDS 路径配置下发,用户通过 Policy CRD 和 DestinationRule 来决策需要给哪些 Sidecar 下发 Sidecar 收到SDS Config 后,然后以 JWT 格式封装身份信息(service 通过应用Pod 中增加一个安全 Sidecar,以API接口的形式为APP及其他Sidecar 提供基础的身 份颁发、身份验证功能 解耦应用的业务逻辑与认证授权逻辑,减少开发量; 提供密码学安全的认证授权逻辑,提高安全性; 全网统一的认证授权方式,去凭证,减少攻击面; 为每个应用建立唯一的全局应用身份标识,提供服务调用全链路溯源能力,及可问责能 力(accountability)。使用可信身份服务构建敏感数据下发通道 根据安全Sidecar返回的可信属性,进行权限校验逻辑。使用可信身份服务构建敏感数据下发通道使用可信身份服务构建敏感数据下发通道 密钥更新通道 安全Sidecar 的认证能力中依赖密钥等敏感信 息,在参考社区SDS方案的基础上,实现敏感 信息的管理及安全下发通道。 用户将密钥等信息通过CRD方式提交至K8s, 通过K8s的RBAC方式控制访问权限 拓展Citadel Watch 密钥相关的CR,筛选后 下发至对应的Citadel0 码力 | 19 页 | 808.60 KB | 5 月前3Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?
管理Mixer是许多客户不想负担的 • 进程外适配器强制运维管理适配器,增加此负担 • 性能 • 即使使用缓存,在数据路径中同步调用Mixer也会增加端到端延迟 • 进程外适配器进一步增加了延迟 • 授权和认证功能是天然适合mixer pipeline的,但是由于mixer 设计 的延迟和SPOF(单点故障)特性,导致直接在Envoy中实现 (Envoy SDS) • 复杂性 • Mixer使用一组称 3:ServiceMesh灵魂拷问三:要不要支持虚拟机? 创新思路:补齐虚拟机的短板,向容器看齐,维持一致的用户体验 镜像 容器 实例模版 自动化启动脚本 k8s replicaset 托管式实例组 Google Traffic Director 服务 Google Traffic Director 路由规则 手工 手工 非托管式实例组 用户体验 Traffic Director 将对虚拟机的支持提升到新的高度Part 4:ServiceMesh灵魂拷问四:说好的供应商不锁定呢? 应用 控制平面 数据平面 最终用户体验 工具 生态体系 Service Mesh Interface Universal Data Plane API “SMI 是在 Kubernetes 上运行服务网格的规 范。它定义了由各种供应商实现的通用标准。这 使得最终用户的标准化和服务网格供应商的创新 可以两全其美。SMI 实现了灵活性和互操作 性。”0 码力 | 43 页 | 2.90 MB | 5 月前3Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展
在实践中,服务网格通常实 现为一组轻量级网络代理,它们与应用程 序一起部署,但对应用程序透明。什么是Service Mesh?- by Istio 服务发现 负载均衡 流量控制 ... 黑白名单 限流 ... 身份认证 通信加密 权限控制 ... 调用追踪 指标收集 ...什么是Service Mesh?- 从网络的视角 Service Mesh关注点 网络视角: Service Mesh是一个主要针对七层的 Mesh Service Mesh Control Plane API Gateway:应用网关逻辑 • 使用不同端口为不同租户提供访问入口 • 租户间的隔离和访问控制 • 用户层面的访问控制 • 按用户的API访问限流 • API访问日志和计费 Service Mesh:统一的微服务通信管理 • 服务发现 • 负载均衡 • 重试,断路器 • 故障注入 • 分布式调用跟踪 理 Service Mesh Service V1 Service V1 Service V1 Service V2 存量网络设备 “金丝雀”设备 消息上报 “金丝雀”用户 灰度发布应 用 运维 通过Envoy插件和Istio协议扩展来实现?产品化增强-其他 • APP:灰度发布、流量控制,更多的APP待业务场景触发 • IPV6支持增强 • 在Istio中集成方法级的调用跟踪0 码力 | 27 页 | 11.99 MB | 5 月前3网易云Service Mesh的产品架构与实现
日志分析 调用次数 调用时间 服务治理 日志分析 统计监控 Data Stream Kafka Storm集群 Hbase Hadoop Redis DDB NQS 监控平台 用户空间VPC 管理控制服务 云主机 云网络 云硬盘 UAS Agent 对象存储 UAS Server OpenStack 管控节点(主) 管控节点(备) 监控节点(主) 监控节点(备) 注册中心 w.163yun.com 容器管理平台本身也是微服务 所有的多租户容器请求入口流量 对接多个业务:OpenStack, Kubernetes,所有PaaS,持 续集成,镜像仓库,计费,用 户,认证,…… 高可用,横向扩展 熔断,限流,降级 负载均衡,路由 监控,统计 可靠消息163yun.com0 码力 | 35 页 | 6.33 MB | 5 月前3Service Mesh 高可用在企业级生产中的实践
• 罗广明、百度高级工程师 • ServiceMesher 社区(servicemesher.com)治理委员会核心成员 • 云原生社区(cloudnative.to)联合创始成员 • 百度云智学院认证讲师 • 目前在「百度云云原生团队」负责微服务治理与相关中间件研发 • 对云原生架构与技术、研发流程、团队文化有深入研究,对 Spring Cloud、 Service Mesh 等微服务治理框架有丰富实践经验2/总页数 Sidecar21/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 对于一个应用系统来说一定会有极限并发/请求数,即总有一个TPS/QPS阀值, 如果超了阀值则系统就会不响应用户请求或响应的非常慢,因此我们最好进行过 载保护,防止大量请求涌入击垮系统。 • 服务限流其实是指当系统资源不够,不足以应对大量请求,即系统资源与访问量 出现矛盾的时候,我们为了保证有限的资源能够正常服务,因此对系统按照预设0 码力 | 38 页 | 1.38 MB | 5 月前3Service Mesh Meetup #3 深圳站
它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以 及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、 访问控制和端到端认证等。什么是 Istio • Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有 负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任 何改动。 • 想要让服务支持 Istio,只需要在您的环境中部署一个特殊的 sidecar 代理,使用0 码力 | 45 页 | 18.62 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
• 内部使用,保证持续投入 • 请放心Sofa Mesh的合作模式:多层次全方位开放 基础类库 功能模块 完整产品 解决方案 服务注册 熔断 RPC 路由规则 负载均衡 限流 加密 认证 Golang Sidecar 增强版本 Pilot Edge Sidecar 服务治理 中心 Sofa Mesh 金融云 可以当Envoy用,如 果你需要一个golang 版本的数据平面0 码力 | 37 页 | 7.99 MB | 5 月前3蚂蚁金服Service Mesh渐进式迁移方案
客户端有改造,单跳Service Mesh时代的客户端和寻址方式 服务发现 加密 负载均衡 请求路由 目标服务 的标识 序列化 链路追踪 故障注入 日志 监控 Metrics 熔断 限流 服务降级 前置条件检查 身份认证 密钥管理 访问控制 …… 下沉到 Service Mesh 轻量级客户端 传统 侵入式 客户端 客户端应该尽可能的轻薄通用: 实现简单,方便跨语言,减少升级可能 最简单,最通用,支持最广0 码力 | 40 页 | 11.13 MB | 5 月前3Service Mesh的实践分享
Server Reg agent Proxy address File 服务注册 宿主机 物理机 物理机 Tracing system Trace-log Trace-log 用户与Istio的区别 我是作者名称没有对称的server端agent • 性能考虑 • Proxy已经增加了一跳,server再增加一跳会加剧 性能压力 • 部署考虑 • 服务端agent成为必选项会增加运维压力 到 remote proxy解决 难度小。集群通过LVS接入,单 台机故障可以下线 升级难度 难度极大。需要客户端修改 代码、发布、上线。 难度小。切换流量到remote proxy可以实 现用户无感知的无损升级。 难度小。通过LVS摘流量滚动升 级 动态扩容难度 应用内置,无须扩容 物理机sidecar单客户端,无须扩容 Daemonset根据宿主机的配置调整Proxy的 资源以应对客户端增多的情况。容量超标 全链路服务综合治理 • 实时上下游超时治理 • 实时上下游限流治理 • 智能路由 • 开源智能参数治理 • 现状 • 依赖用户手工配置参数(超时时间、限流) • 服务实例的差异导致配置相当复杂,容易 配置不合理 • 无法动态根据系统指标调整阈值 • 目标 • 用户无需拍脑袋设值,服务治理中心根据 历史指标进行推荐,对不合理的设置进行 建议,如 • 根据应用的历史延迟时间推荐超时设置0 码力 | 30 页 | 4.80 MB | 5 月前3
共 18 条
- 1
- 2