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

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

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

0
分享至

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

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

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

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


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

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

Instagram制定的架構(gòu)指導準則是:

1.保持簡單

2.不要重新發(fā)明輪子

3.盡可能使用經(jīng)過驗證的可靠技術(shù)

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

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

前端

Session:用戶打開了Instagram APP。

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

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


負載均衡

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

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

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


后端

Session:負載均衡會把請求轉(zhuǎn)發(fā)給應用服務器

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

Gunicorn做WSGI Server。


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

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

數(shù)據(jù)存儲

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

1.最新的Photo IDs

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

3.這些照片的用戶數(shù)據(jù)

Database: PostgreSQL

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

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

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

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

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

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

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

41位:記錄毫秒時間

13位:邏輯分片ID

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

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

照片的存儲:S3 和Cloudfront

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

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

緩存

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

他們選擇了Redis后發(fā)現(xiàn),為了保存這些映射,Redis需要21GB內(nèi)存,這已經(jīng)大于 Amazon EC2 上的 17GB 實例類型。

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

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


數(shù)據(jù)備份

無論是PostGreSQL還是Redis,都會使用Amazon EBS經(jīng)常性進行數(shù)據(jù)備用

通知和異步任務

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

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

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

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


監(jiān)控

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

Instagram 使用 Sentry這個開源的應用來實時監(jiān)控Python錯誤。

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

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

最終的架構(gòu)


反思

2009年,我們?nèi)齻€都在比較傳統(tǒng)的軟件公司,互聯(lián)網(wǎng)技術(shù)用得比較少。

像負載均衡、分庫分表、緩存也是剛剛開始接觸,還沒有在生產(chǎn)系統(tǒng)中大規(guī)模使用的經(jīng)驗。

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

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

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

當然,這僅僅說明我們?nèi)齻€比較菜,不是中國程序員不行,中國程序員在互聯(lián)網(wǎng)時代也創(chuàng)造了很多優(yōu)秀的產(chǎn)品,甚至殺到了美國大本營。

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

我們不是局內(nèi)人。

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

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

參考資料:

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

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

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

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

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.

相關(guān)推薦
熱點推薦
張馨予拖鞋暴走一萬步!何捷鏡頭下的她,汗?jié)駝⒑R裁勒ǎ^了!

張馨予拖鞋暴走一萬步!何捷鏡頭下的她,汗?jié)駝⒑R裁勒ǎ^了!

可樂談情感
2025-07-20 13:47:46
上海65歲退休教授娶35歲美女,次年生下龍鳳胎,卻因監(jiān)控釀成慘劇

上海65歲退休教授娶35歲美女,次年生下龍鳳胎,卻因監(jiān)控釀成慘劇

懸案解密檔案
2025-05-17 11:51:17
德轉(zhuǎn):凱爾特人花費173萬歐元引進日本前鋒山田新

德轉(zhuǎn):凱爾特人花費173萬歐元引進日本前鋒山田新

懂球帝
2025-07-21 15:28:09
短劇男神顏值榜Top10全揭秘!柯淳第十,這位“霸總專業(yè)戶”登頂

短劇男神顏值榜Top10全揭秘!柯淳第十,這位“霸總專業(yè)戶”登頂

草莓解說體育
2025-07-22 01:22:21
79歲才悔悟:千萬不要在親生兒女面前,講出這3句話,別揮霍親情

79歲才悔悟:千萬不要在親生兒女面前,講出這3句話,別揮霍親情

有故事的人
2025-07-05 06:29:11
告別了“梓涵”時代,新一批“奇葩”名字來了!老師表示我想靜靜

告別了“梓涵”時代,新一批“奇葩”名字來了!老師表示我想靜靜

諾言卿史錄
2025-06-23 07:25:04
南寧原配抓三后續(xù):男子已被開除,老板力挺原配,愿提供特殊扶持

南寧原配抓三后續(xù):男子已被開除,老板力挺原配,愿提供特殊扶持

好賢觀史記
2025-07-21 14:40:55
官宣:高校大規(guī)模裁員!

官宣:高校大規(guī)模裁員!

超級數(shù)學建模
2025-07-18 22:36:17
生涯砍下80+三雙有多難?NBA歷史僅8人,強如哈登只能墊底

生涯砍下80+三雙有多難?NBA歷史僅8人,強如哈登只能墊底

大衛(wèi)的籃球故事
2025-07-21 22:35:34
這一次,戴蛤蟆頭套賣不出貨的小楊哥,把人走茶涼體現(xiàn)得淋漓盡致

