background

Azure Service Fabric Mesh

Herkese Merhaba :)

Bu yazımda sizlere Azure’un Mikroservis mimarisi kullanılarak yazılmış ve containerize uygulamalar için sunmuş olduğu alternatif bir container ve mikroservis orkestrasyon çözümü olan Service Fabric Mesh hizmetinden bahsetmek istiyorum.

Azure Service Fabric Mesh Nedir?

Geliştiricilerin herhangi bir altyapı sürecini (network, storage vs.) yönetmeden mikroservislerin build ve deploy işlemlerine olanak sağlayan yönetilebilir bir Infrastructure as a Service (IaaS) Azure hizmetidir.

Burada Service Fabric Mesh hizmetinin IaaS mi yoksa PaaS mi olduğu konusunda Microsoft’un yayınlamış olduğu dokümanlarda direk söylemiş olduğu bir bilgi yok. Ancak yaptığım araştırmalar sonucunda IaaS kategorisinde olabileceğini düşünüyorum. Aksi bir bilgi için yorum bırakabilirsiniz :)

Service Fabric Mesh üzerinde bulunan uygulamalarınız, herhangi birşey yapmanıza gerek kalmadan çalışabilir ve scale olabilmektedir.

Yapmanız gereken tek şey geliştirmiş olduğunuz kodları yükleyerek, gerekli olan kaynak ve gereksinimlerin sınırlarını belirtmek. Sonrasında Service Fabric Mesh, uygulamlarınız için gerekli altyapıyı otomatik olarak tahsis eder ve altyapı hatalarını da yöneterek uygulamalarınızın yüksek düzeyde kullanılabilir olmasını sağlar. Burada odaklanılması gereken şey altyapı değil, uygulamanın durumu ve yanıt süreleri olmalıdır. Zaten altyapıyı Servic Fabric Mesh sizin yerinize hallediyor olacak.

Gelin şimdi Azure Service Fabric Mesh’in birkaç özelliğine göz atalım.

Azure Service Fabric Mesh:

  • Container içinde çalıştırılabilen tüm programlama dillerini ve frameworkleri desteklemer
  • Visual Studio 2019 ve Visual Studio Code araçlarını destekler, .Net ve .Net Core uygulamaları için güçlü bir düzen ve hata ayıklama deneyimi sağlar.
  • Var olan uygulamaları containerlara taşımak için gerekli altyapıyı sağlar.
  • Azure’da yeni mikroservis uygulamaları build ve deploy edilebilmektedir. Diğer Azure hizmetlerinde veya containerlarda çalışan mevcut uygulamalar ile entegre edilebilmektedir.
  • Kendi sanal network tanımları üzerinden çalışmaktadır.
  • Sağladığı altyapılar ile çalışan uygulamalar kolayca monitör edebilir, debugging, upgrade ve versiyonlama işlemleri kolayca yönetilebilmektedir.
  • Uygulamaların deployment ve failover senaryoları çok daha verimli yapılabilir.
  • Continuous Integration süreçlerine uygun bir altyapı sunar.
  • Burada kullanılan kaynaklar Azure Resource Manager kaynaklarıdır. Azure Resource Manager kaynaklarının tüm özelliklerinden yararlanılabilir. (Örneğin; Role-Based Access Control, Audit Trail gibi özellikler örnek verilebilir.)
  • Application Insights veya herhangi bir aracı kullanarak operasyon izleme ve uyarı ayarları yapılabilir, sonrasında bunlar ile ilgili veriler monitör edilebilmektedir.
  • Diğer kullanılacak Azure hizmetleri için otomatik ölçeklendirme kuralları belirtilerek kaynak kullanımları optimize edilebilmektedir.
  • Farklı coğrafi bölgelerde çalışacak sunucu koleksiyonları oluşturabilir.
  • Uygulama için en uygun ortamı belirler ve çalıştırır.
  • Kullanılabilirlik, ölçeklendirme, yönetim, mesaj yönlendirme, güvenilir mesajlaşma, kesintisiz upgrade, güvenlik yönetimi, olağanüstü durum kurtarma, durum yönetimi, konfigürasyon yönetimi gibi birçok önemli özelliği mevcuttur.
  • Swagger kullanılarak oluşturulan REST servis yapısını desteklemektedir.
  • Uygulamalar buraya deploy edilirken, JSON ve YAML (Resource Model) dosya formatlarını desteklemektedir.
  • Azure’un sağladığı tüm güvenlik ve uyumluluk özelliklerini kullanılabilmektedir.

Tabi bu saymış olduğum özelliklerin yanısıra Azure Service Fabric Mesh hizmetini kullanırken karşılaşabileceğimiz bazı kısıtlar mümkün. Bunlardan birkaçını aşağıda belirttim.

  • Henüz daha çok yeni olan Azure Service Fabric Mesh ilk olarak 2018 yılında piyasaya sürülmüş ve şuan için preview versiyonundadır. 2020 Mayıs ayına kadar herhangi bir güncelleme gelmeyecektir.
  • Azure Service Fabric Mesh preview versiyonu production ortamları için uygun değildir. Sadece test ortamlarında kullanılması varsayılmaktadır.
  • Windows ortamları , Microsoft ürünleri, .Net uygulamalar için sağlamış olduğu support oldukça güçlüdür. Ancak diğer teknolojiler için sağladığı support kısıtlıdır.
  • Kullanılacak uygulama .Net framework ile yazılmış olsa da kullanacağı teknoloji altyapıları (DB, Caching vs.) Microsoft teknolojileri harici ise Azure Kubernetes Service kullanmak belkide daha iyi bir seçenek olabilir.
  • Cloud native uygulamalar için yeterli altyapıyı sağlıyor olsada, native uygulamalar için henüz yeterli altyapısı yoktur.
  • Azure Service Fabric Mesh’i kullanabilmek için Servic Fabric programlama modeli kullanılanmamalıdır.

Henüz daha çok yeni olan bu Azure hizmetini canlı ortamlarda kullanmak için erken olsada, gelecekte belkide diğer container orkestrasyon toollarının yerine geçebilir. Neden olmasın :)

Aşağıdaki akış şeması sizin için hangi Azure hizmetinin daha uygun olacağını seçerken yardımcı olacaktır.

Bir sonraki yazımda görüşmek üzere :)

Reference

Nasıl yardımcı olabiliriz?