<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      3個中國程序員 vs 3個美國程序員,不得不承認,差距太大了!

      0
      分享至

      大概是2009年,我和兩個好哥們聊天,覺得智能手機可能是風口,商量著要弄一個照片分享網站。

      用戶可以用手機把隨手拍的照片放到網上分享,名稱都起好了,叫InstantPost

      可是我們的執行力太差了,聚了兩次,做了一點兒技術驗證,就沒有下文了。

      過了幾年,我看到美國一個叫Instagram的火了,不由地一拍大腿:臥槽!這不就是我們當年要做的事兒嗎?!


      后來我看到Instagram初期的故事,他們也是三個程序員,從2010年10月到2011年12月,在一年多的時間內,就把用戶數量從0增長到了1400萬!

      看完他們的架構設計,我就釋然了,拋開執行力,在2009年那個時間點,我們確實不行。

      Instagram制定的架構指導準則是:

      1.保持簡單

      2.不要重新發明輪子

      3.盡可能使用經過驗證的可靠技術

      所以早期的Instagram跑在云上,使用EC2和Ubuntu Linux 11.04。

      接下來,站在一個用戶會話(Session)的角度,來看看Instagram的處理過程。

      前端

      Session:用戶打開了Instagram APP。

      2010年,Instagram開發了一個iOS app,正式推出。

      因為這時候Swift還沒有發布,他們用了Objective-C,UIKit等技術。


      負載均衡

      Session:打開App后,會向后端發起一個請求(獲取主界面的“信息流”),這個請求會首先到達Instagram的負載均衡。

      Instagram 最早使用2個Nginx并在它們之間進行DNS Round-Robin,這種方法的缺點是,如果某一個機器出現故障,DNS的更新需要時間。

      后來他們選擇了Amazon的Elastic Load Balancer,這里有三個NGINX實例,可以換入換出。


      后端

      Session:負載均衡會把請求轉發給應用服務器

      Instagram用Django作為后端服務,運行在 Amazon High-CPU Extra-Large 上,因為這三個程序員發現,后端服務是CPU密集型的。

      Gunicorn做WSGI Server。


      應用運行在超過25臺亞馬遜虛擬機中,這些應用都是無狀態的,可以在需要的時候進行擴展。

      為了在多臺機器上運行命令(例如部署代碼),Instagram使用了Fabric,它有一個很好用的并行模式,部署只需要幾秒鐘。

      數據存儲

      Session: 用戶請求到達了應用服務器,接下來它需要獲得這些數據:

      1.最新的Photo IDs

      2.這些Photo ID對應的實際照片

      3.這些照片的用戶數據

      Database: PostgreSQL

      Session: 應用服務器從PostgreSQL獲取最新的Photo ID,這里保存著用戶和照片的元數據。

      大部分的數據,如用戶,照片元數據,標簽等都保存在PostgreSQL數據庫中。

      因為數據量不小,每秒鐘有25個照片上傳,并且有90個贊,Instagram對數據做了分片

      分片系統由數千個邏輯分片組成,這些分片在代碼中被映射到少得多的物理分片,用這種辦法,可以從少量的數據庫開始,擴展到更多的數據庫。

      當擴展時,只需要把邏輯分片從一個數據庫“指向”另外一個即可,無需挪動任何數據。

      一個挑戰是:Instagram如何解決Photo ID問題,因為需要能按時間排序,而無需獲得有關照片的更多信息,理想情況下,ID應該是64位的。

      后來的解決方案是這樣的:

      41位:記錄毫秒時間

      13位:邏輯分片ID

      10位:自動增長的序列,模數1024,這意味著每毫秒,每個分片可以生成1024個ID

      最終結果是個64為整數,可以被PostgreSQL排序,找到最新的照片。

      照片的存儲:S3 和Cloudfront

      Session: 獲取了Photo ID以后,應用服務器要獲取真正的照片,快速發給用戶

      照片保存在Amazon S3中 ,存儲了幾個TB的數據,通過使用CDN(Amazon CloudFront ),照片可以快速分發給世界各地的用戶(例如日本,是Instagram第二大受歡迎的國家)

      緩存

      Instagram 需要將大約 3 億張照片(ID)和創建它們的用戶ID的映射保存起來,以便知道查詢那個分片。

      他們選擇了Redis后發現,為了保存這些映射,Redis需要21GB內存,這已經大于 Amazon EC2 上的 17GB 實例類型。

      后來他們向Redis的核心開發人員Pieter Noordhuis求助,Pieter建議使用Redis Hash,最終通過巧妙的設計,這些映射僅需不到5G的內存。

      對于其他緩存(如session),Instagram使用Memcached,當時有6個實例。


      數據備份

      無論是PostGreSQL還是Redis,都會使用Amazon EBS經常性進行數據備用

      通知和異步任務

      Session: 用戶關閉了App,但是朋友發送了一張照片,需要發送一個通知。

      Instagram的推送服務用的是 pyapns, 這是一個開源的、通用的蘋果推送服務提供商,運行非常穩定,為Instagram處理了超過10億條推送通知。

      Session:用戶非常喜歡這張照片! 他決定在Twitter何Facebook上分享。

      在后臺, 任務被推送到了Gearman, 這個任務隊列會保存任務,Instagram有大約200 Python workers 來處理這些任務。


      監控

      Session: Uh oh! 服務器端發生了錯誤,Instagram崩潰了,那三個程序員需要收到告警,馬上進行處理。

      Instagram 使用 Sentry這個開源的應用來實時監控Python錯誤。

      使用Munin來繪制各種系統指標的圖表,如果有任何情況超出正常范圍,就會向程序員發出異常告警。Instagram 有一堆自定義 Munin 插件來跟蹤應用程序級別的指標,例如每秒發布的照片、每分鐘注冊人數等。

      對于外部服務的監控,使用了Pingdom ,PagerDuty 用于處理事件和通知。

      最終的架構


      反思

      2009年,我們三個都在比較傳統的軟件公司,互聯網技術用得比較少。

      像負載均衡、分庫分表、緩存也是剛剛開始接觸,還沒有在生產系統中大規模使用的經驗。

      iPhone還沒在國內上市,我們仨手頭都沒有,還在用諾基亞的“智能機”做測試。

      國內市場也沒有很好的云服務作為基礎設施,當時李彥宏表示,云計算只不過是新瓶裝舊酒,15年來沒有新東西,馬化騰則認為云計算要像水電一樣用還為時尚早。

      如果執行力強的話,InstantPost應該能做出來,但肯定會遇到很多的坑,想取得一年1000多萬用戶肯定是癡心妄想。

      當然,這僅僅說明我們三個比較菜,不是中國程序員不行,中國程序員在互聯網時代也創造了很多優秀的產品,甚至殺到了美國大本營。

      我想說的是,很多看起來是風口的東西,我們是抓不住的,因為:

      我們不是局內人。

      (強烈推薦這篇文章《》)

      全文完,覺得不錯的話點個贊或者在看吧!

      參考資料:

      https://engineercodex.substack.com/p/how-instagram-scaled-to-14-million (本文主體內容的來源)

      https://instagram-engineering.com/what-powers-instagram-hundreds-of-instances-dozens-of-technologies-adf2e22da2ad

      https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c

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

      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.

      相關推薦
      熱點推薦
      貝加爾湖事故中溺亡的7名國人,很大可能連賠償都拿不到

      貝加爾湖事故中溺亡的7名國人,很大可能連賠償都拿不到

      清書先生
      2026-02-24 16:38:37
      平頂山15歲女孩母親再發聲:女兒輕傷二級,聽說劉某飛家很有勢力

      平頂山15歲女孩母親再發聲:女兒輕傷二級,聽說劉某飛家很有勢力

      漢史趣聞
      2026-02-24 14:57:13
      9-3,歐冠慘案!英超球隊踢瘋了!轟26球歐冠第1,強勢晉級淘汰賽

      9-3,歐冠慘案!英超球隊踢瘋了!轟26球歐冠第1,強勢晉級淘汰賽

      烏龍球OwnGoal
      2026-02-25 08:02:14
      6年前2459元買入,現在漲到4048元!老相機成“電子黃金”,多的甚至漲價10倍,網友拍大腿:賣早了

      6年前2459元買入,現在漲到4048元!老相機成“電子黃金”,多的甚至漲價10倍,網友拍大腿:賣早了

      每日經濟新聞
      2026-02-25 00:41:04
      升級版的仙人跳,比戴綠帽子還憋屈

      升級版的仙人跳,比戴綠帽子還憋屈

      霹靂炮
      2026-02-24 22:53:34
      高市早苗涉違法向議員發放禮品

      高市早苗涉違法向議員發放禮品

      界面新聞
      2026-02-25 07:54:10
      歷史上唯一一位“女狀元”,白天處理政務,晚上淪為玩物

      歷史上唯一一位“女狀元”,白天處理政務,晚上淪為玩物

      談史論天地
      2026-02-23 10:39:15
      你干過哪些陰暗齷齪的事?網友:最后一個真的好炸裂好真實

      你干過哪些陰暗齷齪的事?網友:最后一個真的好炸裂好真實

      帶你感受人間冷暖
      2026-02-17 01:00:24
      歐冠悲喜夜:國米慘遭黑馬雙殺2-5出局 馬競7-4晉級 勒沃庫森2-0

      歐冠悲喜夜:國米慘遭黑馬雙殺2-5出局 馬競7-4晉級 勒沃庫森2-0

      狍子歪解體壇
      2026-02-25 05:55:00
      李亞鵬年初六到陳光標家做客!為陳環保送行,陳光標妻子罕見露臉

      李亞鵬年初六到陳光標家做客!為陳環保送行,陳光標妻子罕見露臉

      離離言幾許
      2026-02-22 23:36:16
      李嘉誠港口被巴拿馬強行沒收,提前撤退未果

      李嘉誠港口被巴拿馬強行沒收,提前撤退未果

      老鷹哥
      2026-02-24 16:46:50
      紅包大戰退潮!2026年春節AI“排位賽”大洗牌:元寶一度掉出前二十,豆包與千問的“拉鋸戰”才剛剛開始

      紅包大戰退潮!2026年春節AI“排位賽”大洗牌:元寶一度掉出前二十,豆包與千問的“拉鋸戰”才剛剛開始

      每日經濟新聞
      2026-02-24 23:46:23
      斯洛伐克:烏克蘭將恢復“友誼”管道石油輸送

      斯洛伐克:烏克蘭將恢復“友誼”管道石油輸送

      新華社
      2026-02-25 04:00:04
      李連杰曬影迷耗時100小時自制海報:謝謝這位有才的朋友;此前,該作者用成龍70部電影中的人物形象制作了海報,獲大哥當面感謝

      李連杰曬影迷耗時100小時自制海報:謝謝這位有才的朋友;此前,該作者用成龍70部電影中的人物形象制作了海報,獲大哥當面感謝

      極目新聞
      2026-02-24 18:36:26
      重慶烤全羊宰客社死!人民日報怒批,坑慘當地文旅,下場大快人心

      重慶烤全羊宰客社死!人民日報怒批,坑慘當地文旅,下場大快人心

      青梅侃史啊
      2026-02-24 16:59:25
      傅彪兒子近照曝光!過年和張一山聚餐,生活奢華難掩35歲滿頭白發

      傅彪兒子近照曝光!過年和張一山聚餐,生活奢華難掩35歲滿頭白發

      離離言幾許
      2026-02-24 10:04:27
      巴拿馬接管長江和記兩座港口,外交部:中方將堅決維護企業合法權益

      巴拿馬接管長江和記兩座港口,外交部:中方將堅決維護企業合法權益

      澎湃新聞
      2026-02-24 15:30:29
      73人死亡!美國、加拿大、英國、法國、俄羅斯,發布“安全警告”

      73人死亡!美國、加拿大、英國、法國、俄羅斯,發布“安全警告”

      每日經濟新聞
      2026-02-24 15:35:05
      機關事業單位“取消雙休”即將提上日程?2026年會落地嗎?

      機關事業單位“取消雙休”即將提上日程?2026年會落地嗎?

      復轉小能手
      2026-02-24 17:33:33
      李亞鵬大年初八請前岳母吃米線,3歲女兒開心,海哈金喜明媚漂亮

      李亞鵬大年初八請前岳母吃米線,3歲女兒開心,海哈金喜明媚漂亮

      離離言幾許
      2026-02-24 13:33:57
      2026-02-25 08:51:00
      碼農翻身 incentive-icons
      碼農翻身
      有趣且硬核的技術文章
      228文章數 628關注度
      往期回顧 全部

      科技要聞

      蘋果MacBook Pro要加觸摸屏了,還帶靈動島

      頭條要聞

      87歲上海老人和59歲保姆結婚 稱房子被賣遭多次打砸

      頭條要聞

      87歲上海老人和59歲保姆結婚 稱房子被賣遭多次打砸

      體育要聞

      蘇翊鳴總結米蘭征程:我仍是那個熱愛單板滑雪的少年

      娛樂要聞

      汪小菲官宣三胎出生:承諾會照顧好3個孩子

      財經要聞

      春節檔"開門黑" 電影票少賣了7000萬張

      汽車要聞

      入門即滿配 威蘭達AIR版上市 13.78萬元起

      態度原創

      房產
      旅游
      本地
      時尚
      公開課

      房產要聞

      330萬人涌入!春節全國樓市,第一個賣爆的區域出現了!

      旅游要聞

      新春走基層|暖陽照春城 煙火聚年味

      本地新聞

      春花齊放2026:《駿馬奔騰迎新歲》

      普通人穿衣別太老氣橫秋!這些穿搭給你靈感,保暖耐看兩不誤

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版