中小型研发团队对于架构的选择与思考( 三 )


中小型研发团队对于架构的选择与思考

文章插图
 
统一应用分层给应用分层这件事情很简单 , 但是让一家公司的几百个应用采用统一的分层结构 , 这可不是件简单的事情 。它要做到可大可小、简单易用、支持多种场景 , 我们使用 IPO 方式:I 表示 Input、O 表示 Output、P 表示 Process , 一进一出一处理 。应用系统的本质就是机器 , 是处理设备 , 也是一进一出一处理 , IPO 方式相对于 DDD 而言更为简单实用 。
中小型研发团队对于架构的选择与思考

文章插图
 
调试工具 WinDbg
生产环境偶尔会出现一些异常问题 , 而 WinDbg 或 GDB 就是解决此类问题的利器 。调试工具 WinDbg 如同医生的听诊器 , 是系统生病时做问题诊断的逆向分析工具 , Dump 文件类似于飞机的黑匣子 , 记录着生产环境程序运行的状态 。
主要介绍调试工具 WinDbg 和抓包工具 ProcDump 的使用 , 并分享一个真实的案例 。N 年前不知谁写的代码 , 导致每一两个月偶尔出现 CPU 飙高的现象 。
我们先使用 ProcDump 在生产环境中抓取异常进程的 Dump 文件 , 然后在不了解代码的情况下通过 WinDbg 命令进行分析 , 最终定位到有问题的那行代码 。
中小型研发团队对于架构的选择与思考

文章插图
 
公共应用篇先工具再框架 , 然后架构设计 , 最后深入公共应用 。公共应用因为与业务系统结合紧密 , 但又具有一定的独立性 , 所以一般自主开发 , 不使用开源也不方便开源 。公共应用主要包括单点登录、企业支付网关、CTI 通讯网关(短信邮件微信) , 此次分享单点登录和企业支付网关 。
单点登录
应用拆分后总要合在一起 , 拆分是应用实施层面的拆分 , 合成是用户层面的合成 , 而合成必须解决认证和导航问题 。单点登录 SSO 即只需要登录一次 , 便可到处访问 , 它是建立在用户系统、权限系统、认证系统和企业门户的基础上 。我们的凭证数据 Token 使用 JWT 标准 , 以解决不同语言、不同客户端、跨 WebAPI 的安全问题 。
企业支付网关
企业支付网关集中和封装了公司的各大支付 , 例如支付宝、财付通、微信、预付款等 。它统一了业务系统调用各支付接口的方式 , 简化了业务系统与支付系统的交互 。
它将各种支付接口统一为支付、代扣、分润、退款、退分润、补差、转账、冻结、解冻、预付款等 , 调用时只需选择支付类型即可 。企业支付网关将各大支付系统进行集中的设计、研发、部署、监控、维护 , 提供统一的加解密、序列化、日志记录 , 安全隔离 。




推荐阅读