Azure’da Asp.NET Core API Projesi Yayınlamak
Merhaba,
Günümüzde çağdaş yazılım altyapıları Bulut Platform(Cloud Platform) yaklaşımı üzerinden tüm dünyaya hizmet vermekte ve bu süreç kaçınılmaz olarak biz geliştiricileride dolaylı ya da doğrudan etkilemektedir. Oluşturduğumuz uygulamaların bir şekilde bulut sistemleri ile ilişkilendirilmesi ve bunun için günün devlerinin dünyaya tanıdığı servisleri kullanma ihticı kaçınılmaz bir şekilde zaruri olabilmektedir. Bu ihtiyaca istinaden bizler, bu içeriğimizde Microsoft Azure bulut platformu üzerinde bir Asp.NET Core ile geliştirilmiş API uygulamasının nasıl servis edileceğini inceleyecek ve böylece Windows Azure dünyasına küçük bir pencereden göz atmış olacağız.
Tabi herşeyden önce makalemizin ana teması olan Azure servisleri üzerine teorik istişaremizi ederek başlayalım.
Azure Servisleri Nedir?
Azure Servisleri, Microsoft’un bulut üzerindeki veri merkezlerinde barındırılan ve çalıştırılmasına olanak tanıyan bir uygulama platformudur. Compute, Storage ve Fabric olmak üzere üç temel bileşenden oluşur. Bu bileşenleri sırasıyla açıklarsak eğer;
- Compute
Web Role ve Worker Role ile birlikte işleme/hesaplama ortamı sağlamaktadır. - Storage
Yüksek ölçekli ihtiyaçları göz önüne alabilecek şekilde tasarlanmış ölçülebilir/genişletilebilir depolamaya(Blobs, Tables, Queue, Drives) odaklı geliştirilmiştir. - Fabric
Windows Azure platformunun serverlar veya yüksek hızlı bağlantılar vs. gibi bütünsel anlamda birbirleriyle ilişkisel bileşenlerden oluşan ve Compute ile birlikte Storage’i kapsayan fiziksel dokusudur.
Peki geliştiriciler için nasıl hizmetler barındırmaktadır?
Herhangi bir mimaride yahut programlama dilinde(.NET Core, PHP, Angular 8 vs.) ihtisas sahibi bir developerın Windows Azure platformunda uygulama geliştirebilmesi için; canlı akış sağlayan servislerin bulunduğu Live Serviceslerinden, bulutta SQL Server hizmeti sunan SQL Azure teknolojisinden; bir uygulama oluşturmayı, ölçeklendirmeyi ve yönetmeyi kolaylaştıran bir tümleşik teknolojiler hizmeti sağlayan AppFabric kümesinden, sanal makina hizmeti sunan SharePoint Serviceslerinden ve yönetimsel stratejiler geliştirilmesini sağlayan Dynamics CRM Services hizmetlerinden istifade edebilmesi pekala mümkündür. Eğer bu hizmetlerden herhangi biri Microsoft veri merkezi tarafında çöker yahut bir kesintiye uğrarsa, yayın ve ortam herhangi bir kesintiye uğramaz ve bunun yanında hizmetler çökmeden kullanıcıya bellek yönetimi ve yük dengeleme gibi faaliyetlerde bulunma imkanı sağlanabilmektedir.
Azure-Hosting’te neler kullanılabilir ve Visual Studio entegrasyonu var mıdır?
Azure Servisleri, web uygulamaları geliştiricileri için REST, HTTP ve XML altyapılı API kullanılmasına ve tüm bunların yanında Visual Studio editörü ile tam entegre çalışmasına imkan sağlamaktadırlar.
Evet… Şimdi sıra bir Web API uygulamasının Azure’da yayınlanabilmesi için yapılması gereken temel konfigürasyonlara ve çalışmalara geldi.
Azure’da Uygulama Hizmeti Oluşturmak
Azure’da bir uygulama yayına alabilmek için ilk olarak https://signup.azure.com/ adresinden tarafınıza ait bir microsoft hesabı ile giriş yapınız ve gerekli kredi kartı bilgilerinizi girerek ücretsiz bir deneme hesabı açınız. Ardından Azure üzerinde uygulama yayınlayabilmek için https://portal.azure.com/ sayfasına gelerek oluşturduğunuz ücretsiz deneme hesabı üzerinden aşağıdaki önergeleri adım adım takip ediniz.
- Adım 1
Geliştirdiğiniz web uygulamasına Solution Explorer penceresinde sağ tıklayınız ve Publish sekmesini seçiniz.

- Adım 2
Açılan pencerede “Start” butonuna tıklayınız.

- Adım 3
Ardından açılan pencerede sol menüdeki “App Service” sekmesi üzerinden “Create New” bölümü seçili vaziyette “Create Profile” butonuna tıklayınız.

- Adım 4
Bu adımda ücretsiz Azure hesabını aldığınız microsoft adresi ile Visual Studio üzerinden Azure hesabınıza “Sign In” butonuna tıklayarak bağlanınız.

