Microsoft nutzt die open-source-software zum erstellen von Windows

0
239

Microsoft hat nicht nur ein begeisterter open-source-Benutzer; das Unternehmen ist jetzt mit der Git version control system zum erstellen von Windows selbst. Die einst Paradebeispiel für proprietäre software-Entwicklung ist jetzt unter Berufung auf open source zu schaffen, Ihre Marke Betriebssystem. Wer hätte es gedacht?

Eigentlich ist Sie haben könnten, wenn Sie schon die Aufmerksamkeit. Zurück im Jahr 2013, kündigte Microsoft seine roadmap für das hinzufügen von Unterstützung für Git, um Ihre Visual Studio-tool-suite und Team Foundation app-lifecycle-management-Technologien. Später im selben Jahr, Microsoft Technical Fellow und TFS-Chef Brian Harry angekündigt, Microsoft wäre backing Git als seine verteiltes source-code-control-Plattform.

Nicht jeder in Microsoft mochte diese Idee, aber als Harry gebloggt in der Zeit, “je mehr wir es betrachteten, desto mehr sah es aus wie das richtige zu tun”.

Als die Jahre vergingen, Microsoft sogar seinen eigenen bedeutenden open-source-Beiträge zu Git. Im Jahr 2017 wird Microsoft open-Source-Git Virtual File System (GVFS), unter der MIT-Lizenz. GVFS aktiviert Microsoft-Produkt-teams zum Maßstab der Git-client den Umgang mit seinen monströs großen source code repos.

Seitdem begann Microsoft mit der Portierung von allen-und ich meine alle — den Windows-code zu Git und GVFS. Die Arbeit ist jetzt weitgehend fertig und wird von Microsoft erfreut sich der Früchte seiner open-source-labor bei der Schaffung des größten Git-repo auf dem Planeten.

Harry schrieb, “in den letzten 3 Monaten, haben wir weitgehend abgeschlossen, der roll-out von Git/GVFS dem Windows-team bei Microsoft”. Das war keine kleine Arbeit. “Die Windows-code-Basis ist rund 3,5 M-Dateien und, wenn aktiviert, in ein Git-repo, die Ergebnisse in einem repo von über 300 GB.”

Das ist nur der Dateien. “Das Windows-team ist rund 4.000 Ingenieure-und engineering-system produziert 1.760 “lab baut” über 440 Filialen in der neben tausenden von pull-request-Validierung baut. Alle 3 Dimensionen (die Anzahl der Dateien, repo-Größe und Geschäftstätigkeit), unabhängig voneinander, bieten gewaltige Skalierung Herausforderungen und zusammen genommen, Sie machen es unglaublich schwierig zu erstellen, eine tolle Erfahrung.”

Harry räumte dies war eine beängstigende Erfahrung. “Die erste und größte, springen geschah am 22. März, wenn wir ausgerollt, um die Windows OneCore team von etwa 2000 Ingenieure. Diejenigen, die 2000 Ingenieure arbeiteten im Source-Depot am Freitag, ging nach Hause für das Wochenende und kam zurück, Montag morgen, eine neue Erfahrung basiert auf Git. Leute in meinem team waren, hielt den Atem an, das ganze Wochenende, beten wir nicht gehen werden pummeled von einem mob von wütenden Ingenieure, die zeigten, bis Montag nicht in der Lage zu bekommen jede Arbeit.

“Viel zu meiner überraschung, ganz ehrlich, es ging sehr reibungslos und Ingenieure waren vom ersten Tag produktiv.”

Es war nicht alles glatt Segeln. “Wir haben entdeckt, dass die erste Woche, dass unsere Benutzeroberfläche für pull-Anfragen und-merge-Konflikt-Auflösung einfach nicht Maßstab für Veränderungen, die große. Wir hatten zu klettern, um die Virtualisierung von Listen und inkrementell abrufen von Daten, so dass die UI nicht einfach hängen. Wir hatten es gelöst innerhalb von ein paar Tagen und die Allgemeine Stimmung in dieser Woche war viel besser als wir erwartet haben.”

Heute, fast alle Windows-Entwickler arbeiten an Git. In den nächsten Monaten, die letzten 500 Programmierer Umzug zu Git.

Sie haben allen Grund für den Umzug. Laut Harry, “der Skala das system in Betrieb ist, ist wirklich erstaunlich. Schauen wir uns einige zahlen an.”

Es gibt über 250.000 erreichbar Git commits in der Historie für diesen repo, in den letzten 4 Monaten.8,421 schiebt pro Tag (im Durchschnitt)2,500 pull-requests, mit 6,600 Gutachter pro Arbeitstag (im Durchschnitt)4,352 aktiven Thema branches1,760 offiziellen builds pro Tag

Microsoft hat sich weiter zu optimieren GVFS für die remote-Nutzung. Harry erklärte, “Die Windows Team Services-Konto befindet sich in einem Azure-Rechenzentrum an der Westküste der USA … Die 80-Perzentil-für-Klon für Windows-Ingenieur 127 Sekunden. Da ein hoher Prozentsatz unserer Windows-Ingenieure in Redmond,, die Anzahl ist geprägt von Ihnen.

“Wir führten eine Prüfung von unserem North Carolina office (die beide weiter Weg und hat eine viel geringere Bandbreite-Netzwerk). Ein Klon aus North Carolina mit no-proxy-server dauerte fast 25 Minuten. Mit einem proxy konfiguriert und up-to-date, dauerte es 70 Sekunden (schneller als Redmond, weil die Redmond team nicht einen proxy verwenden, und Sie haben zu gehen, Hunderte von Meilen über das internet an die Azure data center). 70 Sekunden vs fast 25 Minuten ist eine fast 95% ige Verbesserung.”

Beeindruckt? Microsoft freut sich, wenn Sie verwendet GVFS. Nachdem alle, GVFS ist ein open-source-Projekt, und Sie sind willkommen, um es auszuprobieren. Alles, was Sie tun müssen, ist herunterzuladen und zu installieren, erstellen Sie eine Visual Studio Team Services-Konto mit einem Git repo, und du bist gut zu gehen. Andere Git-Programme enthalten Atlassian SourceTree und Git Tower.

Ironischerweise gibt es zurzeit keine Linux-Git-client, unterstützt GVFS, aber intern ist Microsoft die Unterstützung für Linux-und Mac-Unterstützung. Saeed Noursalehi, ein Microsoft-Programmierer-manager, schrieb am GVFS-bug-Liste, “ja, wir wollen auf jeden Fall unterstützen Mac und Linux, und wir suchen Menschen, die mit Datei-Systeme know-how auf diesen Plattformen.”

Linus Torvalds, Linux und Git ‘ s Schöpfer, der einmal sagte, “Wenn Microsoft jemals Anwendungen für Linux bedeutet das, dass ich gewonnen habe”. Ich denke, dass Microsoft mit Hilfe von Git erstellen von Windows zählt als zu gewinnen.

Verwandte Geschichten:

Microsoft ist Ein Engineering-System bringt Git Virtuelles Datei-System, um die massesWhy Microsoft wird sich in ein open-source-companyFrom open-source-Hasser zu keine. 1 Lüfter: Microsoft jetzt tops Google, Facebook in GitHub Mitwirkenden