上周末,推特的所有者馬斯克(Elon Musk)限制了大多數(shù)用戶每天可以查看的推文數(shù)量,隨后推特遭遇了嚴(yán)重技術(shù)故障,致使大量用戶無法登錄。小小改動都能使推特崩潰,這次馬斯克會怎么說?
上周五,馬斯克宣布,如果沒有推特賬戶,就不能再閱讀推文。馬斯克當(dāng)時表示,使用人工智能模型的公司們正在大量抓取推特數(shù)據(jù),造成了網(wǎng)站流量問題。“這是臨時緊急措施,”他說:“幾百家機構(gòu)(也許更多)正在極其積極地搜刮推特數(shù)據(jù),以至于影響到了那些普通用戶的體驗。”
雖然不確定馬斯克具體指的是什么,但他很可能說的是從網(wǎng)站提取數(shù)據(jù)而不需要任何官方 API 的網(wǎng)絡(luò)爬蟲。畢竟,推特的 API 現(xiàn)在受到嚴(yán)格限制,使用者每月至少要花費 42,000 美元。
在此之前,普通用戶無需登錄帳戶即可訪問推特,在桌面或移動設(shè)備上的網(wǎng)絡(luò)瀏覽器中就可以直接打開最喜歡的推文或查看最喜歡的創(chuàng)作者的個人資料。早在 2015 年,推特在一篇博文中透露,每月有“5 億人”在沒有登錄的情況下訪問推特。據(jù)稱,這個數(shù)字高于推特的月活躍用戶數(shù)?,F(xiàn)在,這部分用戶都被擋在了平臺外面,不登錄就無法查看任何內(nèi)容。
自馬斯克接管該平臺以來,推特一直遭受用戶增長停滯、高級用戶流失和廣告收入減少的困擾。迫使數(shù)億用戶注冊推特賬號,確實有可能提升用戶數(shù)據(jù)并趁機向潛在廣告商推銷。然而,這個舉措也存在一些重大缺陷,推特將面臨的一個主要問題是谷歌等搜索引擎將難以抓取該平臺并對其內(nèi)容進(jìn)行排名。這意味著當(dāng)用戶在谷歌上搜索時,用戶個人資料和推文可能不會再出現(xiàn)。此舉也不能保證用戶在看到登錄提示后會注冊推特。一旦大家意識到他們無法訪問內(nèi)容,就可能會完全避開推特內(nèi)容和鏈接。這最終可能會讓推特?fù)p失大量流量。
限制未注冊用戶登錄是第一步,到了周六,馬斯克又出了新措施:“認(rèn)證帳戶每天只能閱讀 6000 個帖子,未認(rèn)證的帳戶每天能看 600 個帖子;新的未認(rèn)證的帳戶每天能看 300 個帖子?!?
根據(jù)故障追蹤網(wǎng)站的數(shù)據(jù),星期六上午有數(shù)千名推特用戶的賬號出現(xiàn)故障。美國東部時間星期六上午 11 時 17 分左右(北京時間星期六晚上 11 時 17 分左右)的故障高峰時段,有近 7500 名用戶報告訪問推特時出現(xiàn)問題。
更讓人無法理解的是,用戶都已經(jīng)無法訪問推特首頁的信息流了,然而,即使頁面無法加載,推特網(wǎng)頁仍在不斷嘗試發(fā)送請求。
推特每秒向自己的服務(wù)器發(fā)送約十條請求,試圖獲取永遠(yuǎn)無法獲得的內(nèi)容。這可能對工程師們來說是一場災(zāi)難,但同時我們也得以欣賞一場史詩級的自我抹黑:推特在不斷對自己進(jìn)行 DDoS 攻擊!
這是個悲傷的故事,也真實地講述了前端背后發(fā)生的事情:勞累過度的工程師正努力地去滿足一個“白癡”老板的要求。
幾乎可以肯定這與他們關(guān)閉對推特內(nèi)容的匿名訪問有關(guān)。有網(wǎng)友猜測在前端程序中可能存在一個邏輯漏洞,開發(fā)人員必須小心翼翼地繞過它,才能使該服務(wù)變?yōu)樗接校╝ private only service)。
鑒于馬斯克有開除員工的一系列前例,還有人感慨道:“這次不知道誰又得收拾行李,帶著‘榮耀’走出推特大門?!?
一開始,馬斯克說這是限制第三方抓取推特數(shù)據(jù),但后來他開始開玩笑說,該網(wǎng)站癱瘓可以讓大家“遠(yuǎn)離手機,去看看你的家人和朋友。”
但顯然大家并不買賬,一些有相關(guān)技術(shù)背景的人認(rèn)為,這與抓取或機器人預(yù)防沒有什么關(guān)系,而是與試圖保持網(wǎng)站的完整性有關(guān)。起碼大型生產(chǎn)系統(tǒng)自我進(jìn)行八個小時的 DDoS 攻擊是極其少見的。
Maggie Johnson-Pint 是一家 IT 公司的創(chuàng)始人也是一名可靠性方面的專家,也是前推特基礎(chǔ)架構(gòu)團(tuán)隊成員,她對此發(fā)表了自己的看法,“作為一名速率限制方面的專家,我想解釋下這背后的一些技術(shù)。”
自上而下的過載或“Reddit Hug of Death”:突然出現(xiàn)巨大的需求激增,服務(wù)器暫時“無法”運行。這種情況也會發(fā)生在超級碗廣告之后、流行歌星宣布巡演或 DDOS 攻擊期間。
自下而上:這是不太明顯但更常見的情況,當(dāng)系統(tǒng)內(nèi)部出現(xiàn)故障時,系統(tǒng)將無法提供正常負(fù)載。如果你丟失了 Redis 緩存并且所有內(nèi)容都讀取到數(shù)據(jù)庫,這將大大降低服務(wù)請求的能力。同樣,如果數(shù)據(jù)庫副本、云區(qū)域或集群出現(xiàn)故障,照樣也會處理不了正常工作負(fù)載。當(dāng)然,如果一項服務(wù)的開發(fā)人員編寫的代碼突然攻擊另一項服務(wù),那也是“DDOSing Yourself”,但這還是自下而上的。
“我不知道推特今天發(fā)生了什么...... 我敢打賭是一些 ‘自下而上’的問題。大家討論的 DDOSd 問題,這是事情的結(jié)果,而不是問題的原因?!?
在一些情況下,限速限流是一個逃離死亡的好辦法,當(dāng)然,如果服務(wù)器收到的請求數(shù)量超過了它們能夠處理的數(shù)量,最終它們還是會崩潰。 即使它們沒有崩潰,請求也會堆積起來等待完成,這期間用戶還會不斷去刷新頁面,增加更多請求,陷入死循環(huán)中。
“此類最好策略是‘自適應(yīng)’的,可以根據(jù)系統(tǒng)壓力、請求優(yōu)先級和其他因素更改速率限制。推特之前有一個非常好的團(tuán)隊,因為直到一年前他們還擁有一支非常出色的基礎(chǔ)設(shè)施團(tuán)隊。 現(xiàn)在,很多人認(rèn)為限速是位于基礎(chǔ)設(shè)施‘前端’的東西,以防止自上而下的問題,但事實上,先進(jìn)的基礎(chǔ)設(shè)施團(tuán)隊(包括我之前在推特的美好日子里)會定期在所有進(jìn)程之間使用它,那么就可以防止各種情況導(dǎo)致的過載情況,從而防止出現(xiàn)各種級聯(lián)故障場景?!?
Maggie 猜測是因為推特丟失了關(guān)鍵后端系統(tǒng)的很大一部分:也許他們停止支付 GCP 賬單,也許他們丟失了一個關(guān)鍵緩存,并且所有內(nèi)容都在讀取其他數(shù)據(jù)......
GCP 賬單理論也與馬斯克有關(guān),之前為了削減成本,他拒絕向亞馬遜或谷歌等為推特提供基本服務(wù)的公司支付賬單。盡管后續(xù)行動表明馬斯克最終至少支付了谷歌的賬單,但現(xiàn)在看來似乎還是在云服務(wù)上有些問題存在。
The Information 此前報道稱,幾個月來,推特一直在試圖重新跟谷歌談判新的云服務(wù)合同,推特曾承諾在五年內(nèi)支出 10 億美元。
根據(jù) The Information 的報道,推特最終繼續(xù)支付其 Google Cloud 賬單,因為它從該公司獲得了巨額廣告收入,但 Platformer 也有報道稱,推特“計劃完全停止使用該平臺”。Platformer 報道稱,推特計劃在 6 月 30 日合同結(jié)束之前將服務(wù)從 Google Cloud 上移走,但援引消息人士的話稱,這需要比預(yù)期更長的時間,并且不確定某些服務(wù)會發(fā)生什么情況。
例如,推特于 2018 年收購的 Smyte 公司,利用數(shù)據(jù)分析和機器學(xué)習(xí),提供阻止各種不良在線行為的服務(wù),包括針對機器人、黑客攻擊、阻止騷擾、濫用和垃圾郵件的工具,該公司托管在谷歌云平臺上,也是 6 月 30 日到期。當(dāng)時消息人士告訴 Platformer,并還不清楚推特是否會嘗試將 Smyte 遷移到自己的服務(wù)器上。
在馬斯克裁掉了推特的絕大部分安全團(tuán)隊成員后,增加限制也許是一個最低成本的替代解決方案。
當(dāng)然,并不是所有人都不相信馬斯克所說的理由。在他的所有帖子下,都有一大群擁護(hù)者說著“偉大的舉動,先生,感謝您讓網(wǎng)站變得更好!”
也不知道這種“臨時”舉措會持續(xù)多久。推特的競爭對手,現(xiàn)在也因為大批用戶涌入而暫停注冊。福布斯評價說:“這無疑是馬斯克自接管該網(wǎng)站以來所做的最糟糕的事情,反爬蟲明顯是一個煙幕彈。如果這是真的,那么這實際上就像為了殺死幾只蚊子而把整個房子燒掉一樣。”
對話開源泰斗陸首群教授:中國開源發(fā)展應(yīng)追求0到1的爆發(fā)性創(chuàng)新,而不是0到0的假創(chuàng)新
離職員工竊取源代碼,半年狂賺1.5 億;美團(tuán)“1元現(xiàn)金”火速收購光年之外;53歲周鴻祎清華讀博:重新學(xué)習(xí)做一個工程師|Q 資訊
Electron末日來了?又一應(yīng)用將其拋棄!WhatsApp強制推行原生應(yīng)用:速度更快、內(nèi)存占用更少
前阿里云計算平臺事業(yè)部研究員,阿里巴巴通用計算平臺 MaxCompute、Dataworks 負(fù)責(zé)人——關(guān)濤,現(xiàn)將在今年 9 月 3-5 日的 QCon 北京以新的身份——云器科技聯(lián)合創(chuàng)始人 /CTO 和業(yè)界朋友展開交流。這次我們將探討的主題是「從 BI 到 BI+AI,新計算范式下的大數(shù)據(jù)平臺」,本論壇也將邀請數(shù)據(jù)平臺的從業(yè)者、新興創(chuàng)業(yè)公司以及部分平臺開發(fā)者從不同視角分享觀點,同時,我們還將組織閃電演講和圓桌交流,大數(shù)據(jù)從業(yè)者不可錯過!