放下技术焦虑:越来越多公司重回单体架构的真相(放下技术焦虑英语)

放下技术焦虑:越来越多公司重回单体架构的真相(放下技术焦虑英语)

多年来,我们一直被灌输“微服务是未来”。

“把所有东西拆分成小型独立服务,”他们说,“让团队独立扩展,部署更快,行动更敏捷。”

但最近出现了奇怪的现象。那些已经迁移到微服务的团队,现在正重新回归单体架构。

这不仅是小创业公司的选择——亚马逊、阿里、Basecamp、腾讯甚至谷歌都在这样做。

是的。这些曾经引领微服务潮流的先驱者们正在悄悄承认:

“我们当初走得太远了。”等等...微服务哪里不好用了?

先别急着下结论,微服务的理念确实很有吸引力。它原本的设想是:

  • 每个功能可以单独更新(改一处不影响其他地方)
  • 团队能各管一摊(前端、后端、数据库各搞各的)
  • 界限清晰(谁负责哪块一目了然)

但真用起来,很多团队发现事情没那么简单。实际遇到的可能是:

  • 代码像乐高散了一地——几百个小部件,新人根本理不清谁管谁
  • 系统越跑越慢——服务之间来回传数据,像快递员跑断腿也送不完货
  • 天天修水管——『工程师』的时间全耗在维护『服务器』、调试通信上
  • 查bug像破案——“这个报错到底是从哪个环节冒出来的?!”

如果你是过来人,估计已经对着电脑叹过气:“说好的便利呢?怎么越搞越复杂了?”

一个简单例子

假设你要构建一个电商系统。

用微服务架构可能会这样拆分:

  • 认证服务
  • 商品目录服务
  • 购物车🛒服务
  • 订单服务
  • 通知服务

看起来很酷对吧?

但接下来...

  • 你需要用Kafka或RabbitMQ粘合所有服务
  • 要用Redis共享会话
  • 部署所有服务的CI/CD流程需要30分钟
  • 你开始编写“只是为了与其他代码通信”的代码

然后呢?

你想开发的那个“简单”功能现在需要修改5个服务,提交3个PR,获得2个团队的批准。

现实中的微服务体验

想象你在开发一个网上商店系统

采用微服务架构通常会把这些功能分开:

  1. 用户登录模块
  2. 商品展示模块
  3. 购物车🛒功能
  4. 订单处理系统
  5. 消息提醒功能

表面上看这样分工很合理

但实际工作时你会发现:

  1. 需要用专门的工具把所有模块连通(比如Kafka或RabbitMQ)
  2. 要额外配置数据共享系统(比如Redis)
  3. 每次更新全部模块要花半小时以上(比如CI/CD流程)
  4. 要写很多代码只是为了让模块互相传递消息

更麻烦的是:

当你需要新增一个普通功能时,可能要改动5个模块,提交多个修改申请,还得等不同团队审批

微服务的隐藏成本

你可能不知道的是:

微服务并没有真正简化系统——它们只是把难题转移到了其他地方

当所有功能都打包在一个大应用中时:

  • 所有问题都集中在程序代码里

采用微服务后:

  • 『服务器』之间通信变慢
  • 接口定义要严格匹配
  • 数据同步出现问题
  • 每个功能单独发布更麻烦
  • 要跟踪每个服务的位置
  • 需要额外工具来监控系统运行

经验丰富的『工程师』都会告诉你:

管理50个分散的小服务,要比维护一个规划完善的大程序困难得多。

为什么大系统又变回整体了?

简单就是好。整体式系统(单体架构)之所以重新流行,不是因为它"容易做",而是因为它"结构清楚"。

在一个整体系统里:

  • 所有功能都在同一个程序里
  • 找问题就像查字典一样直接
  • 改代码就像修改文档一样简单直接
  • 不需要处理不同服务之间的对接问题
  • 开发时不需要准备复杂的运行环境

现在的工具(比如Go、Rust等新语言)和部署方式(如容器化)已经让整体系统也能很好地处理大量用户访问了。

真实企业的经历:从微服务回到大系统

来看看这些知名公司的实际选择:

  • Shopify:曾经把所有功能拆成小服务,现在正在重新整合成一个大系统
  • Segment:在使用微服务遇到运行缓慢、响应迟缓和开发效率下降后,专门发文《我们为什么要放弃微服务

就连最早采用微服务的亚马逊也承认:这种架构方式要真正起作用,必须首先解决大量其他问题。

