Lewati Navigasi

Tim infrastruktur .NET berinvestasi dalam konsistensi untuk mempercepat inovasi sumber terbuka

Tonton cara alat bersama dan satu sistem CI bersama di seluruh repositori GitHub memberikan keuntungan besar dalam produktivitas pengembang.

Baca panduan lengkap

Tantangan: Menyederhanakan kolaborasi untuk kontributor sumber terbuka

Sebagai organisasi independen yang dibuat untuk menumbuhkan inovasi melalui pengembangan dan kolaborasi terbuka, .NET Foundation mendukung serangkaian proyek sumber terbuka yang besar dan kompleks, termasuk .NET Core. Tim Layanan Teknis Microsoft .NET berkontribusi pada proyek dan bertanggung jawab atas banyak infrastruktur yang memungkinkan kontributor dari seluruh dunia untuk bekerja sama.

Dengan berbagai repositori git yang berbeda di GitHub, berbagai alat, dan beberapa sistem integrasi berkelanjutan (CI) yang digunakan di seluruh proyek, ada banyak kebingungan yang menghambat produktivitas. Skala sheer proyek ditambahkan ke kompleksitas. Misalnya, repo Roslyn (C# compiler) sendiri menjalankan lebih dari 600.000 pengujian otomatis untuk satu iterasi permintaan pull. Dengan lebih dari 50 permintaan pull per minggu, masing-masing dengan beberapa iterasi, jumlah pengujian CI adalah dalam miliaran. Untuk CoreFx (pustaka), angkanya bahkan lebih tinggi. Sebagai tim .NET Engineering Services yang direncanakan untuk rilis .NET Core 3.0, mereka memutuskan untuk membuat perubahan besar untuk membangun konsistensi yang lebih besar dan memungkinkan kontributor untuk menyadari potensi penuh proyek.

"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, Teknisi Perangkat Lunak Utama, .NET Engineering Services

Meningkatkan produktivitas melalui alat bersama dan sistem CI tunggal

Untuk memudahkan pengembang berpindah di antara berbagai bagian tumpukan perangkat lunak, tim .NET Engineering Services bekerja untuk menghadirkan semua repos di bawah struktur direktori umum, kumpulan perintah, dan logika bangun-dan-uji. Tim menghilangkan hambatan produktivitas lebih lanjut dengan memindahkan semua alur kerja yang ada dari sistem CI yang berbeda ke dalam sistem tunggal di Azure Pipelines. Karena sistem ini terkelola sepenuhnya, tim tidak lagi memiliki beban dalam mengelola infrastruktur server CI. Tim kini dapat mempraktikkan konfigurasi sebagai kode melalui file YAML yang disimpan di GitHub. Selain itu, alur YAML digunakan di mana saja. Sementara beberapa repos sebelumnya telah melakukan CI secara serial (mengharuskan pengembang terkadang menunggu dua atau tiga jam antara iterasi pada kode mereka), semua alur CI kini dibuat paralel untuk memungkinkan iterasi yang lebih cepat.

"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, Teknisi Perangkat Lunak Utama, .NET Engineering Services

Kolaborasi yang lebih baik menjadikan produk lebih baik

Saat ini, pengembang dapat dengan mudah berpindah dari repo ke repo, melacak akar penyebab bug, dan mengusulkan dan menguji perbaikan—semua hampir tanpa memerlukan pengetahuan khusus seperti yang dibutuhkan di masa lalu. Kolaborasi sumber terbuka yang disederhanakan di GitHub ini memungkinkan pengembang untuk berinovasi lebih cepat ketika mereka bekerja sama untuk menulis, menguji, membangun, dan mengirimkan perangkat lunak berkualitas tinggi. Dan karena tim .NET Engineering Services dapat membuat perubahan infrastruktur di seluruh stack penuh, mereka dapat mengirimkan penyempurnaan alat yang dapat dimanfaatkan pengembang di seluruh repos dengan lebih cepat dan efisien.

Lihat perjalanan dan pengambilan keputusan tim dengan lebih dekat.

Baca panduan lengkap