SOFAMOSN持续演进路径及实践分享
SOFAMOSN 持续演进路径及实践案例 陈逸凡 wugou.cyf@antfin.com 2019.1.6 Service Mesh Meetup #5 广州站Agenda Ø 背景 & 概览 Ø 持续演进路径 & 技术案例 Ø 实践案例 Ø 规划 & 展望 Ø QA背景 & 概览数据平面概览 SOFAMOSN • C实现,支持多语言扩展 • 基于Nginx扩展 • 开发不活跃 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 & 技术案例能力 0.1.0 0.2.0 0.3.0 0.4.0 Ø TCP代理/7层通用代理 Ø 简单匹配路由 Ø 集群管理 & 基本负载均衡(RR、 RANDOM) Ø SofaRpc及HTTP/1 Service p Client模拟方式:通过蚂蚁内部压测平台建立10w条SOFARPC链接 p 压测内容: 1K 请求/响应持续演进实践总结 ü 架构上,从一开始就遵循分层设计,模块解耦,统一编程模型接口,保证足够的架 构扩展性。 ü 性能上,针对IO、协议、内存、协程进行持续优化。相比最初版本,SOFARPC 协 议上对 0.1.0 版本 QPS 提升了 50%,内存使用减少了 40%;HTTP/20 码力 | 29 页 | 7.03 MB | 5 月前3严选 ServiceMesh 实践
历史包袱:现有的服务在不改造的情况下引入了服务治理能力 • 大大降低了中间件的研发投入和演进成本,也降低了业务和中间件的耦合成本 • 基础架构与业务架构可以独立演进 • 为多语言栈提供了服务治理能力7/24 持续演进的诉求 • 提供高质量的服务治理能力 • 增强流量管理能力 • 将更多治理特性(如限流、熔断、故障注入)与业务架构解耦 • 支持更多的协议 • 增强控制面 • 配合业务容器化上云及混合云架构8/24 Configuration Protocol(简称为 MCP,一套标准 GRPC 协议)19/24 质量保障体系 • CICD • 单元测试 • 性能基准自动测试 • 监控报警 • 版本升级机制 • Envoy 热更新机制 • 灰度发布机制:业务灰度+流量灰度 • 演练测试 • 业务回归验证20/24 一些坑 • Envoy 目前编译版本存在 Bug • 在 Istio pilot 升级到加入0 码力 | 25 页 | 2.07 MB | 5 月前3蚂蚁金服网络代理演进之路
化,定制业务逻辑,软 硬件一体解决方案 自研 02 2015 年无线通道协议,安 全升级, 连接收编 All in 无线 03 PC时代 移动时代 万物互联云原生时代 2018 年协议,安全持续升 级(QUIC,MQTT,国密), 云原生 再启程 03前世 F5 BigIP Netscaler自研四层网络代理 2011 2014 2018 未来 Ø 全面使用DPDK技术重构 Ø 时,兼容广泛使用的RSA证书 按需握手 • 业务可根据需求灵活选择明文 或密文传输,提升业务效率 动态Record Size • 平衡吞吐与时延 高效 优化 灵活 TLS扩展安全合规能力持续升级 国密算法 • 拥抱监管 • 安全可控 • 金融科技 AntTLS库 • 基于OpenSSL • 全面拥抱TLS1.3 • 国密优化实现,国密单证书标准支撑 • 支持SGX等可信机制 • 终端策略覆盖移动网络难点 § 优化对业务透明 § ROI考虑 好网更快 弱网更好 协议优化 支付宝网络接入层架构示意 § 关键词:动态Hpack + PB + 动态字典 + Zstd通信协议&架构持续升级 多终端&协议接入 架构升级 云原生生态融合 § MQTT协议的IOT设备接入 § 就近就优海外接入,智能调度 § 蚂蚁全球加速节点,全协议支持 § 支持UDPA § QUIC/HTTP30 码力 | 46 页 | 19.93 MB | 5 月前3Service Mesh Meetup #3 深圳站
支;(执行单元测试,测试状态呈现 MR 中) • 4. Reviewer 对 MR 进行 code review ,批准合并之后, feature/new_branch 会合并到 develop; • 5. 部署负责人将 develop 分支代码部署到测试环境,然后再通知 QA 测试;(脚本或者人工)有什么问题? • 效率低 • 没有代码检查; • 没有自动化测试(包括单元测试); • • 沟通成本高 • 开发需要通知负责人、测试、产品等;(而且是每次构建/部署 都需要) • 依赖多较好的开发流程(流程化、自动化) • 1. 开启一个新的 feature; • 2. Devloper 从 develop 分支新建一个 feature/new_branch 来做特定 feature 的开发; • 3. 开发完成后,提交 merge request(MR)请求合并到 develop 构建成功就执行你定义的工作流:打包镜像,触发 deploy 以及其他后续的 Automation Testing 等流程; • 10 . Drone 通知工作流程情况给开发/或者交付 QA 测试;如何提升工程效率?我是作者名称2017 年 DevOps 现 状调查报告DevOpsDevOps DevOps 不是一种新工具; DevOps 不是一种新团队; DevOps 不是一种新角色;0 码力 | 45 页 | 18.62 MB | 5 月前3服务增强器社区介绍
社区活动2019年 10 月31 日 正式开始 istio 1.5 官网文档的翻译。 2 个月 累计合并 PR 数超过 300 个。 300+ 超过 60 人参与了官网的翻译。 60+ 持续时间 合并 PR 数 参与人数 20 万+ 翻译字数 累计翻译的文档中汉字数超过 20 万。 /04 Istio.io 社区化翻译活动Istio 官网本地化活动卓越贡献者 官余棚 @gorda0 码力 | 7 页 | 20.77 MB | 5 月前3微博Service Mesh实践
· BeiJing 趋势 �6 微博Service Mesh实践 - WeiboMesh 微服务 1 容器器化 2 DevOps 3 云原⽣生 4 服务治理理与业务逻辑解耦,可持续交付跨语⾔言服务化⾯面临的问题 • 改造成本 • 服务治理理Service Mesh Meetup · BeiJing 改造成本 �8 微博Service Mesh实践 - WeiboMesh0 码力 | 43 页 | 1007.85 KB | 5 月前3Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展
社区参与情况 所有通用的故障修复、性能优化和新特性都提交PR合入了上游社区。包括: • Consul Registry性能和资源占用优化 • 多网络平面支持 在产品化过程中对Istio的改进会持续向社区进行贡献!Service Mesh中文社区 https://www.servicemesher.com 个人博客 https://zhaohuabing.com https://medium0 码力 | 27 页 | 11.99 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
ü 开源的内容 • 业界最新的技术 • 业界最好的架构(努力中J) • 内部使用同样产品落地 ü 开源的动机 • 吸引社区,谋求合作,开源共建 ü 开源项目的维护 • 内部使用,保证持续投入 • 请放心Sofa Mesh的合作模式:多层次全方位开放 基础类库 功能模块 完整产品 解决方案 服务注册 熔断 RPC 路由规则 负载均衡 限流 加密 认证 Golang Sidecar0 码力 | 37 页 | 7.99 MB | 5 月前3七牛容器云ServiceMesh实践
• 涉及K8S集群约20+集群 • 功能迭代 • 先南北,后东西 • 先原生,后二开 • 先管控面,后数据面落地场景—Spock测试平台 • 历史问题 • 分布式系统性能测试问题 定位难 • 多版本并发测试 • 故障注入较困难(代码侵 入性强) • 测试环境不稳定,后端Pod 频繁重启 • 解决方案 • Contour产品化 • Istio的灰度发布和流量管理 • Istio的 • 基于Istio的QoS产品化 • 跨集群流量调度 • 基于Istio的Tracing产品化落地场景—大数据产品 • 系统优化之路 • 多版本灰度升级 • 根据流量做横向伸缩 • 分布式系统性能测试问题 定位难 • 解决方案 • Istio南北流量分流策略产品化 • 基于Istio的QoS产品化 • 基于Istio的Tracing产品化 • 跨集群流量调度七牛容器云产品逻辑架构 Kubernetes0 码力 | 15 页 | 3.86 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
指标\软件 SOFAMosn Envoy QPS峰值 18000 N/A RT(avg) 12.354ms N/A MEM 100m N/A CPU 100% N/AGolang TLS单核性能测试 12 Ø环境 ü CPU: Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz ü 内存: 1.5G Ø软件 ü Nginx-1.13.8 with OpenSSL ECDHE-ECDSA-AES256-GCM-SHA384 Ø命令 ü ab -f TLS1.2 -Z $cipher -c 100 -n 200000 https://$ipGolang TLS单核性能测试 13Golang 单核加解密性能分析 14 ØGolang 对 RSA 上没有优化,并且暂无优化计划 ØGolang 对 p256 有汇编优化, p256MulInternal, p256SqrInternal等椭0 码力 | 44 页 | 4.51 MB | 5 月前3
共 16 条
- 1
- 2