关于模块化单体的讨论很多。我们可以在许多趋势图中看到这一点。许多研发经理都在询问这是否是微服务或其他东西的替代品/替代品。
本文解释什么是模块化单体,为什么有些人认为它是微服务的替代品,以及我对使用不同架构模式的建议。
单体应用的缺点 = 微服务的优点 单体架构模式有很多缺点。这些促使几乎每个人都转向微服务模式。话虽如此,微服务并非都是好的,它们也有挑战和弱点,我将在后面简要描述。单体应用的主要缺点和微服务优点是:
-
依赖项——内部代码和数据库依赖项
-
隔离——每个功能都会影响其他功能(性能、安全等)
-
可重用性——对象的有限重用
-
代码复杂性 - 大量带有内部引用的代码
-
性能——不可能仅在需要的功能中调整和解决性能问题,而且成本巨大
-
可维护性
-
可扩展性——无法仅扩展特定功能,要么全有,要么全无
-
弹性——没有选择仅在需要时以具有成本效益的方式实施弹性
-
测试周期时间——每次更改,即使是很小的更改,都需要完整的系统测试
-
使用多种技术(适合每个业务需求的技术)
-
并行工程
-
敏捷 SDLC
-
CI/CD
微服务
由微服务、容器、CI/CD 和 DevOps 组成的 Cloud Native 改变了游戏规则;它改变了我们构建和部署应用程序的方式。创建微服务作为基础是为了解决这些单体挑战。
简单来说,微服务是一种架构模式,它将应用程序分解成更小的、独立的组件&