软件开发中的架构演进与持续交付实践
1. 从事件风暴到涌现式架构
事件风暴能够很好地导向涌现式架构。它能识别出需要构建的系统和聚合体,为软件设计指明方向,但并不意味着所有内容都要提前构建。通过用户实验,可能会发现某些功能并非必需,或者最初在事件风暴中的想法不够完善。这并非糟糕的设计,而是通过实验不断演进的更优设计。
以与世界卫生组织(WHO)的合作为例,目标是验证其架构并围绕新的学习体验平台组建强大的跨职能团队。最初的事件风暴确定了一些关键服务,如课程服务(类似目录)和高可用、可扩展的认证提供者。尽管事件风暴并不复杂,但经过数周的完善后,仍收集到了大量信息。
在项目实施过程中,采用迭代方式构建功能和特性,根据需要逐步完善架构。每个冲刺阶段都会对设计进行重新验证,仅在必要时添加新组件。例如,第一个冲刺阶段引入了基本元素,即一个简单的前端应用与 Red Hat Single Sign - On 服务器实例进行通信;第二个冲刺阶段添加了首个微服务;后续冲刺则不断增加功能、引入新组件并强化现有组件,还为已构建的服务添加缓存以提高查找性能。
以下是项目冲刺阶段架构演进的简单示意:
| 冲刺阶段 | 主要架构变化 |
| ---- | ---- |
| 冲刺 1 | 简单前端应用与 Red Hat Single Sign - On 服务器通信 |
| 冲刺 2 | 添加首个微服务 |
| 后续冲刺 | 增加功能、引入新组件、强化现有组件、添加缓存 |
通过不断回顾事件风暴并建模更多用户旅程,新的服务不断被发现。例如,WHO 希望创建一个强大的推荐引擎,为此创建了一个入职流程来收集用户偏好数据。在添加新功
超级会员免费看
订阅专栏 解锁全文
2493

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



