图片
平常我們所在的網路環境其實已經算相當良好,大家很少去處理各種網路狀況所造成的意外情形, 但是當你要把服務推廣到如非洲、印度、東南亞時,你其實不得不注意的是,在這些地區中目前還有很多網路基礎建設不完整,面對這樣的情況你更多時候需要處理有關封包毀損、排序、延遲、頻寬限制(2G、3G)等等狀況, Facebook先前曾推出了2G版Facebook,現在他們也把同樣測試網路連線狀況的環境技術釋放出來給大家喔!!
>>點我到Facebook Augmented Traffic Control Github<<Facebook在這禮拜一的時候宣布把他們內部用來模擬各種網路流量狀況的工具「增益流量控制技術」(Augmented Traffic Control, ATC)提供在Github官方網站上,希望能為開放原始碼的世界做更多貢獻。
图片
>>點我到Facebook 官方說明ATC技術<<根據官方發表,這項技術主要可以讓開發者可以控制網路裝置的連線狀況,主要支援以下四種網路數據:
  • 頻寬
  • 網路延遲
  • 封包遺失
  • 封包毀損
  • 封包重排序
图片
ATC 這項技術主要也是由一系列的應用程式所組合而成,他的核心是由一個名為atcd的daemon所建構, 負責處理有關形塑網路性質的核心功能,同時他也有提供一個名為Thrift的介面可以讓大家與他互動組成份子內也包含一個django的REST API (django-atc-api),這部分則是被用來提供讓大家更容易做出網頁的應用程式, 可以使網頁能夠與atcd做互動應用,在原始碼中也有提供一個簡易的網頁頁面 django-atc-demo-ui 讓大家可以簡單架設起來理解。
图片
根據Facebook的John Morrow所說,Facebook內部在測試的時候都是在非常良好的內部網路進行測試, 但是因為多數使用者的外部環境網路速度較慢,特別是在某些國家中的網路環境處在極度不可靠的狀況下, 為了能讓大家接觸到這些服務,必須要能在反應使用者所在網路狀況的環境下做測試。這套架構始源於2013年2月的時候由Facebook內部的駭客松活動,由他們內部員工率先架起了可以模擬2G連線的網路狀況後, 在該年5月時則把他拓展成可以模擬各式各樣網路狀況的WiFi環境,最後就導入到整個Facebook的網路環境內做測試。 透過這些方法你能讓工程師在開發時就注意到網路環境的問題,也能讓你的團隊能夠減少A/B Test的測試等等。 Facebook提到,由於這些技術是奠基於其他人所提供的開放原始碼技術所建設而成,他們也希望能讓大家一起來改善這項技術才決定對外開放這套技術。 有需求要研究不同網路狀況下的使用情境的話,趕快來試用看看ATC吧!