构建可演化架构的挑战与策略
1. COTS 系统对架构演化的影响
在许多组织中,开发者并不掌控构成其生态系统的所有部分。商用现货(COTS)和打包软件在大公司中十分普遍,这给构建可演化系统的架构师带来了挑战。COTS 系统必须与企业内的其他应用程序一同演进,但不幸的是,这些系统对演化的支持并不理想。以下是 COTS 系统通常难以支持的演化架构方面:
- 增量式变更 :大多数商业软件在自动化和测试方面远远达不到行业标准。架构师和开发者常常需要在集成点之间构建逻辑屏障,并尽可能进行测试,经常将整个系统视为一个黑盒。在部署管道、DevOps 和其他现代实践方面实现敏捷性,对开发团队来说是一项挑战。
- 适当的耦合 :打包软件在耦合方面往往存在严重问题。通常,系统是不透明的,开发者使用定义好的 API 进行集成。不可避免地,该 API 会遇到如“反模式:最后 10% 陷阱和低代码/无代码”中描述的问题,虽然能提供一定的灵活性,但不足以让开发者高效地完成有用的工作。
- 适配函数 :为打包软件添加适配函数可能是实现可演化性的最大障碍。一般来说,这类工具不会暴露足够的内部信息以进行单元或组件测试,因此行为集成测试成为最后的选择。但这些测试并不理想,因为它们必然是粗粒度的,必须在复杂的环境中运行,并且要测试系统的大量行为。
此外,许多打包软件供应商引入的不透明数据库生态系统也是一个令人担忧的耦合点。在最好的情况下,打包软件完全管理数据库的状态,并通过集成点公开选定的适当值。在最坏的情况下,供应商数据库成为与系统其他部分的集成点,这极大地增加了 API 两侧进行更改的复杂性
超级会员免费看
订阅专栏 解锁全文
10万+

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



