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ářů.

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

.NET Foundation jako nezávislá organizace vytvořená za účelem podpory inovací prostřednictvím otevřeného vývoje a spolupráce podporuje rozsáhlou a komplexní sadu opensourcových projektů včetně .NET Core. Tým technických služeb .NET Microsoftu je přispěvatelem tohoto projektu a je odpovědný za velkou část infrastruktury umožňující spolupráci přispěvatelů z celého světa.

V rámci projektu se využívaly desítky různých úložišť git na GitHubu, široká škála nástrojů a několik různých systémů kontinuální integrace (CI), což způsobovalo značný zmatek, který brzdil produktivitu. Ke složitosti přispíval už samotný rozsah projektu. Například v samotném úložišti Roslyn (kompilátor jazyka C#) se při každé iteraci žádosti o přijetí změn spouští více než 600 000 automatizovaných testů. Každý týden dochází k více než 50 žádostem o přijetí změn, z nichž každá má několik iterací, a množství testů CI tak jde do miliard. V případě CoreFx (knihovny) jsou tato čísla ještě vyšší. Tým technických služeb .NET se při plánování vydání verze .NET Core 3.0 rozhodl provést velké změny s cílem zajistit lepší konzistenci a umožnit přispěvatelům využít potenciál projektu naplno.

"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 vývojáři mohli snadněji přecházet mezi různými částmi softwarového stacku, tým technických služeb .NET se zaměřil na převod všech úložišť pod společnou adresářovou strukturu, sadu příkazů a logiku sestavování a testování. Tým odstranil další překážky produktivity přesunem všech stávajících pracovních postupů z různých systémů CI do jednoho systému v Azure Pipelines. Vzhledem k tomu, že tento systém je plně spravovaný, vývojáři se už nemusí starat 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 u některých úložišť se dříve kontinuální integrace prováděla sériově (a vývojáři někdy museli mezi iteracemi svého kódu čekat i dvě až tři hodiny), teď jsou všechny kanály CI paralelizované a umožňují tak rychlejší iterace.

"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