网易云Service Mesh的产品架构与实现
service-fabric-ben-spencer/ Kaola163yun.com 开发独立: 代码耦合度比较高,修改代码通常会对多个模块产生影响,操控难度大,风险高 上线独立: 单次上线需求列表多,上线时间长,影响面大 简化扩容: 由于业务多,每一次扩容需要增加的配置比较杂。一些不起眼的小业务虽然不是扩容的主要目 的,也需要慎重考虑 容灾降级:核心业务与非核心业务耦合,在关键时候互相影响 设计思路 Agent热加载 兼容SpringCloud,Dubbo框架 控制面租户隔离 适配VPC网络 同IaaS或者Kubernetes解耦 Restful API 高可用 横向扩展 可视化163yun.com 网易微服务框架www.163yun.com 网易微服务框架www.163yun.com 新一代微服务治理平台 服务A jar envoy 服务B jar envoy0 码力 | 35 页 | 6.33 MB | 5 月前3深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统
1:蚂蚁金服的Kubernetes现状 非云 资源 云化 资源 基础 服务 蚂蚁 k8s 核心 CRI Kubernetes API Server 极速交付 分时复用 弹性容量 资源画像 规模化调度 高可用容灾 可视化 服务 Cluster Control Panel 在线应用 计算型混部任务 CSI CNI Device Plugin runc nanovisor 日志服务 云盘 本地多盘 弹性网卡0 码力 | 19 页 | 2.18 MB | 5 月前3严选 ServiceMesh 实践
等 04.服务监控 • 借助APM的能力 • 发现异常调用链 • 分析请求来源及去向 06.问题定位与诊断 • 服务元数据定义:服务等级、服务集群、服 务器规格及环境 • 服务地图:可视化的服务关系,如业务拓扑、 服务依赖拓扑,集群视图 01.服务定义 • 限流、资源隔离、熔断、降级等配置 • 负载均衡:流量调配、分流、切流量等 • 服务路由 • 访问控制配置 03.调用控制0 码力 | 25 页 | 2.07 MB | 5 月前3Service Mesh结合容器云平台的思考和实践
程运行在不同容器里,也一样能够通讯。而借助这种通讯机制,可以自动 实现新envoy进程替换之前的老进程,也就是所谓的envoy hot restart。对于Istio和云平台集成的一些思考 • 可视化的统一管理平台 • 多租户的资源隔离 • Mixer的性能问题参考资料 • Service Mesh深度学习系列|istio源码分析之pilot-agent组件分析 • Patten: Service0 码力 | 28 页 | 3.09 MB | 5 月前3Service Mesh的实践分享
Istio的设计很美好,但现实总是很残酷 • IPTable性能不总是足够好 • 任何组件都有不可用的时候。客户端无论如何都要有自切换的能力和可 用的备份 • 尽量减少外部组件依赖。业务/运维总会有各种特殊的需求,依赖外部组 件会给自定义需求带来障碍。 • 保持客户端选择proxy的自由度和灵活性,在我们的实践中好处大 于坏处胖客户端 vs. service mesh vs. cluster 胖客户端 Sidecar(物理机) 物理机sidecar单客户端,无须扩容 Daemonset根据宿主机的配置调整Proxy的 资源以应对客户端增多的情况。容量超标 则临时转移到remote proxy 承接临时流量和非主要流量, 基本无动态扩容需求。上云之 后(目前物理机)可以支持动 态扩容Sidecar(in Pod) vs. Daemonset + remote proxy Sidecar(in Pod) Daemonset 对容器的影响 Mixer的中央节点问题 • 传统基于日志收集的tracing方 案足够成熟 • 内部实现一套可插拔的鉴权框 架也能接受混合部署 vs. 绑定K8s • 历史原因导致长期都会物理机 和容器并存,内部需求必须要 同时支持物理机和云 • 绑定K8s能够享受K8s的红利, 但也限制了使用范围 +服务治理程度更接地气 • 不停的迭代、落地、反馈,打 造一系列的实用的治理功能 • 规则路由、标签路由、邻近机房0 码力 | 30 页 | 4.80 MB | 5 月前3Service Mesh Meetup #3 深圳站
服务网格(Service Mesh)这个术语通常用于描述构成这些应用程序 的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服 务网格越来越难以理解和管理。 • 它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以 及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、 访问控制和端到端认证等。什么是 Istio • Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有0 码力 | 45 页 | 18.62 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
基于RPC内容的流量调度 ü 升级窗口有限,方案必须简单高效 Ø运维体系,容器化建设等方面适配 ü 蚂蚁运维架构建立在流量调度的基础上 ü 容器管理平台更替快速进行中 ØGolang 性能,成本评估符合蚂蚁实际需求2 构架SOFAMesh 1SOFAMosn 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 种典型流程特征 Ø定义Stream生命周期,核心事件 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters Ø提供可扩展的路由寻址能力 Ø提供可扩展的后端管理,负载均衡,健康检查能力0 码力 | 44 页 | 4.51 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
Scala编写,基于JVM资源消耗大 • 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy • 安心做数据平面, 提供XDS API • 设计优秀,性能和稳定性表现良好 • C++编写,和蚂蚁的技术栈差异大 • 蚂蚁有大量的扩展和定制化需求 • 我们非常认可envoy在数据平面上的表现开源方案选择之第二代Service0 码力 | 37 页 | 7.99 MB | 5 月前3蚂蚁金服网络代理演进之路
ECDHE-keyshare扩展 将TLS1.3草案中的1-RTT机制通 过扩展的方式提前应用 • ECC-signature扩展 使用高效ECDSA签名算法的同 时,兼容广泛使用的RSA证书 按需握手 • 业务可根据需求灵活选择明文 或密文传输,提升业务效率 动态Record Size • 平衡吞吐与时延 高效 优化 灵活 TLS扩展安全合规能力持续升级 国密算法 • 拥抱监管 • 安全可控 • 金融科技 com/sofastack/sofa-mosn Written in go SOFAMosn是一个云原生安全网络代理 为什么自研golang版本? 跨团队合作需要考虑技术栈落地成本 Golang性能,成本符合蚂蚁实际需求 近十年的网络代理研发,运维经验SOFAMosn模块与能力划分SOFAMosn协程模型 ü 一条TCP连接对应一个Read协程,执行收包,协议解析 ü 一个请求对应一个worker协程,执行业务0 码力 | 46 页 | 19.93 MB | 5 月前3七牛容器云ServiceMesh实践
Docker + 生态链七牛容器云产品未来发展 • 更多功能 • 故障熔断 • 故障注入 • 业务配置动态分发 • 优化升级 • 性能优化: • DPDK + eBPF • 系统优化 • 根据需求裁剪Istio。解耦Envoy和其他组件 • 裁剪Istio相关CRD,简化系统结构ServiceMesher公众号 SOFAStack公众号 http://www.servicemesher.com0 码力 | 15 页 | 3.86 MB | 5 月前3
共 16 条
- 1
- 2