Aslına bakarsanız evet ama detaya indiğimizde böyle olmadığını görebilir. İnternette üzerinden hizmet aldığınız bütün sunucular gerçek ya da sanal olsun hepsi fiziksel sunucular üzerinden hizmet verir.

Şöyle ki bir fiziksel makineniz olduğunu düşünün, sizin bir web sitesi için web sunucusu, veritabanı sunucusu, e-posta sunucusu, dns sunucu ve ön bellek sunucusuna ihtiyacınız olduğunu hayal edelim. Fiziksel sunucunun üzerine sunucu işletim sistemini kurdunuz ve ihtiyacınız olan sunucu yazılımlarını kurdunuz. Bu senaryoda bütün sunucu yazılımlarını tek bir sunucuda barındırmış oldunuz. Daha sonra ekibinizdeki arkadaşlarınızın  yetkilerine göre tek tek bu sunucu üzerinde hesaplar oluşturup erişim verdiniz. Ancak şöyle bir durum ile karşılaştınız: Sistem e-posta hesaplarını yöneten arkadaşınız DNS sunucu ayarlarına e-postalar spam olarak algılanmasın diye gerekli olan "SPF, DKIM ve DMARC" tanımlamalarını yapmak için DNS'lerden sorumlu olan ekip arkadaşın bilgisi ve izni olmadan müdahale etti. DNS konusunda yetkin olmadığı için hata yaptı ve sistem takibi yapan kişi sitelerin açılmadığını size haber verdi, ne yaparsınız?

Ya da ön bellek sunucusunda bir problem var ve işletim sisteminin yeniden başlaması gerekiyor ve bu işlemin tamamlanması ve gerekli servislerin başlaması için 5 dakika gerekiyor. Çünkü bütün yazılımlar tek bir işletim sisteminde ve işletim sisteminin yeniden başlatılması durumunda bütün sunucu yazılımları ve servisler kapatılacak ve sonra hepsi birlikte tekrar açılacak. Bu süre zarfında e-posta sunucusu, DNS sunucusu gibi konu ile alakası olmayan sunucularda kapacak ve web sunucusu da kapatıldığı için ziyaretçiler sitenize erişemeyecek. DNS sunucusunun kapalı olduğu anda bir ziyaretçi sitenizi açmaya çalışacak ama DNS kayıtlarını alamadığı için bu cevap potansiyel ziyaretçinin bilgisayarındaki DNS önbelleğinden silinene kadar sitenizi ziyaret edemeyecek. Bu işlem 5 dakika sürecek olsa bile siz o an ziyaretçilerinize bu işlemin ne kadar süreceğini söyleyemeyeksiniz.

Ya da elinizdeki projenin iki ayağı var diyelim. Biri web siteniz diğeri de Windows işletim sisteminde çalışan bir otomasyon yazılımı. Web sitenizdeki panel üzerinden yapılan istekleri otomasyon yazılımına iletip işlem yaptırma fikriniz var. Otomasyon yazılımı da sadece Windows'ta çalışıyor siz ise web sitenizi Php ile Linux'ta çalıştırmak istiyorsunuz. Çünkü biliyorsunuz ki Php Linux'ta daha iyi performans veriyor. Windows için ayrı bir sunucu daha lazım almanız gerekiyor gibi görünüyor.

Ve yahut bir projeniz ile birden fazla müşterinize hizmet veriyorsunuz ama bütün müşterileriniz sistemini aynı oranda kullanmıyor. Bir müşteriniz aynı projeniz için 3 birim yük oluşturuyorken bir diğeri ise 30 birim yük oluşturuyor. Sistemi normalden fazla kullanan müşteriniz yüzünden diğer müşterilerinizin işlemleri yavaşlıyor bu sebeple şikayet ediyorlar. Fazla yük oluşturan müşteriniz için sistemi şu kadar kullansın diye bir limit uygulamanız gerekiyor ama bütün müşterileriniz tek bir sunucuda olduğu için bunu yapamıyorsunuz. Bu müşteriniz için ayrı bir sunucu almanız lazım galiba.

Peki böyle mi olması gerekiyor?

Elbette ki hayır. Yapmanız gereken tüm sunucu yazılımları için ayrı ayrı sunucular oluşturmak. Ama bu da maliyetli hepsi için ayrı ayrı sunucu satın almak için bütçeniz yok. Bunun çözümü ise sanallaştırma yapmakta. Yani elinizdeki tek fiziksel sunucuyu ihtiyacınız oranında sanal ortamda ayırıp her birinde birbirinden farklı işletim sistemi ve yazılımlar çalıştırabilirsiniz.