一种新的系统构建方式:整合的模块化设计

现在很多公司都在尝试这种方式。

它是这样工作的:

  • 整个系统作为一个整体打包和运行
  • 内部各功能模块界限分明
  • 借鉴了微服务的思想进行功能模块划分,但不需要额外网络传输

这样你既能保持:

✔ 各功能分工明确

✔ 不必担心跨服务通信问题

✔ 避免了复杂的部署流程

如果你用Java语言开发,可以这样组织代码结构:

/cart # 购物车🛒功能

/order # 订单管理

/notification #消息通知

虽然看起来像独立模块,但它们其实属于同一个完整的系统,能协同工作。

是不是应该完全放弃微服务?

不一定。微服务在特定情况下还是有它的用处:

适合考虑微服务的情况:

  • 服务数百万以上用户的大型平台
  • 公司有很多开发团队需要同时快速更新不同功能
  • 已经熟练掌握系统监控和自动化部署等配套技术

但如果你的情况是:

  • 开发团队规模小(不到50人)
  • 主要专注于一个核心产品
  • 花在技术维护上的时间比产品开发还多

那采用单体架构可能会让你们的开发工作更顺畅高效。

选择合适的技术方案

技术的流行风向总是在变化。就像服装潮流一样,几年前大家都推崇的"微服务",现在人们发现它不一定适合所有情况。

重要的不是选择最热门的技术,而是选择:

• 能让你团队工作更顺畅的方案

• 不会增加不必要的工作量的方案

• 能让你们专注在业务功能开发的方案

(好的技术方案应该像一双合脚的鞋——穿着舒服最重要,不是最新款就一定最好)

特别声明:[放下技术焦虑:越来越多公司重回单体架构的真相(放下技术焦虑英语)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

沪指站稳4000点上方,能源金属板块涨幅居前(沪指站上3600点 牛市来了吗?)

10月29日,A股三大股指集体上涨,沪指站稳4000点上方。截至收盘,沪指涨0.7%报4016.33点,深成指涨1.95%报13691.38点,创业板指涨2.93%报3324.27点。市场全天成交2.29万亿元,较前一交易日有所放量。A股主

沪指站稳4000点上方,能源金属板块涨幅居前(沪指站上3600点 牛市来了吗?)

被胡导红楼梦排名第一差评惊到了!道具价值几十亿,就知戏好不了(红楼梦胡大夫)

这电影啊,自打问世起,就像是扔进了热油锅里的一滴水,炸得是沸沸扬扬,导演胡玫和观众朋友们那是各有各的理儿,争得那叫一个热火朝天。 红楼梦之金玉良缘在制作上投入巨大,但最终效果却不尽如人意,这无疑给电影人敲响…

被胡导红楼梦排名第一差评惊到了!道具价值几十亿,就知戏好不了(红楼梦胡大夫)

这二人是内娱最“胆肥”的人,数次拒绝『赵本山』,现在活成人生赢家(内娱是啥)

她们并不是害怕失败,而是担心自己在压力下“搞砸了”,辜负了恩师的信任,甚至拖累了团队。『赵本山』听完她们的理由后,不仅没有生气,反而夸奖她们有主见,这从侧面证明了她们的拒绝并不是逃避责任,而是对艺术的真诚和对自我…

这二人是内娱最“胆肥”的人,数次拒绝『赵本山』,现在活成人生赢家(内娱是啥)

王祖蓝综艺分享引争议,这次4岁女儿成焦点(王祖蓝综艺2021)

节目一播出,网友立马炸锅,评论区秒变段子手大本营:“这届家长太会了”“幼儿园就开始撒狗粮了吗?”尤其是在女儿“早恋”趣事曝光后,网友纷纷玩梗:“李亚男担心的事终究是发生了!”特别是他在节目里为朋友改编的《像你…

王祖蓝综艺分享引争议,这次4岁女儿成焦点(王祖蓝综艺2021)

剩两对半夫妻的《再见爱人5》,困境不止于综N代的瓶颈期(剩两对半夫妻是啥意思)

随着这一声明的发布,邓莎的个人话题迅速引发热议,而《再见爱人2》随之上线的第二期节目中,节目组对路行的部分内容进行了删除,只保留了邓莎与其他嘉宾的互动。在这场风波之后,许多网友指出,节目组未对素人嘉宾进行充分…

剩两对半夫妻的《<strong>再见爱人5</strong>》,困境不止于综N代的瓶颈期(剩两对半夫妻是啥意思)