QCon北京2018-《美团配送系统架构演进实践》-阴永俊安全 SLA更高 业务复杂性高 • 用户:花了钱却饿着肚子 • 商家:出了餐却无人配送 • 骑手:投入的时间、劳动却少赚了钱 • 多业务线的共性与差异:专送、代理、众包⋯ • 运营复杂度高:定义科学的订单供给与运力结构,并精准调控 • 安全管理:用户安全、商家安全、骑手安全 履约SLA要求高,重线下业务运营 配送系统的技术定位与思路 初期造工具,解决能不能 长期造壁垒,实现降维打击能力 培训 成长 快速起量,系统质量、研发效率问题凸显 合同 运营系统 • 需求长期多而杂,运营系统到底应该管什么 • 科学设定目标并达成的能力 • 各类管理动作的效率提升与结果保证 • 定义科学的运力结构 • 提升物质激励效果 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 规模化阶段:并行计算能力 计算能力是智能调度的关键! • 外卖场景下的配送计算能力要求 快速起量,系统质量、研发效率问题凸显 规模化阶段:提升各类运营系统迭代效率 元数据 管理 表单 管理 样式 管理 规则 引擎 动态表单 流程平台 �������� ������ ������ lu�K����/��� g��K����� ���K��//���� tab_S� ������(0 码力 | 31 页 | 15.26 MB | 1 年前3
 美团点评旅游推荐系统的演进本异地差异大 季节性明显 旅游推荐面临的问题 本异地差异大 超过30%订单来自异地请求 常驻城市!=浏览城市 推荐形式多样 景点下有大量相似门票,不适合 按Deal样式展现 跟团游、景酒套餐关联多个景点 ,不适合按POI样式展现 季节性明显 冬季温泉订单占比超过20%, 而夏季不到7% 需求个性化 用户人群 时间地域场景 内容形态 基于用户画像的召回策略演进 热销策略 基于Deal所在城市统计分城市热销0 码力 | 49 页 | 5.97 MB | 1 年前3
 苏宁易购小程序架构实践 苏宁 禹立彬• 减少开发成本 • 使用ReactNative同步实现微信小程 序组件 • 100+ API • 30+ Components 同步组件 • data转换为state • 样式重新解析 • Element转换 Babel转换代码 异常监控 • 业务异常监控 - 自研 • 系统异常监控 - 微信官方后台 运营埋点 • PV UV •0 码力 | 36 页 | 833.39 KB | 1 年前3
 领域驱动设计&中台/演进式架构的平台化落地微服务 运维治 理理 部署架 构 设计 统⼀一协作平台 研发⼯工具连 为某企业做的微服务平台规划 部署架构设计 服务 契约 定义 契约 代码 评审 开 发 服务运⾏行行治理理 服务 部署 运⾏行行架构治理理 故障 分析 定义架构 约束条件 微服务架构设计 服务地图 设计 API设计 部署架构设计 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 定义通⽤用 约束条件 定义服务 约束条件 可视化设计 服务地图 关联变更更到需求 设计API 导swagger ⽂文件 API清单 设计变更更与 需求关联 服务地图变 更更历史 ⽣生产环境 契约测试Mocker Server API定义⽣生成Jar 契约配置中⼼心 统⼀一管理理 获得运⾏行行架构、实例例状态 ELK⽅方 案 对接资源室 获得组织结 构 对接175产品 定义管理理 Fitness Function执 ⾏行行引擎 集成Sonar Server 对接容器云 PaaS API变更更历史 部署架构变更更评审 定义 契约 契约变 更更评审 未评审0 码力 | 42 页 | 2.95 MB | 1 年前3
 声明式自愈系统——高可用分布式系统的设计之道-王昕是用来给(软件或硬件)系统建模的语言 Ø TLA+ 强调排除特定编程语言(软件或硬件)的影响验证系 统设计 Ø TLA+ 由 Paxos 协议的发明人 Leslie Lamport 发明 使用 TLA+ 定义和验证系统设计 Why TLA+ For quite a while, I’ve been disturbed by the emphasis on language in computer science 更加关注系统的稳定性可用性等特性而不是系统输出 分布式系统环境下没有单一的输入输出 TLA+是一种适合定义状态机的语言 定义一个状态机需要: 1. 定义所有可能的初始状态 2. 定义在特定状态下可能有哪些状态转换 一个程序可以用状态机描述 定义一个状态机需要: 1. 定义变量 2. 定义所有可能的初始状态 3. 定义在特定状态下可能有哪些状 态转换 计算 100/x 的程序: x = 100 / x; 验而且幂等,没有缓存情况下系统仍可服务 Ø 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø 数据库更新与缓存失效的策略 最佳实践分享 有关配置文件 Ø 集群使用统一的配置来源 Ø 定义正常的默认配置,满足读取不到配置的正 常运行 Ø 支持可扩展的配置命令格式 Ø 尽量支持更改配置不需要重启服务 Ø 注意配置项之间的关联性 欢迎与我交流 王昕个人微信 欢迎与我交流 王昕个人微信0 码力 | 44 页 | 2.47 MB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔metadata degrade strategy center mysql sharding watch admin • 使⽤用ETCD实现注册中⼼心 • 简单 - Go语⾔言编写部署维护简单,定义良好的API • 安全 - SSL认证机制 • 快速 - ⽀支持上万次写⼊入操作 • 可信 - Raft算法保证强⼀一致性,Proxy反向代理理模式⽀支持 • 服务数据存储 • 应⽤用、服 服务质量量数据采集 业务数据采集 ⽇日志 ⽂文件 应⽤用数据采集 应⽤用数据 ⽅方法数据 执⾏行行结果 执⾏行行耗时 异常数据 … JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 系统数据采集 容器器数据 CPU数据 内存数据 磁盘数据 … ⽹网络数据 采集 Agen t ⽇日志中⼼心 KAFKA 数据处理理 通过本地⽇日志⽂文件,实时采集降级服务质量量数据 … JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 数据通道(⻓长链接单通道) 数据采集 Proxy • 单⼯工直连数据通道 • ⻓长链接,数据流⽅方式实时发送 • 本地多队列列轮循,数据缓冲,合并异步发送 指标如何计算处理理 数据采集 KAFKA ETL 复合指标 ⾃自定义指标 系统指标 业务指标 指标脚本计算 指标规则计算 指标脚本 规则表达式0 码力 | 26 页 | 18.67 MB | 1 年前3
 微服务和Service Mesh 在多个行业落地实践统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 JVM 监控 数据库 监控 性能 告警 自定义 数据 服务 告警 监控 大屏 账户 审计 CICD (开发流程管理) 代 码 检 出 代 码 编 译 镜 像 构 建 集 成 测 试 自 动 部 署 流水线管理 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 可自行定制:通过暴露自定义异常NSFExcetion解决任意业务方法的容错,支持超时、 failover,failfast容错。 容错 微服务框架负责服务之间的调用——熔断与容错 www.163yun 统一API规范与接口管理 - 基于ak/sk的认证鉴权 - 服务/API审计与调用分析 - 不同维度故障隔离、服务熔断与降级 - 不同维度的灵活流量控制 - 自定义分流插件 …… www.163yun.com 从API网关到Service Mesh 目前G0/G1网关在一定程度上充当了“代理”的角色,基 于Java语言实现  G0本质上是一个FrontProxy0 码力 | 39 页 | 3.06 MB | 1 年前3
 领域驱动设计&中台/可视化的遗留系统微服务改造对账已完成,每⽉月末夜间触发 1. 确定要进⾏行行事件⻛风暴暴的业务场景,场景需要单 ⼀一⽽而且清晰; 2. ⽤用“XXX已XXX”的格式在橙⾊色便便利利贴上写下事 件,⼯工作坊参与者需要对事件定义达成⼀一致; 3. 根据时间顺序把事件便便利利贴贴到⽩白板上; 4. 如果⼀一个事件有同步发⽣生的其它事件,把其它 事件放在事件下⽅方; 5. 如果发现了了业务中的问题点,⽤用红⾊色便便利利贴记 业务的扩展会产⽣生越来越多的领域模 型,任何⼤大型项⽬目都会存在很多的领 域模型。当不不同领域模型对应的软件 代码被放在⼀一起后,软件就变得庞⼤大 且复杂,代码难于理理解、且容易易出现 bug,所以需要通过限界上下⽂文来明 确定义领域模型的范围和职责。 为什什么使⽤用限界上下⽂文? 限界上下⽂文可以分为限界和上下⽂文两个词 来理理解,限界:指⼀一个界限,具体的某⼀一 个范围; 上下⽂文:场景、环境;所以限界上下⽂文是 在某个场景或环境下的业务边界。该边界 如果⼀一个聚合(领域模型)同时解 决多个问题时,则需要根据限界上下 ⽂文的划分原则(后⾯面⼏几⻚页会详细描述) 对聚合(领域模型)进⾏行行拆分,拆分 后对应的领域模型划分到不不同的限界 上下⽂文中; 3.上⾯面环节中所定义的问题⼤大⼩小(需 考虑问题的变化原因、内在逻辑等) 需与领域专家共同讨论完成。 限界上下⽂文示例例 销售⼦子域 客服⼦子域 仓储⼦子域 商品 商品上下⽂文 投诉单 投诉上下⽂文 物流0 码力 | 54 页 | 3.85 MB | 1 年前3
 大规模分布式系统架构下调测能力构建之道“开关机制”控制mock能力启停 mock能力启用时,服务容器初始化期间将加载mock数据文件到内存中,每个服务请求将和mock数据的入参定 义进行比对,满足(静态匹配 或动态匹配)规范的请求,直接用mock数据的出参定义作为服务调用的结果。 应用无感知 无需修改应用代码,单元测试代码中也无需添加任何的mock语句。 服务 调用 Invoker … Remote Call 负载均衡 策略 Runtime 接口变动的验证测试,从而实现对接口变动的及时感知。 Consumer 报告 Provider Consumer 报告 Provider request response 导出 回放 Step1:定义服务调用方的期望 Step2:在服务提供方进行验证 接口 验证程序 Mock文件 配置文件: 服务地址 校验接口清单 远程接口A 测试报告 服务注册中心 服务列表 …… 远程接口B0 码力 | 19 页 | 2.74 MB | 1 年前3
 陈辉-架构师的业务思维电商技术&基础平台负责人 • 13-15年 淘宝技术部 关于我 分享大纲 • 架构师的分类 • 什么是业务思维 • 如何运用业务思维影响架构设计 • 如何培养业务思维 架构师的分类 不是重新定义,而是对标 技术架构师 业务架构师 平台架构师 什么是架构师的业务思维? 场景 今年我们要落地中台架构 大中台,小前台? 中台架构是怎么样的? 是不是需要分层设计? 用什么系统去承载?需要什么框0 码力 | 32 页 | 3.18 MB | 1 年前3
共 16 条
- 1
 - 2
 













