昨天下午,有不少正准备“带薪听歌”的打工人发现,网易云音乐打开显示“服务器发生错误”,网页版则显示“502 Bad Gateway”,App也无法使用。不断刷新把手机屏幕和电脑F5键都搓出火星子之后,大批用户这才终于意识到不是工位网太烂,也不是流量余额不足,更不是最新款苹果15pro 1TB配置不够,而是网易云音乐“轻轻地碎了”。
一时间,“502 Bad Gateway”这个神秘代码让各种小道消息开始在互联网上流窜,程序员删库跑路的传闻甚嚣尘上,网易云连忙出来辟谣“没有删库,没有跑路”。
两个多小时之后,网易云终于恢复正常服务。
在喜提7天SVIP会员权益补偿之后,终于打开APP播放期待已久的音乐,这个时候,或许仍然有不少人好奇:神秘的“502bad gateway”错误到底是什么,能把网易云和广大听友急得团团转?
跟大名鼎鼎的“404 not found”相比,“502bad gateway”虽然名气稍有逊色,但经常上网冲浪的人都不会陌生。卯足劲准备抢爱豆见面会门票的时候,互联网八卦考古点开古早网站的时候,又或者在任何一个不经意之间,一个大大的502跳出页面,每次都让不少人焦躁地刷新刷新刷新然后开始怀疑人生。这些看不懂的神秘代码到底在说啥,还要从它的大名——“HTTP状态码”说起。当我们访问一个网页时,浏览器会向网页所在服务器发出请求。该网页所在的服务器接收和解释请求消息之后,会返回一个包含HTTP状态码的响应信息用以响应浏览器的请求。(中兴文档)
简单而言,这些神秘代码就是手机、电脑等客户端和网站服务器之间的沟通暗号。不同的状态码,代表着不同的“黑话”:
1XX类型是“收到哥们,上号说话”,代表请求已被接受,需要继续处理;
2XX类型是“搞定,交给我吧”,代表请求已成功被服务器接收、理解并接受;
3XX类型是“不确定,再看看”,代表需要客户端采取进一步操作才能完成请求,通常是需要重新定向;
4XX类型是“完了,芭比Q了”,代表客户端发生了错误,妨碍了服务器的处理;
5XX类型是“您拨打的电话暂时无人接听,请稍后再拨”,代表服务器在处理过程中有异常,无法完成有效请求。
大多数网站都是通过多个服务器或第三方代理来运行的,这个中间商一旦开始装聋作哑,客户端接收不到上游服务器发过来的信号,这个时候,“502bad gateway”就水灵灵地出现了。中间商为啥罢工?其中的原因非常多。比如说服务器过载,一大堆人乌泱泱同时涌入一个服务器,弱小可怜又无助的服务器一时间处理不了那么多请求,便可能直接进入死机模式。也可能是防火墙规则、DNS设置出现问题,把正常的访问请求当作危险分子、网络病毒挡在墙外,主打一个自己人杀了自己人。还有可能是不稳定的网络连接让代理服务器与上游服务器之间的通信中断了,叫天天不灵,叫地地不应。又或者是后端服务器机房被“偷家”,突发事件把服务器整崩溃了,搞不好直接物理断网,客户端和代理网关只能干瞪眼。有媒体爆出,这次网易云的宕机事件或与今年二季度的机房搬迁有关。网易在贵州建立了机房,旗下业务分阶段搬迁,2024年Q2网易云音乐刚刚完成了贵州机房的迁移。(凤凰网科技)
《云音乐贵州机房迁移总体方案回顾》(2024年7月11日)看来这次网易云的502危机,很有可能与搬迁导致的服务器故障有关。在用户喜提7天会员补偿的同时,想必有一批程序员已经汗流浃背了。今年3月份,网易云音乐就出现过登录状态突然失效、无法正常使用的情况,客服当时表示,故障原因是由于网络异常。倒霉的也不止网易云一家,就在上个月,B站和小红书同时崩了,阿里云出来背锅,因为它的上海可用区N网络访问异常,导致B站和小红书用户无法评论、发弹幕或查看历史记录。去年,阿里云在11月连崩两次,美国和中国都有大批用户跳脚,自家门下的钉钉、淘宝、闲鱼也惨遭波及。去年的双11和618,淘宝和京东分别因为流量太高、负载量过重,分别出现了用户无法登录和下单的情况。眼看加到购物车里的衣服包包零食怎么也下不了单,冷静过来消费者索性不买立省100%。同样在去年11月崩了的滴滴,要么不给用户派车,要么给人家派了三四辆车,深夜回家的人旱的旱死、涝的涝死,网约车司机也只能在车里跟乘客大眼瞪小眼。早到2022年10月,由于系统维护,微信也短暂出现了登陆困难和消息延迟发送的情况,影响了大量用户,需要使用微信交流沟通、收发文件的打工人首当其冲。光鲜亮丽的互联网大厂,突然集体“拉垮”了起来,难道世界真是一个巨大的草台班子?其实吧,这事儿也不能全赖苦苦支撑的大厂秃头程序员。有时候是泼天的流量太大,顶流男明星官宣恋情、宇宙天团演唱会门票开售、购物节剁手达人太多都可能挤爆服务器。企业做好万全准备,也挡不住天降紫微星啊。有时候是对系统稳定性的过度自信,或者没有金刚钻却揽了瓷器活,没有对系统进行适当的扩展或者备份,遇到超出预期的流量或者负载时立刻原形毕露。更何况互联网企业发展到现在,产品越来越多元、服务越来越全面、更新迭代越来越迅速,各个环节之间相互影响,在前任留下来的“屎山代码”里找到问题出处无异于大海捞针,也让“捉虫”这件事变得越发困难。当然了,所有服务器崩盘的背后都是互联网企业抗风险能力的不足,缺人手、缺资源、缺资金、缺硬件。大多数问题都能在短时间内得到解决,用户们也能在喜提补偿后多了几分“搬砖松弛感”,毕竟这么多大厂都犯过错,我把领导文件送错、泼了同事一身咖啡、记错客户名字、在转账单上多填了一个0,又算什么呢。与网站、APP频繁崩盘同时发生的是,互联网大厂们近年来进入发展收缩期,大家都在勒紧裤腰带过冬,而降本增效最直观的方式,就是大批被优化的辛勤牛马打工人。于是,不少网友发出灵魂提问,网站越来越难用了,是不是裁掉了不该裁的人?降本这件事,大刀要么砍向人,要么砍向资源。各个环节干活的人少了,测试跑不完,开发进度慢,验收不合格,草台班子跑是还能跑,但“塌房”概率就大大增加了。而公司的资源少了,用户量超载、配置不当等问题也是一大雷区。另外,大规模裁员让运维队伍产生了不小的动荡,昨天并肩战斗的同事都散落天涯海角四处躺平了,新来的人不知道前人埋了什么雷,很容易一不小心就炸出bug窝。网友们对“降本增笑”的吐槽,何尝不是打工人 help打工人的惺惺相惜。滴滴去年闪崩之前刚经历了一轮大裁员,各个部门都有涉及,2022年员工比2021年缩减了14.4%。而导致滴滴闪崩的“底层基础设施故障”,则是深埋在地下的企业地基,一旦建造大厦的人跑路了,就很难在大楼崩塌时按照原样迅速重建。资深开发大佬苏洋曾经分析过,在大公司做基础设施的工程师,相比做“主要赚钱业务”的工程师收入相对较少,公司不论是物质资源、战略重视度倾斜都更偏业务。这块和安全部门在大公司的境遇类似,出了事儿,才能被证明价值,才会被人想起来。踏实肯干不会溜须拍马阿谀逢迎的员工,最容易在裁员时被大手一挥优化毕业,而正是他们长年累月、发量渐少地辛勤工作,才撑起来一起公司最稳当的地基。从拨号上网到万物互联,我们早已进入一个24小时无缝浸入互联网的时代。网速越来越快、流量越来越多,人们的耐心却越来越少,对网络卡顿、延迟、故障忍不了一点。为用户提供丝滑流畅的冲浪体验是互联网企业的本分,但随着大厂们提供的服务越来越多,运维环节越来越繁杂,特别是经年累月堆积起来的屎山代码山,bug难以避免,不知道在什么时候就会被触发踩雷,让用户在网上冲浪的时候绊了一跤。在程序员火急火燎地修复服务故障时,咱们不妨给自己泡一杯咖啡,享受从虚拟的网络世界退回现实生活的轻松一刻。没了网易云音乐的bgm当工作伴侣,不妨把手上工作一推,大胆放心摸鱼去吧。