.NET altyapı ekibi, açık kaynak yeniliklerini hızlandırmak için tutarlılığa yatırım yapıyor

Ortak kullanılan araçların ve farklı GitHub depolarına dağıtılmış olan tek bir paylaşımlı CI sisteminin geliştirici üretkenliğini önemli şekilde nasıl artırdığını izleyin.

Karşılaşılan zorluklar: Açık kaynak projelere katkıda bulunanlar için iş birliğini kolaylaştırma

Açık geliştirme ve iş birliği ile yenilik sunmak üzere oluşturulmuş bağımsız bir kuruluş olan .NET Foundation, .NET Core dahil olmak üzere birçok farklı ve karmaşık açık kaynak proje için destek sunmaktadır. Microsoft .NET Mühendislik Hizmetleri ekibi de projeye katkıda bulunmaktadır ve dünyanın farklı yerlerinden katkıda bulunanların birlikte çalışmasını sağlayan altyapının baş sorumlularından biridir.

GitHub'daki düzinelerce farklı git deposu, çok farklı araç seçenekleri ve projede kullanılan birçok farklı sürekli tümleştirme (CI) sistemi nedeniyle üretkenliği etkileyen birçok karmaşık etmen mevcuttu. Proje ölçeğinin çok büyük olması da durumu daha karmaşık hale getiriyordu. Örneğin Roslyn (C# derleyici) deposu, tek bir çekme isteği yinelemesinde tek başına 600.000'den fazla otomatikleştirilmiş test yürütmektedir. Her hafta her biri birden fazla yinelemeye sahip 50'den fazla çekme isteği gerçekleştiği düşünüldüğünde CI testi sayısı milyarlara ulaşmaktadır. Bu rakamlar, CoreFx (kitaplıklar) için daha da yüksektir. .NET Mühendislik Hizmetleri ekibi .NET Core 3.0 sürümünü planlama aşamasında daha yüksek tutarlılık sağlamak ve katkıda bulunanların projenin tüm potansiyelini kullanmalarını mümkün kılmak için büyük değişiklikler yapmaya karar verdi.

"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, Sorumlu Yazılım Mühendisi, .NET Engineering Services

Ortak araçlar ve tek bir CI sistemiyle üretkenliği artırma

.NET Mühendislik Hizmetleri ekibi, geliştiricilerin yazılım yığınının farklı bölümleri arasında geçiş yapmasını kolaylaştırmak için tüm depoları ortak bir dizin yapısı, komut kümesi ve derleme-test etme mantığı altında toplamaya çalıştı. Ekip, farklı CI sistemlerindeki mevcut iş akışlarını Azure Pipelines içindeki tek bir sisteme taşıyarak üretkenlik konusundaki bir engeli daha kaldırmış oldu. Bu tam olarak yönetilen bir sistem olduğundan CI sunucusu altyapısını yönetme sorumluluğu da ortadan kalkmış oldu. Ekip şimdi GitHub'da depolanan YAML dosyaları aracılığıyla kod üzerinden yapılandırma uyguluyor ve YAML işlem hatları her yerde kullanılıyor. Daha önceden kullanılan ve geliştiricilerin bazen kod yinelemeleri arasında iki-üç saat beklemelerini gerektiren seri CI depoları yerine tüm CI işlem hatları paralel hale getirilerek yineleme süreçleri hızlandırıldı.

"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, Sorumlu Yazılım Mühendisi, .NET Engineering Services

Daha iyi iş birliği sayesinde daha iyi bir ürün

Günümüzde geliştiriciler eskiden olduğu gibi çok fazla uzmanlık bilgisi gerektirmeden kolayca depolar arasında geçiş yapabiliyor, bir hatanın kök nedenini araştırabiliyor ve düzeltme önerip test edebiliyor. GitHub'da sunulan bu kolaylaştırılmış işbirliği süreci, geliştiricilerin yüksek kaliteli yazılım yazma, test etme, derleme ve gönderme aşamalarında daha hızlı bir şekilde yenilik sunmasını sağlıyor. .NET Mühendislik Hizmetleri ekibi yığının tamamında altyapı değişikliği yapabildiğinden geliştiricilerin tüm depoları çok daha hızlı ve verimli bir şekilde kullanabilmesini sağlayan araç iyileştirmeleri sunabiliyor.

Ekibin yolculuğuna ve karar alma sürecine daha yakından bakın.

Yazının tamamını okuyun