Trace Id is missing
Gå til hovedindhold

Teamet for .NET-infrastruktur investerer i ensartethed for at sætte fart på nyskabelser med åben kildekode

Se, hvordan deling af værktøjer og et enkelt, delt CI-system på tværs af GitHub-lagre sikrer store gevinster for udviklerproduktiviteten.

Udfordringen: At strømline samarbejdet mellem bidragydere med åben kildekode

Som en uafhængig organisation, der blev skabt for at frembring nyskabelser via åben udvikling og samarbejde, støtter .NET Foundation et stort og komplekst sæt af projekter med åben kildekode, herunder .NET Core. Microsoft .NET Engineering Services-teamet bidrager til projektet og er ansvarlig for en stor del af infrastrukturen, der giver bidragydere fra hele verden mulighed for at samarbejde.

Med brug af masser af forskellige git-lagre på GitHub, et bredt udvalg af værktøjer og adskillige forskellige CI-systemer (Continuous Integration) på tværs af projektet var der megen forvirring, som hæmmede produktiviteten. Alene størrelsen af projektet gjorde det mere komplekst.  Roslyn -lageret (C#-compiler) alene kører mere end 600.000 automatiserede test for én gentagelse af en pullanmodning. Med mere end 50 pullanmodninger pr. uge, som hver har flere gentagelser, er antallet af CI-tests i milliarder. For CoreFx (biblioteker) er antallet endnu højere. Da .NET Engineering Services-teamet planlagde udgivelsen af .NET Core 3.0, besluttede de sig for at foretage store ændringer for at sikre større ensartethed og give bidragyderne mulighed for at realisere det fulde potentiale af projektet.

Personer, der har en samtale

Udfordringen: Tilpasning til en model, der drives i cloudmiljøet

"En distribueret lagerstruktur og værktøjer gør det meget sværere for udviklere at flytte fra ét lager til et andet … Hvis det er så svært for Microsoft-udviklere, hvordan kan vi så forvente, at de fleste individuelle bidragydere finder ud af det?"

Matt Mitchell, Principal Software Engineer, .NET Engineering Services

Forbedring af produktiviteten via delte værktøjer og et enkelt CI-system

For at gøre det nemmere for udviklere at flytte mellem forskellige dele af softwarestakken arbejdede .NET Engineering Services-teamet på at få alle lagre under én fælles mappestruktur, et sæt kommandoer og logik for skabelse og test. Teamet fjernede yderligere barrierer for produktivitet ved at flytte alle eksisterende arbejdsprocesser fra de forskellige CI-systemer til et enkelt system i Azure Pipelines. Da systemet er fuldt administreret, skal de ikke længere bekymre sig om at administrere CI-serverinfrastrukturen. Teamet udøver nu konfiguration af kode via YAML-filer, der er gemt i GitHub, og YAML-pipelines bruges overalt. Hvor nogle lagre tidligere havde udført CI serielt, hvilket krævede, at udviklere nogle gange skulle vente to eller tre timer mellem gentagelser af deres kode, er alle CI-pipelines nu paralleliseret for at sikre hurtigere gentagelser.

Udfordringen: Tilpasning til en model, der drives i cloudmiljøet

"Nu hvor vi ikke længere behøver at bekymre os om de operationelle aspekter af CI, kan vi fokusere på yderligere forbedringer, som alle, både Microsoft-udviklere og individuelle bidragydere, vil kunne mærke."

Matt Mitchell, Principal Software Engineer, .NET Engineering Services

Bedre samarbejde giver et bedre produkt

I dag kan udviklere nemmere gå fra lager til lager, finde rodårsagen til en fejl samt foreslå og teste en rettelse – alt sammen uden nær så meget specialiseret viden, som de havde brug for tidligere. Dette strømlinede samarbejde med åben kildekode i GitHub giver udviklere mulighed for at være mere innovative hurtigere, da de arbejder sammen om at skrive, teste, skabe og udgive software af høj kvalitet. Og fordi .NET Engineering Services-teamet kan foretage ændringer af infrastrukturen på tværs af hele stakken, kan de levere forbedringer af værktøjer, som udviklere kan drage fordel af hurtigere og mere effektivt på tværs af alle lagre.

Et kontor med personer, der arbejder ved deres skriveborde
Se nærmere på teamets rejse og beslutningstagning.
Læs hele historien