A .NET infrastruktúra-munkacsoportja a konzisztencia erősítésével gyorsítja a nyílt forráskódú innovációt

Tekintse meg, hogy a GitHub adattáraiban elérhető megosztott eszközkészlet és az egyetlen, megosztott CI-rendszer miképpen növeli a fejlesztői hatékonyságot.

A feladat: Nyílt forráskódú közreműködői együttműködés egyszerűsítése

A .NET Foundation független szervezetként jött létre azzal a céllal, hogy a nyílt fejlesztés és az együttműködés révén ösztönözze az innovációt, és ennek keretében számos olyan komplex nyílt forráskódú projektet támogat, mint a .NET Core. A Microsoft .NET mérnöki szolgáltatások munkacsoportja ebben a projektben dolgozta ki azon infrastruktúra jelentős részét, amely szerte a világon lehetővé teszi a közös fejlesztői munkát.

A hatékonyságot számos zavaró tényező gátolta a GitHubon található több tucatnyi git-tárház, a széles eszközválaszték, és a projekten belül felhasznált folyamatos integrációs (CI-) rendszerek sokfélesége miatt. A projekt méretei tovább növelték a bonyolultságot. Például csupán a Roslyn (C# fordító) adattár több mint 600 000 automatizált tesztet futtat le egy lekéréses kérelem egyetlen iterációjában. Hetente több mint 50, több ismétlést futtató lekéréses kérelem esetén a CI-tesztek száma több milliárd. A CoreFX (kódtárak) esetében a számok ennél is magasabbak lehetnek. A .NET Core 3.0-s kiadásának előkészítése során a .NET műszaki szolgáltatások munkacsoportja úgy döntött, hogy nagyszabású módosításokkal erősíti a konzisztenciát, és lehetővé teszi a közreműködők számára a projektben rejlő lehetőségek teljes kiaknázását.

"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, vezető szoftvermérnök, .NET mérnöki szolgáltatások

Az eszközmegosztás és az egyetlen CI-rendszer növeli a hatékonyságot

Annak érdekében, hogy a fejlesztők könnyebben válthassanak a szoftververem egyes részei között, a .NET mérnöki szolgáltatások munkacsoportja egyetlen címtárstruktúra, parancskészlet, valamint build- és tesztlogika alá rendezte az összes adattárat. A munkacsoport további akadályokat hárított el a hatékony munka elől, amikor a különböző CI-rendszerek összes meglévő munkafolyamatát az Azure Pipelines egyetlen rendszerébe integrálta. Mivel ez teljes mértékben felügyelt rendszer, nem kell többé működtetni a CI-kiszolgálók infrastruktúráját. A munkacsoport jelenleg a GitHubon tárolt YAML-fájlok segítségével kódként határozza meg a konfigurációt, és mindenütt a YAML-folyamatok vannak használatban. Míg korábban egyes adattárak sorosan hajtották végre a folyamatos integrációt, és a fejlesztőknek néha két-három órát kellett várniuk a kód egyes ismétlései között, az összes CI-folyamat párhuzamos futtatása ma már gyorsabb iterációkat tesz lehetővé.

"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, vezető szoftvermérnök, .NET mérnöki szolgáltatások

Jobb együttműködés, jobb termék

A fejlesztők ma már könnyebben válthatnak az adattárak között, megkereshetik a hibák okát, javasolhatnak és tesztelhetnek javításokat – jóval kevesebb speciális ismerettel, mint a múltban. Ez a GitHubon megvalósuló egyszerűsített, nyílt forráskódú együttműködés a kiváló minőségű szoftverek közös kódírása, tesztelése, fejlesztése és szállítása révén gyorsabb innovációt tesz lehetővé a fejlesztők számára. A .NET mérnöki szolgáltatások munkacsoportja az egész veremre kiterjedően módosíthatja az infrastruktúrát, ezért az általa szolgáltatott eszközfejlesztési megoldásokat a fejlesztők jóval gyorsabban és hatékonyabban használhatják az összes adattárban.

Alaposabban is megismerheti a munkacsoportok tevékenységét és döntéshozatalát.

A teljes cikk