這一次,戴蛤蟆頭套賣不出貨的小楊哥,把人走茶涼體現(xiàn)得淋漓盡致

查爾菲的筆記
2025-06-24 21:15:53
42歲女星老公被曝“偷吃”!用約會軟件征友,“富商”身份成謎

42歲女星老公被曝“偷吃”!用約會軟件征友,“富商”身份成謎

藝能八卦局
2025-07-22 01:52:13
12年前我供女友讀研,她卻嫁給導師,12年后我結(jié)婚見家長時愣住了

12年前我供女友讀研,她卻嫁給導師,12年后我結(jié)婚見家長時愣住了

曉艾故事匯
2025-07-04 08:27:48
早上6點,鄭欽文最快復出時間曝光!央視記者確認了,趕得上美網(wǎng)

早上6點,鄭欽文最快復出時間曝光!央視記者確認了,趕得上美網(wǎng)

侃球熊弟
2025-07-21 23:40:04
朱媛媛剛走,曹穎也自曝患癌:沒多少時間了,害怕看不到兒子長大

朱媛媛剛走,曹穎也自曝患癌:沒多少時間了,害怕看不到兒子長大

子芫伴你成長
2025-05-22 22:06:13
不是迷信!常睡覺的房間,盡量別放這4樣東西,有的快拿出來!

不是迷信!常睡覺的房間,盡量別放這4樣東西,有的快拿出來!

農(nóng)夫也瘋狂
2025-07-09 22:10:34
葉柯復播了,自曝產(chǎn)女后與黃曉明分手,曬999朵玫瑰承認有新歡

葉柯復播了,自曝產(chǎn)女后與黃曉明分手,曬999朵玫瑰承認有新歡

凡知
2025-07-19 14:26:05
中國企業(yè)獲得澳大利亞達爾文港租約 外交部回應

中國企業(yè)獲得澳大利亞達爾文港租約 外交部回應

新京報
2025-07-21 16:00:05
32歲女子相親失敗被媽媽竹筍炒肉,網(wǎng)友:岳母住手,這身材不愁嫁

32歲女子相親失敗被媽媽竹筍炒肉,網(wǎng)友:岳母住手,這身材不愁嫁

辣媒專欄記錄
2025-07-20 10:20:03
KTV里的奇葩客人有多討厭?網(wǎng)友:把妹子們都惡心壞了!

KTV里的奇葩客人有多討厭?網(wǎng)友:把妹子們都惡心壞了!

特約前排觀眾
2025-07-15 05:51:44
2009年,帶母上學的女研究生在宿舍自縊:沒人甘愿被臍帶拴一輩子

2009年,帶母上學的女研究生在宿舍自縊:沒人甘愿被臍帶拴一輩子

柳絮憶史
2025-07-21 11:31:19
2025-07-22 02:55:00
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術(shù)文章
146文章數(shù) 515關(guān)注度
往期回顧 全部

科技要聞

劉強東闊氣出手!兩月投了4家具身智能公司

頭條要聞

男子為終身質(zhì)保花60萬買蔚來 1年跑17萬公里權(quán)益沒了

頭條要聞

男子為終身質(zhì)保花60萬買蔚來 1年跑17萬公里權(quán)益沒了

體育要聞

這四位大兄弟,你們真敢要3000萬吶

娛樂要聞

五哈全員為寶石老舅送祝福

財經(jīng)要聞

炒港美股"補稅潮"突襲?一文了解始末

汽車要聞

勞斯萊斯前設計師全新力作 榮威M7正式亮相

態(tài)度原創(chuàng)

旅游
房產(chǎn)
健康
教育
手機

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

房產(chǎn)要聞

歷時15年!廣州最難拆的一條村,也終于走到了句點

呼吸科專家破解呼吸道九大謠言!

教育要聞

清華直通!7名學霸被保送,一中、南外、金中河西的學霸上榜!

手機要聞

曝REDMI K90全系50MP長焦、定制新屏

無障礙瀏覽 進入關(guān)懷版 主站蜘蛛池模板: 涞水县| 东乡族自治县| 台东市| 和顺县| 桃江县| 佛冈县| 肇东市| 色达县| 东丽区| 闽清县| 八宿县| 西乡县| 伊通| 调兵山市| 广安市| 定边县| 凤冈县| 边坝县| 绵竹市| 普定县| 平塘县| 阿图什市| 桃园市| 莫力| 筠连县| 兖州市| 柳江县| 洛宁县| 白城市| 梁河县| 南川市| 临澧县| 海宁市| 陵水| 若尔盖县| 重庆市| 莱芜市| 兰西县| 错那县| 菏泽市| 张家川|