據外媒報道,Facebook的數十億用戶可能沒注意到,但過去一年來,這家社交網絡已經徹底修改了它的底層軟件,這樣它就能更加迅速地推出新功能,節省工程師的時間。
這些大大小小的修改幫助這家網站得以順利運行,即使是在哈維颶風這樣的重大事件期間。此外,這些修改還幫助Facebook無需面臨太多技術難題便可推出直播和消息等新功能。
據負責Facebook大型軟件發布項目的查克·羅西(Chuck Rossi)稱,為了幫助這些項目,Facebook會使用通常只有小型創業公司才采用的軟件開發技術。羅西曾在谷歌(微博)、VMware和IBM度過多年的職業生涯,當他在近十年前加盟Facebook時,他見證了其口中的這幫“瘋孩子們”如何以他前所未見的方式打造Facebook網站,以及其相關軟件基礎設施。
與多數大公司漫長的軟件開發周期的不同,Facebook員工會迅速編寫出更小的功能塊,來適應該公司的增長。這種敏捷式開發或許很混亂,但卻能更快速地推出新功能。
“我有沒有介入進去,將我20年的經驗運用到這里,強迫他們以更廣為人知的行業標準來開發,還是選擇與這幫家伙設立的方式進行協調?我選擇了后者,”羅西說。
據羅西稱,Facebook開發者可以訪問公司完整的源代碼,并為各自的項目從中“擇優挑選”代碼。他們對軟件作出的改變在可在一天之內部署實施。
但隨著Facebook雇傭的程序員越來越多,他們希望修改代碼的次數也更頻繁,這些程序員常常遠在特拉維夫和都柏林的分公司。由于其工作的全球性,協調這些活動曾經很困難。
最終,工程師們開足馬力,在每天的三個固定時間段內對這些代碼進行了近1000處修改。除此之外,他們還每周進行一次重大更新。
這種在固定時間段內發布軟件的程序開始拖慢速度,這對一款持續擴張的服務來說可不是好事。最終,Facebook的軟件開發開始變得與老派的大公司類似,而不是像Facebook還是創業公司的時候。
從2016年4月開始,Facebook逐漸開始更頻繁地修改軟件。它們開發了一款名為Gatekeeper的系統,每隔幾個小時便推出數百次修改。
利用定制化的工具,Facebook程序員能夠自動在部署前檢查代碼中的漏洞。此外,這些工具還能自動延遲向整個服務推送修改,讓程序員有時間查看是否存在問題,如果有則點擊緊急按鈕,停止向用戶推送更新。
具體而言,當代碼編寫完畢后,系統只向2%的Facebook用戶推送。如果沒問題,再向所有的用戶推送。
羅西承認,Facebook的這一新系統并非革命性的方式,因為大部分增長較快的創業公司都有類似的系統。谷歌和亞馬遜很可能也有類似的系統。
盡管如此,Facebook從本質上修改其軟件開發的方式仍值得注意。羅西說,這一過程“有點孤獨,也有點嚇人”,因為Facebook是一家規模龐大的公司,它在一年之內對其軟件開發方式作出了非常大的改變,這在以前并沒有先例。他說,在今年4月的三天時間內,Facebook的整個軟件程序轉向了新的系統,沒有被任何人察覺。