亚马逊砍 90% 成本的神操作:放弃微服务,回归单体架构!

图片

2023 年 5 月,一家巨头用一个反常识决策震惊了整个技术圈 —— 亚马逊 Prime Video 抛弃微服务,全面切换回单体架构,直接实现 90% 成本暴跌!

要知道,亚马逊旗下的 AWS 靠售卖微服务基础设施每年狂赚数十亿,堪称分布式系统的 "教科书级玩家"。可就是这样一家亲手定义了微服务标准的公司,却公开承认:有时候,老派的单体架构才是王道。

尽管亚马逊后来悄悄删除了这篇技术博客,但互联网没有记忆死角。这场史诗级反转,给沉迷微服务神话的 tech 圈一记响亮耳光:微服务不是银弹,甚至可能是多数团队的 "架构陷阱"

图片

微服务:

"敏捷神话"藏着致命代价

在 PPT 上,微服务的优势听起来无懈可击:

  • 拆分巨型应用为独立小服务,支持多语言开发

  • 团队自主迭代,独立部署不冲突

  • 按需弹性扩容,资源利用率拉满

但现实往往是 "理想很丰满,现实很骨感"。每一次服务拆分,都会新增一道 "故障风险线":

  • 单体里的瞬时函数调用,变成跨服务的网络请求 —— 延迟飙升、稳定性暴跌,还可能出现数据不一致

  • 几十上百个服务要维护版本兼容、处理分布式事务,光监控链路、日志聚合、CI/CD 流水线就够团队喝一壶

  • 所谓 "独立部署",实际变成跨团队协作的噩梦:加一个字段要协调 5 个服务,改一行代码要等 3 个团队同步上线

微服务 Gartner

Gartner 的架构图早已说透真相:微服务是用 "多代码库的复杂性",换取 "单代码库的简单性"。只有 Netflix、亚马逊这类超大规模企业,才可能让收益覆盖成本。而绝大多数团队,只是在为不必要的复杂度买单。

真正适合微服务的场景,其实少得可怜:只有当业务模块存在完全不同的缩放模式(比如支付系统 vs 推荐引擎)、部署周期(核心功能 vs 实验性功能)、风险等级时,拆分才有意义。更关键的是,你的组织架构能否支撑 —— 正如康威定律所言,没有自主决策的团队边界,微服务只会变成 "分布式单体"。

巨头集体 "叛逃" 微服务:

这些反转案例太打脸

不止亚马逊,越来越多科技巨头正在从微服务的泥潭中撤退,用真金白银验证了 "简单即高效":

1. 亚马逊 Prime Video:90% 成本省出来,性能还翻倍

Prime Video 的视频质量分析(VQA)团队曾搭建了一套 "教科书级" 分布式系统:用 AWS Step Functions+Lambda 实现数千视频流的独立监控。理论上无限扩容,实际运行时却在预期负载的 5% 就崩溃 —— orchestration 开销压垮了整个系统。

工程师们最终选择了最 "粗暴" 的解决方案:把所有服务合并成一个单进程应用。结果令人震惊:成本直接砍 90%,性能还比原来更快

2. Twilio Segment:140 个微服务→1 个单体,生产力暴涨

2018 年,Twilio Segment 的微服务已经膨胀到 140 + 个,3 名工程师全职 "救火" 却越救越乱:"架构本该让我们更快,结果却陷入复杂度爆炸,迭代速度暴跌,故障量飙升"。

他们的破局之道:将 140 多个服务全部合并为单体。效果立竿见影:测试套件从 1 小时跑完变成毫秒级完成,共享库一年迭代 46 次(微服务时代仅 32 次),开发者终于能专注写业务,而非协调服务。

3. Shopify:280 万行代码的单体奇迹

作为全球最大的 Ruby on Rails 应用,Shopify 的代码库超过 280 万行,却坚持走 "模块化单体" 路线 —— 单代码库 + 清晰的内部模块边界。他们的工程师直言:"微服务会带来更多麻烦,我们要的是模块化,而非分布式的 overhead"。

如今,Shopify 每秒处理数万订单,支撑全球数百万商家,用事实证明:单体架构完全能扛住超大规模业务

技术大佬集体炮轰:微服务是 "十年最大架构错误"

那些真正搭建过超大规模系统的技术大牛,早已看穿微服务的本质:

Rails 创始人 DHH:"微服务是最迷人的 ' 塞壬之歌 ',用优雅的理论诱惑你,却让你的系统撞向复杂度的礁石"

