掘金线下活动第九期 | 《系统架构演进设计》 分享整理

749 阅读3分钟

编者按:本文系 美团智能支付技术负责人李星亮 讲师,在由掘金技术社区主办,以异步社区与 python之禅(刘志军公众号) 协办的《系统架构演进设计 | JTalk 第九期 - 北京场》 活动上的分享整理。JTalk 围绕以系统架构演进开发主题的系列线下活动。每期 JTalk 会邀请优秀技术团队和工程师在线下分享技术干货。旨在为开发者提供线下技术交流互动机会,帮助开发者成长。

我只是一名普通的程序猿。开篇我先给大家抛出这次分享的核心要点: 没有最好的架构,只有最合适的架构。(这个只是这次活动的一堂课分享O(∩_∩)O)

支付业务发展迅猛, 从一开始的单一POS机产品拓展到二维码、秒付、小程序、小白盒、小黑盒、轻收银、轻pos等8大类产品 产品的交付周期越来越短 团队成员逐步增加、协同作战越来越多 系统稳定性要求越来越高

支付业务还要满足不用的业务来适应不用的需求

  • M端 : 产品 + 售卖 -> 产品和商家关系的处理
  • C端 : 支付 + 资源整合 + 营销获客
  • B端 : 商户后台管理

支付方式越来越多,我们需要如何处理应对?

相关挑战

  • 快速相应
  • 一天发版多次
  • 管理越来越混乱
  • 系统越来越臃肿
  • 调用线路越来越长
  • 对接的参与系统越来越多等等

我的思路

第一步:先搞定人,再弄明白事

  • 统一认知
  • 规范制度建设
  • 团队文化建设
  • 业务技术改造

统一认知

新人团队,统一认知非常重要

  • 数不完的pm需求(适当过滤) ————>业务系统

稳定性的认知?

系统稳定性标准

  • 平均失效前时间(MTTF)
  • 平均恢复时间(MTTR)
  • 系统可用性:(1 - MTTR/(MTTF + MTTR)) * 100%
  • 业务倾向用N个9来量化可用性

智能支付稳定性要求:

  • 订单可用性: >=5个9
  • 订单损失量: <1% (日订单量) (故障时间<5min)

定规范

  • 开发流程规范
  • 发版规范
  • 代码审核规范
  • 上线规范

打造团队

  • 正能量
  • 主人翁
  • 学习型团队
  • 激励

业务改造

  • 紧跟业务
  • 分期迭代
  • 专题梳理

今天的我们如何设计架构才能合适的、合理的?

架构是什么?

其实就是应对不同发展阶段,使用合理技术思想和手段来match和支撑业务的一种思想;

吐槽:这个需要大量时间和经验来积累的,暂时我是不敢想O(∩_∩)O

架构原则

  • MVP阶段
  • 技术选择 :熟练掌握的技术、和大团队方向一致(有人给你兜底)
  • 业务分层 :数据层、服务层、接入层拆分清晰
  • 方便运维 :依赖、部署简单,All-In-One
  • 发展阶段
  • 快速实现,但要强调抽象性和结构性
  • 明确系统定位 划清系统边界
  • 核心目标是支持业务,有时候不合理的存在是合理的

  • 稳定期
  • 全面解耦
  • 服务化/组件化
  • 弹性伸缩 持续演进