Azure Compute Hizmetleri için Karar Ağacı – Decision tree for Azure compute services

Bir uygulamanız var ve siz bunu azure üzerinde
konumlandırmak istiyorsunuz. Azure compute başlığı altında aslında size pek çok
hizmet sunmaktadır. Ancak kimi zaman bu hizmet çeşitliliği kafa karışıklığına
neden olabilmektedir. “Decision Tree” olarak isimlendirdiğimiz aşağıdaki akış
şeması işleri biraz daha sadeleştiriyor.

Bu akış şemasını başlangıç noktası olarak ele alın. Her
uygulamanın kendine özgü gereksinimleri vardır, bu nedenle öneriyi bir başlangıç
noktası olarak kullanın. Daha sonra, daha ayrıntılı bir değerlendirme yapın ve
aşağıdakilere bakın:

·         Feature set

·         Service limits

·         Cost

·         SLA

·         Regional availability

·         Developer ecosystem and team skills

·         Compute comparison tables

Bunlar aslında bir uygulamayı bulut üzerinde
çalıştırmak için bilmeniz gereken en temel parametrelerdir.

Eğer kompleks uygulamalarınız var ise yani uygulamanız
çoklu iş yüklerinden oluşuyorsa, her iş yükünü ayrı ayrı değerlendirin. Tam bir
çözüm belki iki veya daha fazla cumpute hizmeti ile sunulabilir.

clip_image002

Peki bu akış şeması bize ne anlatıyor? Öncelikle iki
temel tanımımız var bunları biliyor olmalıyız.

Greenfield

Greenfield yazılım veya dağıtım, daha önce hiç
bulunmayan bir kurulum ve / veya yapılandırmadır. Yani sıfırdan inşa etmeye
başladığınız projeler için kullanılır.

Brownfield

Bir brownfield dağıtımı, var olan bir altyapıya
yükseltme veya ekleme anlamına gelir. Yani yeni bir proje değil var olan bir
proje veya var olan bir proje için güncelleme, değişiklik anlamına
gelir.

Örnek yeni bir proje yapıyor olun, bu durumda ilk
sorunun cevabı YES olacaktır yani sağ bölüm ile devam ediyoruz;

clip_image003

İlk soru çok basit aslında, bu yazılım, dağıtım, proje
için tüm kontrolün sizde olması mı gerekiyor. Yani kuracağınız OS’ den tutun,
IIS veya .net bileşenleri vb? Eğer bu sorunun cevabı YES ise bu durumda sizin
için en iyi çözüm Azure üzerinde IaaS bir hizmet almanızdır. Yani sanal makine
hizmeti almanız yeterlidir.

Peki böyle bir gereksinim yok ise No diyerek bir alt
bölüme inebilirsiniz.

High performance computing workloads, yani yüksek
performans gerektiren iş yükleriniz olacak mı?

Azure, bulutta büyük paralel ve toplu hesaplama
işlerini çalıştırmanızı sağlayan ve isteğe bağlı kolay bir şekilde
genişleyebilen bilgi işlem kaynaklarını sağlamaktadır.  Eğer böyle bir ihtiyaç var ise bu durumda Azure Batch kullanımı olacak
demektir.

Azure batch sayesinde büyük ölçekli paralel ve yüksek
performanslı bilgi işlem (HPC) işlerini verimli bir şekilde yönetebilirsiniz.
Temel olarak azure batch sanal makinelerden oluşan bir compute pool oluşturur ve
yönetir, istediğiniz uygulamaları yükler veya yine istediğiniz işleri zamanlar
ve çalıştırır. Bu sayede cluster veya zamanlanmış görevler için ayrı
uygulamalara ihtiyaç duymazsınız. Sadece Azure batch için yayınlana API’ leri
veya araçları kullanmanız yeterlidir.

clip_image005

Peki HPC ihtiyacı yok ise bu durumda yine No diyerek
bir alt bölüme inebilirsiniz.

clip_image006

Aslında konuyu adım adım ve uzun uzadıya anlatmaya
gerek yok sanırım. Son bu örnek ile konuyu bağlamak istiyorum. Bir sonraki
sorumuz bir mikroservis kullanacak mısınız?

Eğer yeni nesil bir yöntem olan yazılım geliştirmede
son dönemde sıklıkla gördüğümüz mikro servis kullanımı olacak ise yine işler
değişiyor. Eğer bir yazılımcı iseniz zaten Monolithic ve MicroService farklarını
burada anlatmamın bir anlamı olmaz. Ama özetle bir birinden daha bağımsız ve
esnek parçalardan oluşan bir proje istiyorsanız mutlaka Micro Service
kullanılmaktadır. Bu sayede yazılım ekipleri bir birinden daha bağımsız kod
geliştirmekte ve hatta deployment yapabilmektedir. Genişletilmesi daha kolay ve
bağımsız olur. Eğer sizin uygulamanızda da micro servis olacak ise bu durumda
App Service kullanıyor olmanız gerekmektedir.

Evet, uzun lafın kısası alında Microsoft bence çok
güzel bir akış diyagramı ile aslında bizlere ne tür uygulamalar için azure
üzerinde ne tür hizmetleri kullanabileceğimizi veya kullanmamız gerektiğiniz
bize özetliyor. Bu sayede aslında azure üzerinde koşacak uygulamalar içinde
daha doğru bir maliyet hesabı yapılmış olur.

Umarım faydalı bir makale olmuştur. Bir sonraki
makalemde görüşmek üzere.

Kaynak

https://www.cozumpark.com/blogs/cloud_computing/archive/2018/06/04/azure-compute-hizmetleri-icin-karar-agaci-decision-tree-for-azure-compute-services.aspx