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