SCS(Self-contained Systems)架构介绍

文摘   2024-08-22 07:20   云南  

 

SCS(Self-contained Systems )架构定义与特性


 

SCS(Self-contained Systems )架构定义与特性


  • 自主Web应用:SCS是一个自主的Web应用程序,包含Web UI、逻辑和持久化层。这种完整性确保了一个用户故事通常可以通过修改一个SCS来实现。

  • API的可选性:SCS可以有一个服务API,但这并非必需。如果SCS内的逻辑仅由SCS内的UI使用,则无需API。

  • 无共享UI:SCS之间不应共享UI,以避免紧密耦合和不必要的复杂性。



Overview


SCS与微服务的关系

    • 类似但更精确:SCS与微服务在可独立部署和解耦方面相似,但SCS的定义更为精确,通常粒度更粗。

    • 单个功能实现:SCS确保一个功能仅在一个SCS中实现,从而通过单一部署即可将其投入生产。

Bounded Context与DDD

    • Bounded Context:每个SCS应实现一个Bounded Context,通过用户故事分组来找到这些Bounded Context。

    • 用户故事与旅程:通过用户故事和用户旅程来确定SCS的划分,每个步骤或需求可能是一个SCS的候选。

SCS的沟通与交互

    • UI集成:UI集成是首选的SCS间沟通方式,包括JavaScript转码、ESI和SSI等技术。

    • 异步与同步通信:异步通信(如事件和消息传递)是推荐的沟通方式,同步通信则作为最后手段。

团队与所有权

    • 单一团队拥有:每个SCS由单一团队拥有,确保团队可以独立工作,并减少协调需求。

技术优势与限制

    • 技术优势:SCS提供了高开发生产力和低技术复杂性,因为它们通常是传统的Web应用程序。

    • 限制:SCS主要适用于Web系统,且可能需要对前端开发有一定的技能要求。

实际应用与案例

    • Otto案例:Otto等大型电商公司采用SCS架构,证明了其在复杂Web应用中的有效性。

迁移与实现难度

    • 迁移挑战:如果现有架构依赖于不同的方法,迁移到SCS架构可能具有挑战性。

    • 实施要求:对Web应用程序的深入理解是实现SCS架构的重要前提。



 

单体


 


Monolith


 

微服务


 


MicroServices


 

SCS架构


 


SCS




 

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


 


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


更广泛的范围:SCS 具有更广泛的范围,包括边界上下文中的 UI、业务逻辑和数据存储

降低运营复杂性:由于管理许多较小的、相互依赖的服务,微服务可能会导致高水平的运营复杂性,而 SCS 更重要、更自主。

数据一致性:SCS 管理其数据,从而在每个系统内实现更好的数据一致性,而微服务通常依赖于共享数据存储。


使用SCS架构优势


使用SCS架构优势


1. 自治 - 每个 SCS 都独立运行,具有其数据库、业务逻辑和用户界面。

2. 领域对齐 - SCS 围绕特定的业务领域构建,确保每个单元代表一组连贯且有意义的功能。

3. 去中心化数据管理 - 每个 SCS 的单个数据库确保其边界内的数据一致性,减少跨服务依赖性。

4. 技术多样性 - 允许在其他 SCS 中使用不同的技术堆栈,以满足每个领域的特定需求。

5. 显式发布的接口 - 定义明确的接口,用于与其他系统的交互,在保持封装的同时保持清晰的契约。

6. 独立可部署性 - 每个 SCS 都可以独立部署、扩展和更新,而不会影响其他系统。


 

结论


 

SCS是一种微服务架构的实践方法,它通过将系统划分为自主的Web应用程序(SCS),实现了高度的解耦和独立部署。SCS强调每个SCS实现一个Bounded Context,并通过UI集成和异步通信等方式保持低耦合。SCS适用于复杂的Web系统,并提供了高开发生产力和低技术复杂性的优势。然而,其实现需要对Web应用程序有深入的理解,并且迁移到SCS架构可能具有挑战性。


Megadotnet
为您介绍各体系平台的新闻,系统研发相关框架,组件,方法,过程,运维,设计。企业IT与互联网信息系统或产品解决方案。开源项目,项目管理。
 最新文章