计算机系统应用教程网站

网站首页 > 技术文章 正文

软件架构的新设计模式:自包含系统 (SCS)!

btikc 2024-10-12 11:53:04 技术文章 2 ℃ 0 评论

自包含系统(Self-contained Systems ,SCS) :一种将较大系统的功能分离为许多独立的协作系统的体系结构方法。

自包含系统 是一种软件架构方法,它优先考虑将应用程序分散到独立的系统中,每个系统都有其域逻辑、UI 和数据存储。与微服务不同的是,较小的服务仅专注于业务逻辑,SCS 更大,并且涵盖特定领域内更广泛的范围。

SCS 是代表自主 Web 应用程序的系统。它们包括 Web UI、业务逻辑和数据库,并且可能具有服务 API。通常由一个团队拥有它们。

此类系统的主要 优点是:

  1. 自治:每个 SCS 以其数据库、业务逻辑和用户界面独立运行。
  2. 领域一致:SCS 围绕特定业务领域构建,确保每个单元代表一组连贯且有意义的功能。
  3. 分散式数据管理:每个 SCS 都有单独的数据库,确保其边界内的数据一致性,减少跨服务依赖性。
  4. 技术多样性:允许在其他 SCS 中使用不同的技术堆栈,以满足每个领域的特定需求。
  5. 显式发布的接口:用于与其他系统交互的明确定义的接口,在保留封装的同时保持清晰的契约。
  6. 独立部署性:每个SCS都可以独立部署、扩展和更新,而不影响其他系统。

为什么自包含系统(SCS)比微服务更具优势:

  • 更广泛的范围:SCS 具有更广泛的范围,涵盖有界上下文中的 UI、业务逻辑和数据存储
  • 降低运营复杂性:由于管理许多较小的、相互依赖的服务,微服务可能会导致较高的运营复杂性,而 SCS 更重要、更自治。
  • 数据一致性:SCS 管理其数据,这可以导致每个系统内更好的数据一致性,而微服务通常依赖于共享数据存储。
  • 减少服务间通信:SCS 通过封装更多功能,比微服务需要更少的服务间通信。
  • 更适合某些领域的复杂性:在领域复杂性很高且领域边界清晰的情况下,SCS 由于其领域对齐的性质可能会提供更好的架构适合性。

这样的系统与领域驱动设计(DDD)配合得很好。创建此类系统的第一步是领域分析,可以通过识别与特定业务领域一致的有界上下文来进行。然后,每个有界上下文都封装在 SCS 中,其中包括自己的数据管理、业务逻辑和用户界面,确保每个系统都是自治的,但在必要时能够通过明确定义的 API 与其他系统进行交互。

SCS特征总结:

总结

自包含系统(SCS)是一种软件架构模式,旨在将大型软件系统分解为一组相互独立、自治的模块。这种模式的目标是提高系统的可维护性、可扩展性和可理解性。

参考:

https://scs-architecture.org/

#文章首发挑战赛#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表