金融级系统海量流量下的高可用架构实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 金融级系统海量流量下的高可用架构实践
2.
3. 开 篇
4. 分享的视⻆ ⻩金链路金融系统 电商⻩金链路 、全链路 、全场景、海量流量 业务 系统 关注度 影响范围
5. 分享的原因 02 01 成⻓ 变化 04 why or how 03 银弹
6. 定 义 篇
7. 不可用 服务器 , 可控机房故障 01 光纤挖断,不可控外部事件 04 不可用 02 03 上线故障 , 内部人为事故 9.11 黑天鹅事件
8. 金融业务不可用表现 信息泄露 • 信息盗取:木⻢病毒、假冒网 站、数据安全事故 • 信息泄露:身份信息、账号密 码泄露 信贷欺诈 交易欺诈 账号盗用 • 身份冒用/非本人申请 • 盗刷 • 账号接管:登录、修改及管 • 身份美化 • 套现 理身份、绑卡、窃取信息数 • 恶意逾期/恶意失联 • 盗帐号交易 • 线上业务交易欺诈 据、动账转账
9. 不可用是什么 已知 未知 ⻛险 不可用 ⻛险 不可用是指潜在⻛险在一定条件触发下的结果呈现 条件 时间 人
10. 业内定义 MTTR SLA 服务水平协议 04 03 SLI 平均故障时间 01 02 衡量服务质量的指标 MTBF 平均故障间隔时间
11. 业务视⻆不可用 不可用 = L1.E1.D1.T1 + ….. + Ln.En.Dn.Tn • 业务资质 • 资损 • 舆情 • 客诉 • 用户体验 • 业务收入、预期 • P • P • P2 系统 级别L 类型E • 核心业务 • 全部接口 • 100% 、80% 、…… 不可用 程度D • 小时 • 分钟 • 秒 时间T
12. 不可用的特性 PRAT PRAT PRAT 01 02 03 趋势性 隐秘性 爆发性 不可用的等级有随时间及其 他外部因素逐步提升的趋势 ⻛险的触发条件比较隐晦 • 交换机宕机 • 主机上其他应用有定时任务
13. 不可用原因 – 时代 – 业务 VUCA乌卡(易变性、不确定性、复杂性、模糊性)时 代 业务的现状是我们现在已经从单一的做业务 ,到 业务生态 ,我们处在一个快速裂变的时代 VUCA 开放式架构 企业级架构 微服务架构 单体架构 工具化时代 工具化时代 信息化时代 数字化时代
14. 不可用原因 – 时代 – 基础设施 2009 《 Above the Clouds : A Berkeley View of Cloud Computing 》 2019 《Cloud Programming Simplified: A Berkeley View on Serverless Computing》
15. 不可用原因 – 内因 ◆ 流量 ◆ 变化 ( 时间 … ) ◆ 不可靠 ◆ 耦合 ◆ 系统架构 ◆ 上线
16. 不可用原因 – 成本 可用性 成本 VS ⻛险 成本
17. 不可用原因 – 认知 所有降级措施是有效的 低优先级系统不需要备战 上游已经替我做了保护 下游是稳定的 所有应急预案是可执行的 流量洪峰后系统能快速恢复 历史的经验是可靠的 系统重试能解决问题
18. 不可用原因 ◆ 高可用 涉及 所有 业务场景 、 系统各层级 、 软件开发的全生命周期 、 组织架构 、团队分工 , 贯穿整个 软件开发体系 ◆ 高可用的难点在于对软件的全景认知 ,对于(新)变化 的感知 ,对于 (历史) ⻛险点 的识别 , 在于事前预估与预案 ,事中有效处理 ,事后复盘总结 , 形成闭环 即使付出了99%的努力 ,也会因为 1%的疏忽 ,带来意想不到的结果 ,所以高可用应该是一套需要 持续完善和迭代的体系和方法论 、 需要持续的关注和投入 ◆
19. 结 构 篇
20. 结构 单一结构 复合结构 复杂结构串联
21. 体 系 篇
22. 高可用指导思想 • • • 01 02 03 04 系统 -> 业务 ⻛险 -> 事故 架构升级 数据驱动 追求业务连续性 以不可用等级为评判标 准 追求业务收益与线上⻛ 险之间的平衡 • • • 减少⻛险点 控制⻛险转化为事故 有⻛险必有监控 ,有 监控必有预案,有预 案必经验证 • 通过架构升级,沉淀标 准的业务模型 、技术 解决方案 ,降低人为 错误几率 ,提升系统 的可用性 • • 通过业务数据形成业务 系统⻛险数据模型 借助数据模型+AiOps 强化⻛险预警与提前部 署预案能力
23. 高可用考虑因素 成本 ● 研发成本 ● 管理成本 ● 资源成本 系统 ● ● ● ● 软件生命周期 现有解决方案 容错性 体系完善度( 监控覆盖度 、上线SOP 、预 案 ) 不可用等级 人 ● 认知 、能力要求 ● 组织架构
24. 高可用面临的挑战 识别 预防 感知 定位 如何尽早识别未知⻛险 如何全面预防事故发生 如何尽快感知事故 如何精准定位问题 解决 如何快速、有效解决问 题
25. 高可用体系 ◆ 识别 指标体系 ◆ 混沌工程 ◆ 报警体系 复盘 ◆ 自动化 ◆ 平台化 解决 ◆ 日常/大促预案 ◆ 硬件异常预案 ◆ 业务异常预案 ◆ 大促预案 ◆ 异常执行规范 01 06 05 预防 ◆ 研发规范 02 体系 打造 ◆ 安全漏洞修复 ◆ 容量保障 ◆ 代码质量提升 ◆ 报警收敛 ◆ 容灾 03 感知 ◆ 监控大屏 04 ◆ 上下游沟通机制 定位 ◆ 值班机制 ◆ 硬件监控平台 ◆ 链路监控平台 ◆ 业务监控平台
26. 识别 – 指标体系 场景层 应用程序层 用户访问次数及时⻓统计 场景流量 交互 QPS TPS 内部 消息积压 质量 基础设施层 错误码统计 报警数量 CPU Memory 负载 线程数 I/O Statistics Network
27. 识别 – 混沌工程 MYSQL故障 REDIS故障 RPC故障 06 01 02 CPU负载故障 05 混沌 工程 03 磁盘故障 04 网络延迟故障
28. 预防 – 研发生命周期 需求确认 测试 ● 业务本质确认 ● 结构影响评估 ● 承载系统确认 ● 单侧覆盖 ● 流量回放 上线 设计 ● 架构设计 ● 组件设计 ● 技术方案设计 开发 ● 代码质量提升 ● 报警收敛 研发生命周期 ● 上线SO ● 灰度上线 ● 白天上线 ● Serverless 运营 ● ● ● ● 指标体系 监控大屏 预案 备战
29. 预防 – 弱依赖 基于 MySQL自身高可用 , 以及一定的 容灾设计(如热备、读写分离、冷热分离、内存DB、延时异步入库等), 最终达到数据库整体架构的高可用 强依赖数据库架构 弱依赖数据库架构 Mysql 数据库集群-异地多机房架构 机房 (异地 备) 机房 (同城 从) 半同步 机房 (主) 其他存储 异常切换 Redis集群 业务系统 clickhouse db2 db1 db3 … db84 缓存集群 ES+HBASE 消息队列1 大数据 … 表1 表2 表3 表150 对象存储 db 消息队列2
30. 定位 – 全域可观测 核心场景链路可视化 流量漏斗可视化 ■ 多层级监控体系 业务指标可视化 ■ AIOPS 应用监控 、链路追踪 中间件监控 应用日志 主机监控 容器监控
31. 解决 – 降级体系 体验功能降级 01 02 业务功能降级 会话级核心功能降级 03 04 多级降级、全链路降 级 05 兜底
32. 成败藏在细节里 ◆ https的证书大小是多少 ◆ 已经设置了有效期的缓存如何设置为不过期 ◆ 影响TPS的因素到底有哪些 ,影响的程度分别是什么
33. 架 构 篇
34. 研发的本质 软件的本质是基于对业务本质理解进行的 业务建模 并打造描述业务模型的 复杂概念结构 , 结合业务发展持续演进 ,使用 机器 语言 语言 表达这些概念结构 ,在空间和时间限制下将他们映射成
35. 方法论之争 业务 VS 技术 是什么 VS 怎么做 语言 VS 机器 lambda calculus VS 图灵机
36. 语言的演进 计算机以 二进制系统 为基础 , 并使用 比特 去描述和映射世界 , 而 万物皆比特 ,语言的终点是 DSL
37. PaaS化架构 金融场景 场景层 零售场景 智慧城市 线下场景 物流场景 标准 API ……… H5 / PC 开放平台输出体系 规则策略 实名路由 服务层 信贷类 人脸 账号 核身 合同 四要素 合同签约 账号转化 科技类 财富类 人脸 证件 合同 企业认证 数科账号 适配业务线 叠加服务编排 编排层 …… 平台管控 物流类 核身 合同 四要素 企业认证 合同 …… 安全管理 …… …… 产品注册 登录安全 核 身 实名等级 组件配置 领域层 技术层 刷脸实名 分布式锁 OCR 分库分表 无损文档转换 流量回放 标准合同签约 规则引擎 电子营业执照 编排引擎 打款认证 表达式引擎 营销规则 鉴权规则 监控管理 流程编排 代码质量 资源管理 能力层 公安网 区块链 人工智能 对象存储 实时智能计算平台 流量回放平台 用户管理
38. PaaS化架构特点 场景隔离 标准化实现 系统缩减 API 收敛 用户洞察 PaaS化 架构
39. 架构未来演进 03 PaaS化架构 是什么 | 怎么做 微服务架构 02 架构升级 是什么 + 怎么做 单体架构 01 04 数字化架构 现在是什么-应该是什么 | 怎么做
40. 总结 ◆ 高可用是一个零和游戏 , 只有0和100分 , 成败藏在每一个细节里 ◆ 高可用需要一套持续迭代的 ◆ 体系是通过企业级 体系 来保障 架构 的升级来实现 ,提升可用性的同时,降低系统复杂度和研发成本 ◆ 高可用的背后是业务与技术之间的博弈和平衡 ,在数字化和云原生的时代 ,演进的方向是从矛盾的 对立走向统一 ,实现业务与技术的双轮驱动

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-13 04:23
浙ICP备14020137号-1 $Carte des visiteurs$