“一個微軟”中的“一個”是微軟這些日子以來最喜歡的數字。
我們以前聽說過One Strategy、One Windows、One Commercial Partner。公司內部還有一個名為“One Engineering System(1ES)”的計劃,旨在統一和改進微軟自身的工程流程和工具,并盡可能向客戶發布這些工具。
上周末,微軟的官員們宣布提供在1ES下創建的工具之一。這個被稱為Git Virtual File System (GVFS)的工具旨在幫助微軟自己的產品團隊將Git客戶端進行極大規模的回收。
微軟開放了GVFS的客戶端的源代碼(仍然依賴于預發布文件系統驅動程序),因此目前不推薦將其用于生產環境中使用。然而,Windows團隊正在使用GVFS來幫助處理所有其各種變體(Windows OneCore、桌面電腦版本、IoT、HoloLens、Xbox等)的Windows代碼庫,它包含350萬個文件,大小超過270 GB。
作為1ES的一部分,微軟選擇使用Git進行源代碼管理,而不是使用自己的Source Depot源代碼控制系統或TFS及其Team Foundation Version Control系統,企業副總裁Brian Harry在2月3日的發表的一篇關于1ES和GVFS的博客文章中解釋說,這是因為該公司最大的一些團隊(如Windows和Office團隊)自己從來沒有使用過這些系統。
雖然微軟在從工作項跟蹤、版本控制到構建在內的一切都使用自己的TFS,但它也使用其他微軟開發的和第三方工具來創建自己的產品和服務。
Harry表示,微軟創造1ES是 “在地上下一些有趣的賭注”。由于云計算是未來,微軟下注Team Services能成為骨干。
Harry表示,“在這一點上,微軟幾乎每一個團隊都進行了這樣的轉變,我們所有的工程工作都在Team Services中進行管理。”
他表示,Team Services構建服務是首選的構建編排系統,Team Services Build管理是UI。微軟還建立了一個新的“制造引擎”,它還沒有提供給公司外部,它支持“超高規模和細度的緩存、并行和增量”。他說這個引擎已經導致了一些“原本需要幾個小時的構建工作有時候會下降到只需要幾分鐘就可以完成”。
Harry在這里描述的是CloudBuild。CloudBuild是微軟的分布式和緩存構建服務(詳細信息,請參閱微軟2016年的這篇研究論文)。
CloudBuild旨在超越當前構建系統,如Make、Maven、Graddle和MSBuild,它們在單個機器上執行,通常是在開發人員的桌面電腦或筆記本電腦上。而CloudBuild允許開發人員在代碼庫上并行工作。
CloudBuild——微軟最初創建的目的是為了實現Bing持續交付——是建立在微軟內部的Autopilot集群管理系統之上的。 CloudBuild目前在幾個公司數據中心中運行,并使用了數千臺服務器。微軟的研究報告透露,每天使用CloudBuild發布的版本大約有20,000個。
微軟還為Windows團隊創建了一種代號為Concord的新構建語言。2016年的IEEE / ACM的會議文件表示, Concord“保證可靠的構建,沒有過度構建,并允許有效的分配”。微軟官員們表示,“采用Concord已經帶來了巨大的性能改進,我們已經看到Windows構建的速度提高了100倍。”但是聽起來好像微軟并不是100%地確定到底是演進(CloudBuild)還是革命(Concord)才是最好的戰略。
Harry表示,有了1ES,微軟在工具方面的目標是“使用我們交付的并交付我們使用的”。 Harry表示,“事情并非100%如此,它不總是完全同步,但這是一個方向——默認的假設——除非有一個很好的理由需要采用別的方式。”