潘志伟-从单体到微服务再到中台战略的历程

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 从单体到微服务再到中台战略的历程 2019年12月15日
2. 信用算力首席架构师 十余年互联网架构经验 精通Microservice Architecture ,大数据 拥有亿级用户平台架构经验 潘志伟 万级并发的API网关经验。
3. 目录 01 什么是中台 02 基础服务治理到底怎么做 03 共享服务的诞生 04 中台为快反而生
4. 01 什么是中台
5. 什么是中台?
6. 中台定义 定义 : 企业级能力复用平台 n企业级:中台服务的范围 n能力:中台所承载的对象,如业务能力,数据能力 n复用:中台的核心价值,各业务系统所要求能能力复用 n平台:中台的主要表现形式
7. 中台建设的必要性 必要性 时机 n是刚需吗? n符合公司战略发展方向 n有多个不同的业务线需要支持吗? n高层领导的全力支持 n存在重复建设吗? n业务部门协同支持配合 n基础服务治理是否就绪
8. 02 基础服务治理到底怎么做?
9. 案例解析 为什么辛苦搭建的微服务没办法上线? 案例: 由于时间紧迫,团队一边做着需求迭代以及新功能上线,一边还得做新架构开发,每个人都非常的 忙碌。然而,在大家辛苦半个月后第一个版本交付测试的时候却出现了问题,每个人负责的模块的 代码风格不统一,框架结构不统一,其他人如果想参与到对应的模块却不清楚从哪里入手,且培训 成本过高。
10. 准备微服务工具 直接生成PO DTO对象 自动生成代码骨架 自动生成pom依赖 自动生成读写分离 自动生成Mybatis xml文件
11. 生成后的代码结构以及依赖关系 back(war) basic( jar) Controller IService IManger Servi ceImpl MangerImpl IMangerR IMangerW Facade ManagerImplR ManagerImplW DAOR DAOW R W
12. 代码分层 business:业务处理层,调用过多个服务在这里做聚合 Back(业务逻辑层) back-project facade:外部服务调用统一出口 model:定义VO相关的字段 web:接收网关转过来的请求 api:接口层,外部服务依赖该接口提供的服务; service:接口实现层,实现api接口 Basic(原子服务层) basic-project business:数据相关的处理;以及PO对象 model:定义DTO对象 facade:基础服务调用外部服务
13. Basic(原子服务)层关注点 n 单表原则,禁止2张以上的表做join查询 n 不要包含任何业务逻辑 n 对外屏蔽分库分表的操作 n 根据数据量的大小引入KV类型的分布式存储,如HBase等 n 如需要跨库跨表需要引入检索工具,如ES等
14. 前后端分离 business App node.js http/https CACHE MQ H5 node.js PC node.js DAL 主 前端开发人员 从 服务器端开发人员
15. 所有服务无状态化 session 分布式缓存 业务系统 App Nginx 业务数据 数据库 H5 业务系统 分布式存储 无状态业务 有状态数据
16. 统一认证服务 用户名和密码 生成token 认证服务 返回token 业务 调用方 返回验证结果 分布式存储 验证token 携带token请求 业务系统
17. 工具总结 ü 代码未编工具先行 ü 统一微服务工程结构 ü 统一服务启动方式(jar/war) ü 统一缓存调用方式(架构封装统一提供jar包和底层存储无关) ü 统一MQ调用方式(架构封装统一提供jar,和具体MQ类型无关) ü 统一日志格式 ü 统一多服务依赖调用方式(串行调用方式、并行调用方式) ü 统一熔断、降级处理流程
18. 业务架构图(简化版) 前端应用 APP M站 H5 PC 公众号 公共平台 统一接入网关 业务应用 配置中心 乘风系统 巡风系统 御风系统 会员业务 秒杀业务 … 用户服务 产品服务 订单服务 支付路由 指标服务 规则引擎 短链服务 消息服务 短信路由 促销服务 排序服务 … MYSQL Redis HBase HDFS ES Hive 基础服务 数据存储 监控中心 调度中心 安全中心 日志中心
19. 熔断 缓存 解耦
20. 千人千面 个性化推荐 用户服务 产品服务 属性服务 App 校验服务 标签服务 订单服务 H5 排序服务 用户行为 黑镜服务 精准营销 版本服务 ……
21. 化串行为并行,提升访问速度 (串行) (并行) (并行) 业务聚合层 业务聚合层 业务聚合层 es ExecutorService es es 服务 服务 服务 服务 慢 服务 服务 快 服务 服务 服务 优
22. 熔断功能的要求 断 熔 错误率 时间窗口 人工干预 主动告警 降级目的:业务高峰的时候,去掉非核心链路,保证主流程正常运行 熔断目的:防止应用程序不断地尝试可能超时或失败的服务,能达到应用程序执行而不需要等待下游修正服务 推荐:hystrix 或 Sentinel
23. 快、再快、更快 用户服务 产品服务 属性服务 校验服务 标签服务 精准营销
24. 充分使用缓存 业务聚合层 网络 RemoteCache 业务聚合层 LocalCache RemoteCache 服务 RemoteCache 网络 服务 DB 慢 DB 快
25. 缓存总结 统一接口 本地缓存 布隆过滤 器 分布式缓存 ü本地缓存: Caffeine 、Guava 更新策略:TTL自动过期 ü分布式缓存:redis ü缓存穿透: 伪造数据库中不存在的值,导致缓存命中失败,直接查询DB ->BloomFilter ü缓存击穿:缓存key刚好过期,大量同样的key请求过来,导致直接命中数据库 -> 查询数据层使用互斥锁 ü缓存雪崩:同一个时刻缓存大面积失效,请求全部查询DB ->服务限流+告警
26. 服务解耦 用户表 发放优惠券 积分初始化 财务初始化 邀友奖励 流量上报 优惠券服务 积分服务 用户表 订阅binlog 订阅配置平台 MQ 账户服务 MGM服务 流量上报
27. 基于MQ的应用解耦 l 应用层必须支持消息幂等 l 支持消息回溯 l 支持消息重放 l 基于关键字查询 l 消息的消费的机器IP以及消息时间
28. 架构迁移阶段需求迭代怎么做 场景:正在忙着做服务化的改造,需求迭代来了怎么办? 推荐 杜绝 n新功能新架构 n在老的工程上直接做服务化的改动 n历史功能变更也在新架构上开发 n在老的工程上继续做需求迭代
29. 新老系统线上如何兼容运行 App 老平台 Nginx H5 新平台 nNginx 配置路由 20% -> 50% -> 100% n新老平台接口名称一致、参数一致、结果格式一致、序列化方式一致
30. 服务治理总结 ü 多个服务调用尽可能并行化调用; ü 本地缓存+远程缓存完美搭配,提供统一调用方式 ü 服务高可用熔断降级必不可少,但是参数配置需要清晰 ü MQ的解耦和消峰功能是微服务有效搭配
31. 03 共享服务的诞生
32. 乘风 巡风 御风 智能营销平台 智能风控系统 智能运营平台 整合全域流量资源,提供实 数据、技术、策略、模型, 涵盖审批、交易侦测、客服、 时风控前置的精准获客服务, 四位一体集成输出,以图形 调额、催收等环节,保障零 帮助金融机构提升营销ROI。 化配置工具实现风险自主管 售信贷快捷化、规模化、精 理、策略自主部署、业务自 细化运营需求。 主拓展。
33.
34. 产品线 系统架构 数据架构 组织架构 l大部分功能重叠 l自己造的轮子跑的最快 l每个系统的数据相互独立 l部门之间资源不共享 l形成内部小圈子不共享 l我的代码永远是优秀的, l统计口径由产品线来制定 l资源不够,永远缺人 其他都是渣渣
35. 共享服务的诞生 业务 业务 共享服务 service1 service4 service2 service5 共享服务 service3 service1 service2 service3 service1 service2 service3 service4 service5 service6 service4 service5 service6 service6 ü业务侧需要知道明确的依赖关系 ü业务侧需要知道明确的调用关系 ü业务侧需要控制好降级、熔断 ü一旦业务侧换人又需要重新熟悉 ü共享服务承担所有核心业务逻辑 ü共享服务控制降级,熔断 ü业务侧只需要调用单一接口接口
36. 04 中台为快反而生
37. 中台为快反而生 快 反 ü快速迭代,朝令夕改 ü降级试错成本 ü3-5人2周完成创新项目 ü快点失败、早点失败、小点失败
38. 中台组织新架构 小前台 应用1 应用2 应用3 应用4 应用N 统一接入网关 大中台 稳后台 共享服务1 基础服务 共享服务2 基础服务 基础服务 共享服务3 基础服务 共享服务4 共享服务N 基础服务 基础服务
39. 前端应用 APP M站 H5 PC 公众号 统一接入网关 业务应用 乘风系统 巡风系统 御风系统 会员业务 秒杀业务 … 业务中台 用户中心 产品中心 订单中心 财务中心 支付中心 规则集 用户服务 产品服务 订单服务 支付路由 指标服务 规则引擎 短链服务 消息服务 短信路由 促销服务 排序服务 … MYSQL Redis HBase HDFS ES Hive 基础平台 配置中心 监控中心 基础服务 数据存储 调度中心 安全中心 日志中心 大数据平台 MYSQL HBase Hive Spark DATAX azkaban 配置服务 数据中台 A/B 行为日志 三方数据 用户画像 业务报表 运营报表
40. 总结: ü不是所有项目都需要中台 ü基础服务、必须稳定可靠 ü确定好各自的边界范围 ü制定明确的KPI指标 ü业务高度从项目中抽象 ü中台必须要高层介入,最好是最高领导,全员共识 ü中台是演变出来的,而不是一次性做出来的
41.
42.
43.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-23 20:16
浙ICP备14020137号-1 $Map of visitor$