99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

“少寫一行代碼,5分鐘狂刷一次下載,開發者8000美元就這么燒沒了!”

0
分享至


只因為漏寫了一行代碼,macOS 錄屏工具 Screen Studio 的開發者 Adam Pietrasiak 意外燒掉了 8000 美元的流量費,連帶著還讓部分用戶斷了網。一個看起來微不足道的自動更新改動,最后變成了一場技術災難。這不僅是一場“翻車事故”,也給所有開發者敲響了警鐘:凡是跟網絡、成本沾邊的代碼,真的一點都馬虎不得。

這篇名為《One line of code that did cost $8,000》的文章雖然寫于 2023 年,最近卻在 Hacker News 上被翻了出來,再次引發開發者圈熱議。

來源:https://pietrasiak.com/one-line-of-code-that-did-cost-dollar8000

作者 | Adam Pietrasiak

編譯 | 屠敏

出品 | CSDN(ID:CSDNnews)

由于一個 Bug,macOS 錄屏應用 Screen Studio 的自動更新機制出了問題:每隔 5 分鐘就會讓每位用戶重復下載一次更新文件。這個更新包有 250MB,大量重復下載導致請求次數飆升至 900 萬次,最終生成了超過 2PB(約 200 萬 GB)的 Google Cloud 流量。

當時的流量波動如下圖所示,雖然這個截圖本身看起來沒什么大不了,但背后的流量規模可不容小覷:在一個多月的時間里,Screen Studio 的服務端持續跑出至少 100 Mib/s 的帶寬,有時甚至逼近 1 GiB/s——而且是每一秒都在大規模傳輸數據。


這個 Bug 簡單得令人痛心,甚至可以說愚蠢至極。

簡單來看,Screen Studio 是一款運行在 macOS 上的本地屏幕錄制應用。出于常規需求,身為開發者的 Adam Pietrasiak 為它設計了一個自動更新機制,讓用戶可以方便地獲取最新版本。

更新邏輯其實也很簡單:應用會每五分鐘檢查一次更新,或者在用戶啟動時主動檢查。一旦檢測到有新版本,就會下載更新文件,并暫停五分鐘一輪的檢查循環,直到用戶完成安裝并重啟應用為止。


悲劇性的重構

最初,Screen Studio 的自動更新機制還有個小問題:一旦檢測到新版本,應用會立刻彈窗提醒用戶更新。但這在用戶錄屏時出現彈窗將會非常擾人——畢竟誰也不希望錄到一半被窗口打斷。

為了改善這一體驗,Adam Pietrasiak 決定對更新邏輯進行了重構。不過,就是在這次重構中,出了個代價慘重的疏忽:他漏掉了一行關鍵代碼——在更新文件已經下載后,應該停止后續的定時檢查。

忘記這行代碼的后果就是:應用每五分鐘就會重新下載一次同一個 250MB 的更新包。


悲劇性的運行環境:后臺運行數周

問題在于,事實證明有成千上萬的用戶把 Screen Studio 這款應用長期掛在后臺運行,即使他們并沒有主動使用。

這間接地導致 Bug 的影響被大大放大——這些客戶端每隔五分鐘就自動下載一次 250MB 的更新文件,而且是持續了好幾個星期。

來做個簡單的計算:

  • 每五分鐘一次的頻率,一天大約會執行 288 次下載。

  • 每個更新文件約為 250MB,也就是每天每位用戶產生約 72GB 的下載量。

  • 這一 bug 持續了一個多月,而開發者 Adam Pietrasiak 完全沒有察覺到。

  • 該應用大約有一千個這樣的客戶端實例始終在后臺運行。

  • 250MB × 288 次/天 × 30 天 × 1000 用戶


  • 換算之后就是——2,000,000GB

  • 或 2,000 TB

  • 或 2PB 的流量


一連串糟糕的錯誤

雪上加霜的是,Adam Pietrasiak 當時并沒有在 Google Cloud 上設置任何流量或賬單預警機制——畢竟,過去每月的賬單從未超過 300 美元,也就沒太放在心上。

而流量監控呢?也沒人主動去看,因為“以前從來沒出過問題”。

那這場事故最后是怎么被發現的呢?并不是通過技術手段,而是因為 Adam Pietrasiak 的信用卡因為超過了其設定的限額而被銀行拒付了(所幸他事先設了限額,否則后果可能更慘)。



對用戶的影響

這不僅對我們來說是場災難,對一些用戶來說更是嚴重的問題。

對于一部分用戶來說,它甚至成了現實生活中的麻煩:由于更新文件是從用戶設備端發起的下載,超大流量實際上是“從他們自己的網絡里跑出去”的。

