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是下一代SDN吗:从通信角度看Service Mesh的发展
在实践中,服务网格通常实 现为一组轻量级网络代理,它们与应用程 序一起部署,但对应用程序透明。什么是Service Mesh?- by Istio 服务发现 负载均衡 流量控制 ... 黑白名单 限流 ... 身份认证 通信加密 权限控制 ... 调用追踪 指标收集 ...什么是Service Mesh?- 从网络的视角 Service Mesh关注点 网络视角: Service Mesh是一个主要针对七层的 收集产品化增强-支持多网络平面 电信系统一般会有多个网络平面的,主要原因包括:避免不同功能的网络之间的 相互影响; 网络设计冗余,增强系统网络的健壮性; 为不同的网络提供不同的 SLA ;通过网络隔离提高安全性;通过叠加多个网络增加系统带宽 上图中的Kubernets集群使用了Knitter网络插件,部署了四个网络平面产品化增强-支持多网络平面 Istio1.0中不支持多网络平面,当服务地址 this Node This is an outbound request, it should be send out to 10.75.8.101产品化增强-支持多网络平面 我们对Istio的代码进行了改造,增加了多网络平面支持。 Pilot Service Registry Envoy Service A Register service (IP :10.75.8.101)0 码力 | 27 页 | 11.99 MB | 5 月前3网易云Service Mesh的产品架构与实现
术大会,Segmentfault 开发者大会,InfoQ全球架构师峰会(明星讲师),CSDN SDCC大 会,51CTO WOTA大会等 • 知名技术博主,博客可搜索popsuper1982,多篇文章推荐至全 球最大IT社区CSDN首页及《程序员》杂志 • 在工作中积累了大量运营商系统,互联网金融系统,电商系统等 容器化和微服务化经验01 目录 02 03 微服务与Docker、Kubernetes en-spencer/ Kaola163yun.com 开发独立: 代码耦合度比较高,修改代码通常会对多个模块产生影响,操控难度大,风险高 上线独立: 单次上线需求列表多,上线时间长,影响面大 简化扩容: 由于业务多,每一次扩容需要增加的配置比较杂。一些不起眼的小业务虽然不是扩容的主要目 的,也需要慎重考虑 容灾降级:核心业务与非核心业务耦合,在关键时候互相影响 微服务拆分微服务架构要点 + OpenStack + DevOps工具链网易云容器服务架构www.163yun.com 容器管理平台本身也是微服务 所有的多租户容器请求入口流量 对接多个业务:OpenStack, Kubernetes,所有PaaS,持 续集成,镜像仓库,计费,用 户,认证,…… 高可用,横向扩展 熔断,限流,降级 负载均衡,路由 监控,统计 可靠消息163yun.com0 码力 | 35 页 | 6.33 MB | 5 月前3Service Mesh Meetup #3 深圳站
测试;(脚本或者人工)有什么问题? • 效率低 • 没有代码检查; • 没有自动化测试(包括单元测试); • 沟通成本高 • 开发需要通知负责人、测试、产品等;(而且是每次构建/部署 都需要) • 依赖多较好的开发流程(流程化、自动化) • 1. 开启一个新的 feature; • 2. Devloper 从 develop 分支新建一个 feature/new_branch 来做特定 feature 它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以 及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、 访问控制和端到端认证等。什么是 Istio • Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有 负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任 何改动。 • 想要让服务支持 Istio,只需要在您的环境中部署一个特殊的 sidecar 代理,使用0 码力 | 45 页 | 18.62 MB | 5 月前3Service Mesh 高可用在企业级生产中的实践
• 罗广明、百度高级工程师 • ServiceMesher 社区(servicemesher.com)治理委员会核心成员 • 云原生社区(cloudnative.to)联合创始成员 • 百度云智学院认证讲师 • 目前在「百度云云原生团队」负责微服务治理与相关中间件研发 • 对云原生架构与技术、研发流程、团队文化有深入研究,对 Spring Cloud、 Service Mesh 等微服务治理框架有丰富实践经验2/总页数 开发灵活、简便 • 社区生态强大、活跃度高 Spring Cloud 的优缺点 缺点 • 仅适用于 JAVA 应用、Spring Boot 框架 • 侵入性强 • 升级成本高、版本碎片化严重 • 内容多、门槛高 • 治理功能仍然不全5/总页数 优点 • 微服务治理与业务逻辑解耦 • 异构系统的统一治理 • 三大技术优势: • 可观察性 • 流量控制 • 安全 Service Mesh 的优缺点 4 2 7 4 3 • 服务端容灾与节点数14/总页数 注册中心 - Consul • 客户端容灾 客户端缓存 !15/总页数 注册中心 - Consul • 架构设计 • 多地域? • 多租户?16/总页数 通过治理策略保证服务高可用 /0317/总页数 治理策略 & 高可用 描述 N个9 可用性级别 年度停机时间 基本可用 2个9 99% 87.6小时 较高可用 3个90 码力 | 38 页 | 1.38 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
我们的反思 • 认可这样的抽象和隔离,确实有必要从应用中剥离出来 • 但是要加多一层Mixer,多一次远程调用 • 抽象和隔离在Sidecar层面完成,也是可以达到效果的 • 对于Check和Quota,性能损失太大,隔离的效果并不明显 应用 Sidecar Mixer 基础设施后端 但是多付出一次远程 调用是否有足够必要? 对基础设施后端的访问的确 可以下沉到Service Mesh 科技开放,走出去看更大的生态 • 蚂蚁有丰富的业务场景,技术体系也经历了很长时间的发展,沉淀了很多自研产品 • 蚂蚁本身业务上的开放策略,要求技术也要开放,而且要在更丰富的场景下去磨炼 • 在此期间,我们趟坑无数,走了N多弯路,演进了N个版本,我们期望能过通过开源和 开放,让社区跑的更快,节省更多时间 • 我们认为金融领域下的分布式架构设计有独特的原则,作为实践者,我们期望能在标准 化上跟社区一起沉淀和共建,期望做些贡献,有些建树Sofa • 内部使用,保证持续投入 • 请放心Sofa Mesh的合作模式:多层次全方位开放 基础类库 功能模块 完整产品 解决方案 服务注册 熔断 RPC 路由规则 负载均衡 限流 加密 认证 Golang Sidecar 增强版本 Pilot Edge Sidecar 服务治理 中心 Sofa Mesh 金融云 可以当Envoy用,如 果你需要一个golang 版本的数据平面0 码力 | 37 页 | 7.99 MB | 5 月前3金融级云原生 PaaS 探索与实践
金融级云原生 PaaS 探索与实践 王成昌(晙曦)蚂蚁金服技术专家2/20 一、业务背景 二、多集群管控 三、发布运维体系 目 录 contents 目录3/20 一、业务背景 业务背景4/20 业务背景 业务架构 演进 • 容量 应用|数据库|机房 • 容灾 机房|地域5/20 业务背景 业务架构 单元化 • 高可用 • 一致性 • 可扩展 • 业务可复制 业务敏捷 SaaS 面向站点级别输出7/20 PaaS 能力 • 面向多租户多环境; • 基础资源管控; • 应用发布运维体系; • 业务实时监控,日志收集; • 机房级和地域级容灾能力; 业务背景业务背景 CAFÉ API Server Aggregation Layer 异地多活架构 同城双活架构 K8S API Server 基础发布运维 跨集群应用 资源管理 跨集群发布策略 多集群管理 跨集群网络 跨集群镜像管理 蓝绿发布 灰度分组发布 中间件变配 (DRM/Scheduler/Message) Mesh流调拨和治理 弹性建站/下站 容器腾挪/迁移 容灾切换和恢复 应急预案管理 … 分钟级容灾切换和恢复 全面变更风险管理 无限弹性可扩展 业务架构 产品层 云原生 PaaS 产品架构方案 7/209/20 二、多集群管控 多集群管控10/200 码力 | 20 页 | 1.71 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters Ø提供可扩展的路由寻址能力 Ø提供可扩展的后端管理,负载均衡,健康检查能力 Ø维护上/下游核心指标转发流程 8 IO Read Codec 12 Ø模块化,分层解耦 Ø统一的编程模型接口 Ø可扩展的事件驱动模型 Ø可扩展的路由/后端管理机制 Ø更好的吞吐量3 能力核心能力 1 网络处理 •网络编程接口 •链接管理 •事件机制 •Metrics 收集 •TCP 代理 •TLS 支持 •TProxy 支持 •平滑 reload •平滑版本升级 多协议 •SOFA RPC •HTTP 1.x (待优化) •HTTP ØGC 优化 ü避免入堆 ü减少内存 copy ü内存使用整体化,降低 scanobject 成本 ü使用 GC 亲和的数据结构 ü适度使用 sync.Pool ü…IO 4 Ø优化 ü尽可能多读,同时减少SetReadDeadline频繁调用,实现见 IOBuffer.ReadOnce ü适度 buffer 写数据,频繁写系统 IO 会造成写效率下降 Ø均衡 ü读写均衡是高吞吐量的保证0 码力 | 44 页 | 4.51 MB | 5 月前3Service Mesh 在蚂蚁金服生产级安全实践
通过应用Pod 中增加一个安全 Sidecar,以API接口的形式为APP及其他Sidecar 提供基础的身 份颁发、身份验证功能 解耦应用的业务逻辑与认证授权逻辑,减少开发量; 提供密码学安全的认证授权逻辑,提高安全性; 全网统一的认证授权方式,去凭证,减少攻击面; 为每个应用建立唯一的全局应用身份标识,提供服务调用全链路溯源能力,及可问责能 力(accountability)。使用可信身份服务构建敏感数据下发通道 ID、应用名等),并返回给应用 B。 应用 B 根据安全Sidecar返回的可信属性,进行权限校验逻辑。使用可信身份服务构建敏感数据下发通道使用可信身份服务构建敏感数据下发通道 密钥更新通道 安全Sidecar 的认证能力中依赖密钥等敏感信 息,在参考社区SDS方案的基础上,实现敏感 信息的管理及安全下发通道。 用户将密钥等信息通过CRD方式提交至K8s, 通过K8s的RBAC方式控制访问权限 拓展Citadel0 码力 | 19 页 | 808.60 KB | 5 月前3蚂蚁金服Service Mesh渐进式迁移方案
客户端有改造,单跳Service Mesh时代的客户端和寻址方式 服务发现 加密 负载均衡 请求路由 目标服务 的标识 序列化 链路追踪 故障注入 日志 监控 Metrics 熔断 限流 服务降级 前置条件检查 身份认证 密钥管理 访问控制 …… 下沉到 Service Mesh 轻量级客户端 传统 侵入式 客户端 客户端应该尽可能的轻薄通用: 实现简单,方便跨语言,减少升级可能 最简单,最通用,支持最广0 码力 | 40 页 | 11.13 MB | 5 月前3
共 24 条
- 1
- 2
- 3