 苏宁易购小程序架构实践 苏宁 禹立彬苏宁易购小程序架构实践 苏宁 禹立彬 小程序群与割裂的互联网 • 截止今日,互联网头部公司都推出了自己的小程序产品,腾讯系的微 信小程序,应用在微信和QQ,百度的百度小程序,应用在手机百度 和百度地图,头条小程序,应用在今日头条和抖音,还有各大厂家的 快应用等项目、 • 同时,WAP/APP等应用场景也需要同步开发,成本巨大。 小程序生态 • 围绕着小程序,各厂家也推出了一系列针对小程序的生态标准,联合 小程序业务组件 CONTENTS • 使用原生的方式开发,没有使用wepy等框架 • 分包加载,主包原则只放购物主流程 • 尽量压缩业务代码,减少文件大小 • 控制基础库版本,减少对用户的影响 request,登录与302 request,登录与302 在网页状态下运行良好的登录机制,在小程 序下,无法兼容。 loginRequest组件 请求专用接口,并保存登录状态0 码力 | 36 页 | 833.39 KB | 1 年前3 苏宁易购小程序架构实践 苏宁 禹立彬苏宁易购小程序架构实践 苏宁 禹立彬 小程序群与割裂的互联网 • 截止今日,互联网头部公司都推出了自己的小程序产品,腾讯系的微 信小程序,应用在微信和QQ,百度的百度小程序,应用在手机百度 和百度地图,头条小程序,应用在今日头条和抖音,还有各大厂家的 快应用等项目、 • 同时,WAP/APP等应用场景也需要同步开发,成本巨大。 小程序生态 • 围绕着小程序,各厂家也推出了一系列针对小程序的生态标准,联合 小程序业务组件 CONTENTS • 使用原生的方式开发,没有使用wepy等框架 • 分包加载,主包原则只放购物主流程 • 尽量压缩业务代码,减少文件大小 • 控制基础库版本,减少对用户的影响 request,登录与302 request,登录与302 在网页状态下运行良好的登录机制,在小程 序下,无法兼容。 loginRequest组件 请求专用接口,并保存登录状态0 码力 | 36 页 | 833.39 KB | 1 年前3
 唯品会调度系统的前世今生saturn.vip.com 控制台集群 (Tomcat) ZK Observe r ob-saturn-zk-* 2台 3台 x台 调度器集群 接入域-B 执行结点 作业实现 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 图片扫描(侵权),格式/大小转换 女大须嫁 弹性调度系统开源版本 开源的目的 利用社区的力量,提升 产品的稳定性、可靠性, 进而降低产品的开发、 维护等成本 减少维护成本 增强公司在技术领域的 品牌影响力,吸引更优 秀人才加入 提升技术品牌 目前已经开源的类似功 能的产品的功能性、实 用性、规模性都比 Saturn有很大差距 填补开源业界空白 内外代码管理策略 VIP Console0 码力 | 58 页 | 5.40 MB | 1 年前3 唯品会调度系统的前世今生saturn.vip.com 控制台集群 (Tomcat) ZK Observe r ob-saturn-zk-* 2台 3台 x台 调度器集群 接入域-B 执行结点 作业实现 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 图片扫描(侵权),格式/大小转换 女大须嫁 弹性调度系统开源版本 开源的目的 利用社区的力量,提升 产品的稳定性、可靠性, 进而降低产品的开发、 维护等成本 减少维护成本 增强公司在技术领域的 品牌影响力,吸引更优 秀人才加入 提升技术品牌 目前已经开源的类似功 能的产品的功能性、实 用性、规模性都比 Saturn有很大差距 填补开源业界空白 内外代码管理策略 VIP Console0 码力 | 58 页 | 5.40 MB | 1 年前3
 领域驱动设计&中台/演进式架构的平台化落地微服务架构设计 服务地图 设计 API设计 部署架构设计 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 配置 … 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 定义通⽤用 约束条件 定义服务 约束条件 可视化设计 服务地图 关联变更更到需求 关联变更更到需求 设计API 导swagger ⽂文件 API清单 设计变更更与 需求关联 服务地图变 更更历史 ⽣生产环境 部署架构设计 测试环境 部署架构设计 绘制部署架构,组合服务和 部署元素 部署架构变更更历史 推荐部署架构(远期规划) 微服务开发框架定制 代码架构⻛风格选择 资源配置 数据库版本管理理 是否⾃自动⽣生成API/ Dockerfile/流⽔水线 对接流⽔水线执 ⾏行行部署 分享 契约 应⽤用架构变更更 评审 关联变更更到需求 需求 查看需求 我的任务 对接外部 系统 前台 后台/⽀支持 为MVP包含的功能范围 服务地图 产品服务 ⽤用户 产品 容器器 云 PaaS ELK 监控 发布 平台 运维服务 服务实例例 资源池 运⾏行行架构 175 ⽤用户认证服务 鉴权 会话 微服务设计服务0 码力 | 42 页 | 2.95 MB | 1 年前3 领域驱动设计&中台/演进式架构的平台化落地微服务架构设计 服务地图 设计 API设计 部署架构设计 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 配置 … 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 定义通⽤用 约束条件 定义服务 约束条件 可视化设计 服务地图 关联变更更到需求 关联变更更到需求 设计API 导swagger ⽂文件 API清单 设计变更更与 需求关联 服务地图变 更更历史 ⽣生产环境 部署架构设计 测试环境 部署架构设计 绘制部署架构,组合服务和 部署元素 部署架构变更更历史 推荐部署架构(远期规划) 微服务开发框架定制 代码架构⻛风格选择 资源配置 数据库版本管理理 是否⾃自动⽣生成API/ Dockerfile/流⽔水线 对接流⽔水线执 ⾏行行部署 分享 契约 应⽤用架构变更更 评审 关联变更更到需求 需求 查看需求 我的任务 对接外部 系统 前台 后台/⽀支持 为MVP包含的功能范围 服务地图 产品服务 ⽤用户 产品 容器器 云 PaaS ELK 监控 发布 平台 运维服务 服务实例例 资源池 运⾏行行架构 175 ⽤用户认证服务 鉴权 会话 微服务设计服务0 码力 | 42 页 | 2.95 MB | 1 年前3
 QCon北京2018-《美团配送系统架构演进实践》-阴永俊用户消费升级 促使即时配送全面信息化 人工智能 大数据 GPS+GIS 移动互联网 智能手机/APP • 预测供需结构,智能派单调度 • 评估难度、ETA、骑手能力等数据 • 定位越来越精准,地图与导航逐渐成熟 • 实时移动的信息传递通路 • 线下配送的全过程纳入信息环境 1.基础设施不断完善 配送业务全面信息化是必然趋势 2.用户消费升级 数据来源:智研咨询 美团配送系统的技术挑战 定价 ETA 配送 轨迹 骑手 位置 筛选 动态 补贴 运单 Rank 您已到达 南湖中园 一区3号楼 顾客地址 附近 您已经导到顾客 附近 面 GeoHash 地理围栏 任务地图 导航 热力图 空间 室内定位 高度/楼层 点 nearby查询 地理编码 交付点 美团点评技术团队0 码力 | 31 页 | 15.26 MB | 1 年前3 QCon北京2018-《美团配送系统架构演进实践》-阴永俊用户消费升级 促使即时配送全面信息化 人工智能 大数据 GPS+GIS 移动互联网 智能手机/APP • 预测供需结构,智能派单调度 • 评估难度、ETA、骑手能力等数据 • 定位越来越精准,地图与导航逐渐成熟 • 实时移动的信息传递通路 • 线下配送的全过程纳入信息环境 1.基础设施不断完善 配送业务全面信息化是必然趋势 2.用户消费升级 数据来源:智研咨询 美团配送系统的技术挑战 定价 ETA 配送 轨迹 骑手 位置 筛选 动态 补贴 运单 Rank 您已到达 南湖中园 一区3号楼 顾客地址 附近 您已经导到顾客 附近 面 GeoHash 地理围栏 任务地图 导航 热力图 空间 室内定位 高度/楼层 点 nearby查询 地理编码 交付点 美团点评技术团队0 码力 | 31 页 | 15.26 MB | 1 年前3
 领域驱动设计&中台/可视化的遗留系统微服务改造} 被其他模块依赖 package A class X { public void foo(){} } 独⽴立存在 Structure101代码依赖分析 可视化代码地图 ⾃自动分析每⼀一层级 包/类之间的依赖⽣生 成可视化表格 Structure101代码依赖分析 具体依赖细节 Structure101代码依赖分析 可以将包/类进⾏行行0 码力 | 54 页 | 3.85 MB | 1 年前3 领域驱动设计&中台/可视化的遗留系统微服务改造} 被其他模块依赖 package A class X { public void foo(){} } 独⽴立存在 Structure101代码依赖分析 可视化代码地图 ⾃自动分析每⼀一层级 包/类之间的依赖⽣生 成可视化表格 Structure101代码依赖分析 具体依赖细节 Structure101代码依赖分析 可以将包/类进⾏行行0 码力 | 54 页 | 3.85 MB | 1 年前3
 联想-贺钢架构工作在国际化项目中的应用实例支持国家 160 多语言支持 27种语言 架构师 5-8人 开发人员 中国,美国,日本,印度 三方合作伙伴 6-7家 系统组件设计 图示 系统整体架构I 系统整体架构II 对架构设计的影响I -- 数据中心的设计 数据中心早期架构 数据中心碰到的问题 • 跨国网络引起的技术问题 • 来自法务的问题 • 来自安全部门的问题 数据中心最终方案 用户访问量对应的web架构 用户访问量 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不 同的节点 对架构设计的影响II -- 数据库表设计 数据库表早期设计 ID ... Type Name Size Create Date … 1 … 1 1.doc 432437 2014-05-04 … 2 … 1 time”:”2014-01-08”,”Sent to”:”Herman, Jack, Tom”} 对架构设计的影响III – 非技术性的相关工作 • 沟通 通常项目的组织形式 国际化项目开发阶段 沟通个人经验 • 用于沟通的时间 > 50% • 承认对方和自己一样聪明 对架构设计的影响IV – 登录设计 • 功能: 用户名密码登录 登录相关设计碰到的问题 • 安全关注: 国内服务器0 码力 | 53 页 | 2.36 MB | 1 年前3 联想-贺钢架构工作在国际化项目中的应用实例支持国家 160 多语言支持 27种语言 架构师 5-8人 开发人员 中国,美国,日本,印度 三方合作伙伴 6-7家 系统组件设计 图示 系统整体架构I 系统整体架构II 对架构设计的影响I -- 数据中心的设计 数据中心早期架构 数据中心碰到的问题 • 跨国网络引起的技术问题 • 来自法务的问题 • 来自安全部门的问题 数据中心最终方案 用户访问量对应的web架构 用户访问量 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不 同的节点 对架构设计的影响II -- 数据库表设计 数据库表早期设计 ID ... Type Name Size Create Date … 1 … 1 1.doc 432437 2014-05-04 … 2 … 1 time”:”2014-01-08”,”Sent to”:”Herman, Jack, Tom”} 对架构设计的影响III – 非技术性的相关工作 • 沟通 通常项目的组织形式 国际化项目开发阶段 沟通个人经验 • 用于沟通的时间 > 50% • 承认对方和自己一样聪明 对架构设计的影响IV – 登录设计 • 功能: 用户名密码登录 登录相关设计碰到的问题 • 安全关注: 国内服务器0 码力 | 53 页 | 2.36 MB | 1 年前3
 付钱拉金融云系统架构演进和最佳实践早于用户 发现问题 如何让开发人员 对自己的代码 更加有安全感 ? 这些困惑的体现是什么呢? 开发人员如何提高代码质量,减少频繁迭代产生的bug? 线上环境突发事故,第一时间如何决策减少事故影响范围? 开发人员排查问题速度过慢? 随着业务的增长,问题越来越多,第一优先级需要解决什么? 系统突然CPU、内存利用率暴增,如何定位代码? 数据库连接数被耗尽,怎么办? 各种OOM如何预防? 导致连接数耗尽影响业务功能 7.代码书写中考虑MySQL中共享锁和排它锁场景,预防产生死锁 8.代码中不建议使用@Transactional,因为一般业务场景中用不到,它影响数 据库性能并且多个操作可能在并发下导致数据库死锁 9.数据库单表达到一定数据量级需要做分库分表或者冷热数据隔离,避免业 务增加带来的性能问题 10.尽量避免使用全局变量防止并发出现线程安全问题,从而影响业务 11 定时器浪打浪情况下,启动多个定时器即默认启动多个线程,影响系统性能 定时器浪打浪情况下,如果定时任务处理过慢会导致内存耗尽 12.避免系统中出现单点故障,包括中间件和应用程序等所有的节点 13.能异步处理的别同步处理,异步可以释放线程资源,避免阻塞,提高响应效率 14.随着业务量的增加,考虑功能拆分和数据库表拆分,除此支付系统建议按照通道 拆分,不同的通道指定独立的work线程,分而治之,避免相互之间影响;提高并发的一个思路就是拆分,0 码力 | 35 页 | 6.05 MB | 1 年前3 付钱拉金融云系统架构演进和最佳实践早于用户 发现问题 如何让开发人员 对自己的代码 更加有安全感 ? 这些困惑的体现是什么呢? 开发人员如何提高代码质量,减少频繁迭代产生的bug? 线上环境突发事故,第一时间如何决策减少事故影响范围? 开发人员排查问题速度过慢? 随着业务的增长,问题越来越多,第一优先级需要解决什么? 系统突然CPU、内存利用率暴增,如何定位代码? 数据库连接数被耗尽,怎么办? 各种OOM如何预防? 导致连接数耗尽影响业务功能 7.代码书写中考虑MySQL中共享锁和排它锁场景,预防产生死锁 8.代码中不建议使用@Transactional,因为一般业务场景中用不到,它影响数 据库性能并且多个操作可能在并发下导致数据库死锁 9.数据库单表达到一定数据量级需要做分库分表或者冷热数据隔离,避免业 务增加带来的性能问题 10.尽量避免使用全局变量防止并发出现线程安全问题,从而影响业务 11 定时器浪打浪情况下,启动多个定时器即默认启动多个线程,影响系统性能 定时器浪打浪情况下,如果定时任务处理过慢会导致内存耗尽 12.避免系统中出现单点故障,包括中间件和应用程序等所有的节点 13.能异步处理的别同步处理,异步可以释放线程资源,避免阻塞,提高响应效率 14.随着业务量的增加,考虑功能拆分和数据库表拆分,除此支付系统建议按照通道 拆分,不同的通道指定独立的work线程,分而治之,避免相互之间影响;提高并发的一个思路就是拆分,0 码力 | 35 页 | 6.05 MB | 1 年前3
 分布式 KV 存储系统 Cellar 演进之路observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 存储节点Failover,越快越好? • 数据补全对业务影响 • 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 影响可用性的问题 • 数据迁移 • 请求超时抖动 Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列0 码力 | 34 页 | 1.66 MB | 1 年前3 分布式 KV 存储系统 Cellar 演进之路observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 存储节点Failover,越快越好? • 数据补全对业务影响 • 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 影响可用性的问题 • 数据迁移 • 请求超时抖动 Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列0 码力 | 34 页 | 1.66 MB | 1 年前3
 分布式异地多活架构实践之路几十毫秒的延迟; 跨机房性能较慢 机房天然延迟 专线费用高; 专线不稳定 跨机房专线问题 依赖小服务,有一 定改造成本; 依赖外部服务 服务依赖问题 减少对业务开发影响; 需要封装屏蔽细节 业务开发影响 如何精准调度; 如何合理调度 流量调度 存储系统自带同步 不成熟; 自研组件之间同步 数据同步 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 • 讯飞输入法解决方案 • 实际应用效果 • 未来规划 可用性 机房内故障 机房入口网 络故障 DNS问题 自动流量切换,业务 几乎没影响 10分钟迁移95%流量, 总体可控 几乎无劫持,延迟降低 20%,解析失败率率下 降15% 响应时间 优化前 优化后 系统扩容 北京IDC 合肥IDC 广州IDC 系统能够任意水平扩容0 码力 | 36 页 | 1.66 MB | 1 年前3 分布式异地多活架构实践之路几十毫秒的延迟; 跨机房性能较慢 机房天然延迟 专线费用高; 专线不稳定 跨机房专线问题 依赖小服务,有一 定改造成本; 依赖外部服务 服务依赖问题 减少对业务开发影响; 需要封装屏蔽细节 业务开发影响 如何精准调度; 如何合理调度 流量调度 存储系统自带同步 不成熟; 自研组件之间同步 数据同步 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 • 讯飞输入法解决方案 • 实际应用效果 • 未来规划 可用性 机房内故障 机房入口网 络故障 DNS问题 自动流量切换,业务 几乎没影响 10分钟迁移95%流量, 总体可控 几乎无劫持,延迟降低 20%,解析失败率率下 降15% 响应时间 优化前 优化后 系统扩容 北京IDC 合肥IDC 广州IDC 系统能够任意水平扩容0 码力 | 36 页 | 1.66 MB | 1 年前3
 海尔实时计算平台技术选型与实践Spark Flink Ganglia Sqoop zeppelin Saiku Caravel CBoard Nagios 实时数据采集技术选型要求 • 完整 • 低延时 • 不影响业务系统性能 代码埋点: • 优点:采集能力强 • 缺点:时间、人力成本大 实时数据采集-数据如何获取? 可视化埋点: • 优点:成本低,速度快 • 缺点:行为记录信息少,支持的分析方式少 CDC建议方案 Mysql CDC可选方案: • Canal Postgresql CDC 建议方案 BottledWater: • 支持postgresql 9.4及以后版本 • 几乎不影响数据库本身性能 • 事务一致性的输出 • 容错 上图摘自confluent官网 Flume适合: • 日志收集 • 日志传输 • 拦截数据 消息队列适合: • 消息持久化 • 解耦0 码力 | 41 页 | 3.21 MB | 1 年前3 海尔实时计算平台技术选型与实践Spark Flink Ganglia Sqoop zeppelin Saiku Caravel CBoard Nagios 实时数据采集技术选型要求 • 完整 • 低延时 • 不影响业务系统性能 代码埋点: • 优点:采集能力强 • 缺点:时间、人力成本大 实时数据采集-数据如何获取? 可视化埋点: • 优点:成本低,速度快 • 缺点:行为记录信息少,支持的分析方式少 CDC建议方案 Mysql CDC可选方案: • Canal Postgresql CDC 建议方案 BottledWater: • 支持postgresql 9.4及以后版本 • 几乎不影响数据库本身性能 • 事务一致性的输出 • 容错 上图摘自confluent官网 Flume适合: • 日志收集 • 日志传输 • 拦截数据 消息队列适合: • 消息持久化 • 解耦0 码力 | 41 页 | 3.21 MB | 1 年前3
共 20 条
- 1
- 2













