超级访谈:对话张雪峰
张雪峰
前饿了么 CTO
14077 人已学习
新⼈⾸单¥59
登录后,你可以任选2讲全文学习
课程目录
已完结/共 18 讲
结课问卷 (1讲)
特别加餐 (1讲)
超级访谈:对话张雪峰
15
15
1.0x
00:00/00:00
登录|注册

14 | 不够坚定:异地多活没有一步到位的遗憾

极客时间:饿了么异地多活一次成功算是互联网技术圈挺浓墨重彩的一笔,当时你们决定做这件事之前,经历了一个什么样的过程,可以讲讲吗?
张雪峰:2017 年之前,整个公司所有的业务系统都是部署在北京机房,服务器大概有四千多台,另外还有灾备的机器是在云端,都是虚拟机,大概有三千多台。当时我们峰值的业务订单数量已接近千万级别,但是基本上北京机房(IDC)已无法再扩容了,也就是说没有空余的机架,没有办法添加新的服务器了,必须再建一个新机房,于是我们在上海建了一个新的机房。
做多活之前,其实这里面有一个失误(严格说不算失误,法不责众,国内几乎皆如此)。当然这个失误我认为大部分团队可能都会犯,就是先搞灾备,不敢一下子上异地多活,没能一步到位。其实当时我也提过“我们是不是一步到位”这个问题,虽然外界感觉饿了么一步到位了,其实我们之前还做过一个灾备,花了不少钱。
极客时间:所以一开始先做了灾备,才做了异地多活对吧?
张雪峰:对,这是常规路径。中国绝大部分公司都是做了灾备后才想做多活,当然能不能做成另说,有的最终没做成,或不敢做,或者内部阻力很大。
美团当年就没做成,现在有没有彻底搞定异地多活我不太清楚。其实美团技术底蕴挺强的,因为跟着王兴早期创业的人不少,包括美团还曾做过美团云。只要做过云,哪怕这个云再烂,都储备了一批做基础设施挺强的人,这不是一般公司技术底蕴能比的。但是美团业务太强势,停几个月业务需求,或只能做些无关核心的边角料需求,不可能的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

饿了么在进行异地多活方面经历了一番曲折的过程。在决定进行这项工作之前,公司先进行了灾备部署,但张雪峰认为这并非一步到位。他指出,大部分公司都会先做灾备,再考虑多活,这是中国绝大部分公司的常规路径。然而,他也提到了美团未能成功实现多活的例子。在进行多活之前,他对中间件团队的能力和规模表示担忧,因为多活几乎只有一次上线机会,不成功则成仁。最终,饿了么还是决定进行了异地多活,并取得了成功。这一决策在业务上带来了一定的压力,但最终证明了其价值。文章中还提到了灾备和多活的区别,以及在国内技术决策上的一些偏差。整体来看,这篇文章总结了饿了么在异地多活方面的经验教训,以及在技术决策上的思考和挑战。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《超级访谈:对话张雪峰》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 侯建坡
    文章最后的感触很大,做任何技术的改造,还是要得到业务的支持,我个人认为这种虚虚实实的汇报关系,真是起了很大的作用,没有这层关系,像MT一样,确实有劲儿没处使。

    作者回复: 类似软件架构,任何组织架构都有局限性。虚实结合适用饿了么却未必适用美团,更何况,按成王败寇视角,胜利者经验更易被称颂。

    2021-11-16
    10
  • 程序员Artist
    异地多活这么难啊。 上上家公司一个创新产品,我们上来就全球两地多活了,哈哈,一个国内机房一个美国机房,做的是全球时尚杂志类的app,业务就需要两地数据,当时业务代码解决了数据库的双向同步。不过,产品没几个月就黄了,否则做成的话,肯定还有非常多问题要处理。 所以,我一直坚信技术几乎完全靠业务发展来反向推动,只有极少数个人和小团队不需要业务,也能搞出大创新出来。

    作者回复: 如果按场景分,异地多活从难到易,依次是:实时交易 -> 非实时交易 -> 社交类 -> 内容类 -> 其他。游戏类不好说,需要具体情况具体分析。

    2022-01-07
    4
  • 趁早
    没太理解 为什么做灾备 会浪费很多钱?机器在用,后续做多活还是那些机器,那浪费的钱去哪了

    作者回复: 几方面原因: 1、做两次耗费的人财物 + 时间,包括中间为多活 + 非多活并行预留的 buffer、两次切换带来的风险等; 2、即使只考虑机器硬件成本,也有 ROI 问题,因为从灾备上线到下线这段时间,灾备发挥作用很小(几乎可以认为只是 data backup),真出现紧急情况,切或不切的风险孰大孰小,真不好说; 3、即使只考虑机器硬件成本,多活的规模自由、伸缩自由就能体现出来。举个例子:2单元多活的硬件成本确实和灾备差不多(100%冗余),但3单元、4单元呢?虽然多活单元规模也不是越多越省钱(非简单线性下降,和多活设计相关,细节不展开了),但至少留出了规模自由、伸缩自由空间。

    2021-11-27
    4
  • lesserror
    1. 北京机房(IDC)和 指灾备 IDC,这里的IDC是 互联网数据中心(Internet Data Center)的意思吗? 2. 怎么理解 :网格化环境呢?

    作者回复: 1、是的,一般指物理上聚集在一起的单体数据中心;2、针对外卖场景(打车类似,但简单很多),一般指将地图上大的区域(如:北京五环、上海外环等)划分为适合业务发展或满足用户需要的一个个不规则小区域。同时,针对B、C、D(配送)、BD(销售)等不同角色,区域划分规则也不尽相同(也就是一般说的「多张网」)。例如:B1区域商户服务C1(部分)+C2(部分)用户,同时,D1区域骑手服务B1(部分)+B2(部分)商户,又同时,BD1区域销售服务B3(部分)+B4(部分)商户。

    2021-11-16
    2
    4
  • piboye
    而且为什么要全部系统都多活, 为了什么呢?物流不多活也没什么影响吧?

    作者回复: 很简单,物流和其他系统都基于统一基础设施(中间件、运维、工具、相关团队等),在基础设施进行多活改造后,除了切换并行期不得不同时支持多活、非多活及混合架构,后续所有统一基础设施(包括相关团队)将只支持多活架构。

    2022-03-04
    2
    1
  • CondorHero
    异地多活为什么这么牛,同城灾备的意义在哪,看完文章「搞懂异地多活,看这篇就够了」完全明白了它们的意义,作为用户只能讲,张大神 YYDS。 作者: Kaito 链接: http://kaito-kidd.com/2021/10/15/what-is-the-multi-site-high-availability-design/
    2021-11-11
    3
    35
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部