有位用戶住在郊區,結果因為異常高頻的網絡使用,被當地的運營商直接斷了網,甚至取消了服務合同——更糟糕的是,那一片區域沒有別的可選網絡提供商。

得知此事后,Adam 表示將對事件負責,并承擔由此產生的全部費用。幸運的是,那位用戶最終還是與運營商協商解決了問題,沒有造成進一步損失。

盡管如此,對開發者和用戶來說,這都是一次糟糕的經歷。Adam 后來說,作為一名設計師,他一直非常在意用戶體驗——但這次的事故,不只是糟糕體驗,甚至一度對用戶造成了實際傷害。


總結教訓

基于此,Adam Pietrasiak 自己也總結了一些經驗,也希望能給其他開發者提個醒:

  • 始終為云服務設置費用預警;

  • 寫自動更新邏輯時要極其小心;

  • 任何可能帶來成本的代碼都要格外謹慎;

  • 設計可由服務器遠程觸發的特殊信號機制,比如“強制更新且不提示用戶”;

  • 定期檢查你的云服務狀態。


最后

隨著 Adam Pietrasiak 把這次事故分享出來,也引發了不少開發者的討論。

有網友指出,這次事件的損失可能遠不止賬單上寫的 8000 美元。比如用戶用的是流量,像移動熱點,很可能因此悄悄多花了不少錢,卻完全不知道是應用的問題。

也有人認為,像自動更新器這種容易出問題、又特別關鍵的功能,其實沒必要硬著頭皮自己做。用個成熟、靠譜的第三方方案,反而更省事、安全。畢竟,一旦 App 出了嚴重 Bug,更新機制就成了唯一的補救通道,設計得不靠譜,后果可能比想象中嚴重得多。網友 jmull 指出,「像“每五分鐘檢查一次更新”這種設計,就挺離譜的,說明他們可能根本沒認真設計這個系統。」

還有開發者將其歸咎為沒有代碼審查。用戶 donatj 表示,「我一直對代碼評審非常嚴格。有一次,一個經理隨口說我應該多留點問題給 QA 處理,語氣差不多是“最壞能出什么問題?”我當時脫口而出:“我們全都丟掉工作。”我們永遠離“因為一行糟糕的代碼丟掉工作”只差一步。我抓到初級甚至資深開發者寫出可能泄露用戶隱私信息(PII)的代碼的次數,簡直數不清。在大多數系統中,一不小心就可能惹上法律麻煩,這實在太容易了。」

這次事件雖然是個意外,但對很多人來說,也是一個值得認真思考的教訓。無論是系統設計、代碼審核,還是日常監控和應急預案,做得細一點、穩一點,總歸是有好處的。


特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
你無意間摸到過什么不該摸的東西!網友看過全部笑岔氣了

你無意間摸到過什么不該摸的東西!網友看過全部笑岔氣了

解讀熱點事件
2025-01-13 01:34:06
沖上熱搜!森林狼淘汰湖人,湖人將士發聲,官博發文“下賽季見”

沖上熱搜!森林狼淘汰湖人,湖人將士發聲,官博發文“下賽季見”

魯中晨報
2025-05-01 14:28:33
27歲小伙工地做臨時工,與老板娘發生了一段往事,讓他至今無法忘懷

27歲小伙工地做臨時工,與老板娘發生了一段往事,讓他至今無法忘懷

紅豆講堂
2025-04-30 20:20:06
iOS18.5太瘋狂了,讓黃牛的天都塌了!

iOS18.5太瘋狂了,讓黃牛的天都塌了!

搞機小帝
2025-04-28 18:13:58
艾滋病新增130萬!多人無辜中招!公眾場合千萬堅持“4不碰”原則

艾滋病新增130萬!多人無辜中招!公眾場合千萬堅持“4不碰”原則

39健康網
2025-04-23 10:41:16
蕩氣回腸的3:3,卻令巴薩劣勢盡顯!歐冠次回合:憑啥淘汰國米?

蕩氣回腸的3:3,卻令巴薩劣勢盡顯!歐冠次回合:憑啥淘汰國米?

話體壇
2025-05-01 07:44:46
越南有大事發生,親中派武文賞當選國家主席,中越距離還有多遠

越南有大事發生,親中派武文賞當選國家主席,中越距離還有多遠

東哥講歷史1
2025-04-30 22:11:19
水果也塌了,央視曝光7大“水果騙局”,越看越害怕,別再踩坑了

水果也塌了,央視曝光7大“水果騙局”,越看越害怕,別再踩坑了

景來律師
2025-03-30 10:44:56
這很難評!湖人本賽季有東契奇的比賽勝率是57.6%,沒有東契奇時是59.3%

