四年磨一剑:蚂蚁集团注册中心 SOFARegistry 的开发实践之路

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 四年磨一剑:蚂蚁集团注册中心 SOFARegistry 的开发实践之路 向旭 / 李旭东
2.
3. 分享内容 • 蚂蚁集团注册中心的10年 • 新挑战:SOFARegistry  架构:超大规模  质量:高效迭代  运维:自动化 • 开源与共赢
4. 服务发现的核心能力
5. 演进:V1 引进淘宝的 configserver 架构:单节点,master/slave 备份 面临问题 •容量瓶颈 •容灾风险
6. 演进:V2 横向扩展 架构:拆分 session/data,水平扩展 •session:处理连接 •data:数据分片存储 面临问题 •运维成本:serverlist 维护
7. 演进:V3/V4 LDC 支持和容灾 架构:单元化支持 面临问题 •运维成本:serverlist 维护 •跨集群服务发现
8. 演进:V5(SOFARegistry) 架构: • 新增 meta(raft):serverlist 维护 • 数据分片:一致性 hash • 数据多副本容灾
9. 演进:V6(SOFARegistry) 架构: • meta去强一致性依赖 • 数据分片:SlotTable • 数据多副本容灾:diff sync
10. Feature Consul Zookeeper Etcd Eureka 服务健康检查 定期healthcheck (http/tcp/script/docker) 定期心跳保持会话 (session) + TTL Kv存储服务 支持 支持 支持 - - 一致性 raft ZAB raft 最终一致性 最终一致性 cap cp cap cp ap ap 使用接口(多语言能力) 支持http和dns 客户端 http/grpc 客户端/http 客户端(java) watch支持 全量/支持long polling 支持 支持long polling 不支持(client定期 fetch) 支持(服务端推送) 安全 acl/https acl https支持 - acl spring cloud集成 支持 支持 支持 支持 支持 定期 定期心跳+TTL;支持自 refresh(http)+TTL 定义healthCheck SOFARegistry 定期连接心跳 + 断链敏感
11. 挑战:数据规模增长(扩展能力)
12. 挑战:集群数增长(运维成本) 支付 商业化 私有云 开发 芝麻 商业化 公有云 线上 消金 } JOIN { 站点 国际... 测试 环境 网商 灰度 国际- 德国 保险 国际- 新加坡 金控子 站点... 预发 仿真
13. 挑战:业务 7*24 运维(可用性) 业务运维
14. 云原生:naming 挑战 应用实例数 快速增长 微服务/faas 拆分实例 支撑更大的规 模 应用实例生 命周期短 快速交付 autoscale 应用多语言 支持 ai/bff/小程 序 侵入性低 更精细的服 务路由 mesh流量精 细化运维 服务治理 k8s事实上 标准 •k8s-service 集群内通用服 务发现 •多集群部署 常态 更好的推送性 能 •和k8s 结合
15. SOFARegistry6.0 目标:面向效能 质量 运维 应急 功能测试 灰度 观测性 性能基线 发布效率 诊断 疲劳测试 运维系统 成本 小规模自 愈 最终一致 业务打扰 率 大规模快 速恢复 混沌测试
16. SOFARegistry6.0 目标:面向效能 架构 • 应用级服务发现 • 降数据规模 • 移除raft • 节点无状态 • slot&&slotTable • 增强数据片管控能力 • 优化数据通信性能 • 支撑更大规模 • 容灾备份集群 • 2分钟逃逸 • 跨版本容灾 质量效能 • SOFARegistryChaos自动化测试 • 功能回归 • 性能测试 • 疲劳测试 • 混沌测试 • 常规化线上故障攻防演练 运维效能 • nightly build • 灰度环境以下自动发布 • 运维标准化 • 交付成本低 • 可观测 • 自愈 • 小规模应急自动化
17. SOFARegistry6.0 架构原则 meta 一致性 •解决强一致的最好方法是不要依赖强一致 •脑裂时 data 节点具备能力获取完整数据 推送正确的数据 •最终一致明确可预期,最终:时间延迟, 一致:数据完整性 横向扩展 •数据分片存储,避免单节点存全部数据的 约束
18. 数据最终一致性
19. Slot 调度 无损迁移 data灰度
20. 规模 地址列表 session:240 IP数1K~7.2K data:50 包大小 250K~1.8M client:10w+
21. 应用级-数据模型
22. 应用级-兼容性:平滑/遗留应用 双集群双订阅发布切换 兼容无法升级的遗留应用
23. 应用级-效果:数据下降 1 个数量级
24. SOFARegistryChaos:自动化测试 功能 观测性 Trace • • • • 基于k8s一键部署 横向扩展支持大规模压测 client编排:pub/sub/disconnect 故障编排 • • • • 端到端推送延迟的分步 数据完整性:推少/推错 故障注入校验正确性/恢复时间 线上小流量部署预警 • 定位有问题的订阅端/发布端 • 异常期间各个client的状态以及操作历史
25. SOFARegistryChaos:观测性
26. SOFARegistryChaos:失败 case
27. 运维效能:nightly build
28. 运维效能:故障演练
29. 运维效能:定位诊断
30. 开源和共赢 一个人可以走得很快,但一群人可以走的更远
31.
32. 四年磨一剑:蚂蚁集团注册中心 SOFARegistry 的开发实践之路 向旭 / 李旭东 THANKS

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.129.0. UTC+08:00, 2024-06-29 15:25
浙ICP备14020137号-1 $访客地图$