Hopp over navigasjon

.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.

Les hele historien

Utfordringen: Effektivisere samarbeidet for bidragsytere til åpen kildekode

.NET Foundation er en uavhengig organisasjon opprettet for å fremme innovasjon gjennom åpen utvikling og samarbeid, og støtter mange og komplekse prosjekter med åpen kildekode, inkludert .NET Core. Microsoft .NET Engineering Services-teamet bidrar til prosjektet, og er ansvarlige for mye av infrastrukturen, som gjør det mulig for bidragsytere over hele verden å jobbe sammen.

Med flere titalls ulike git-repositorier på GitHub, et bredt utvalg av verktøy og flere ulike systemer for kontinuerlig integrasjon (KI) i bruk på tvers av prosjektet, var det mye forvirring som hemmet produktiviteten. Størrelsen på prosjektet bidro også til å øke kompleksiteten. Roslyn (C#-kompilator)-repositoriet alene kjører for eksempel mer enn 600 000 automatiserte tester for én iterasjon av en pull-forespørsel. Med over 50 pull-forespørsler per uke, hver av dem med flere iterasjoner, blir det milliarder av KI-tester. For CoreFx (bibliotekene) er antallet enda høyere. Da .NET Engineering Services-teamet planla for .NET Core 3.0-utgivelsen, bestemte de seg for å gjøre store endringer for å skape en mer konsekvent opplevelse og gjøre det mulig for bidragsytere å realisere det fulle potensialet til 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 enklere for utviklere å flytte seg i ulike deler av programvarestabelen, har .NET Engineering Services-teamet samlet alle repositorier under en felles katalogstruktur, et felles sett med kommandoer og felles logikk for bygging og testing. Teamet eliminerte flere produktivitetshindre ved å flytte alle eksisterende arbeidsflyter fra ulike KI-systemer, til ett felles system i Azure Pipelines. Ettersom systemet er totaladministrert, trenger de ikke lenger å administrere KI-serverinfrastrukturen. Teamet praktiserer nå konfigurasjon som kode der YAML-filer lagres i GitHub, og YAML-datasamlebånd brukes overalt. Mens noen repositorier tidligere utførte KI serielt, noe som krevde at utviklerne av og til ventet i to til tre timer mellom iterasjoner av koden, er alle CI-datasamlebånd nå parallellisert for å muliggjøre raskere iterasjoner.

"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
Kan vi hjelpe deg?