這很難評!湖人本賽季有東契奇的比賽勝率是57.6%,沒有東契奇時是59.3%

雷速體育
2025-05-01 13:22:12
毛主席在人生最低谷時寫下這首詩,催人奮進!字跡豪邁蒼涼,已入化境!

毛主席在人生最低谷時寫下這首詩,催人奮進!字跡豪邁蒼涼,已入化境!

中國藝術家
2025-05-01 05:23:48
雷軍回復網友“五一我要結婚了,求祝福”……評論區刷屏了!

雷軍回復網友“五一我要結婚了,求祝福”……評論區刷屏了!

魯中晨報
2025-04-30 14:12:05
事態升級!知名博主爆董某瑩博士論文涉抄襲?衛健委調查肖某董某

事態升級!知名博主爆董某瑩博士論文涉抄襲?衛健委調查肖某董某

西莫的藝術宮殿
2025-05-01 14:03:22
6分鐘0分,謝潑德給機會不中用,火箭隊真核2場51分 價值完勝格林

6分鐘0分,謝潑德給機會不中用,火箭隊真核2場51分 價值完勝格林

替補席看球
2025-05-01 10:50:10
世錦賽四強出爐:奧沙利文晉級將戰趙心童,特魯姆普VS威廉姆斯

世錦賽四強出爐:奧沙利文晉級將戰趙心童,特魯姆普VS威廉姆斯

全景體育V
2025-05-01 05:51:02
上海“安慕希”大樓上了熱搜!安慕希:我要奪回屬于我的大樓!

上海“安慕希”大樓上了熱搜!安慕希:我要奪回屬于我的大樓!

曉風說
2025-04-30 17:32:12
敘利亞新總統決定與以色列搞好關系,放棄哈馬斯和黎巴嫩真主黨!

敘利亞新總統決定與以色列搞好關系,放棄哈馬斯和黎巴嫩真主黨!

凱撒談兵
2025-04-29 10:10:24
越拔越害怕!某協和醫院有協議。原來保送北大有58加分保送名額!

越拔越害怕!某協和醫院有協議。原來保送北大有58加分保送名額!

漣漪讀史
2025-04-30 15:10:10
潛伏軍中的大間諜,他給國家造成不可估量的損失,被執行注射死刑

潛伏軍中的大間諜,他給國家造成不可估量的損失,被執行注射死刑

混沌錄
2025-04-01 13:43:05
科爾提前17分50秒投降!庫里巴特勒22中6看二陣表演 美球迷諷萌神

科爾提前17分50秒投降!庫里巴特勒22中6看二陣表演 美球迷諷萌神

顏小白的籃球夢
2025-05-01 10:00:01
沉重的醫學教育之問,董小姐是如何用3年完成11篇跨學科論文的?

沉重的醫學教育之問,董小姐是如何用3年完成11篇跨學科論文的?

第一財經資訊
2025-04-30 20:05:09
2025-05-01 15:39:00
CSDN incentive-icons
CSDN
成就一億技術人
25538文章數 242050關注度
往期回顧 全部

科技要聞

DeepSeek新數學模型刷爆記錄

頭條要聞

老人與已故兒子女友結婚遭女兒砸家 新婚妻子正面回應

頭條要聞

老人與已故兒子女友結婚遭女兒砸家 新婚妻子正面回應

體育要聞

天王山的哈登,是如何迷失的?

娛樂要聞

62歲阿湯哥有新戀情 開飛機載36歲女友

財經要聞

知情人士:美方正多渠道主動與中方接觸

汽車要聞

預售32.98萬起 魏牌高山家族將于5月13日上市

態度原創

教育
時尚
家居
數碼
手機

教育要聞

董小姐們的教育問題~~

我的假日清單|| 9件快速恢復能量的小事,百試百靈

家居要聞

輕奢婚房 自由隨性生活

數碼要聞

索尼 YY2987 耳機、YY2988 無線適配器通過認證

手機要聞

聯想moto razr 60系列下周發布:全系標配鈦合金轉軸!支持80萬次自由折疊

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 同仁县| 门头沟区| 金塔县| 都匀市| 大安市| 宜章县| 新闻| 松江区| 商城县| 芒康县| 长治县| 汉中市| 且末县| 鹰潭市| 广水市| 灌阳县| 托克逊县| 嘉祥县| 满城县| 万全县| 淄博市| 广东省| 新邵县| 通山县| 界首市| 凤城市| 津南区| 河西区| 平南县| 利津县| 广西| 鹿泉市| 惠州市| 永济市| 囊谦县| 余庆县| 获嘉县| 高邮市| 河北区| 浦城县| 赞皇县|