Facebook開源自用工具,可從GitHub獲取
眾所周知,谷歌對其資料中心一直實行著嚴格的保密,不過同屬著名科技公司的Facebook卻不是這樣。近日,這家社交媒體巨頭以開源的方式釋出了兩款重要工具——而這兩款工具曾只在其內部使用。
其一是Katran,這個負載均衡器的作用是使該公司的資料中心不會過載,它是GNU通用公共許可證v2.0下的開放原始碼,可以從GitHub上獲得。除了Katran之外,該公司還提供了關於Zero Touch Provisioning tool的詳細資訊,該工具用於幫助工程師自動化其構建主幹網路時所需的大部分工作。
這並不是Facebook第一次嘗試開源軟體。上個月,該公司開放了PyTorch的原始碼,這是一款用於人工智慧(AI)和機器學習專案的軟體。PyTorch是一個基於python的包,用於編寫張量計算和使用GPU加速的深度神經網路。
這類軟體包是Facebook必須自主開發的,儘管市面上有很多現成的軟體產品,但並沒有哪一款是為一家擁有20億使用者的全球社交媒體公司開發的。
Facebook負載均衡工具的詳細資訊
這則訊息來自Facebook的生產工程師Nikita Shirokov和軟體工程師Ranjeeth Dasineni的部落格。兩人表示,該公司此前曾開發過自己的負載平衡軟體,主要基於開源軟體。四年來,它提供了很好的服務,但隨著時間的流逝,也開始顯示出它的侷限性。
他們寫道,負載均衡器必須滿足四個標準:必須在普通的Linux伺服器上執行;與給定伺服器上的其他服務共存,消除對專用負載平衡伺服器的需求;允許low-disruption維護;儀器安裝和除錯簡單。
Shirokov和Dasineni說,他們的第一個軟體定義的負載均衡器稱為第四層負載均衡器(Layer 4 load balancer或簡稱L4LB),在與其他服務標準(特別是後端)共存時出現了不足。
“在第二個迭代中,我們利用了eXpress Data Path (XDP)框架和新的BPF虛擬機器(eBPF)來執行軟體負載均衡器,以及大量機器上的後端。”他們寫道。
Facebook的零接觸服務開通工具的詳細資訊
Facebook的零接觸服務開通(ZTP,Zero Touch Provisioning) 工具背後的細節也來自大約三週前Facebook的一些工程師寫的一篇博文。ZTP允許你自動地在你的網路中提供新的交換機和路由器,不需要人工干預。
對於像Facebook這樣規模的公司來說,必須建立自己的網路,這就是它需要一個ZTP工具的原因。與負載平衡一樣,該公司發現現有的ZTP工具不足以處理Facebook執行的業務規模。
“最終,這些挑戰促使Facebook的網路工程師去開發一種全新的網路部署工作流方法。”部落格作者說。
因此,它建立了一個名為Vending Machine(“自動售貨機”)的新框架,只是在這裡,輸入的是裝置角色、位置和平臺,而不是投進去硬幣然後得到一瓶飲料。ZTP仍在發展中,Facebook也在增加新的功能和功能。
Facebook尚未披露ZTP的許可證。就像Katran一樣,如果你決定使用這些工具,一切只能靠自己。一個“善良”的Facebook工程師也許會幫助回答一些使用中遇到的問題,但官方也許不會提供支援文件之類的。所以,筆者也很好奇誰會真正使用這些軟體,因為它們並不是中小型企業的“菜”。它看起來是為大型企業設計的,而且多數大型企業都有自己的平臺。當然,這個只是一面之詞,不是絕對的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2156239/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開源自定義表單系統為何獲得青睞?
- 5 個 iOS 和 Android 最佳的開源自動化工具iOSAndroid
- 為什麼程式設計師們願意在GitHub上開源自己的成果?程式設計師Github
- 從session中獲取資料Session
- 微信開發者工具整合GitHub,多人協調開發,上傳拉取等Github
- Android 從手機相簿獲取圖片 uri 路徑 從相機獲取照片Android
- NEW!獲取 ArcGIS Pro 與 ArcGIS Desktop 60天試用許可
- 通過gitHub獲取vlc-Android原始碼GithubAndroid原始碼
- 使用這個開源工具獲取本地天氣預報開源工具
- 谷歌VirusTotal開源元件曝高危漏洞,可獲取內網訪問許可權谷歌Rust元件內網訪問許可權
- 從工具到實踐:如何在GitHub上保障開源專案安全?Github
- 利用GitExtensions從GitHub推送或拉取程式碼Github
- Facebook暫停中國工具類應用廣告
- Python 系統資源資訊獲取工具,你用過沒?Python
- Facebook讓社交更安全 新工具可識別“馬甲”號
- Redis Cluster 獲取主從關係Redis
- SNMP系統資訊獲取工具onesixtyone
- ros|TF工具獲取IMU資料ROS
- [ATC]Facebook開源弱網模擬工具
- 黑科技工具,推薦兩款開源自動生成程式碼神器!
- css 獲取從第n個開始,之後的所有元素CSS
- win10管理員許可權怎麼獲取 win10管理員許可權獲取的方法Win10
- flutter 獲取應用快取以及清除快取Flutter快取
- Android手機獲取Root許可權Android
- [PolicyException: 無法獲取所需的許可權。]Exception
- Oracle 使用者許可權獲取ProcedureOracle
- 網際網路時代,如何透過Facebook獲取更多客戶?
- 讓應用程式從IE中獲取鍵入的網址 (轉)
- 實用小工具——快速獲取資料庫時間寫法資料庫
- opencv python 從攝像頭獲取視訊/從檔案獲取視訊 /儲存視訊OpenCVPython
- 為爬蟲獲取登入cookies: 使用browsercookie從瀏覽器獲取cookies爬蟲Cookie瀏覽器
- 可複用的快取元件快取元件
- 小米開源自研智慧SQL優化與改寫工具SOAR使用指南SQL優化
- 從Facebook看移動開發的發展移動開發
- 從Maven專案中獲取Jar包MavenJAR
- 從 falcon api 中獲取資料API
- Java從List中獲取隨機元素Java隨機
- electron + go 如何從sqlite獲取資料GoSQLite