Gezintiyi Atla

.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.

Yazının tamamını okuyun

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

.NET Foundation, açık geliştirme ve işbirliği aracılığıyla yeniliklere olanak tanımak için oluşturulan bağımsız bir kuruluş olarak, .NET Core dahil olmak üzere bir dizi büyük ve karmaşık açık kaynak projeyi destekler. Microsoft .NET Mühendislik Hizmetleri ekibi projeye katkıda bulunur ve tüm dünyada katkıda bulunanların birlikte çalışmasına olanak sağlayan altyapının büyük bir bölümünden sorumludur.

GitHub'da düzinelerce farklı git deposu, çeşitli araçlar ve proje genelinde kullanılan birkaç farklı sürekli tümleştirme (CI) sistemiyle üretkenliğe engel olan çok fazla karışıklık ortaya çıktı. Projenin büyüklüğü de karmaşıklığa katkı sağladı. Örneğin, sadece Roslyn (C# derleyicisi) deposu, çekme isteğinin bir yinelemesi için 600.000'den fazla otomatik test çalıştırır. Her biri birden çok yineleme içeren haftalık 50'den fazla çekme isteğiyle, CI testi sayısı milyarları bulur. CoreFx (kitaplıklar) için sayılar daha da yüksektir. .NET Mühendislik Hizmetleri ekibi .NET Core 3.0 sürümü için planlarken, daha fazla tutarlılık oluşturmak ve katkıda bulunanların projenin tam potansiyelini fark etmesi 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şini kolaylaştırmak için tüm depoları ortak bir dizin yapısı, komut kümesi ve derle ve test et mantığı altında toplamak için çalıştı. Ekip, farklı CI sistemlerindeki mevcut tüm iş akışlarını Azure Pipelines’taki tek bir sisteme taşıyarak üretkenliğe engel olan daha çok unsuru ortadan kaldırdı. Sistem tam olarak yönetildiğinden bundan böyle CI sunucu altyapısını yönetme yükünü taşımıyorlar. Ekip artık yapılandırmayı GitHub'da depolanan YAML dosyaları aracılığıyla kod olarak uyguluyor ve YAML işlem hatları her yerde kullanılıyor. Bazı depolar daha önce CI'yı seri olarak yaparken (geliştiricilerin kodlarındaki yinelemeler arasında bazen iki veya üç saat beklemesini gerektirir), tüm CI işlem hatları artık daha hızlı yinelemeler sağlamak için paralelleştiriliyor.

"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