Facebook開源自用工具,可從GitHub獲取

HitTwice發表於2018-06-15

  眾所周知,谷歌對其資料中心一直實行著嚴格的保密,不過同屬著名科技公司的Facebook卻不是這樣。近日,這家社交媒體巨頭以開源的方式釋出了兩款重要工具——而這兩款工具曾只在其內部使用。

  其一是Katran,這個負載均衡器的作用是使該公司的資料中心不會過載,它是GNU通用公共許可證v2.0下的開放原始碼,可以從GitHub上獲得。除了Katran之外,該公司還提供了關於Zero Touch Provisioning tool的詳細資訊,該工具用於幫助工程師自動化其構建主幹網路時所需的大部分工作。

  這並不是Facebook第一次嘗試開源軟體。上個月,該公司開放了PyTorch的原始碼,這是一款用於人工智慧(AI)和機器學習專案的軟體。PyTorch是一個基於python的包,用於編寫張量計算和使用GPU加速的深度神經網路。

  這類軟體包是Facebook必須自主開發的,儘管市面上有很多現成的軟體產品,但並沒有哪一款是為一家擁有20億使用者的全球社交媒體公司開發的。

Facebook開源自用工具,可從GitHub獲取

  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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章