大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer server server server server (超)大型规模应用+契约协同 应用的发展演变历史 服务化后的问题 多团队协同的分布式环境下,不仅环境“重”,而且外部的服务是别的团队开发 的,你很难得到一个稳定、快速的外部服务提供环境,在此背景下进行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 备测测,结果,别人的消 息先到了,一下把我的预置数据全搞乱了… 7. 我的开发机性能还行,我想自己装一套依赖环境提高开发调测 效率,结果消息服务、缓存服务、服务框架装完一启动,80% 的系统资源就没有了,想想还有一堆的应用服务还没装,直接 泪崩… 8. 办公区断网,所有线上依赖环境都无法访问了,得,今天啥也 干不了了,回家洗洗睡吧…. … ….. ……… 1 2 3 解决之道:通0 码力 | 19 页 | 2.74 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun.com 设计要点八:熔断,限流,降级 www.163yun.com 设计要点九:配置中心 www.163yun.com 设计要点十:日志中心 www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www API 监控 认证 鉴权 治理 文档 报表 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 灵活执行集:冒烟,日常,回归 定时测试,MOCK测试 测试,生产镜像仓库分离,自 动同步 开发测试环境自动部署,生产 环境手动触发 持续集成 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库0 码力 | 39 页 | 3.06 MB | 1 年前3
领域驱动设计&中台/演进式架构的平台化落地服务 部署 运⾏行行架构治理理 故障 分析 定义架构 约束条件 微服务架构设计 服务地图 设计 API设计 部署架构设计 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 配置 … 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 导swagger ⽂文件 API清单 设计变更更与 需求关联 服务地图变 更更历史 ⽣生产环境 部署架构设计 测试环境 部署架构设计 绘制部署架构,组合服务和 部署元素 部署架构变更更历史 推荐部署架构(远期规划) 微服务开发框架定制 代码架构⻛风格选择 资源配置 数据库版本管理理 是否⾃自动⽣生成API/ Dockerfile/流⽔水线 ⽣生成 代码 到GIT 到GIT 仓库 架构分析- 从契约反向识别实现与模型差异 架构分析- 架构Fitness Function检查 代码质量量分析- 配置Sonar地址、展⽰示分析结果 数据结构分析- 测试环境的反向⼯工程可视化 数据结构分析- ⽣生产环境脚本导入可视化 领域模型- 基于代码守护的反向可视化 运⾏行行时部署架构可 视化 数据库 状态/版本显⽰示 创建系统 组建团队0 码力 | 42 页 | 2.95 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化的接口服务,网关请求业务应用A提供的服务,返回给前端小程序。 11、后台服务 -- 构建分布式微服务框架 1.采用etcd 构建微服务框架 etcd是一个分布式的 、一致的key-value存储,主要用途是共享配置和服务发现。Etcd已经在很多分布式系统中得 到广泛的使用。Etcd采用raft协议,来保证一致性。 2.后台服务采用Go开发,围绕业务功能需求,构建后台服务模块 包括个人中心、服务、待办服务、证 80 443 2、域名须有HTTPS证书 3、白名单 13、安全渗透测试、运维监控 -- 确保系统稳定 一、业务应用上线前必须经过安全渗透测试。 1、在测试环境中扫描出:越权查询、SQL注入、明文传输等,要求整改 2、正式环境检查: 操作系统、数据库、中间件漏洞,建议打补丁 二、运维监控每日 1.采用ELK收集系统日志、监控异常信息 2. 对各业务系统API接口进行状态监控,每日输出报告 TAPD是一个SAAS化的敏捷管理工具,本项目、及合作商项目的开发管理, 均使用TAPD( www.tapd.cn) 2.使用功能包括:需求管理、文档管理、缺陷管理、Wiki、Gitlab源码、企业微信集成等 3.配置了自定义的发布流程,每次版本发布都走TAPD的发布评审流程 22、对小程序技术架构演进的思考 1、小程序将无处不在,手机、车载、PC、带屏设备 2、小程序、APP、公众号的无缝集成 3、弱中心化、到强中心化0 码力 | 35 页 | 15.60 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 依据声明式自愈的理念设计系统 有一个统一的状 态持久化接口, 所有有状态模块 通过统一的接口 对应统一的对象 模型 配置模块对象只 需要包括 Desired State 每个领域的控 制器模块的逻 辑保证自己领 域独立自愈的 能力 改变状态的操作 必须是幂等的声 明式操作,没有 新声明时各模块 按照之前的声明 state machines. Leslie Lamport TLA+试图用状态机而不是计算过程描述系统 更加关注系统的非正常输入 更加关注系统的稳定性可用性等特性而不是系统输出 分布式系统环境下没有单一的输入输出 TLA+是一种适合定义状态机的语言 定义一个状态机需要: 1. 定义所有可能的初始状态 2. 定义在特定状态下可能有哪些状态转换 一个程序可以用状态机描述 定义一个状态机需要: 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø 数据库更新与缓存失效的策略 最佳实践分享 有关配置文件 Ø 集群使用统一的配置来源 Ø 定义正常的默认配置,满足读取不到配置的正 常运行 Ø 支持可扩展的配置命令格式 Ø 尽量支持更改配置不需要重启服务 Ø 注意配置项之间的关联性 欢迎与我交流 王昕个人微信 欢迎与我交流 王昕个人微信0 码力 | 44 页 | 2.47 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践RabbitMq-2 PAIN POINTS 业务3.0痛点 BUSINESS 3.0 PAIN POINTS 业务3.0远景 BUSINESS 3.0 VISION 实时交易环境 非实时交易环境 通 道 A 通 道 B 通 道 C 通 道 D … 通 道 A 通 道 B 通 道 C 通 道 D … 单 笔 代 收 单 笔 代 付 快 捷 鉴 权 短 信 最佳实践-如何早于用户发现问题 如何 早于用户 发现问题 如何让开发人员 对自己的代码 更加有安全感 ? 这些困惑的体现是什么呢? 开发人员如何提高代码质量,减少频繁迭代产生的bug? 线上环境突发事故,第一时间如何决策减少事故影响范围? 开发人员排查问题速度过慢? 随着业务的增长,问题越来越多,第一优先级需要解决什么? 系统突然CPU、内存利用率暴增,如何定位代码? 数据库连接数被耗尽,怎么办? THE BEGINNING, CONTINUE TO MOVE FORWARD 04 不忘初心,继续前进 中小规模 硬件规模不过百 技术债积累期 团队规模不过百 数据规模日交易量不过千万 配置繁琐 调用混乱 组装困难 协议单一 当前架构的 适用范围 微服务迁移 继续前行 MOVE ON 统一API网关 规范 SPECIFICATION 一 编程规范 1.业务代码中所有SQL耗时打印耗时0 码力 | 35 页 | 6.05 MB | 1 年前3
QCon北京2018-《美团配送系统架构演进实践》-阴永俊移动互联网 智能手机/APP • 预测供需结构,智能派单调度 • 评估难度、ETA、骑手能力等数据 • 定位越来越精准,地图与导航逐渐成熟 • 实时移动的信息传递通路 • 线下配送的全过程纳入信息环境 1.基础设施不断完善 配送业务全面信息化是必然趋势 2.用户消费升级 数据来源:智研咨询 美团配送系统的技术挑战 用户 商家 骑手 快速 放心 省钱 销量 品牌 信赖 收入 同城建设方案 配送履约方案 骑手运营方案 行业方案 如何更好地发挥大数据与AI的价值 降低试错成本 提升算法特征迭代效率 提升导航数据质量 仿真平台 最大化降低算法的线上试错成本 打造算法沙箱环境 特征平台 统一算法策略迭代框架,数据生产框架 提升特征数据质量 LBS平台 提供 坐标流、导航路径、空间索引 能力 打磨各类位置与导航策略场景 导航 算法特征 效果验证 产品技术创新驱动业务发展 精细化阶段:仿真平台 目标:构建线下模拟沙盘 思路:基于线上真实数据对配送全流程构建模拟场景,并对事件、数据模拟 仿真报告可视化 产品技术创新驱动业务发展 精细化阶段:特征平台 版本管理:缩短实验周期,灵活配置实验规则 实时特征:特征准实时加工、离线特征实时转化 离线特征:特征快速开发、验证、上线能力 场景 产品技术创新驱动业务发展 精细化阶段:LBS平台 深耕LBS平台,丰富、打磨各类算法策略场景0 码力 | 31 页 | 15.26 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造确定义领域模型的范围和职责。 为什什么使⽤用限界上下⽂文? 限界上下⽂文可以分为限界和上下⽂文两个词 来理理解,限界:指⼀一个界限,具体的某⼀一 个范围; 上下⽂文:场景、环境;所以限界上下⽂文是 在某个场景或环境下的业务边界。该边界 就是业务上的职责。 1. 基于前⾯面输出的聚合和领域模型, 判断这些领域模型要解决的业务问题, 这些问题是否为同⼀一个问题,如果是 则放到⼀一个限界上下⽂文中(⼀一个问题 订单 商品 第六式: 1. 给⽤用户服务创建数据 库,从原始数据库中 同步⽤用户服务的数据 遗留留系统 ⽤用户 微服务 基础设施 同步数据 降⻰龙⼋八步第七式 第七式: 1. 配置⽤用户服务,使⽤用 ⽤用户服务数据库 ⽤用户 订单 商品 遗留留系统 ⽤用户 微服务 基础设施 降⻰龙⼋八步第⼋八式 订单 商品 遗留留系统 ⽤用户 微服务 基础设施0 码力 | 54 页 | 3.85 MB | 1 年前3
海量用户推送后台系统架构实践-曾振波开发者 107.6 万 APP 198 亿 移动终端 10.4 亿 月独立 活跃设备 90 % 覆盖率 亿级长连接用户 SDK多版本并存 消息实时性 触达率要求 移动网络环境复杂性 海量用户数据存储 消息推送系统面临的挑战 极光推送服务架构 系统通道 API 用户筛选 用户分发 推送通道 极光通道 共享通道 短信通道 极光推送后台系统架构 iOS SDK 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理 • 内外集群隔离 • Pod包含多个容器 - 辅助容器,业务容器 • 业务模块代码架构调整 • 监控体系调整 极光推送后台系统架构 09 结束语 • 高性能/低成本、高可用、高运维0 码力 | 23 页 | 1.26 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+2pizza团队,系统单体制约 商城 核心服务 业务 网贷 保险 基金 商城 财富圈 健康财富 加密 验签 拦截 校验 安全 性能 并发 幂等 交易 缓存 基础服务 消息 监控 配置 报警 MIS OpenAPI 微信 财富圈 移动后台 商城MIS WAP … … Android/ios/h5/php/openApi 积分系统 基础服务 优惠券 宜人币 基金服务 标签 用户 管理平台 产品 理财单 渠道 版本 5G 措施:剥组件,拆单体,合冗余 移动后台打散 轻业务上浮 重业务下沉 API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 接口版本控制 业务前置控制 Ng+ LUA 流量调度 措施:剥组件[深度定制网关] API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 接口版本控制 业务前置控制 Ng+ LUA 流量调度 降级 限流 灰度 接口分发 运营活动动态配置,接口重新编排 热点功能前置,网关分发许可限流,保护底层0 码力 | 42 页 | 19.96 MB | 1 年前3
共 21 条
- 1
- 2
- 3













