中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python在Facebook的大量應(yīng)用

在Facebook,Python是被使用最多的語言之一,受歡迎程度排行第三,僅次于Hack(Facebook出品的PHP變種)和C++。這聽起來可能會(huì)讓很多Python迷驚訝。事實(shí)上,F(xiàn)acebook的工程師構(gòu)建并且維護(hù)著上千個(gè)Python庫和項(xiàng)目,這些Python庫和項(xiàng)目在Facebook的生產(chǎn)環(huán)境中隨處可見。

每天,都有數(shù)十甚至上百個(gè)Facebook工程師為Python工具或服務(wù)貢獻(xiàn)代碼。這些工具或服務(wù)被用來做很多事情,比如二進(jìn)制分發(fā),硬件鏡像,操作自動(dòng)化,和基礎(chǔ)設(shè)施管理。

從數(shù)量上看Python在Facebook的地位

  • 21%的Facebook架構(gòu)代碼

  • 百萬行代碼,上千個(gè)庫和二進(jìn)制文件

  • 2016年至今,平均每月5000個(gè)提交,1000個(gè)提交者。

  • 到2016年5月,5%的Python代碼使用Python3

Python在運(yùn)維領(lǐng)域的應(yīng)用

Facebook的基礎(chǔ)設(shè)施團(tuán)隊(duì)大量使用Python,在生產(chǎn)環(huán)境中Python可以說無處不在。各個(gè)團(tuán)隊(duì)通常來說都會(huì)為他們自己的服務(wù)維護(hù)一個(gè)Python客戶端(一般是thrift),這個(gè)客戶端可以為其他團(tuán)隊(duì)提供簡(jiǎn)單可依賴的接口,以方便其他團(tuán)隊(duì)可以隨時(shí)調(diào)用他們的服務(wù)。

有了這些庫,產(chǎn)品工程師可以少寫大量的代碼,也減少了測(cè)試和維護(hù)的成本。使他們能夠快速地將自己的服務(wù)接入到Facebook的基礎(chǔ)架構(gòu)中,同時(shí)允許架構(gòu)有效可靠地?cái)U(kuò)展。

基礎(chǔ)設(shè)施管理

產(chǎn)品工程師擁有大多數(shù)的Python軟件,并用這些軟件來管理Facebook的基礎(chǔ)設(shè)施。即便其中的軟件不是100%由Python編寫,至少它也覆蓋了我們的硬件設(shè)施的整個(gè)生命周期,從硬件進(jìn)入我們的數(shù)據(jù)中心到它報(bào)廢的時(shí)刻。

Python軟件驅(qū)動(dòng)了這些服務(wù):

  • 網(wǎng)絡(luò)切換設(shè)置和鏡像(TORconfig)

  • 白盒切換CLI(FBOSS)

  • 核心服務(wù)(DNS, Chef, etc.),通過Kobold,一個(gè)系統(tǒng)啟動(dòng)的可插拔系統(tǒng)

  • 服務(wù)器硬件錯(cuò)誤和服務(wù)失敗的自動(dòng)修復(fù)(FBAR)

  • 調(diào)度和自動(dòng)化執(zhí)行維護(hù)工作(Dapper)

  • 服務(wù)器鏡像,老化測(cè)試和修復(fù)管理(Cyborg)

  • 錯(cuò)誤檢測(cè)和診斷(machinechecker)

平臺(tái)服務(wù)

隨著我們的基礎(chǔ)設(shè)施規(guī)模化,一些單片服務(wù)被拆分成多個(gè)組件,過程中造就了大量各種用途的Python服務(wù)。