Sanallaştırma Ne Demek?

Bulut işlemin temeli olan sanallaştırmanın tam bir tanımı yok. Sanallaştırma yazılımlarını geliştiren ekipler/firmalar kendilerine göre farklı tanımlamalar yapıyorlar. Anafikir ise "Fiziksel bir bilgi işlem ortamı yerine simülasyon uygulanmış bir bilgi işlem ortamı oluşturulmasıdır." yani sanallaştırma teknolojisi fiziksel bir bilgisayar üzerindeki işlemci, bellek ve hafıza gibi kaynakların, birbirinden yalıtılmış olarak birden çok işletim sistemi ile aynı anda kullanım sağlayan bir paylaşım sistemidir.

İlk sanal makine tanımı Gerald J. Popek ve Robert P. Goldberg tarafından yapılmıştır ve sanallaştırmanın en temel özelliği ana makine içinde çalışan sanal makine içinde ki bir yazılım içinde bulunduğu sanal ortamı kırıp dışarı çıkamamasıdır. Bir diğer ifade ile sanal ortamda çalışan makine sanal ortamda çalıştığının farkında değildir ve gerçek bir makina gibi çalışır. Matrix'i izlediyseniz Neo'nun böyle bir ortamda hangi hapı aldığı önemli değildir.

Tabi yukarıda verdiğim örneklerle sanallaştırma sadece sunusu tarafında oluyormuş gibi bir izlenim vermek istemem. Sanallaştırmayı güvenlik duvarlarında, ağ cihazlarında, ağ depolama cihazlarında gibi bir çok teknolojik ortamda yapabilirsiniz.

Her Sunucu Sunucu mudur?

Bu da ne demek, diye soran bakışlarınızı görür gibiyim :). Neden bu başlığı attığımı şöyle açıklayayım: Sunucu dendiğinde Sanal Sunucu, VDS, VPS, Hosting gibi terimleri yeni başlayanların iyice birbirine karıştırdığını görüyorum.

Öncelikle "Hosting" sunucu değildir! Evet hosting sunucu değildir. Fiziksel ya da sanal bir sunucu içinde bir alanı ve belli bir trafiğin size ayrılmasıdır. Hosting paketi aldığınızda bir sunucunuz olmaz. Hosting paketi aldığınızda sizinle aynı sunucuda hosting paketi alan kişilerle aynı sunucuyu paylaşırsınız. Yetkiler dahilinde birbirinizin dosyalarını ve işlemlerini göremez müdahale edemezsiniz. Sunucu üzerinde bir müdahale hakkınız yoktur. Ancak sunucu üzerinde yapılan işlemler birbirinizi etkiler.

Otelde müşteri olmak gibi düşünebilirsiniz. Başkasının odasını göremez karışamazsınız. Aynı yemekhaneyi kullanır, otele aynı kapıdan giriş/çıkış yaparsınız. Diğer müşteriler yemeğin hepsini yerse siz de yeni yapılacak servisi beklemek zorunda kalırsınız. Sunucuda diğer müşteriler sunuyu yorması durumunda sizin de etkileneceğiniz gibi. Otelin üzerinde değişiklik hakkınız da bulunmaz. Sunucuya özel bir paket kuramayacağınız gibi. Parasını ödeyerek oda servisinden yararlanabilirsiniz. Hosting paketinize özel IP tanımlatma gibi. Kişisel web site ya da basit projeler için en uygun fiyatlı çözümdür.

VPD/VPS'te ise bir fiziksel makinenin altında sanal sunuculara sahip olursunuz. Diğer müşteriler ile birbirinizi görmez ve müdahale edemez. Hostingden farklı olarak bu sefer siz otel sahibi olmuş olursunuz. Hatta isterseniz siz de hosting paketleri satabilirsiniz. Sunucunuza istediğiniz paketi/yazılımı kurabilirsiniz. VDS ile VPS arasındaki fark sanallaştırmanın nasıl yapıldığı ile alakalı. VPS'te kaynaklar yazılımsal olarak ayrılıyor. Örneğin işlemcinin bir çekirdeği size ayrılır, bunu 2 Ghz olduğunu düşünelim. Siz bu 2 Ghz'i kullanırsınız ancak ihtiyaç durumunda bu değeri aşığ VDS'te kaynaklar donanımsal olarak ayrılmış oluyor.

Bulut sunucu ise VPS