Docker mı VMware mi?
Merhaba,
Docker mı VMware mi? isimli bu yazımda bana en çok sorulann cevaplarını açıklayacağım. Geçtiğimiz günlerde Docker ile ilgili bir makale yazmıştım. Bu yazıma aşağıdaki linkten ulaşabilirsiniz.
Docker mı VMware mi?
Bu konunun aslında bir cevabı yok. Çünkü biri virtual machine bir diğeri ise container teknolojisi. Gerçek hayatta aslında her ikiside birbirini tamamlayıcı teknolojilerdir. Server Virtualization ve Container mimarisi aslında birbirinden tamamen farklı ürünler. Bundan dolayı biri diğerinin yerini alması gibi bir durum söz konusu değil. Yukarıda linkini belirtmiş olduğum makalede zaten bu konu ile ilgili detaylı bilgi vermiştim ancak bu yazımda birazdaha detaya gireceğim.
Basitçe söylemek gerekirse, docker kullandığınızda işletim sistemi düzeyinde bir işletim sistemi izolasyonu sağlarken, server virtualization (yani donanım sanallaştırma) donanım katmanında bir izolasyon sağlar. Bu nedenle IaaS kullanım durumlarında server virtualization ideal bir uyum sağlarken, containerler taşınabilir ve modüler yazılımların paketlenmesi için en uygun olanıdır. Yinede iki teknoloji ek avantajlar için birbirleriyle birlikte kullanılabilir. Zaten mimari tasarlanırken genellikle bu şekilde tasarlanıyor. Docker konumlandırılırken VMware vSphere üzerinde bir cluster’da virtual machine olabilir çalışabiliyor. Böylece docker üzerinde container’ları oluşturabiliyorsunuz.
VMware:
Şimdi ilk olarak VMware hakkında detaylı bir bilgi vermek istiyorum. Bu blog üzerinde senelerdir zaten VMware anlatıyorum. Bu makalemde bir daha VMware’in ne olduğu hakkında bilgi vereceğim 🙂 Fiziksel sunucuyu alıyoruz ve üzerine vSphere ESXi isimli işletim sistemini kurduktan sonra artık bu fiziksel donanımı sanallaştırmış oluyoruz. Yani fiziksel sunucu üzerinde yer alan donanımları sanallaştırmış oluyoruz. vSphere ESXi diye burada bahsettiğim VMware’in sanallaştırmayı mümkün kılan hypervisor teknolojisidir.
Bunun sayesinde fiziksel donanım üzerinde birden fazla işletim sistemini kendine ayrılmış kaynaklar ile oluşturabilirsiniz. Bu işlemden sonra artık fiziksel donanım üzerinde virtual machine’ler oluşturmaya başlayabiliyoruz. Her virtual machine’in kendisine özel vCPU, Memory ve diğer bileşenleri bulunur. Virtual machine diye burada bahsettiğim aslında işletim sistemi ve uygulamalardan oluşan objelere biz virtual machine diyoruz. Virtual machine ve ESXi ile ilgili detaylı bilgi için aşağıdaki makale serisini okuyabilirsiniz.
ESXi doğrudan fiziksel sunucu üzerine kurulduğu için öncesinde ekstra olarak bir işletim sistemi kurmanıza gerek bulunmaz. ESXi kurulumu ile ilgili aşağıdaki makalemi inceleyebilirsiniz.
VMware vSphere ESXi 7 Kurulumu
vSphere ESXi’i kurduktan sonra Browser üzerinden ESXi’a erişim sağlayabilir ve hemen virtual machine’lerinizi oluşturabilirsiniz. Ardından bu virtual machine’lere işletim sistemi kurabilirsiniz.
Docker:
Docker projesinin ana amacı, developer kendi application’ini container’lar üzerinde oluştursun, deploy etsin ve çalıştırsın ve böylece application yönetimini basit bir hale getirmesidir. Zaten Docker’in hem developer hem de operatörler için önemli avantajları vardır. Docker container’ları çok hızlı bir şekilde deploy edebilirsiniz. Üstelik minimum gereksinimleri karşılayarak hızlı bir şekilde bu işlemi gerçekleştirebilirsiniz. Deployment işlemini gerçekleştirdikten sonra çalışan container’larınızı uyumluluk sorunları olmadan makineler arasında taşıyabilir ve çalıştırabilirsiniz. İsterseniz container’larınızı sürümlendirebilir, arşivlenebilir, paylaşabilir ve bir önceki sürümleri geri almak için kullanabilirsiniz.
Hem VMware hem de Docker sanallaştırma teknolojileri olarak kategorilere ayrılabilse de, her biri için en uygun kullanım durumları oldukça farklı olabilir. Siz fiziksel sunucu üzerinde VMware sayesinde birden fazla virtual machine çalıştırabilir ve böylece IaaS çözümlerini sağlayabilirsiniz. Docker container’ları, docker engine tarafından yönetildiğinden tam olarak izole edilmemiştir. Yani VMware’in aksine Docker tüm bir virtual machine oluşturmaz. Bunun yerine bir işletim sistemi üzerinde tüm gerekli bileşenler container içinde paketlenir.
Docker container’ler genellikle virtual machine’lerden daha hızlıdır ve daha az kaynak tüketir. Ancak tabiki burada VMware’in sanallaştırmasının kendine özgü temel avantajları vardır. Bu avantajlardan önemli bir taneside güvenlik ve izolasyondur. Virtual machine’ler gerçek donanım düzeyinde izolasyon sağladığından, exploit gibi saldırılara uğrama olasılığı daha azdır. Ancak Docker ‘da böyle bir avantaj tam olarak bulunmuyor.
VMware, fiziksel donanımını taklit ederken Docker, uygulamanızın çalıştığı işletim sistemini taklit eder. Docker, sunucu donanım kaynaklarını taklit etmek zorunda olmadığı için çok daha basit bir sanallaştırma teknolojisidir. VMware, gerçek makine donanımı gibi, işletim sistemlerini ve tam sunucu gerektiren diğer görevleri yüklemenizi sağlar. Docker container‘in sağlanması ve başlatılması, bir VMware üzerinde oluşturacağınız virtual machine’in başlatılmasından daha hızlıdır. Sonuçta, bir Docker container’i çok daha düşük bir kaynaktır. Container, RAM ve virtual machine’in diğer gereksinimlerine kıyasla çok az ek yüke sahiptir. Ancak bu, container çalıştırdığınızda uygulamalarınızın mutlaka bir VMware virtual machine’inden daha hızlı olacağı anlamına gelmez. Sanallaştırma, bare metal’e göre daha avantajlıdır çünkü kaynaklar daha verimli kullanılır. Application’in bulunduğu ortam ve makine özelikleri (CPU, Memory, Disk gibi) ve diğer farktörler performansa doğrudan etki eder.
Özet ile Docker mı VMware mi? sorusunun cevabı, Docker VMware ile rekabet etmiyor. Docker’ı konumlandırırken zaten VMware vSphere ESXi üzerinde konumlandırıyorsunuz. Elbette sanallaştırma ortamının sizlere sunmuş olduğu yetenekleride kullanıyorsunuz. Çok fazla yanlış anlaşılmalar var. Docker geldi artık VMware’in yerini alacak vs vs. Bu böyle bir teknoloj değil. Server sanallaştırma yani Server Virtualization yerini alabilecek bir teknoloji yine Server Virtualization olacaktır. Ancak docker burada server virtualization yapmıyor. Docker dediğiniz container teknolojisi bir server sanallaştırma ürününe bağlı olarak çalışıyor 🙂
Umarım faydalı olmuştur.
İyi çalışmalar.
ESXi üzerindeki linux sanal makine ile uzun zaman docker kullanmışlığım var, Tabi Vmware bu işleri enterprise yapıya oturtarak hem HA özellikleri kattı hem de kolaylaştırdı.
Kesinlikle katılıyorum.