今天,我們大量的基礎(chǔ)設(shè)施管理工具都構(gòu)建在一個(gè)公用的平臺(tái)上,這個(gè)平臺(tái)由4個(gè)部分組成:

  • Job Engine:一個(gè)可規(guī)?;娜蝿?wù)調(diào)度和執(zhí)行框架,任何團(tuán)隊(duì)都可以基于自己的目的擴(kuò)展它,現(xiàn)在每個(gè)月運(yùn)行上百萬個(gè)任務(wù)。

  • fbpkg:一個(gè)基于BitTorrent的數(shù)據(jù)分發(fā)服務(wù),用來傳大文件和軟件包,包括facebook.com的代碼。

  • FBTFTP:我們的高性能TFTP實(shí)現(xiàn),支持IPv6,每一次服務(wù)器被鏡像都會(huì)使用到。

  • Osmosis:一個(gè)通用的工作流定義和執(zhí)行工具,很多團(tuán)隊(duì)都在使用。支持了我們從辦公室環(huán)境到數(shù)據(jù)中心環(huán)境的初始化,到操作系統(tǒng)和內(nèi)核的升級(jí)。

服務(wù)配置管理

我們主機(jī)級(jí)別的配置管理是用Chef完成的。我們服務(wù)級(jí)別的配置管理,是通過一個(gè)Facebook內(nèi)部的項(xiàng)目,叫Configerator,完成的。工程師們通過Python代碼生成配置對(duì)象,這些配置存儲(chǔ)在JSON文件中,任何的服務(wù)都能夠讀取。驗(yàn)證器,也是Python寫的,用來驗(yàn)證這些配置的正確性。Python還是項(xiàng)目Tupperware的配置語言,這個(gè)項(xiàng)目是Facebook的容器部署系統(tǒng)。

使用Python讓我們能夠動(dòng)態(tài)生成配置對(duì)象,而不用創(chuàng)建、維護(hù)、學(xué)習(xí)使用復(fù)雜的模板系統(tǒng)。

運(yùn)維效率

很多團(tuán)隊(duì)都在已經(jīng)存在的庫和系統(tǒng)上做定制,來提升自己的運(yùn)維效率或者滿足Facebook的通用需求。

我們的MySQL基礎(chǔ)設(shè)施團(tuán)隊(duì)創(chuàng)建了MySQL Pool Scanner,能夠像一個(gè)DBA一樣自動(dòng)保持我們的MySQL基礎(chǔ)設(shè)施的健康。

我們廣泛部署的二進(jìn)制文件(服務(wù)、代理、CLI工具等)使用slowroll orchestrator進(jìn)行傳輸,它是一個(gè)構(gòu)建在Job Engine基礎(chǔ)上的Python工具,它允許分段部署并且會(huì)自動(dòng)做安全檢查。

Python3部署

Facebook的規(guī)模使得Python的效率被使用到了極致,我們的代碼里使用了大量的庫(Twisted, Gevent, futures, AsyncIO, 和很多其他的)。很多的遷移項(xiàng)目或者新項(xiàng)目都使用Python3,除非有不得已的理由必須使用Python2。目前,我們運(yùn)行的服務(wù)中5%的代碼是用Python3編寫的。

下面這些兼容Python3的項(xiàng)目已經(jīng)開源了:

  • FBOSS CLI:一個(gè)Python3.5編寫的終端工具,用做主機(jī)切換的代理。

  • Facebook Python Ads API:兼容Python3

  • FBTFTP: Python3寫的動(dòng)態(tài)TFTP服務(wù)框架

  • PYAIB:Python異步IrcBot框架

在擴(kuò)真我們的Python3代碼的時(shí)候有很多令人興奮的事情要做。我們?cè)絹碓揭蕾囉贏syncIO,這個(gè)Python3.4加入的特性。從Python2遷移而來我們見證了巨大的性能提升。我們希望貢獻(xiàn)更多提高性能的特性和修復(fù)給Python社區(qū)。

了解野狗,請(qǐng)點(diǎn)擊閱讀原文

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
誰是2020年最強(qiáng)Python庫?年度Top10出爐
try-一個(gè)易于使用的cli工具,用于試用Python軟件包
llama2.mojo比llama2.c快20%,最年輕的語言Mojo驚艷開發(fā)者社區(qū)
LLVM&Swift之父宣布全新AI開發(fā)編程語言'Mojo',兼容Python,且快35000倍
DevOps
我們?yōu)槭裁从?Go 編寫機(jī)器學(xué)習(xí)架構(gòu),卻不用 Python?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服