Bugünlerde sanallaştırma ve konteyner teknolojileri hakkında etrafta oldukça fazla bilgi var. Bu kavramlara basit olarak bir açıklama getirmek ve konuyu merak edenlere bir başlangıç noktası sunmak isteriz.
Sanallaştırma
İki tip sanallaştırma vardır. Tip 1 donanım ile arasında herhangi bir katman olmadan donanımın hypervisor özelliği kullanılarak bir sanallaştırma ve tip 2 ise host işletim sistemi üzerinde kullanılarak sanallaştırmadır.
Tip 2 | |
---|---|
Donanım | Donanım |
Sanallaştırma (Hipervior) | işletim Sistemi |
Sanal Makineler | Sanallaştırma (Hypervisor) |
Sanal Makineler |
Sanallaştırma, sadece bir işletim sisteminin izolasyonunu sağlayarak sanallaştırma gerçekleştirmez. Yanında gerekli olan disk, network gibi donanımların sanallaştırmasını da gerçekleştirerek sanallaştırma işlemini yapar. Bunu yapan şey ise yukarıda gördüğünüz Sanallaştırma (hypervisor) katmanıdır.
Tip 1 sanallaştırma piyasada en çok kullanılan sanallaştırma türü olarak kendini kanıtlamıştır. Donanım ile arasında herhangi ek bir katman olmadığı için çok hızlı çalışır. Tip 2 sanallaştırma ise daha çok son kullanıcının kullandığı sanallaştırma çeşididir.
Tip 1 | Tip 2 |
---|---|
KVM | VirtualBOX |
Citrix XENServer | VMware Player |
VMware vShpere | |
VMware EsXi |
Not: Ürün isimleri kesinlikle reklam veya tavsiye vermek amacı ile değil, sadece örnek vermek amaçlı kullanılmıştır.
Konteyner
Konteynerler, hypervisorler kadar eski bir teknoloji değil. Docker bu kadar ünlü olmadan önce LXC (Linux Containers) servisleriyle Docker’ın yaptığı çoğu işi yapabiliyorduk. Zaten Docker’da DotCloud olarak ilk ismine sahip LXC’ye yapılmış eklentilerden ibaretti. Peki ‘Docker, LXC’nin yapamadığı ne yaptı da bu kadar ünlü oldu ?’ derseniz, bu sorunun cevabını aşağıdaki listede bulabilirsiniz :
-
Kullanım kolaylığı
-
Kararlılık
-
Çoklu platform desteği
-
Versiyonlama
-
Ortak kütüphane kullanımı
-
Ortak imaj kullanımı
-
İmajların yeniden kullanılabilir olması
Docker, teknoloji olarak LXC, cgroups ve kernel’in (çekirdek) yani işletim sisteminin çekirdeğinin özelliklerini kullanarak süreçlerin (process) birbirinden izole olarak çalışmasını sağlar. https://en.wikipedia.org/wiki/
Tüm bunlara ek olarak Docker sayesinde Kubernetes gibi yapılara kavuştuk ki bu gibi teknolojiler elimizde bulunan donanımlardan ve yazılımlardan en üst seviyede istifade edebilmemize, çok daha maliyet etkin ve efektif olarak işlerimizi yürütebilmemize olanak sağladı !