国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

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

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

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

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

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

圖片圖片

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

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

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

1.保持簡單

2.不要重新發明輪子

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

所以早期的Instagram跑在云上,使用EC2和Ubuntu Linux 11.04(“Natty Narwhal”)。

接下來,站在一個用戶會話(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

責任編輯:武曉燕 來源: 碼農翻身
相關推薦

2011-12-20 10:41:36

程序員

2022-02-24 17:32:38

程序員互聯網公司離職率

2013-04-10 09:35:22

程序員

2018-01-26 14:22:31

程序員發展連接

2011-09-30 09:29:19

TechCruch創業2010年

2010-01-19 09:14:46

.NET編碼習慣

2022-08-08 11:13:35

API接口前端

2012-03-06 09:22:46

程序員

2018-05-02 12:58:19

2024-06-03 09:04:30

2019-10-23 08:54:38

程序員CPUALU

2015-04-08 15:38:17

程序員程序員差距

2012-05-10 13:31:48

程序員開發者

2018-04-27 14:25:27

程序員專業展現

2021-07-05 07:28:14

程序員菜鳥技術

2019-01-02 16:31:33

程序員技術互聯網

2020-10-05 21:13:37

程序員技能開發者

2022-09-14 08:57:24

JavaNASA程序員

2020-06-28 14:36:27

程序員技能開發者

2024-10-30 09:38:34

點贊
收藏

51CTO技術棧公眾號

亚洲国产国产| 69久久久久久| 麻豆传媒在线完整视频| 一区二区三区欧洲区| 久久国产精品99久久人人澡| 亚洲人成在线电影| 韩国一区二区av| www.久久热.com| 麻豆精品一二三| 国产午夜精品全部视频播放| 国产一级做a爰片久久毛片男| 经典三级一区二区| 亚洲一区免费视频| 久久伊人一区二区| 亚洲国产日韩欧美在线| 亚洲精品久久久一区二区三区| www精品久久| 91精品国产调教在线观看| 亚洲欧美自拍一区| 亚洲伦理在线| 2019国产精品| 日韩一级特黄毛片| 日韩欧美视频在线播放| 欧美一区二区在线视频| 国产福利片在线观看| 亚洲欧美日韩国产手机在线 | 国产一区网站| 亚洲精品国产精品国自产在线 | 中文字幕视频免费在线观看| 久久国产高清| 99精品在线直播| 牛牛影视一区二区三区免费看| 亚洲国产高清不卡| 一区二区精品在线观看| 亚洲先锋成人| 精品在线一区| 欧美国产精品| 亚洲精品日产aⅴ| 免费视频一区二区| 黄黄视频在线观看| 日韩精品高清不卡| 亚州精品天堂中文字幕| 老司机成人在线| 欧洲美女7788成人免费视频| 色综合.com| 日韩国产精品一区| 国产福利在线免费观看| 精品成人一区二区三区四区| 成人av免费电影网站| 精品国产凹凸成av人网站| jizz久久久久久| 色94色欧美sute亚洲线路一久| 亚洲精品国产精品国自产在线| 色综合视频一区二区三区日韩| 国产精品美女在线观看| 国产在线视频一区二区三区| 诱受h嗯啊巨肉高潮| 国产香蕉精品视频一区二区三区| 日韩国产欧美一区二区| 成人免费性视频| 亚洲精品久久久久久久久久久久久| 成人激情开心网| 欧美综合在线观看视频| 亚洲电影中文字幕| 久久精品毛片| 中文字幕在线综合| 久久久久久99久久久精品网站| 国产精品日韩一区二区| 五月婷婷六月综合| 国产伦精品一区二区三毛| 国产剧情在线观看一区| xxxx一级片| 亚洲6080在线| 欧美高清另类hdvideosexjaⅴ | 欧美xxxx做受欧美| 国产精品一区免费视频| 国产一区二区三区精彩视频| 亚洲夂夂婷婷色拍ww47| 丰满的护士2在线观看高清| 国产剧情日韩欧美| 99久久精品一区二区| 免费成人av电影| 欧美另类暴力丝袜| 91视频一区二区| 日本va中文字幕| 欧美剧情片在线观看| 国产高清中文字幕在线| 亚洲伊人久久大香线蕉av| 国产激情精品久久久第一区二区| 亚洲第一成年免费网站| 45www国产精品网站| 2022国产精品视频| 成人在线视频免费看| 91精品无人成人www| 亚洲第一福利网站| 综合在线视频| 天天综合天天操| 欧美性少妇18aaaa视频| 视频二区在线| 精品国偷自产在线| 理论电影国产精品| 91精品专区| 欧美福利一区二区三区| 欧美激情视频一区二区三区不卡| 粉嫩欧美一区二区三区高清影视| 国精产品一区一区三区mba下载| 国内一区二区在线视频观看 | 亚洲成色777777女色窝| 欧美电影三区| 精品国产白色丝袜高跟鞋| 国产精品香蕉视屏| 亚洲国产精品视频在线观看| 美女国产一区二区| aa亚洲一区一区三区| 丰乳肥臀在线| 久久久久久www| 麻豆成人在线看| 99久久国产免费看| 日韩a一区二区| 中文字幕免费高清电视剧网站在线观看 | 中国大陆高清aⅴ毛片| 国产经品一区二区| 国内精品久久久久影院一蜜桃| 欧美网站免费观看| 欧美极品在线播放| 亚洲夂夂婷婷色拍ww47| 日本v片在线高清不卡在线观看| 色婷婷成人网| 在线观看视频你懂的| 日韩电影大全在线观看| 国产精品香蕉在线观看| 新67194成人永久网站| 国产欧美在线观看免费| 色婷五月综激情亚洲综合| 色视频一区二区三区| 欧美剧在线观看| 欧美精品一区二区在线播放| 欧美日韩国产丝袜另类| 日韩欧美综合在线视频| 国产成人免费视频精品含羞草妖精| 围产精品久久久久久久| 伊人久久高清| 日本天堂在线观看| 亚洲社区在线| 女人高潮特级毛片| 免费在线观看的毛片| 色综合影院在线观看| 国产日韩精品综合网站| 国内精品一区二区三区四区| 亚洲成人a**站| 亚洲精品国产精品自产a区红杏吧| 久久久精品一区| 在线91免费看| 狠狠色狠狠色综合日日小说| 久久久久久亚洲综合| 久久精品国产亚洲一区二区三区| 海角社区69精品视频| 国产日韩1区| 在线视频精品| 国产精品va| 国产日本精品| 久久久精品性| 国产欧美短视频| 国产精品久久久久一区二区三区厕所| 性欧美69xoxoxoxo| 精品亚洲欧美一区| 日本欧洲一区二区| 蜜臀av一区二区在线免费观看| 国产精品亚洲综合色区韩国| 日韩av一区二区三区四区| 久久久久青草大香线综合精品| 国产精一品亚洲二区在线视频| 蜜桃一区二区三区在线| 久久99精品久久久久久国产越南 | 国产69精品久久久| 欧美在线一区二区视频| 日韩美女写真福利在线观看| 91网站免费看| 性刺激综合网| 成人午夜视频在线观看免费| 成年人视频网站免费观看| 91视频免费版污| 中文视频在线| 巨胸喷奶水www久久久免费动漫| 欧美激情20| 国产精品第12页| 亚洲一区二区福利| 国产亚洲精品久久久| 亚洲国产精品yw在线观看| 亚洲精品一区在线观看| 亚洲精品v欧美精品v日韩精品| 在线精品91av| 久久69精品久久久久久久电影好 | blacked蜜桃精品一区| 国产色综合网| 欧美日韩午夜剧场| 99久久精品免费看国产一区二区三区| 亚洲最新免费视频| 一级毛片国产| 日本乱码一区二区三区不卡|