Trace Id is missing
Přeskočit na hlavní obsah

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.

Lidé, kteří si povídají

Výzva: Přizpůsobení se provoznímu modelu cloudu

"Distribuovaná struktura úložiště a nástroje znesnadňují vývojářům přesun z jednoho úložiště do druhého… A pokud je to pro vývojáře Microsoftu tak obtížné, jak můžeme očekávat, že se v tom zorientuje většina jednotlivých přispěvatelů?"

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.

Výzva: Přizpůsobení se provoznímu modelu cloudu

"Teď, když se už nemusíme starat o provozní aspekty CI, se můžeme soustředit na další vylepšení, která pocítí všichni – včetně vývojářů Microsoftu a jednotlivých přispěvatelů."

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.

Kancelář s lidmi pracujícími u stolů
Podívejte se zblízka na cesty a rozhodovací procesy týmů.
Přečtěte si celý příběh