降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 ,并做好降级预防措施 • 参数修正,及时调整流控、降级策略略,优化告警、超时参数设置 • 模拟线上故障,进⾏行行故障复现,验证故障后续的处理理措施是否⾏行行之有效 • 以战养兵,历练团队,让⼯工程师有更更多机会积累经验,提升应对故障的能⼒力力 常态化的故障演练对系统进⾏行行反复验证 系统设计 Agent Core Custom Code Model Burn CPU Servlet 治 理理保障系统的可⽤用性 • 通过反复的故障演练,发现系统中的薄弱点,并进⾏行行有效的预防 • 配合降级预案,让系统的可靠性更更易易验证,让演练更更加常态化 • 历练团队、积累经验,促进⼯工程师的进步,提⾼高应对故障的能⼒力力 ⾃自我介绍0 码力 | 26 页 | 18.67 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+"� 丢弃 移动服务�C� 接入层/gw� 服务�A� 1� 服务�B� 2� 移动服务C 接入层 服务A 服务B 1 2 移动服务 接入层 v2 v3 v1 重要原则 幂等、接口可重入 接口规范化(命名、类型、长度等) 分布式事务,补偿、撤销机制 接口缓存,热数据尽可能前置 DB跟随服务 cloud≠容器化≠RPC 工具/框架是手段而不是目的 02 优秀的系统=� 适应性架构设计(指导)+超强工程能力(落地) 03 04 技术要紧贴业务,接地气 技术是手段而不是目的,生产力适应生产关系,技术业务相互促进共同发展 安于现状=走下坡路 提升团队整体工程能力,前瞻性改造 Thanks�0 码力 | 42 页 | 19.96 MB | 1 年前3
演进式架构:数字化世界"进化论" 肖然incremental, guided change as a first principle across multiple dimensions. 在多维度上,刻意引导下的增量改变作为第一原则。 Any organization that designs a system will produce a design whose structure is a copy of the Function Atomic 原子的 Continuous 持续的 适应度方程 Fitness Function Continuous 持续的 Holistic 全局的 工程卓越 —— 演进的基础 没有任何实践可以代替交流沟通 “The measure of intelligence is the ability to change.” - Albert0 码力 | 22 页 | 2.14 MB | 1 年前3
ServiceComb 开源微服务框架技术演进之路 巨震ServiceComb 开源微服务框架技术演进之路 巨震 软件工程师,华为 • 服务形态演进 • 基于SDK的传统微服务框架 • 何为Service Mesh • 演进:从SDK到Service Mesh • 拥抱Service Mesh开源生态 • 相关资源 #微服务 #Service Mesh #Sidecar #云原生 #SDK #数据面,控制面 Spec注解:sidecar.mesher.io/inject: "yes" • Namespace标签: kubectl label myns sidecar-injector=enabled 用户案例 原则 • 架构稳定,有可持续发展、演进能力 • 支持多语言、传统微服务和新兴ServiceMesh微服务 架构混合场景部署 • 有大型成功商用案例 • 无商业强绑定,高自由度,企业自主可控0 码力 | 20 页 | 861.58 KB | 1 年前3
海量用户推送后台系统架构实践-曾振波极光推送后台系统架构实践 曾振波 极光开发者技术部推送开发组 技术负责人 极光推送后台系统架构实践 曾振波 极光开发者技术部推送开发组 技术负责人 极光推送后台开发工程师 多年互联网开发经验,专注后台开发技术。2016年加入极光,负责极光推送平台架构设 计及开发,主导包括K8S在内的技术架构实施落地,推动系统架构的演进,构造支撑海 量用户的推送系统,对大规模分布式系统架构及设计有深入的理解。 深入的理解。 自我介绍 • 极光推送服务架构 • 关于极光 • 消息推送系统面临的挑战 • 极光推送相关架构 • 极光推送后台系统架构 • 后台系统架构基本原则 • 链接管理 • 系统安全 • 新技术的应用 目录 关于极光 36.9 万 开发者 107.6 万 APP 198 亿 移动终端 10.4 亿 月独立 活跃设备 90 % 覆盖率 亿级长连接用户0 码力 | 23 页 | 1.26 MB | 1 年前3
领域驱动设计&中台/架构分层模型适配动名词个数总结 前端应⽤用 API服务 业务领域 基础设施 动词 名词 应⽤用服务 1 1 领域模型 1 2 基础设施 2 2 原则 即使不不同层的模型字段完全⼀一样, 也要求各⾃自创建。 架构师职责 提炼概念 管理理复杂性 坚持原则 但不不增加⼯工作量量 import org.apache.commons.beanutils.BeanUtils; UserBean newObject private String zip; private String phone; // getters and setters // ... } 坚持原则 systemUser.setFirstName(user.getFirst()); systemUser.setLastName(user.getLast()); systemUser setZipcode(user.getZip()); 看似⼯工作量量多 其实降低了了复杂度(纠结) 保持User模型的纯洁 降低了了复杂度 如果从概念上User模型就是只有⼀一个address 守护原则-CI检查 分层架构单元测试 https://www.archunit.org/ import com.tngtech.archunit.junit.AnalyzeClasses; import0 码力 | 39 页 | 2.54 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造模型来访问?当前领域模型就是与该可独 ⽴立访问的领域模型为同⼀一个聚合 2. 将命令贴在聚合的左⾯面,是聚合的输 ⼊入;事件贴到聚合的右⾯面,是聚合的输 出。 3. 再根据聚合的原则(下⼀一⻚页描述)来 检验上⾯面的划分结果是否匹配,如不不匹 配则基于划分原则并结合业务重新调整 聚合。 使⽤用聚合的⽬目的是封装业务的不不 变性,同时强迫⼤大家尽可能的简 化领域模型之间的关联关系。在 业务层⾯面进⾏行行⾼高内聚,低耦合的 这些问题是否为同⼀一个问题,如果是 则放到⼀一个限界上下⽂文中(⼀一个问题 对应⼀一个限界上下⽂文),如果为否则 拆分到不不同的限界上下⽂文中; 2.如果⼀一个聚合(领域模型)同时解 决多个问题时,则需要根据限界上下 ⽂文的划分原则(后⾯面⼏几⻚页会详细描述) 对聚合(领域模型)进⾏行行拆分,拆分 后对应的领域模型划分到不不同的限界 上下⽂文中; 3.上⾯面环节中所定义的问题⼤大⼩小(需 考虑问题的变化原因、内在逻辑等) 需与领域专家共同讨论完成。 ⽀支付上下⽂文 ⽀支付宝 回调 仓库库存 库存上下⽂文 出库单 ⼊入库单 出⼊入库上下⽂文 补货 申请单 补货上下⽂文 物流⼦子域 每⼀一个限界上下⽂文 都是在明确边界 微服务设计原则 1. 对⻬齐限界上下⽂文 2. 业务变更更频率与相关度 3. 系统⾮非功能性需求 4. 组织结构和康威定律律 5. 团队规模 6. 技术异构和现有系统复杂度 服务画布 已可视化 阿0 码力 | 54 页 | 3.85 MB | 1 年前3
QCon北京2018-《美团配送系统架构演进实践》-阴永俊主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 计算平台 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 奖惩 业务管理 (过程) 运营工具 任务系统 骑手运营 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 并行计算 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 奖惩 业务管理 (过程) 运营工具 任务系统 骑手运营 • 如何解耦用户侧与骑手侧 • 调度系统如何设计 • 如何实现算法与工程结合 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 计算平台 策略平台 (算法策略) 算法框架0 码力 | 31 页 | 15.26 MB | 1 年前3
美团点评旅游推荐系统的演进x3,x4,x5,x6,x7,…] dn[x1,x2,x3,x4,x5,x6,x7,…] …… L2R System d7 d2 d6 d5 … 。 。 d1 Model h 线上工程 问题建模 •GBDT •非线性 •High Level特征多 •XGBoost •泰勒展开,利用了二阶导数信息 •对数据预排序,性能更高 •多模型融合 •GBDT模型+FFM模型 Level特征多 •情景推荐 •发现特征关联关系 •用户画像 •上下文 •POI ID&属性 滑雪 age<25 User 25-40 age>40 … 温泉 POI 数据标注 特征工程 特征工程 •特征预处理 •missing value:不需要处理 •position bias:COEC •One-Hot Encoding?周几/小时/city id •Normalize •Normalize? •召回策略特征化 •销量拆分本异地 •User-POI行为:实时/长期 •GeoHash热销 •POI CF •特征选择 •特征在每棵树每个节点的信息增益之和 特征工程 •特征分析 •分本异地统计转化率、销量 •天气 •特征监控 •覆盖率 •值域范围 •分布异常 特征 coverRatio numValid 参考值 监控值 波动率 参考值 监控值 波动率 CLICKNET0 码力 | 49 页 | 5.97 MB | 1 年前3
领域驱动设计&中台/用状态机封装领域逻辑加微信时烦告知尊姓大名 作用 逻辑内移 都以为自己在做正常的事情, 系统却出问题了 强制封装保护信息完整性 条件语句?泛化?不重要了 作用 帮助定义恰当的责任 专家原则、可视原则 减少get/set 接口变简单 要素 状态 行为由组合决定 复杂就在这里! 状态--表现相同行为的属性值和链接的组合 状态 状态机图 vs. 活动图 顶点和边的含义相反0 码力 | 30 页 | 1.75 MB | 1 年前3
共 19 条
- 1
- 2













