.NET 6 Geçişlerinde Azure DEVOPS Pipeline Incident

Microsoft uzun zamandır .NET 6 tarafında arka arkaya, ara geliştirmeler ve SDK çıkartmaya devam ediyor. PEAKUP’ın Velocity, Analytics ve Data ürünlerinde bu geliştirmeleri uzun zamandır yakından takip ediyoruz. Son SDK içerisindeki performans arttırıcı özellikleri dikkate alıp projeleri .NET 6’nın son sürümüne geçirmeye özen gösteriyoruz. Son zamanlarda çıkan her bir Preview SDK sonrasında DevOps pipeline içerisinde bazı aksaklıklar ve kesintiler yaşamaya başladık. Bugün sizlere bu küçük DevOps kesintisiyle nasıl karşılaştığımızı ve nasıl giderileceğini anlatacağım.

 

Uygulamalarımızı .NET 6 ile geliştirirken, Azure Web Application içerisinde host ederek çalışmalarını sağlıyoruz. Burada beklentimiz her bir SDK çıktıktan sonra Microsoft Container Registry servislerinde hemen yansıyan SDK Container paketleri gibi Web Application tarafında da ilgili SDK için kurulumların yapılması ve hazır olarak beklemesidir.

Ancak Microsoft 6.0.100-preview.7.21379.14 ve 6.0.1-RC paketinde Azure takımlarının geçişleri bizi bu konuda oldukça şaşırtıyor! Zira DevOps Pipeline içerisinde kurguladığımız Build aşamasında spesifik olarak 6 sürümlerinin en sonunu kullanmasını belirttiğimiz bir davranış Build ve Release Pipeline içerisinde herhangi bir hataya sebep olmasa da uygulamaya Deploy edildikten sonra sizleri sürpriz bir problem bekliyor!

Azure Web Application içerisinde .NET 6’nın RC paketi bulunmuyor! Kudu SCM üzerinde DOTNET SDK listesini incelediğiniz zaman RC paketinin eksik olduğunu ve uygulamanın bu nedenle hiçbir Exception fırlatmadan dakikalarca ayağa kalkmaya çalıştığını görebilirsiniz.

Problemin giderilmesi için Azure Web Application içerisindeki son SDK versiyonunu Pipeline içerisinde spesifik olarak belirtmeniz yeterli olacaktır!