年收入 20 亿美元的规模才有充分理由采用微服务架构,其他规模则可采用:
单体式架构演化为基于服务的模块化单体式架构,然后演化为宏服务、迷你服务、微服务。
什么是微服务架构?
微服务架构就像沙漠中的一粒沙子,虽然很小,但聚集在一起却变得更大。
微服务的关键特征是:
- 小而集中
- 执行狭窄的功能
- 只操作它需要的数据
- 在服务层上进行协作
- 通常反应性
- 数据按比例解耦。
但他们有权衡:
- 业务流程更难映射
- 服务协作很难
- 数据状态难以协调
- 集成要复杂得多
- 自动化成本更高
- 复杂性更难控制
- 可观察性是一个挑战。
减少这些权衡需要一种渐进的方法来使事情变得更小,同时处理分发的额外复杂性。
对于我们大多数人来说,当公司的年收入仍然不到 20 亿美元时,就不需要微服务的特性了。
对 50 多家公司的研究揭示了以下宏观模型:
- 单体Monolith:10 个 FTE 的收入为 0-200 万美元。
- 模块化单体:2-2000 万美元的收入,最多 50 个 FTE
- 基于服务:20-2 亿美元的收入,最多 500 个 FTE
- 从宏观到迷你服务:2 亿美元至 20 亿美元的收入高达 5000 FTE
- 迷你到微服务:超过 5000 个 FTE 的收入 >b。
分析还显示,声称要实施微服务的公司实际上是在实施基于服务或宏服务的架构。
关键的技术差异在于服务的粒度更高,服务之间共享数据而不是外部解耦。
因此,首先要为您的业务做出正确的选择,同时“模块化单体”和“最小架构”再次成为主流。