- Adım 5
Microsoft hesabı üzerinden giriş yaptığımız taktirde 5. adımda karşımıza gelecek olan ekran aşağıdaki gibi olacaktır. Bu ekran açılır açılmaz Azure’da uygulamamıza özel bir hizmet oluşturacak tüm bilgileri isteğiniz doğrultusunda manuel değiştirebileceğiniz şekilde varsayılan olarak atanmış vaziyette getirmiş olacaktır.

Buradaki herbir alanın ne olduğuna dair sırasıyla değerlendirmede bulunursak eğer;1; Azure’da oluşturulacak uygulama hizmetinin adını ifade etmektedir.
2; Azure’da microsoft hesabınızın ücretli yahut ücretsiz olmak üzere birden fazla abonelik türü olabilir. Bu profilin hangi abonelik üzerinden gerçekleştirildiğini belirtiyoruz.
3; Kaynak grubu belirtiyoruz. Bu kaynak grubu sayesinde bu uygulamaya dair tüm sistemleri tek bayrak altında toplayabilmekteyiz.
4; Hosting planını seçiyoruz.
5; Uygulama performans yönetimi konusunda herhangi bir istekte bulunmuyoruz.Bu sayfadaki tüm konfigürasyonu sağladıktan sonra “Create” butonuna tıklayınız.
- Adım 6
Profili oluşturduktan sonra artık ilgili microsoft hesabına bağlı olan Azure hesabınızın portalına gelerek anasayfa üzerindeki “Azure Hizmetleri” kısmından “Uygulama Hizmetleri”ne tıklayarak 5. adımdaki görselde bulunan “Name” değerine karşılık bir hizmetin oluşturulduğunu görebilirsiniz.
Böylece web uygulamamızın fiziksel dosyalarını barındıracak olan Azure-Hosting olarak kullanacağımız uygulama hizmetimiz hali hazırda mevcuttur. Visual Studio’da ki publish ekranında aşağıdaki gibi oluşturulmuş profil üzerinden publish butonuna tıkladığımız vakit uygulama derlenip, ilgili azure sunucusuna transfer edilmiş olacak ve orada yayınlanacaktır.

Tüm bu işlemler neticesinde Asp.NET Core API projemiz Azure-Hosting’te istekleri cevaplamaya hazır bir vaziyette yayınlanmış bulunmaktadır. Dolayısıyla bizler yayına alınmış bu API’a karşılık gelen bir url tarafından isteklerimizi rahatlıkla gönderebilir ve çalışmalarımızı devam ettirebiliriz.

API url’ini ya Visual Studio editöründeki publish ekranında bulunan “Summary” kısmındaki “Site URL” kısmından
ya da Azure Portal’da ki “Uygulama Hizmetleri” altında ilgili hizmete tıklayarak açılan penceredeki URL kısmından elde edebiliriz.
Elde edilen ilgili url üzerinden aşağıdaki gibi bir istekte bulunursak eğer başarıyla çalıştığını ve beklenen resultu tarafımıza döndürdüğünü görmekteyiz.

Benzer mantıkla ilgili endpoint’e Postman kullanarak istek gönderdiğimiz taktirde;

görselde görüldüğü üzere sıkıntısız isteğimiz karşılanmakta ve sunucudan gelen cevap elde edilmektedir.
Nihai olarak; bu içeriğimizde Azure bulut sisteminin ne olduğunu teorik olarak inceledik ve tüm bunların yanında Azure bulut sisteminde web uygulamamızı publish edip serve etmeyi pratikte ele almış olduk. Bir sonraki içeriğimizde Azure üzerinde Code First kullanarak veritabanımızı migrate etmeyi ele alacak ve devamında ise UI teknolojilerinden Angular 8 gibi bir mimarinin Azure üzerinde nasıl deploy edildiğini inceleyeceğiz.
O halde şimdilik görüşmek üzere…
İlgilenenlerin faydalanması dileğiyle…
İyi çalışmalar…

Elinize sağlık güzel bir paylaşım olmuş. Şöyle bir sorum olacaktı, .net core ile hazırlanan bir uygulamayı ftp üzerinden güncelleme işleminde eğer o uygulama bir yerde açıksa güncelleme yaptırmıyor. Bu konuda bilgilendirme yapa bilir misiniz?
Merhaba,
Güncellenen data açık olduğu client’ların cache’inde mi kalıyor?
Yok demek istediğim şöyle: bilgisayarda çalışan bir uygulamayı güncelledeğinizi düşünün, çalışan uygulama olduğu için kapatılmasını istiyor
Hangi teknoloji/yol/yordam/yöntem kullanmaktasın?
.net core 3.1 kullanıyorum. Ftp ye ilgili dll leri atarken aktarım hatası alıyorum. Hata çalışa dosyanın üzerine yazamaması. Kullanıcıların sistemden çıkışı yapılırsa güncelliyor
Kullanıcı değil de servisin o anlık durdurulması işinizi görebilir.