1. Ana Sayfa
  2. ASP.Net
  3. Yazılım Geliştiriciler için Azure: App Services – Bölüm 3

Yazılım Geliştiriciler için Azure: App Services – Bölüm 3

yazımızın bir önceki bölümünde ile uygulamamızı publish etmiştik. Cloud Explorer’ı refresh ederek publish ettiğimiz uygulamayı buradan görebiliriz. App Service’i seçtiğimiz zaman altında bununla ilgili Resim-1‘de göreceğiniz seçeneklerle karşılaşıyoruz. Burada uygulama ile ilgili birçok seçenek var. Benim ilk gözüme çarpan kısım ise “Attach ”.


Resim-1: App Service Actions

Azure üzerindeki uygulamayı debug edebilmenin heyecanı ile hemen Attach Debugger’a tıklıyorum ancak karşıma Resim-2‘da göreceğiniz uyarı çıkıyor. Publish ederken normal olarak release mod kullandığımız için öyle istediğimiz gibi debug edemeyeceğimizi söylüyor.


Resim-2: Debug build Uyarısı

Debug edebilmek için debug modda derleyip tekrar publish edeceğim. Project üzerinden Publish ayarlarını girdiğimde ilk olarak Resim-3‘da göreceğiniz Connection Options ekranı çıkıyor. Burada uygulamamızla ilgili daha önce tanımladığımız App Service’in nasıl yansıdığını görebilirsiniz.


Resim-3: Publish Connection

Publish Settings’e gelerek Configuration değerini Debug olarak değiştiriyorum.


Resim-4: Publish Settings

Debug moda çektim artık deploy edebilirim derken Resim-5‘de detaylarını görebileceğiniz “Web deployment task failed” hatası alıyorum. Bu durumda uygulamayı Resim-1‘de göreceğiniz Actions’dan Stop butonu ile durdurup tekrar publish etmem ve sonra da yine buradaki Start ile tekrar başlatmam gerekecek.


Resim-5: Web deployment task failed hatası

Publish sonrasında uygulamayı başlattıktan sonra, Attach to Debugger ile uygulamaya başarıyla attach olabilirim. Resim-6‘te göreceğiniz gibi App Service’de çalışan uygulama üzerinden About’a tıklayarak, HomeController içerisine koyduğum breakpoint’e düşebiliyorum.


Resim-6: Azure App Service Debug

Buraya kadar herşey güzel, ancak her debug ihtiyacında uygulamayı debug modde derleyip, kapatıp tekrar publish etmek vb işlemler çok da mantıklı değil. Bu durumdan kurtulmak için App Services’ın özelliğinden faydalanacağız. üzerinden App Service menüsü üzerinde yer alan Deployment slots’a gelerek, yeni bir slot ekleyelim ve ismini de mshowtocorewebapp-debug olarak verelim.


Resim-7: Deployment Slots

Daha sonra ise uygulamamızı daha önceki şekilde yeni bir publish profile ekleyerek debug slot’una publish edecek şekilde ayarlayalım.


Resim-8: Debug Publish Profile

Bu şekilde debug/release mod derdinden kurtulduk, ancak uygulamayı durdurma ve tekrar publish etme ihtiyacı hala production için geçerli. Bu durumda daha etkili bir çözüm olarak deployment slot’lara bir de PreProd ekliyorum. Bu slot’a da release modda publish edeceğim.


Resim-9 Cloud Explorer: Deployment Slots

Deployment slots özelliğini kullanarak uygulamamızı durdurmadan PreProd üzerinden production ortamına taşıma yapabiliyoruz. işlemi aslında Azure’un bir slota gelen trafiği gelen requestlerin kaybolmasını engelleyerek diğer slot’a yönlendirmesi. anında request’ler hem eski hem de yeni versiyona gidebiliyor, ama hiç bir kullanıcının service unavailable hatası almamasını da sağlanmış oluyor.

Ne kadar slot hakkımız olduğu ise seçtiğimiz App Service Tier’a göre değişiyor. Bu nedenle tier seçiminizde slot ihtiyaçlarınızı da düşünmek gerekiyor. Development, Test, UAT, PreProd gibi ihtiyaçlarınız için bu özelliği rahatlıkla kullanabilirsiniz.


Resim-10: Swap

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: Azure, Azure Portal, , MVC, Web App, App Services, , , 2017, Cloud Explorer, , Deployment Slots, Swap, Debugger,

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi Gemi İnşaatı Mühendisliği bölümünde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi Bilgi Teknolojileri bölümünde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir. Şu anda da Done'de Cloud Development Manager olarak Azure, .NET Core, SQL Server, Docker vb güncel teknolojiler üzerinde çalışmaktadır.

Yorum Yap