软件架构决策:自研 vs 采购?微服务 vs 单体?
在面临高昂重构成本和技术债务时,如何使用 影响图(Influence Diagram) 与 冲突消解云(Evaporating Cloud) 做出理性、抗脆弱的架构决策。
🎯 业务痛点
CTO 和架构师每天都在做艰难的选择。比如:
- 自研核心系统(能完全掌控,但耗时极长且容易烂尾) vs 采购商业 SaaS(上线极快,但数据被锁定且后期定制化困难)。
- 迁移微服务(高并发扩展性好,但运维极其复杂) vs 维持单体架构(开发简单,但代码如同“屎山”难以维护)。
这种决策往往没有标准答案,因为它们高度依赖于未来的不确定性(如业务增长率、团队招聘速度、市场变化)。传统的对比表格(Pros & Cons)无法量化风险,也无法展示变量之间的因果联系。
🧠 破局思路:影响图 + 冲突云
1. 使用影响图(Influence Diagram)量化不确定性
影响图是专门用于在不确定环境下进行决策的工具。
- 决策节点 (Decision):自研 / 采购。
- 不确定节点 (Chance):未来一年业务订单量的增长概率(爆发式/平稳)、外部 SaaS 厂商的稳定性、内部团队招聘到高级 Go 开发人员的概率。
- 价值节点 (Value):系统总体拥有成本 (TCO) 和市场占有率。
通过将这些节点在画布上相连,你能清晰地向 CEO 展示:“如果我们自研,且没能招到足够的技术专家,最终的成本将比直接采购 SaaS 高出 300%”。
2. 使用冲突消解云(Evaporating Cloud)打破两难
有时候,我们需要打破“非黑即白”的妥协思维。
- 共同目标:打造高可用且低成本的技术底座。
- 需求 A:快速上线占领市场 -> 行动 A:采购 SaaS。
- 需求 B:保护核心数据与定制化能力 -> 行动 B:全部自研。
注入 (Injection) 破局点:能不能既快又自主? 混合架构:非核心业务(如客服、工单管理)直接采购 SaaS,而最核心的交易和数据引擎采用自研。通过定义良好的 API 网关将它们隔离,在保证上线速度的同时,保住了核心资产。
📋 实战操作指南
- 第一步:罗列核心需求。在 MindLogic 画布上,用绿色节点写下技术团队的核心需求(例如:系统扩展性),用蓝色节点写下业务团队的需求(例如:下个月必须上线新功能)。
- 第二步:暴露冲突。画出这两种需求导致的行动冲突(重构 vs 不重构)。
- 第三步:挖掘假设。点击冲突箭头,填写隐藏的假设:“我们假设如果不重构,系统下周就会崩溃”——这是真的吗?是否可以通过增加缓存来暂缓崩溃?
- 第四步:引入不确定性。在决策旁添加代表“风险”的橘色节点,评估不同选择的预期收益。
- 第五步:对齐共识。将这张包含逻辑推演的图表导出,在技术评审会上展示。基于逻辑图的讨论,通常能立刻平息无意义的技术宗教之争。
💡 为什么 MindLogic 更适合架构师?
与 Visio 或 Draw.io 等纯绘图工具不同,MindLogic 的底层是真实的因果逻辑网络。当你改变某个决策的信心指数(Confidence)时,整个网络的预期结果会自动进行计算和推演。这让架构设计真正变成了一场可以被量化的“沙盘推演”。
