/AzureAppServices

Azure App Service, web ve mobil uygulamaları kolayca barındırır ve yönetir. Sunucu yönetimi ve ölçeklendirme otomatik olup, siz uygulama geliştirmeye odaklanabilirsiniz. Popüler dilleri destekler ve Azure hizmetleriyle entegre olur.

Primary LanguageShell

Azure App Service, Microsoft'un bulut platformu Azure üzerinde web uygulamaları, API'ler ve mobil uygulamaları barındırmak için kullanılan yönetilen bir hizmettir. Esnek, ölçeklenebilir ve kullanımı kolay olan bu hizmet, geliştiricilere uygulamalarını hızlı bir şekilde dağıtmaları ve yönetmeleri için kapsamlı araçlar sunar. Neden Kullanılır ve Avantajları

Yönetilen Hizmet: Sunucu yönetimi, yama yönetimi gibi işletim sistemine özgü görevlerden Microsoft sorumludur. Bu, geliştiricilerin uygulama koduna odaklanmalarını sağlar. Otomatik Ölçekleme: Trafik artışına göre otomatik olarak kaynaklar artırılır ve azaltılır. Bu, performansı maksimize ederken maliyeti optimize eder. Birden Çok Dil ve Çerçeve Desteği: .NET, .NET Core, Java, Ruby, Node.js, PHP, Python gibi popüler programlama dilleri ve çerçeveleri destekler. Kolay Entegrasyon: Azure SQL Database, Azure Active Directory ve diğer Azure hizmetleri ile entegrasyon sağlar. DevOps Desteği: Azure DevOps, GitHub gibi popüler devops araçları ile entegrasyon, sürekli entegrasyon ve sürekli dağıtım (CI/CD) işlemlerini kolaylaştırır. Küresel Dağıtım: Microsoft’un küresel veri merkezi ağı sayesinde uygulamaları dünya genelinde kolayca dağıtma ve yönetme imkanı sunar.

Azure App Service Nasıl Kullanılır?

Azure App Service kullanarak bir web uygulaması barındırmak için aşağıdaki adımlar genel bir rehber olarak işlev görür:

  1. Kaynak Oluşturma

    Azure portalına giriş yapın. "portal.azure.com" Menüden yada Search bölümünden App Services seçeneğini bulup seçin. image "Create" seçeneğine tıklayın ve Web App seçiniz image Subscription seçiniz, Resource Group Seçin yada oluşturun. Uygulama için bir ad, yayın türü (Code veya Container) seçiniz. Bu örnek de Code üzerinden devam edeceğim, runtime stack, işletim sistemi ve bölge gibi temel bilgileri girin. image Pricing Plans bölümünde sizin için uygun donanım ve özeliklere sahip planı seçiniz. (Plan seçimi yaparken sadece uygulamanız için ihtiyacınız olan kaynak miktarını göz önünde bulundurunuz. Scale bir yapıya ihtiyacınzı olacak ise scale opsiyonu olan plan seçmek önemli olacaktır. Planların her biri farklı kaynak ve özeliklere sahip olduğu için backup gibi ihtiyaçlarınız var ise plan seçiminde yine önemli tercih karar sürecinde göz önünde bulundurulmalıdır. Private network üzerinde çalışacaksanız seçtiğiniz planın vnet entegrasyonun olması önemli plan seçimi karar süreçlerinden olabilir.) image Seçtiğiniz plan kapsamında Zone redundancy özelliği var ise Zone redundancy terchinizi seçiniz. image Recommended services (preview) bölümünde Web App ile birlikte Database yada Redis gibi ek servislerin deploy işlemlerini eş zamanlı gerçekleştirebilirsiniz. (Bu bölümde yaptığınız deployment yöntemleri sonrası Database yada redis için ek yapılandrıma süreçlerini deploy sonrası yapmayı unutmayınız) image Deployment adımında Continuous deployment sürecinide tamamlamak isterseniz GitHub Action kullanarak deployment gerçekleştrirebilirsiniz.Continuous deployment Enable duruma getiriniz. GitHub Settings bölümünde GitHub Accountunuz ile giriş yapınız. Organization, Repository ve Branch seçimlerinizi gerçekleştirebilirsiniz. Authentication settings bölümünde Basic authentication enable duruma getirmeyi unutmayınız. Bu çalışma sırasında GitHub repolarımda fork olarak eklediğim my-spring-app uygluması kullanılmıştır. Java8 de hazırlanan bu uygulama için Runtime Stack bölümünde Java8 ve Java SE seçmemin sebebi bu yüzdendir.
    image Networking adımında seçmiş olduğunuz plan özelikleri doğrultusunda Enable network injection kullanabilirsiniz. Bu özellik uygulamanızın private network üzerinde çalışmasına imkan sağlayacaktır. Bunun için VNET ve Subnet ihtiyaçlarınız bulunmaktaıdr. Uygulamanızı direk Public olarak erişime sunmak isterseniz Enable public access seçeneğini on duruma getiriniz. image Monitoring adımında Applicaiton Insights kullanabilirsiniz. Application Insights, Azure tarafından sunulan bir performans izleme hizmetidir. Uygulamaların gerçek zamanlı olarak izlenmesini sağlar, hata teşhisleri ve kullanım analizleri yapar. Kullanıcıların uygulama performansını optimize etmelerine, sorunları hızlı bir şekilde tespit etmelerine ve çözümlerine yardımcı olur. Ayrıca, çeşitli programlama dilleri ve platformlarla entegre çalışabilme yeteneği sunarak esnek bir izleme çözümü sağlar. image Tags adımında etiketlerimizi girebiliriz. image Review + Create ekranında tüm yaptığımız seçimleri kontrol ettikten sonra artık sol alt bölümde bulunan Create butonuna basabiliriz. image

