Instagram遷移到Python 的原因和好處
本文講述了參與到Instagram遷移工作的兩位工程師,Hui Ding和Lisa Guo,他們是如何看待Instagram遷移到Python 3的,以及遷移的原因和好處。以下為譯文。
現(xiàn)在每天在Instagram平臺上分享的照片和視頻的數量已經超過9500萬。照片中心社交媒體平臺擁有6億多注冊用戶—其中活躍用戶每天大概有4億人。談談規(guī)模經營:當規(guī)模達到了大多數公司做夢都不敢想的階段以后,Instagram卻選擇了放棄。
盡管如此,令人印象更深刻的是Instagram在后臺是通過Python(當然Django也提供了一點幫助)才能為如此大的訪問量提供可靠而穩(wěn)定的響應。沒錯,就是Python-就是那門非常容易學習,但是通用性卻非常高的編程語言。業(yè)內所有人都認為:“是的,Python在很多方面都很出色,但它沒辦法做到可擴展?!?/p>
每天四億用戶。Instagram不僅成為了世界上最大的Python用戶,而且該公司最近還將其順利地轉移到Python 3,用戶絲毫沒有體驗到有任何中斷。Instagram工程師Hui Ding和Lisa Guo最近接受了The New Stack的訪問,他們分享了他們對Python的熱愛,并描述了Python 3的遷移體驗。
首先請問,Instagram最初為什么會選擇使用Python呢?
Hui Ding:我是在Instagram被收購以后,作為第一批進入到Instagram的一員[Instagram成立于2010年,由Facebook在2012年收購]。從那時起,我們從原本的6名工程師變成了300名。盡管最初的時候我并不是其中一員,但是在我們還是一個很小的團隊的初期,我和Instagram的聯(lián)合創(chuàng)始人]Mike Krieger密切合作,所以我有很多關于為什么選擇Python的歷史背景。
其原因與Instagram的“先做簡單事情”的工程座右銘是一致的:對工程師來說,Python是非常容易掌握使用的——它很容易上手,也很容易獲得產品,讓團隊專注于面向用戶的功能。Python簡潔干凈,有利于實用主義。這是一項已被證實的技術。最后,Python是一門非常流行的語言,這使得工程團隊的發(fā)展變得更加容易。
是什么問題促使Instagram開始考慮了新的堆棧?
Ding:隨著我們的發(fā)展,我們發(fā)現(xiàn)Python并不是最快的語言,而且越來越明顯的。AWS也越來越傾向于通過部署更多的服務器來解決速度問題。但是有一點是遞減的——在一定程度上,性能回歸比用戶增長有更多的資源。從現(xiàn)在開始三到五年內,我們估計有10億用戶會加入到社區(qū)中,所以是時候開始考慮其他方案了。我們的第一個問題是需要證明切換以后要有足夠高的回報。
Instagram用戶的增長正在穩(wěn)步上升——但增速并不像服務器增長那么快
Lisa Guo:我們面臨著一個非常大的挑戰(zhàn):在服務器上增加網絡的I/O活動。因此,我們需要一種更并行的方式來處理用戶請求。實際上,PHP和Python是Facebook最受支持的生態(tài)系統(tǒng),其他任何平臺既需要學習曲線,又需要對工程師進行大量新知識的培訓。
所以我們做了一個公共投票活動:“與使用PHP進行開發(fā)相比,F(xiàn)acebook更應該使用哪一門語言進行服務器端的開發(fā)?”
Ding:如果我們看到了性能得到大幅度的提升的話,那么我們就會改變,但最終這些成果都沒有展示出來。
所以這些數字并不是很有說服力,我們已經有了很多工具,對Python也投入了很多。使用python/django棧,我們的用戶量也達到了幾億,所以我們決定繼續(xù)使用Python。同樣重要的是,我們的工程師非常喜歡Python。這也是他們想要為我們工作的原因。
這就是為什么團隊選擇python 3的原因嗎?
Ding:當時的決定是,我們是否投入到一個相對成熟的版本,但是卻不會棄用Python的—或者選擇Python的下一個版本?因為下一個版本得到了越來越多的社區(qū)支持。這是有道理的,如果我們要在接下來的十年里繼續(xù)使用Python,我們應該使用Python的最新版本。在我們決定使用Python 3之后不久,我們宣布在2020年以后將不再支持v2.7。
性能速度不再是主要的問題,取而代之的是何時能推向市場。 – Hui Ding
Guo:使用Python 3有三個主要動機:首先,Python不是那種傳統(tǒng)意義上的語言,所以當我們開始編寫新代碼時,開發(fā)過程中會出現(xiàn)很多沖突。所以對我們來說,一個很大的動機就是Python宣布了從v3.5版本開始支持typing-我們的開發(fā)者對這個消息感到非常興奮。
其次,網絡問題日益成為瓶頸。
第三,Python的速度并不快,但是每一個新版本的運行速度都更快——v2.7,每個人都努力使它運行的更快。隨著新版本的發(fā)布,我們會得到Python社區(qū)的支持,我們也會對社區(qū)做出貢獻。
那遷移的過程是怎樣的?
Guo:總的來說,花了大約十個月,都是處于不同的階段。
首先,團隊修改了大量的代碼。這花了2到3個月的時間,包括將不兼容的第三方包替換為支持Python 3的包,工作規(guī)則是“沒有Python 3,沒有新的包”,還刪除了未使用的包。
然后進行單元測試,花了兩個月的時間。然后,我們在四個多月的時間里進行了緩慢但穩(wěn)定的新版本的推出。到2017年2月初,我們已經完全運行了Python 3。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
Instagram遷移到Python 的原因和好處下載
相關電子資料下載
- 如何使用Rust創(chuàng)建一個基于ChatGPT的RAG助手 43
- Rust語言為什么這么卷? 21
- HPC與AI:完美融合 302
- 全國產EtherCAT運動控制邊緣控制器(五):IO配置與回零運動的Python+Qt開發(fā) 109
- 開源LLEMMA發(fā)布:超越未公開的頂尖模型,可直接應用于工具和定理證明 84
- SymPy:四行代碼秒解微積分 84
- Python 中的5種隱藏技巧 105
- Ciphey 的實戰(zhàn)使用教程 83
- 怎么用Python構建一個自動發(fā)送郵件的腳本 86
- 如何通過阿里云日志服務搭建一套通過Python上傳日志的監(jiān)控服務 104