探索不可变架构:从测试到全球分布式系统
1. 不可变运行时测试
在测试过程中,运行时不仅使用内存中的数据存储,还使用进程内通信模拟器。这一模拟器使得测试无需设置互连节点或使用不可靠的基础设施。虽然它不会用于生产应用,但能对开发者在此阶段做出的重要决策进行测试。真正的通信系统的正确行为由无冲突复制数据类型(CRDTs)的数学原理决定,运行时供应商会用自己的一套测试来覆盖这些行为。
开发者会在各个阶段进行迭代,不断完善模型、编写新查询、构建新投影,并实现更复杂的协作。在整个过程中,他们在当前阶段做出的决策与过去的决策保持一致,工具通过代码生成和类型检查来确保这种一致性。开发者通过多次迭代构建出一个可用的应用,且在任何时候,开发者对数据访问层和网络子系统表达的意图都必须一致,避免因行为孤岛之间的分歧引入错误。所有行为都从意图表达中生成,这让开发者有信心探索新的业务解决方案,并自主尝试新想法。
2. 不可变组织的兴起
随着不可变架构逐渐被接受,它将首先在个别组织内进行实验。应用开发者会尝试相关的概念、模式和技术,并采用提供不可变运行时的框架,如某些开源项目。一旦取得成功,不可变性将在组织内的其他业务单元中得到应用。
这种传播是渐进的。当业务单元需要相互集成时,他们会面临选择:是采用不可变协作,还是使用更传统的简单对象访问协议(SOAP)、表述性状态转移(REST)或企业服务总线(ESB)风格的交互?那些采用不可变性较慢的业务单元需要实现额外的适配器层,且无法获得最终一致性和冲突解决的好处;而采用新应用开发风格的业务单元将很快发现其在快速可靠的探索和实验方面的优势。
3. 决策基础架构
业务单元而非部门
超级会员免费看
订阅专栏 解锁全文
172万+

被折叠的 条评论
为什么被折叠?



