Bulut sunucular ile dedicated sunucuları karşılaştırdığımız serimize devam ediyoruz. Olağan dışı kaynak kullanım durumlarını ele aldığımız yazımızdan sonra karşılaştırmayı biraz daha derinleştiriyoruz.
Bu yazımızda bulut sunucu ve dedicated server karşılaştırmasına cluster yapılar açısından yaklaşacağız. Karşılaştırmaya geçmeden önce cluster yapılar nedir? sorusunu kısaca cevaplayarak yazımıza başlayalım.
Cluster Yapılar
Cluster yapılar ya da cluster mimarisi en yalın tanımıyla; belirli konfigürasyonlar ile yapılandırılarak aynı amaç için birlikte ya da yedekli çalışan sunucu kümeleridir. Bu açıdan bakıldığında bir küme, tek bir sunucu kullanılarak elde edilene göre daha fazla kullanılabilirlik (availability), güvenilirlik (reliability) ve ölçeklenebilirlik (scalability ) sağlamak için birlikte çalışan ve “node” olarak adlandırılan iki veya daha fazla sunucudan oluşur.
Cluster yapılar için verebileceğimiz en basit örnek, 1 adet uygulama (apache, nginx, IIS…) ve 1 adet veri tabanı (MySQL, MsSQL) sunucunun yan yana çalıştığı modeldir.
Peki, cluster mimarisine bulut tabanlı sunucular mı, dedicated sunucular mı daha uygundur?
Uygulama ve Veri Tabanı Sunucuları
Uygulama ve veri tabanı servisleri web projelerinin vazgeçilmez ikilisidir.
Application yani uygulama sunucuları, özellikle performans amacıyla birden fazla olacak şekilde planlanabilir. Bu yapıda, tüm sunucular aynı network üzerinde, bir load balancer (yük dengeleyici) arkasında çalışacak ve birbirinin kopyası olacak şekilde tasarlanmaktadır.
Bu ayarlamalar sonucunda en basit iş ve işçi problemlerinde olduğu gibi birim zamanda daha fazla ziyaretçiye cevap verebilme imkânı yaratılmış olacaktır.
Bu noktada cloud sunucular, bu tasarım için biçilmiş kaftan olarak karşımıza çıkmaktadır. Cloud sunucularda anlık ihtiyaç durumunda yeni uygulama sunucuları oluşturmak mümkündür ve düşük trafiklerde sunucular kendilerini imha ederek maliyet avantajı sağlayabilir. Ancak bu imha işlemi için saatlik kaynak kullanımına izin veren bir servis sağlayıcınızın olması gerekmektedir. Ayrıca uygulama servislerinin çalıştığı bulut sunucularda ortak disk (CIMS, NFS gibi) seçeneği mümkün olduğundan, sunucuların üzerinde bulunan dosyaların tamamen senkronize olduğundan emin olmak da mümkündür.
Dedicated sunucular ise hızlı bir şekilde servise alınamadığından bu tasarıma ancak önceden planlama ile dahil edilebilirler ve sunucular arasındaki dosya senkronizasyonu için rsync, lsync, glusterfs gibi 3. parti yazılımlara ihtiyaç duyarlar. Olumlu olarak niteleyebileceğimiz durum ise, düşük trafik gibi durumlarda “power off” duruma geçerek elektrik konusunda maliyeti sıfırlayabilirler.
Güncel veri tabanı servisleri açısından bakacak olursak, cluster yapıyı destekleseler de pratikte çok nadir tercih edilen tasarımlardır. Bu noktada en büyük etken olarak MsSQL açısından lisans zorunluluğu, MySQL açısından ise tecrübe eksikliği gösterilebilir. Bu etkenler göz önüne alındığında veri tabanı servisleri, bulut ya da dedicated tek bir sunucu üzerinde çalıştırılır.
Bulut sunucu altyapısının kullanıldığı çoğu projede veri tabanı sunucuları yüksek IOPS ihtiyacı nedeniyle dedicated sunucular üzerinde çalıştırılmaktadır. Bu durum ise single-point-of-failure yani tüm projenin devamlılığını tek noktaya indirgemiş olmaktadır. Ancak bu noktada flash storage teknolojisi ile birlikte veri tabanı sunucularını bulut sunucular üzerinde, IOPS sorunları yaşamadan çalıştırmak mümkün olmaktadır.
Yedeklilik
Cluster yapılarda, uygulama sunucularına yedeklilik açısından baktığımız zaman dedicated sunucuların en büyük handikaplarından biri aşılmış oluyor: Load balancer arkasında konumlanmış, n sayıda ve birbirinin kopyası olan sunuculardan birkaçının donanımsal sorun yaşaması ve çalışamaz duruma gelmesi durumunda herhangi bir engelle karşılaşılmadan sistemin çalışması devam ettirilebilmektedir.
Bulut sunucular ise tasarımları gereği zaten yedekli yapıda oldukları için bu konuda nötr kalmaktadırlar. Ancak bulut sunucuların compute tarafında yedekli tasarımı söz konusu olsa da bu sunucular aynı storage’a bağlı olduğundan tek noktadan hata olasılığı (single-point-of-failure) oluşmaktadır.
Bu özellikler çerçevesinde baktığımızda cluster mimarisinde tasarlanmış dedicated sunucuların yedeklilik açısından daha avantajlı olduğunu rahatlıkla söyleyebiliriz. Fakat bu noktada sunucuların senkronize edilmesi şartını da hatırlatmak gerekir.
Veri tabanı sunucularında ise yedeklilik açısından bulut sunucular daha avantajlı bir pozisyona sahiptirler. Ancak dedicated sunucuların da bu konuda avantaj yakalamalarını sağlayan bir nokta bulunmaktadır; Database replication. (MsSQL tarafında çok daha farklı isimlerle karşılaşmak mümkün: merge, log shipping, always-on, snapshot replication, transactional replication vb.)
Daha önceden de belirttiğimiz gibi lisans zorunluluğu ve bilgi-deneyim eksikliği sebebiyle çok fazla pratik uygulama görülmese bile dedicated sunucuların da bu konuda bir cevabı olduğunu söylemek yanlış olmaz.
Vargonen olarak benzersiz flash storage altyapımız ile veri tabanı sunucularınızın ihtiyaç duyduğu yüksek IOPS ihtiyacını rahatlıkla karşılıyor, yedekli tasarlanmış load balancer servisimiz ile sunucularınız arası yük dağılımını ve sunucu yönetim hizmetlerimiz ile veri tabanı replikasyon işlemlerinizi rahatlıkla gerçekleştiriyoruz.