前 GitHub CTO Jason Warner:"过去十年最大的架构错误,就是盲目全量微服务。全球 90% 的公司,用单体 + 数据库集群 + 缓存 + 代理就足够了"

GraphQL 联合创始人 Nick Schrock:"微服务是灾难性的坏主意,未来会有一批亿万级公司,专门收拾它造成的烂摊子"

Uber 工程师 Gergely Orosz:"我们正在把很多微服务合并成 ' 宏服务 ',维护数千个微服务的长期麻烦,远比短期收益多"

微服务是个坏主意,GraphQL 联合创始人

这些大佬不是反对微服务本身,而是反对 "微服务即默认" 的盲目跟风。当连分布式系统工具的创造者都劝你 "非必要不拆分",你真的还要往火坑里跳吗?

比微服务更香的选择:模块化单体 + SOA

模块化单体架构

放弃微服务,不代表放弃架构演进。这两种方案,才是多数团队的 "最优解":

1. 模块化单体:有边界的简单

不同于代码一团乱麻的传统单体,模块化单体通过严格的内部接口定义,实现 "模块独立开发、系统统一部署"。既保留了单体的优势:

  • 本地函数调用,无网络延迟

  • ACID 事务保障,数据一致性无忧

  • 调试简单,无需跨服务追踪又具备微服务的灵活性:团队可自主负责特定模块,接口契约清晰,未来按需拆分也不费劲。

Shopify、Facebook 都是这种架构的受益者。随着 Spring Modulith、Rails 等框架的成熟,模块化单体正在成为 startups 和中型企业的首选。

2. 面向服务架构(SOA):中间地带的智慧

SOA 介于单体和微服务之间,不搞 "超细分",而是按业务域拆分出几个大型服务(比如 "用户服务"" 订单服务 "),通过企业服务总线(ESB)协调。既避免了单体的臃肿,又减少了微服务的碎片化,适合大型企业的复杂业务场景。

挪威航空、瑞士信贷都靠 SOA 支撑了大规模业务:前者用 SOA 优化航班运营效率,后者早年就实现了每天数百万次的服务调用。

Docker + 单体:轻量部署的完美组合

很多人误以为 Docker 是微服务的专属,其实单体架构 + Docker 才是 "性价比之王":

  • 环境一致性:开发、测试、生产环境无缝同步,告别 "在我这能跑"

  • 部署简单:打包成镜像一键发布,横向扩容只需多开容器

  • 运维轻量化:日志、监控集中管理,无需应对多服务异构环境

微软官方指南明确指出:"容器化单体比部署虚拟机更快、更简单"。Twilio Segment 也证实,容器化后的单体可以 "根据需求弹性扩缩容,完全满足业务增长"。

无需复杂的 K8s 编排,不用维护庞大的服务网格,一个 Dockerized 单体,就能搞定多数应用的部署需求。

02

最后一问:

你真的需要?

还是想 "看起来很牛"?

技术圈总爱追逐潮流:微服务火了就全员跟风,K8s 热了就盲目上云。但架构的本质,是解决业务问题,而非堆砌时髦技术。

你不是 Google,不需要应对全球分布式部署;你不是亚马逊,不需要支撑每秒数十万次的写请求;你更不是 Netflix,不需要服务数百万并发用户。多数应用的核心需求,不过是 "稳定运行、快速迭代、成本可控"—— 这些,模块化单体和 SOA 完全能满足。

亚马逊用 90% 的成本节省告诉我们:架构没有优劣,只有适配与否。与其沉迷微服务的 "皇帝新衣",不如回归业务本质,选择最适合自己的方案。

现在,不妨问问自己:

  • 我是真的有独立扩容、独立部署的需求,还是只是为了简历好看?

  • 我的团队有能力应对分布式系统的复杂性吗?

  • 放弃微服务,用更简单的架构,是不是能让产品更快上线、更少故障?

别让架构焦虑绑架了你的决策。有时候,最简单的方案,才是最强大的方案。

你,真的需要微服务吗?欢迎在评论区留下你的观点!


敖行客 Allthinker 

公司专注于通过先进的理念与技术,为开发者打造开放、自由、高效且安全的研发空间,期待与你一起创造一个更美好的研发新世界。

关于AT Work

AT Work是业内首个智能一站式云研发平台,实现云原生研发场景的全面智能化革新,重构需求分析、代码开发、项目管控、知识管理、沟通协作五大核心能力,深度融合云IDE、项目协作、共享云盘、维库Wiki、思链AI、嗷嗷IM等数字工具链,形成"需求-设计-开发-测试交付"的智能研发协作闭环。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