微服务和Service Mesh 在多个行业落地实践
www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开 发 集 群 测 试 集 群 com 开发集群 测试集群 CICD (开发流程管理) 流水线管理 代码 检出 代码 编译 镜像 构建 集成 测试 部署 测试平台 (集成,场景测试) 单接口 用例 场景 用例 执行 集 定时 执行 接口 Mock 覆盖 率 生产镜像 仓库 测试镜像 仓库 历史 管理 批量 导入 接口 监控 生产集群 镜像 中台化 容器化 注册发现 www.163yun.com 网易容器平台优势 集群规模大:30000+节点 生产检验时间长:国内首个K8S公有云容器平台稳定运行1000+天 全球首批通过K8S一致性认证 基于OVS的网络性能优化 基于Ceph的存储性能优化 多集群统一管理 www.163yun.com 某物流企业 www.163yun.com 线上0 码力 | 39 页 | 3.06 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
百度文件系统BFS - 万亿量级实时数据库Tera - 集群调度系统Galaxy • 个人主页&Blog - https://github.com/bluebore - http://bluebore.cn 提纲 • 百度文件系统简介 • 分布式系统设计实践 • 总结与致谢 百度的集群环境 • 单个集群通常几千台机器 • 百度文件系统(BFS)、集群调度系统(Galaxy)、分布式协 调服务(Nexus)是核心服务 master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS)0 码力 | 24 页 | 937.45 KB | 1 年前3高可用分布式流数据存储设计-李玥
IOThreads 收到复制响应 Pending Callbacks ResponseThreads 发送响应 Journal Cache Journal Files 线程模型 集群 · 架构 没有最好的架构,只有最合适的架构 取 · 舍 学会 ⽅得始终 取 舍 从实用角度出发,如何取舍? Consistency ⼀一致性 Availability 可⽤用性 ⼤大促限流 Complexity 复杂度 Apache ZooKeeper “程序员都喜欢ZooKeeper,但用户正相反” 可维护性问题 多机房部署时可⽤用性问题 数据容量量有限,集群规模有限 选举恢复速度慢,不不可⽤用时间较⻓长 John Ousterhout Diego Ongaro “In search of an understandable consensus 牺牲可⽤用性换取⼀一致性 性能⼀一般 集群规模不不能太⼤大 Raft总结 读请求分流 顺序⼀一致 已提交位置之前的⽇日志具有不不变性。 对于提交的⽇日志,相同位置上Follower的⽇日志和Leader上是⼀一样的。 强⼀一致 如果两个节点上的⽇日志完全相同,并且这些⽇日志都已经被状态机执 ⾏行行,那么这两个节点的状态是相同的。 集群节点数越多性能越好吗? NO 引⼊入Observers0 码力 | 36 页 | 6.02 MB | 1 年前3分布式 KV 存储系统 Cellar 演进之路
固定HASH算 法 固定数目 数据分片 桶->存储节点 对照表 Cellar起源—Tair架构 服务层 请求 mdb 响应 ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 开源 Tair • Cellar起源 回写增量log 分片2复制 分片2复制 分片1复制 客户端 分片1&2 log Cellar—异地容灾 • 多机房建设 网络延迟大 专线稳定性差 • 异地容灾需求 跨集群数据同步 Cellar—异地容灾 集群节点同步 消息队列同步 复制延迟 低 高 系统复杂度 低 高 运维成本 低 高 实现难度 高 低 扩展性 低 高 • 低延迟 • 低复杂度(运维成本) Cellar—异地容灾0 码力 | 34 页 | 1.66 MB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
AND/IOS/H5/Open 静态站 网贷服务 借款流程 Cache集群 安全加密 网贷服务 CDN 支付结算 订单 DB从 批 处 理 系 统 活动 DB主 DB从 版本管理 产品 ... 同步 …... 网站、基础服务 移动后台 业务和团队规模迅速扩张 粗粒度服务化,基础设施完善 CDN/页面缓存/静态站/缓存集群 移动后台旁路 流程double,冗余开始出现 智能DNS,DNS负载均衡 限流(limit,lua),openresty,4层/7层LB 弹性扩容,限流(token),熔断,防刷 降级,熔断,弹性扩容 多IDC,区域容灾,多ISP 集群,高可用,分片 本地缓存,防刷,流控 终端 域名 机房 LB / NG.. 网关 Cache 服务 抓大不能放小[细节决定成败] 线程阻塞>300 中间件内存管理、线程状态,连接状况0 码力 | 42 页 | 19.96 MB | 1 年前3唯品会调度系统的前世今生
部署模型(跨机房) IDC-A IDC-B 接入域-A 执行结点 作业实现 ZK saturn-zk-* saturn.vip.com 控制台集群 (Tomcat) ZK Observe r ob-saturn-zk-* 2台 3台 x台 调度器集群 接入域-B 执行结点 作业实现 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Executor 作业实现 Saturn Core JVM System Class Loader Job Class Loader Call 类加载 作业运行基本原理 更多。。。 超时控制 多ZK集群支持 监控体系 手动触发 批量处理 强行终止 Dashboard … 为什么需要容器化 资源利用 提高物理资源的 利用率 系统弹性 资源弹性伸缩 运维效率 上线周期、峰值 应对 作业隔离0 码力 | 58 页 | 5.40 MB | 1 年前3领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践
应⽤用实施升级 * 聚焦性能做 case * 补⻬齐设施能⼒力力 * 积累业务升级改造经验 2. 架构级升级 * 规模化后,架构级别收益会显现 业务架构升级case 的选择策略略 1. 集群/流量量⼤大/核⼼心有认知 * ⽅方便便看升级改造效果 2. 瓶颈 match 升级 (如 CPU 压不不满、IO较多、⾼高Load) * 可以确定获得⼤大⽐比例例收益 3. 业务逻辑简单优先 已统⼀一接⼊入 ⽬目标与规划 • 实现分布式回压(backpressure) • 保证整体系统稳定不不过载且充分利利⽤用资源 • 2018双11有试点实验,后续重点 •通过回压把应⽤用集群压⼒力力反馈到基础设施 • 更更精准有效的应⽤用弹性调度 •实现全异步/流式为核⼼心的服务框架 • 考虑引⼊入 Kotlin 协程 •符合现在过程式的编程习惯(⾮非 FP ⻛风格)0 码力 | 27 页 | 1.13 MB | 1 年前3声明式自愈系统——高可用分布式系统的设计之道-王昕
State u 创建1个新的Pod Ø Controller观察特定领域的 系统状态 Ø 协调Desired State跟 Realized State之间的差 距,维持最终一致性 Ø 定期处理集群中的事件 Ø 系统必须是幂等的 控制器的设计理念 控制逻辑应该只依赖于当前状态 假设任何错误的可能,并做容错处理 尽量避免复杂状态机,逻辑不要依赖无法监控的内部状 态 每个模块都可以在必要时优雅地降级服务 逻辑正确性不能依赖缓存,写操作服务端必须有校 验而且幂等,没有缓存情况下系统仍可服务 Ø 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø 数据库更新与缓存失效的策略 最佳实践分享 有关配置文件 Ø 集群使用统一的配置来源 Ø 定义正常的默认配置,满足读取不到配置的正 常运行 Ø 支持可扩展的配置命令格式 Ø 尽量支持更改配置不需要重启服务 Ø 注意配置项之间的关联性 欢迎与我交流 王昕个人微信0 码力 | 44 页 | 2.47 MB | 1 年前3领域驱动设计&中台/物联网平台的反应式设计
SaveShadow CalcDelta UpdateDelta SyncDelta Web Console 问题及应对之道 灵活性 弹性 资源竞争 • 每次局部业务更更新都需要 重新部署整个集群 • 局部业务性能瓶颈,弹性 扩容所有业务 • 加锁处理理资源竞争,增加 性能消耗 微服务 事件驱动 我们做了了什什么 EVENT STORMING EVENT STORMING 核⼼心0 码力 | 18 页 | 1.81 MB | 1 年前3联想-贺钢架构工作在国际化项目中的应用实例
可以简单通过升级服务器 配置支持更多用户 百万到千万 增加Nginx(反向代理)或DNS负载均衡,redis内存 cache,数据库(Mysql)多台(数据在一个数据中心) 千万到亿 增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不0 码力 | 53 页 | 2.36 MB | 1 年前3
共 14 条
- 1
- 2