Trace Id is missing
メイン コンテンツにスキップ

.NET インフラストラクチャ チームが一貫性に投資してオープンソースのイノベーションを加速

GitHub リポジトリ全体の共有ツールと 1 つの共有 CI システムが、開発者の生産性を大幅に向上するしくみをご覧ください。

課題:オープンソース貢献者のコラボレーションの効率化

.NET Foundation は、オープンな開発とコラボレーションを通じてイノベーションを促進するために作成された独立した組織として、 .NET Coreなど、大規模で複雑なオープン ソース プロジェクトのセットをサポートしています。Microsoft .NET Engineering Services チームはプロジェクトに貢献し、世界中の共同作成者が共同作業できるようにするインフラストラクチャの多くを担当しています。

GitHub の多数のさまざまな Git リポジトリ、幅広いツール、プロジェクトで使用されている複数の異なる継続的インテグレーション (CI) システムにより、生産性を妨げる多くの混乱が生じていました。プロジェクトの規模の大きさが複雑さを増していました。たとえば、 Roslyn (C# コンパイラ) リポジトリだけで、pull requestの 1 回のイテレーションに対して 600,000 以上の自動テストが実行されます。1 週間に 50 を超える pull request が実行され、それぞれが複数の反復処理を行い、CI テストの数は数十億に上ります。CoreFx (ライブラリ) の場合、この数がさらに増えます。.NET Engineering Services チームは .NET Core 3.0 リリースを計画していたため、より一貫性を確立し、共同作成者がプロジェクトの可能性を最大限に発揮できるように、大きな変更を加えることにしました。

会話をしている人々

課題:クラウド運用モデルへの適応

"分散リポジトリ構造とツールを使用すると、開発者がリポジトリ間を移動することがはるかに困難になります … Microsoft 開発者に対してこれが難しい場合、ほとんどの個々の共同作成者がそれを理解することはどのように期待できますか?"

Matt Mitchell 氏、プリンシパル ソフトウェア エンジニア、.NET エンジニアリング サービス

共有ツールと単一の CI システムによる生産性の向上

開発者がソフトウェア スタックのさまざまな部分間を簡単に移動できるように、.NET Engineering Services チームは、すべてのリポジトリを共通のディレクトリ構造、コマンド セット、ビルドおよびテスト ロジックの下に置くよう取り組みました。チームは、既存のすべてのワークフローをさまざまな CI システムから Azure Pipelines内の 1 つのシステムに移行することで、生産性に対するさらなる障壁を排除しました。このシステムは完全に管理されているため、CI サーバー インフラストラクチャを管理する負担がなくなります。現在、チームは GitHub に格納されている YAML ファイルを使用して構成をコードとして実践しており、YAML パイプラインはあらゆる場所で使用されています。以前は一部のリポジトリで CI が順次実行されていたため、開発者はコードのイテレーション間で 2、3 時間待機することが必要な場合がありましたが、現在はすべての CI パイプラインが並列化され、より迅速なイテレーションが可能になりました。

課題:クラウド運用モデルへの適応

"CI の運用面について心配する必要がなくなったので、Microsoft 開発者や個々の共同作成者を含むすべてのユーザーが感じ—ることができるさらなる改善に自由に集中できます。"

Matt Mitchell 氏、プリンシパル ソフトウェア エンジニア、.NET エンジニアリング サービス

コラボレーションの向上により、より良い製品を作る

現在、開発者はリポジトリからリポジトリに簡単に移動し、バグの根本原因を追跡し、過去に必要な程度の専門知識を持たずに修正プログラムを提案してテストすることができます。GitHub でのこの合理化されたオープンソース コラボレーションにより、開発者は共同作業を行い、高品質のソフトウェアの作成、テスト、ビルド、出荷を行い、より迅速にイノベーションを起こすことができます。また、.NET Engineering Services チームは完全なスタック全体でインフラストラクチャの変更を行うことができるため、開発者がすべてのリポジトリをはるかに迅速かつ効率的に利用できるツールの改善を提供できます。

デスクで仕事をしている人がいるオフィス
チームの取り組みと意思決定について詳しく見ていきましょう。
ストーリー全文を読む