.NET-infrastrukturteamet investerer i enhetlighet for å få fart på innovasjon med åpen kildekode

Se hvordan delte verktøy og et enkelt, delt KI-system for alle GitHub-repositoriene gir store gevinster i utviklerproduktivitet.

Utfordringen: Effektivisere samarbeidet for bidragsytere til åpen kildekode

.NET Foundation er en uavhengig organisasjon som ble startet for å fremme innovasjon gjennom åpen utvikling og samarbeid. Den støtter et stort og komplekst sett prosjekter med åpen kildekode, deriblant .NET Core. Microsoft .NET Engineering Services-teamet bidrar til prosjektet og har ansvar for mye av infrastrukturen som gjør at bidragsytere fra hele verden kan samarbeide.

Med flere titalls ulike git-repositorier på GitHub, et bredt spekter av verktøy og flere forskjellige KI-systemer i bruk i prosjektet, var det mye forvirring som hemmet produktiviteten. Prosjektets enorme skala gjorde ikke saken enklere. For eksempel kjører repositoriet Roslyn (C #-kompilator) mer enn 600 000 automatiserte tester for én gjentakelse av en pull-forespørsel. Med mer enn 50 pull-forespørsler per uke, hver med flere gjentakelser, blir det utført flere milliarder KI-tester. For CoreFx (biblioteker) er tallene enda høyere. Da .NET Engineering Services-teamet planla utgivelsen av .NET Core 3.0, bestemte de seg for å gjøre store endringer for å etablere større enhetlighet og gjøre det mulig for bidragsytere å realisere hele potensialet i prosjektet.

"A distributed repo structure and tooling makes it a lot harder for developers to move from one repo to another … And if it's this hard on Microsoft developers, how can we expect most individual contributors to figure it out?"

Matt Mitchell, Principal Software Engineer, .NET Engineering Services

Økt produktivitet gjennom delte verktøy og ett enkelt KI-system

For å gjøre det lettere for utviklerne å bevege seg mellom forskjellige deler av programvarestabelen jobbet .NET Engineering Services-teamet med å samle alle repositoriene under en felles katalogstruktur, et felles sett med kommandoer og en felles bygg-og-test-logikk. Teamet kvittet seg med ytterligere hindringer for produktiviteten ved å flytte alle eksisterende arbeidsflyter fra de forskjellige KI-systemene til ett system i Azure Pipelines. Ettersom systemet er totaladministrert, behøver de ikke lenger administrere KI-serverinfrastrukturen. Teamet praktiserer nå konfigurasjon som kode gjennom YAML-filer som er lagret i GitHub, og YAML-datasamlebånd brukes overalt. Mens noen repositorier tidligere hadde gjort KI serielt, noe som krever at utviklere noen ganger må vente to eller tre timer mellom gjentakelse på koden, er alle KI-datasamlebåndene nå parallelle for å muliggjøre raskere gjentakelser.

"Now that we longer need to worry about the operational aspects of CI, we're free to focus on further improvements that will be felt by all—including Microsoft developers and individual contributors alike."

Matt Mitchell, Principal Software Engineer, .NET Engineering Services

Bedre samarbeid gir et bedre produkt

I dag kan utviklere lettere gå fra repo til repo, spore opp årsaken til en feil og foreslå og teste en løsning – alt uten å måtte ha så mye spesialkunnskap som de trengte tidligere. Dette effektiviserte åpen kildekode-samarbeidet i GitHub gjør det mulig for utviklere å innovere raskere når de jobber sammen for å skrive, teste, bygge og sende programvare av høy kvalitet. Og siden .NET Engineering Services-teamet kan gjøre infrastrukturendringer i hele stakken, kan de raskere og mer effektivt levere verktøyutbedringer som utviklere kan dra nytte av på tvers av alle repositorier.

Se nærmere på teamenes reise og beslutninger.

Les hele historien