知识卡片

组件化容器化是可扩展性复杂度到临界规模才需要的架构

普通读书笔记卡 · 1695.a

内容

当超级App承载几十上百个子业务且各由独立团队开发时,可扩展性成为主要复杂度。App与后端拆分本质不同:后端可拆成上千个独立微服务、各用不同技术栈;App对用户始终是同一整体,须共用同一套技术栈,不能照搬”拆服务”思路,而要用组件化/容器化——拆成统一规范、可独立开发测试的组件,靠消息通信隔离。此架构只在业务达大厂规模才有必要。发散:同一个”拆”的思想落到不同物理形态时须重新推导。

参考来源

- 位置:《从0开始学架构》第54章《49|谈谈App架构的演进》"组件化 容器化"一节(源文件:_epub-src/OEBPS/Text/part0053_split_005.html) - 结论依据:原文明确"App是面向用户的,后端系统是不面向用户的,因此App再怎么拆,对用户还是只能呈现同一个App……而后端系统就不一样了,采用微服务架构后,后端系统可以拆分为几百上千个子服务……App的业务再怎么拆分,技术栈是一样的……不同的微服务可以用不同的技术栈开发",并说明"组件化和容器化的架构出现遵循架构设计的'演化原则',只有当业务复杂度发展到一定规模后才适应"。 - 原始内容:App再怎么拆,对用户还是只能呈现同一个App,不可能将一个App拆分为几十个独立App;而后端系统就不一样了……可以拆分为几百上千个子服务都没有问题……组件化和容器化的架构出现遵循架构设计的"演化原则",只有当业务复杂度发展到一定规模后才适应,因此我们会看到大厂应用这个架构的比较多。