Önemli Not-1: üst bölümde gördüğünüz ekran görüntüsündeki fiyatlar bölgelere göre değişiklik gösterebilir. Önemli Not-2: üst bölümde gördüğünüz ekran görüntüsünün sağ alt bölümünde bulunan Download a template for automation linki sayesinde mevcut yapılandırma ve seçimleriminizi ARM template halinde sonraki deploy işlemleri kullanabilir. İş süreçlerinizi otomatize edebilirsiniz.

Deployment ekranını kontrol ediyoruz. Tüm süreçler sorunsuz tamamlandığından emin olunuz. image

GitHub Action kullandığımız için CI/CD sürecini kontrol etmek için GitHub'daki repoma gidiyourm ve Action bölümünü kontrol ediyourm. Yeni bir workflow oluşturdu ve Action Başladımı Kontrol Ediyorum image

Aynı Kontrol işlemini Azure App Sevices içerisinde oluşturduğumuz Web App'in Overview ekranında sağ alt bölümde bulunan Deploymnet Center detaylarında bulabilirsiniz image

  1. Uygulama Yayınlama

    Yayınlamak istediğiniz uygulamayı geliştirin. Visual Studio veya başka bir IDE kullanarak Azure App Service'e bağlanın ve uygulamanızı doğrudan yayınlayın. Alternatif olarak, Azure CLI veya PowerShell gibi komut satırı araçları kullanarak uygulamanızı yayınlayabilirsiniz.

  2. Yönetim ve İzleme

    Azure Portal üzerinden uygulamanızın performansını izleyebilir, log kayıtlarına erişebilir ve ölçekleme ayarlarını yönetebilirsiniz. Otomatik ölçeklendirme, yedekleme ve diğer pek çok yönetim özelliğini konfigüre edebilirsiniz.

Azure App Service, özellikle çeşitli programlama dilleri ve çerçeveleri desteklemesi ve kolay entegrasyon imkanlarıyla geliştiricilere geniş bir esneklik alanı sunar, böylece geliştirme sürecini hızlandırır ve yönetim yükünü azaltır. Bu özellikler, özellikle dinamik uygulamalar ve çoklu dil desteği gerektiren projeler için idealdir.