<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.

      相關推薦
      熱點推薦
      白蟻入侵毀家,業主拒交7000多元物業費被起訴,法院判了

      白蟻入侵毀家,業主拒交7000多元物業費被起訴,法院判了

      環球網資訊
      2026-01-31 15:35:10
      愛潑斯坦檔案終極發布:比爾·蓋茨疑和俄羅斯女孩發生關系,感染性病

      愛潑斯坦檔案終極發布:比爾·蓋茨疑和俄羅斯女孩發生關系,感染性病

      大洛杉磯LA
      2026-01-31 06:55:21
      全球唯一一只不屬于中國的熊貓,叫欣欣,吃不到竹子吃的是仙人掌

      全球唯一一只不屬于中國的熊貓,叫欣欣,吃不到竹子吃的是仙人掌

      西樓知趣雜談
      2026-01-31 13:18:43
      黑云壓城城欲摧!美伊戰爭開始讀秒,美國“不死鳳凰”登場

      黑云壓城城欲摧!美伊戰爭開始讀秒,美國“不死鳳凰”登場

      史政先鋒
      2026-01-31 16:27:48
      火車新規2026正式執行!禁帶品、實名制升級,這些坑千萬別踩

      火車新規2026正式執行!禁帶品、實名制升級,這些坑千萬別踩

      復轉這些年
      2026-01-30 23:33:48
      終于對李嘉誠動手了

      終于對李嘉誠動手了

      藍鉆故事
      2026-01-31 00:07:16
      烏克蘭捐款平臺收到大量來自中國民間機構和個人的捐款

      烏克蘭捐款平臺收到大量來自中國民間機構和個人的捐款

      深度報
      2026-01-30 19:27:35
      發一張教室女生走光圖!

      發一張教室女生走光圖!

      果粉之家
      2026-01-30 12:23:03
      特朗普再發通牒,普京見了伊朗高官 伊朗:已掌握敵方作戰計劃

      特朗普再發通牒,普京見了伊朗高官 伊朗:已掌握敵方作戰計劃

      環球網資訊
      2026-01-31 14:12:53
      深圳羅湖區:水貝黃金平臺杰我睿公司已啟動兌付

      深圳羅湖區:水貝黃金平臺杰我睿公司已啟動兌付

      界面新聞
      2026-01-31 17:24:18
      日本山林發現的中國籍女性推測已死亡數周:外褲掉落附近,多處外傷,警方初步認定系遭謀殺

      日本山林發現的中國籍女性推測已死亡數周:外褲掉落附近,多處外傷,警方初步認定系遭謀殺

      紅星新聞
      2026-01-31 16:23:50
      劉強東這次送年貨沒發錢,71歲大爺被問是否失望,老人回答太戳心

      劉強東這次送年貨沒發錢,71歲大爺被問是否失望,老人回答太戳心

      以茶帶書
      2026-01-31 16:06:14
      爸媽!真的不要再往馬桶里倒水了!

      爸媽!真的不要再往馬桶里倒水了!

      果殼
      2026-01-31 12:15:41
      美司法部公布文件爆“馬斯克曾協調個人日程試圖前往愛潑斯坦小島”,馬斯克最新回應

      美司法部公布文件爆“馬斯克曾協調個人日程試圖前往愛潑斯坦小島”,馬斯克最新回應

      環球網資訊
      2026-01-31 18:03:42
      全面反華?澳洲通告全球:達爾文港收歸國有,中方打響立威第一槍

      全面反華?澳洲通告全球:達爾文港收歸國有,中方打響立威第一槍

      不似少年游
      2026-01-31 07:06:37
      英高官硬氣了,“特朗普錯了,英中關系搞不好才是真瘋了”

      英高官硬氣了,“特朗普錯了,英中關系搞不好才是真瘋了”

      觀察者網
      2026-01-30 23:25:07
      相親點餐8000元男子吃完跑路,女子多次聯系無果,讓婚介公司買單

      相親點餐8000元男子吃完跑路,女子多次聯系無果,讓婚介公司買單

      漢史趣聞
      2026-01-30 14:31:58
      著名小兒神經學專家汪梅先逝世,享年101歲

      著名小兒神經學專家汪梅先逝世,享年101歲

      澎湃新聞
      2026-01-31 13:00:04
      1931年,徐向前從尸體堆里救起一人,誰知日后他竟成為了開國中將

      1931年,徐向前從尸體堆里救起一人,誰知日后他竟成為了開國中將

      茅舍品史
      2026-01-30 17:40:06
      復出時間再度推遲!鄭欽文退出阿布扎比站,退賽原因暫不明

      復出時間再度推遲!鄭欽文退出阿布扎比站,退賽原因暫不明

      全景體育V
      2026-01-31 18:52:32
      2026-01-31 19:39:00
      碼農翻身 incentive-icons
      碼農翻身
      有趣且硬核的技術文章
      224文章數 620關注度
      往期回顧 全部

      科技要聞

      SpaceX申請部署百萬衛星 打造太空數據中心

      頭條要聞

      銀行員工將11位儲戶220萬存款轉走 儲戶起訴銀行敗訴

      頭條要聞

      銀行員工將11位儲戶220萬存款轉走 儲戶起訴銀行敗訴

      體育要聞

      新時代得分王!東皇37+三雙刷7紀錄怒吼釋放

      娛樂要聞

      李維嘉、吳昕、汪涵現身魏文彬追悼會

      財經要聞

      白銀,暴跌!黃金,40年最大跌幅!

      汽車要聞

      新款賓利歐陸GT S/GTC S官圖發布 V8混動加持

      態度原創

      健康
      藝術
      本地
      房產
      公開課

      耳石癥分類型,癥狀大不同

      藝術要聞

      張立平:近年來風景與靜物油畫寫生

      本地新聞

      云游中國|撥開云霧,巫山每幀都是航拍大片

      房產要聞

      藏不住的小城大事,海澄新城執掌自貿港風口,進階兌現美好生活新篇

      公開課

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

      無障礙瀏覽 進入關懷版