Tim infrastruktur .NET berinvestasi dalam konsistensi untuk mempercepat inovasi sumber terbuka
Lihat bagaimana alat bersama dan sistem CI tunggal yang dibagikan di seluruh repositori GitHub memberikan keuntungan besar dalam produktivitas pengembang.
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 Microsoft .NET Engineering Services berkontribusi pada proyek dan bertanggung jawab atas sebagian besar infrastruktur yang memungkinkan kontributor dari seluruh dunia untuk bekerja sama.
Dengan lusinan repositori git yang berbeda di GitHub, berbagai alat, dan beberapa sistem integrasi berkelanjutan (CI) berbeda yang digunakan di seluruh proyek, ada banyak kebingungan yang menghambat produktivitas. Skala proyek yang sangat besar ditambahkan ke kompleksitas. Misalnya, repositori Roslyn (C# compiler) sendiri menjalankan lebih dari 600,000 pengujian otomatis untuk satu perulangan permintaan pull. Dengan lebih dari 50 permintaan pull per minggu, masing-masing dengan beberapa perulangan, 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 guna menciptakan konsistensi yang lebih besar dan memungkinkan kontributor untuk mewujudkan potensi penuh proyek.
Tantangan: Beradaptasi dengan model operasi cloud
"Struktur dan alat repositori yang didistribusikan mempersulit pengembang untuk berpindah dari satu repositori ke repositori lainnya … Dan jika sulit bagi pengembang Microsoft, bagaimana kita dapat mengharapkan sebagian besar kontributor individu untuk mengetahuinya?"
Matt Mitchell, Teknisi Perangkat Lunak Utama, .NET Engineering Services
Meningkatkan produktivitas melalui alat bersama dan sistem CI tunggal
Untuk mempermudah pengembang berpindah antar bagian yang berbeda dari tumpukan perangkat lunak, tim .NET Engineering Services bekerja untuk membawa semua repositori di bawah struktur direktori umum, kumpulan perintah, dan logika build-and-test. Tim menghilangkan hambatan produktivitas lebih lanjut dengan memindahkan semua alur kerja yang ada dari sistem CI yang berbeda ke sistem tunggal dalam Azure Pipelines. Karena sistem dikelola sepenuhnya, mereka tidak lagi memiliki beban dalam mengelola infrastruktur server CI. Tim sekarang sedang mempraktikkan konfigurasi sebagai kode melalui file YAML yang disimpan di GitHub, dan alur YAML digunakan di mana saja. Sementara beberapa repositori sebelumnya telah melakukan CI secara serial—mengharuskan pengembang kadang menunggu dua atau tiga jam di antara perulangan pada kode mereka—semua alur CI sekarang disejajarkan untuk memungkinkan perulangan yang lebih cepat.
Tantangan: Beradaptasi dengan model operasi cloud
"Sekarang kami tidak perlu khawatir tentang aspek operasional CI, kami bebas untuk fokus pada peningkatan lebih lanjut yang akan dirasakan oleh semua—termasuk pengembang Microsoft dan kontributor individu."
Matt Mitchell, Teknisi Perangkat Lunak Utama, .NET Engineering Services
Kolaborasi yang lebih baik menghasilkan produk yang lebih baik
Saat ini, pengembang dapat dengan lebih mudah berpindah dari repositori ke repositori, melacak akar penyebab bug, dan mengusulkan serta menguji perbaikan—semuanya tanpa pengetahuan khusus sebanyak yang dibutuhkan di masa lalu. Kolaborasi sumber terbuka yang disederhanakan di GitHub ini memungkinkan pengembang untuk berinovasi lebih cepat saat 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 tumpukan penuh, mereka dapat memberikan penyempurnaan alat yang dapat dimanfaatkan pengembang di seluruh repositori dengan lebih cepat dan efisien.