1. Ana Sayfa
  2. Microsoft Azure
  3. Yazılım Geliştiriciler için Azure: Azure Container Apps

Yazılım Geliştiriciler için Azure: Azure Container Apps

featured

Microsoft Ignite 2021’de duyurusu yapılan Azure Container Apps, mikro servisler için geliştirilmiş “serverless container servisi” olarak özetlenebilir. Azure üzerinde farklı container servisleri bulunuyor ve zaten benzer servisler vardı, bunun farkı nedir diye düşünebilirsiniz. Detaylara girmeden önce diğer container servisleri ile olan farklılıklara bakalım.

Azure App Service, web uygulamalarını host etmek için kullandığımız bir servis ve deploment seçenekleri arasında container seçeneği de var. Hatta docker compose da kullanabiliyorsunuz. Özetle bir web uygulaması için ilk akla gelen servis.

Azure Container Instances ise bize Hyper-V isolated bir pod sağlıyor. Kısaca tanımlamak gerekirse, adından da anlaşılacağı üzere burada servis bize tek bir instance sağlıyor. Scale etmek isterseniz, ne kadar scale ihtiyacınız varsa o kadar servis oluşturmanız gerekiyor.

Azure Kubernetes Service, belki de en çok tercih edilen ya da bilinen container servisi ve bize Kubernetes’in yönetimini servis olarak verdiği için bir yazılımcı olarak büyük bir yükten kurtarabiliyor. Eğer container orchestration ihtiyacınız varsa, tercih etmeniz gereken servis Azure Kubernetes servis ya da kısa adıyla AKS.

Bu servisler dışında özellikle de MS docs üzerindeki karşılaştırmalarda Azure Functions ve Azure Spring Cloud da yer alıyor. Bunlar her ne kadar container ile ne alakası var deseniz de Azure Container Apps ile ortak özellikleri olması sebebiyle bu karşılaştırmalarda yer alıyorlar. Konuyu çok fazla dağıtmadan biraz da Azure Container Apps’tan bahsetmek istiyorum.

Azure Container Apps için container teknolojisi kullanarak serverless mikro servisler geliştirmek için kullanıldığı belirtmiştim. Burada en önemli özelliklerden biri arka planda Azure Kubernetes Service ve DAPR, KEDA ve Envoy gibi açık kaynak teknolojilerin kullanılıyor olması ön plana çıkıyor. Ayrıca arka planda çalışan ve uzun süreli task’ları da destekliyor. Eğer Kubernetes control plane ile managed da olsa uğraşma ihtiyacınız yoksa burada doğru tercih Azure Container Apps olacaktır.

Kısa bir girişten sonra henüz preview aşamasında olan Azure Container Apps servisini Azure Portal üzerinden oluşturarak detaylarına bakalım. Azure Portal üzerinde arama çubuğunu kullanarak da aratabileceğiniz gibi, Containers sekmesi altında da Container App (Preview) olarak bulabilirsiniz (Resim-1).

Resim-1

Standart servis oluşturma bilgilerine ek olarak Resim-2’de de göreceğiniz gibi, Container App Environment bilgisini istiyor.

Resim-2

Hazırda bir ortam olmadığı için yeni bir tane oluşturacağım. Create new link’ine tıkladığım zaman, Resim-3’te göreceğiniz gibi isim ve region bilgilerini istiyor. Preview olmasından dolayı olabilir diye düşünüyorum, şu anda sadece 2 region seçebiliyoruz: North Europe ve Canada Central. Monitoring kısmında ise Log Analytics için workspace seçimi ya da yenisini oluşturma seçenekleri mevcut.

Resim-3

App settings sekmesinde ise kullanacağımız container imajı ve ingress ayarları yer alıyor. Burada hazır bir container image (şu anda sadece Simple Hello World Container mevcut) kullanabileceğiniz gibi, Azure Container Registry, Docker Hub ya da farklı bir registry de kullanabilirsiniz.

Resim-4

Docker Hub üzerinden traefik/whoami imajını kullanmak istiyorum, bu uygulama göndereceğimiz GET isteğine çalıştığı container’a ait host bilgilerini dönen daha çok demo amaçlı bir container. Burada güzel bir özellik de container çalışırken istediğimiz komutları gönderebilmek için command override yapabiliyor olmamız (Resim-5).

Resim-5

CPU ve memory seçenekleri de (yine preview olmasından kaynaklı olabilir) çok fazla değil. Zaten container’ların mümkün olduğunca düşük kaynak tüketecek şekilde tasarlanması gerektiğini de hatırlatmakta fayda var (Resim-6).

Resim-6

Ingress ise container’ın bir http endpoint ihtiyacı olacak mı yoksa sadece arka planda çalışan bir task mı olacağına göre karar verebileceğimiz bir seçecek. Enabled seçtiğimizde ise Resim-7’deki gibi ingress’in internal ya da external tanımı ve port bilgisini girmemiz gerekiyor.

Resim-7

Bu ayarı servisi oluşturduktan sonra Settings altında yer alan Ingress’ten de değiştirebilirsiniz (Resim-8).

Resim-8

Container App servisi oluştuktan sonra, eğer ingress aktif ise Overview altında Application Url bilgisini görebilirsiniz (Resim-9). Değilse de burada bir url yerine Ingress disabled ifadesi yer alacak.

Resim-9

Application url’e tıkladığımız zaman da Resim-10’da göreceğiniz gibi whoami container’ının çalıştığını görebiliyoruz.

Resim-10

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

Referanslar

www.mshowto.org

Azure Container Apps documentation | Microsoft Docs

Introducing Azure Container Apps: a serverless container service for running modern apps at scale (microsoft.com)

TAGs: Azure, Yazılım Geliştiriciler için Azure, Containers, Azure Container Apps, Azure Kubernetes Service, Azure App Service, Azure Container Instances, DevOps

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'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.

Yorum Yap