大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer server (超)大型规模应用+契约协同 应用的发展演变历史 服务化后的问题 多团队协同的分布式环境下,不仅环境“重”,而且外部的服务是别的团队开发 的,你很难得到一个稳定、快速的外部服务提供环境,在此背景下进行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 API Gateway 分布式文件 分布式缓存 头到尾梳理代码,再写一堆的mock语句把他们全mock掉了。 每当业务逻辑变化了,代码中要增减相应的mock语句;每当依 赖服务上线后,要把测试用例中对应的mock语句去掉。对测试 用例的修改工作贯穿于整个开发工作之中。 3. 我和某同事通过服务框架进行调用联调,结果另一同事也把同 名服务挂了上来,不幸的是,他的服务版本和我们的不一样, 结果,一系列的灵异状况发生了… 4. 依赖的远程服务逻辑发生变化了,但负责它的团队没有通知到0 码力 | 19 页 | 2.74 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践通道 交易拆分 业务2.0痛点 BUSINESS 2.0 PAIN POINTS 业务野蛮发展 交易量高速增加 并发请求增加 交易响应速度过慢 数据库单表 数据量剧增 模块耦合度高 开发效率低下 … 思考 THINKING 解耦 异步化 扩容 排队 队列 缓存 冷热数据隔离 读写分离 分库分表 容灾 限制 池化 ACK ... 变化 VARIETY THAN THE USER 03 最佳实践-如何早于用户发现问题 如何 早于用户 发现问题 如何让开发人员 对自己的代码 更加有安全感 ? 这些困惑的体现是什么呢? 开发人员如何提高代码质量,减少频繁迭代产生的bug? 线上环境突发事故,第一时间如何决策减少事故影响范围? 开发人员排查问题速度过慢? 随着业务的增长,问题越来越多,第一优先级需要解决什么? 系统突然CPU、内存利用率暴增,如何定位代码? CONFUSION 需求设计阶段- 首次拦截 开发实现阶段-尽可能避免故障 系统运行阶段-及时发现故障 系统运行阶段-出现故障快速解决故障 思路 THINKING 预见运行期、所想即所得、限制和保护 设计可容错的系统(快速失败、超时、自动重路由) 设计具备自我保护的系统(拆分、限制、优雅停止) 制定合适的开发规范 撒网 实时监控(傻瓜式、开发不用查日志) 可视化运营 网络监控 主机监控0 码力 | 35 页 | 6.05 MB | 1 年前3
QCon北京2018-《美团配送系统架构演进实践》-阴永俊闪送 UU跑腿 海内外掀起一波创业浪潮 美团配送系统:机器与海量骑手协作,服务于全国商家与用户 履约能力 实现平台对运单调度的实时把控,对运单与运力的供需匹配 运营效率 加强对配送骑手的管控能力 提升配送全业务的运营效率,降低成本 履约流程:下单 -> 派单 -> 接单 -> 取货 -> 送达… 业务团队:招聘、采购、物料、培训、薪酬、保险.... 运营团队:运力结构、经营分析、绩效考核 规模化阶段 快速起量 系统质量、研发效率问题凸显 化繁为简、分而治之、逐步演进 快速起量,系统质量、研发效率问题凸显 • 整体需要思考的关键问题 • 整体系统架构应该如何演化 • 履约系统与运营系统的边界在哪里 • 履约系统面临的问题 • 如何保证可用性 • 如何保证系统容量 • 如何提升计算能力 • 运营系统面临的问题 • 提升运营系统迭代效率 骑手网关 规模化阶段:核心领域细分 标准API 容灾 容灾 API管理 标准API APP运维 多链路 安全框架 管理工作台 HRM 移动办公 招募 IM 物料 薪资 培训 成长 快速起量,系统质量、研发效率问题凸显 合同 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态0 码力 | 31 页 | 15.26 MB | 1 年前3
全球架构师峰会深圳2015/研发体系构建_龚银_中型创业公司的技术管理之痛0/30+ 开发压力巨大 不到一年的时间 0 25 50 75 100 14Q1 14Q2 14Q3 14Q4 15Q1 15Q2 部门人数 系统数量 应用数量 一些「实践」到的经验 技术架构简单胜于复杂,量体裁衣 架构简单化 合并、解耦、清晰化 照搬行业实践不一定合适 层次简单化 缩减层次,效率优先 混合语言,效率低下 研发体系和流程 研发体系和流程 研发体系框架搭建 人解决一切 技术简单化 不要追求炫酷,简单实用即可,根据团队成员能力量体裁衣 先跑起来,然后找合适时间进行优化,合适的平衡 简单清晰,效率优先,能用一个人解决的事情,决不安排两个人 利用开源和成熟产品,不重复发明轮子,比如使用AWS等 量体裁衣 聚焦业务,随时调整轻重缓急 NO TIME 业务永远做不完,基础建设怎么办0 码力 | 36 页 | 2.49 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化1、功能单一 大多政务服务APP功能单一,仍以政务信息发布为主,缺乏实用的网上办事和便民服务。 仅有15%的政务APP提供办事服务,存在“信息有余、服务不足”的问题。 2、下载APP成为负担 政务APP盲目开发泛滥,用户为了办事需要下载多个APP,成为一种负担。 3、优化不足体验差 政务APP接入政务服务,没有结合移动端的访问特性进行移动化改造,用户体验差。 4、缺少持续运营: 政务APP运营维护乏力,版本迭代缓慢,存在大量僵尸应用。 政务APP 统一身份认证 无需注册直接登录,提供活体检测、人脸核身 需要注册,使用密码和手机盾认证 推广传播 下载成本低、通过微信裂变传播 下载成本高、推广难、占流量、占内存 开发成本 只需开发一套,组件丰富 每个端都得开发,标准化组件少 版本更新 无感知,轻量级更新 更新麻烦,审核周期长 服务触达 利用微信载体,消息通知更简单 APP消息,打扰多,用户遗漏概率大 拓展性 程序包小,可以关联调转 无需注册(无需用户再记住一个新账号、密码) • 依托微信的账号体系,便捷登录,以授权登录、 人脸识别登录为主 • 依托公安部门互联网可信身份认证体系 • 用户登录后,业务系统不再要求用户登录 9、前端开发 -- 封装公共组件 ,磨刀不误砍柴工 1、封装DGD-SDK公共组件 2、合包工具 3、Taro框架预研 10、API网关 – 限流保护已有系统、提升访问安全性 • 1.业务应用A 向网0 码力 | 35 页 | 15.60 MB | 1 年前3
唯品会调度系统的前世今生positioned properly. 感谢聆听! 邱戈川 (了哥) 微信公众号: VIPDOCKER 唯品会开源弹性调度系统 Saturn的“前世今生” 黄国钦 (Chembo) 唯品会高级开发工程 师 內容主题 为何而生 瓜熟蒂落 有女初长成 女大须嫁 https://github.com/vipshop/Saturn 婆媳关系 为何而生 传统调度系统的问题、产品的定 位与选型 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn 体系中的定位 服务化框OSP 开发框架Venus 唯品会基础架构体系 消息队列 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动 平衡负载 资源利用 • 灵活的运维配置与部署 • 高效资源利用 • 简便的管理 人工指定 自动平衡 资源平衡调度算法 框架代码 与业务代 码隔离 集中化动 态增加与 删除作业 • 简化开发,避免冲突,业务无侵入0 码力 | 58 页 | 5.40 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+移动后台架构演进 初创阶段 效率优先,快速响应,第一要务是生存 成长阶段 用户和业务持续上量,业务快速发展 扩张阶段 业务和团队规模增长迅速,多元化发展,对效率和质量提出更高要求 没有一种� 架构能� 包打天下 DB Server PC WEB 容错性、稳定性差 技术债迅速积累 代码安全带来挑战 初始,� 效率优先 成长,移动后台旁路追赶 移动服务C 接入层/GW 服务A 2 1 移动服务C 接入层 服务A 1 2 措施:优化链路[合并.重组.丢弃] before� after 收益: 优化组合流程8条,效率提升 单点得到弱化 丢弃僵尸接口36个(版本覆盖率) 挑战: 接口管理带来挑战 链路追踪趋于复杂 "� "� 丢弃 移动服务�C� 接入层/gw�0 码力 | 42 页 | 19.96 MB | 1 年前3
海量用户推送后台系统架构实践-曾振波极光推送后台系统架构实践 曾振波 极光开发者技术部推送开发组 技术负责人 极光推送后台系统架构实践 曾振波 极光开发者技术部推送开发组 技术负责人 极光推送后台开发工程师 多年互联网开发经验,专注后台开发技术。2016年加入极光,负责极光推送平台架构设 计及开发,主导包括K8S在内的技术架构实施落地,推动系统架构的演进,构造支撑海 量用户的推送系统,对大规模分布式系统架构及设计有深入的理解。 • 消息推送系统面临的挑战 • 极光推送相关架构 • 极光推送后台系统架构 • 后台系统架构基本原则 • 链接管理 • 系统安全 • 新技术的应用 目录 关于极光 36.9 万 开发者 107.6 万 APP 198 亿 移动终端 10.4 亿 月独立 活跃设备 90 % 覆盖率 亿级长连接用户 SDK多版本并存 消息实时性 触达率要求 移动网络环境复杂性0 码力 | 23 页 | 1.26 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践微服务和Service Mesh 在多个行业落地实践 www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 JVM 监控 数据库 监控 性能 告警 自定义 数据 服务 告警 监控 大屏 账户 审计 CICD (开发流程管理) 代 码 检 出 代 码 编 译 镜 像 构 建 集 成 测 试 自 动 部 署 流水线管理 测试平台 (集成,场景测试) 单接口 用例 场景 用例 163yun.com ZIP源码包 持续集成 重新开发 迭代修改 个性开发 统一模版 接口统一 利于复用 文档一致 减少沟通 某视频监控企业:IT资产沉淀与IT能力复用 持续集成 容器化 注册发现 服务管理 www.163yun.com 开发集群 测试集群 CICD (开发流程管理) 流水线管理 代码 检出 代码 编译0 码力 | 39 页 | 3.06 MB | 1 年前3
降级预案在同程艺龙的工程实践-王俊翔Application Application SDK 熔断 降级 流控 隔离 实时策略略推送 数据采集 应⽤用管理理 策略略管理理 流控管理理 预案管理理 指标管理理 监控告警 数据⼤大盘 脚本开发 ETCD管理理 故障演练 业务保障管理理后台 应⽤用JVM进程 故障动态注⼊入 Attach 故障注⼊入 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 降级 条件 计算 降级消息 数据 存储 实时告警 规则配置 开发 ⽇日志解析规则 控制中⼼心 ETCD 降级服务 降级处理理 流处理理集群(Flink) HBase ES Redis 落地存储 数据服务 数据平台 实时告警 告警策略略 指标查询 指标脚本开发 指标配置 产品化 开发 复合指标计算如何处理理 ServiceA ServiceB ServiceC 离、延迟处理理 • 策略略灵活调整,实时监控策略略运⾏行行状态 应⽤用 / 服务 降级代码管理理 • 线上代码开发、测试、发布 • 降级代码统⼀一管理理 • 脚本代码动态编译,对象管理理 业务保障平台应 SDK 线下开发 策略略配置 测试 发布 WEB IDE 线上开发 降级⽅方法使⽤用 Git 降级代码 线下代码管理理 脚本 降级服务如何⾃自动探测恢复 ⽅方法代理理0 码力 | 26 页 | 18.67 MB | 1 年前3
共 26 条
- 1
- 2
- 3













