Přeskočit navigaci

Tým infrastruktury .NET investuje do konzistence s cílem zrychlit opensourcové inovace

Podívejte se, jak sdílené nástroje a jeden sdílený systém CI napříč úložišti GitHub výrazně zvyšují produktivitu vývojářů.

Přečíst si celý příběh

Výzva: Zjednodušení spolupráce pro přispěvatele do opensourcových projektů

Jako nezávislá organizace vytvořená za účelem podpory inovací prostřednictvím otevřeného vývoje a spolupráce podporuje .NET Foundation rozsáhlou a komplexní sadu opensourcových projektů, mezi které patří i .NET Core. Tým Microsoft .NET Engineering Services k tomuto projektu přispívá a je zodpovědný za velkou část infrastruktury, která umožňuje spolupráci přispěvatelů z celého světa.

S desítkami různých úložišť Git na GitHubu, širokou škálou nástrojů a několika různými systémy kontinuální integrace (CI), které se v projektu používají, docházelo k velkým nejasnostem, které snižovaly produktivitu. I samotný rozsah projektu přidával na složitosti. Například samotné úložiště Roslyn (kompilátor jazyka C#) spouští více než 600 000 automatizovaných testů pro jednu iteraci žádosti o přijetí změn. Při více než 50 žádostech o přijetí změn za týden, z nichž každá má několik iterací, se počet testů CI pohybuje v miliardách. U CoreFx (knihoven) jsou čísla ještě vyšší. Jelikož tým .NET Engineering Services plánoval vydání .NET Core 3.0, rozhodl se provést rozsáhlejší změny, aby se zajistila větší konzistence a přispěvatelům bylo umožněno plně využít potenciálu projektu.

"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, hlavní softwarový inženýr, technické služby .NET

Zvýšení produktivity díky sdíleným nástrojům a jednomu systému CI

Aby se vývojářům usnadnil pohyb mezi různými částmi softwarového stacku, tým .NET Engineering Services pracoval na tom, aby všechna úložiště měla společnou adresářovou strukturu, sadu příkazů a logiku sestavování a testování. Další překážky v produktivitě tým odstranil tím, že přesunul všechny stávající pracovní postupy z různých systémů CI do jediného systému Azure Pipelines. Protože je systém plně spravovaný, odpadá jim starost o správu infrastruktury serverů CI. Tým teď využívá konfiguraci jako kód prostřednictvím souborů YAML uložených na GitHubu a všude se používají kanály YAML. Zatímco některá úložiště dříve prováděla CI sériově – takže mezi iteracemi svého kódu museli vývojáři někdy dvě nebo tři hodiny čekat – teď jsou všechny kanály CI paralelizovány, aby byly iterace rychlejší.

"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, hlavní softwarový inženýr, technické služby .NET

Lepší spolupráce vede k lepším produktům

Vývojáři v současné době můžou snadněji přecházet mezi úložišti, sledovat původní příčiny chyb a navrhovat a testovat opravy – to vše se zlomkem odborných znalostí, než potřebovali v minulosti. Zjednodušená opensourcová spolupráce na GitHubu umožňuje vývojářům zrychlit inovace díky spolupráci při psaní, testování, sestavování a dodávání vysoce kvalitního softwaru. A vzhledem k tomu, že tým technických služeb .NET může provádět změny infrastruktury napříč celým stackem, můžou mnohem rychleji a efektivněji dodávat napříč všemi úložišti vylepšení nástrojů pro vývojáře.

Podívejte se zblízka na cesty a rozhodovací procesy týmů.

Přečíst si celý příběh