简介
在本节课中,我们将快速了解自包含系统的基本概念。
定义
自包含系统(Self-Contained System, SCS) 是一种微服务类型,用于定义宏观架构中的某些组成部分。但自包含系统本身并不构成完整的宏观架构,例如整个系统的运作范围就并未涵盖在内。
SCS 的核心理念是构建完全自包含的微服务,能够提供实现某一领域逻辑所需的所有功能。
这意味着一个 SCS 包含了业务逻辑、数据以及用户界面(UI)。因此,即使某项变更涉及多个技术层级,该变更仍可被限制在单个 SCS 内完成,从而更易于实施和部署上线。
举例来说,一个负责支付功能的微服务若采用 SCS 模式,将存储所有与支付相关的数据——即它实现了一个限界上下文(bounded context)。同时,它还包含用户界面,例如展示支付历史或执行付款操作的网页。至于客户信息或订单商品等数据,则需要从其他 SCS 中复制而来。
使用“自包含系统”这一术语的原因
目前对于微服务并没有统一的定义,而自包含系统则具有明确且具体的定义。你可以在 scs-architecture.org 网站上查阅 SCS 的正式定义。该网站内容采用知识共享许可协议发布,只要注明原始来源并以相同许可条款分发,任何人都可以自由使用其材料。
网站内容的源代码托管于 GitHub 仓库 https://github.com/innoq/SCS,允许任何人参与修改和完善。网站中还提供了来自不同项目和企业的 SCS 实践经验文章链接。
自包含系统 是经过多个项目验证的有效最佳实践。
微服务本身对系统构建方式缺乏具体指导,而 SCS 则基于已被证实的设计模式,提出了清晰明确的构建规则。因此,SCS 为微服务架构的实际形态提供了一个有价值的参考模型。
尽管 SCS 汇集了诸多最佳实践,但这种架构方式并非适用于所有场景。因此,理解 SCS 各项规则背后的成因至关重要。只有这样,团队才能根据实际项目需求,灵活选择变体方案,甚至采用更适合的其他架构方式。
本章内容概览
本章将涵盖以下内容:
-
首先介绍采用自包含系统的主要动因。
-
SCS 会影响多项宏观架构决策。本章将解释这些决策背后的依据,并分析每种选择的优势。
-
SCS 是微服务的一种变体形式。本章将探讨“SCS”与“微服务”这两个术语之间的区别。
-
接着讨论 SCS 方法带来的优势。
-
最后,分析在构建 SCS 系统过程中可能遇到的挑战,并提出相应的解决方案。
由于 SCS 包含用户界面,并强调界面层面的集成,因此它是后续章节所介绍的 UI 集成技术的重要应用背景和推动力。
1 **Q U I Z**
在下一课中,我们将进一步深入探讨自包含系统的定义。
Quiz
假设一个微服务包含了数据和逻辑,但其用户界面(UI)由另一个微服务实现。这个微服务是否属于自包含系统(SCS)?