4. Yüzeysel Bakacak Olursak
• Ulaşabileceğimiz bir shell’i olan (SSH veya başka bir yolla)
• VM’e benzer yönleriyle
–Üzerinde izole process çalıştırabileceğim
–Kendi network arabirimleri olan (eth0,eth1)
–Root veya Administrator olarak çalışabileceğim
–Üzerinde uygulama/paket kurabileceğim ( apt-get / yum)
–Servis çalıştırabileceğim (Apache,Nginx,Tomcat)
–Kendi firewall’u (iptables) ve routing tablosu olan
Şu ana kadar kullanmakta olduğumuz VM’ler ile aynı özellikleri taşıyan
4
5. Derinlemesine Baktığımızda
• Bazı yönleriyle VM’e benzetemeyeceğimiz
– Sunucuya ait tek bir çekirdeği olan (Linux veya Windows)
– Boot etmeyen !!
– Aslında kendisi sadece bir dizi process’den oluşmuş, üzerinde koştuğu fiziksel veya sanal
makinelerde bir process’e benzeyen (w3wp.exe, mysqld, java)
– Bir isletim sisteminde olmasi gereken belki bir sürü bileşenden mahrum, sadece çalıstırmak
istediğiniz process’e göre uyarlanmış / paketlenmiş bir tip şablon (ssh yok crond yok apache
var php var mysql var)
– Katmanlı , tekrar tekrar kullanılabilir
– Statik , imajı değtirmektense, üzerine eklenti yapılabilen (Git gibi, Versionlama gibi)
– Kısa veya uzun ömürlü olarak tasarlanabilen
– İşi bittiginde üzerindeki verininde yok olacağı
– Aynı zamanda volume denen kalıcı bilgininde saklanabilecegi
– Veya data containerlar yaratılarak diğer containerlara veri saglayabileceği bir yapıya sahip
5
7. Vmware Tarafından Baktığımızda
• VMDK yok
• Datastore / Clustered Datastore yok
• vDS yok
• vCenter yok
• DRS yok
• vMotion yok
• FT yok
• Hicbir Software Defined bilesen yok
7
8. Peki Container Yeni Bir Kavram Mi ?
• OpenVZ - Yil 2005
– Linux
– Checkpoint/Backup/Restore/live Migration
• Virtuozzo (Ticari)
– Linux
– Windows
• Jails
– FreeBSD - Yil 2000
• Zones
– Solaris Containers – Yil 2004
• LXC (2008)
• LXD Ubuntu ile beraber …
8
9. Container Runtime Nedir ?
Container Runtime = API / Abstraction of low level technical details
• Docker
• Garden
• Rkt
• runC
• Warden
• Bonneville (Container on the hypervisor) Vmware Project
9
10. Paketleme
• Container’larin bize getirdiği en güzel özellik ihtiyacınız olan tüm ortamı bir yaml dosyası
formatında tanımlayıp, ayağa kaldırabiliyor olmamız (vApp Template ile benzerlik tam olmasada
düşünülebilir)
• Paketlediğiniz ortamı herhangi bir yerde çalıştırabiliyor olmanız
• Tek yapmamız gereken eğer Docker kullanıyorsanız yarattığınız paketleri Docker Hub‘a atmak
ve buradan çekip çalıstırmak
• Docker Hub = Registry = Linux Repo = Klasör = Ortak Erişilebilir Alan
• Ardından Docker kurulu bir host’a ilgili paketleri çekip çalıştırmanız yeterli
• Paket içerisinde tüm binary bagımlılıklarını , ortam değişkenlerini , volume ve hatta network
konfigrasyonlarını içermekte
• Bu paketleme formatına imaj demeye başlıyoruz
• Eğer Docker kullanıyor isek buna Docker Image demeye başlıyoruz
10
17. Container İçin Yeni İşletim Sistemleri
“Minimalist OS” (Just Enough OS)
• Konu Container olunca , container’ların üzerinde çalıştığı işletim sistemleride değişmeye
başladı. Yeni yaklaşım artık Minimalist OS / Just Enough OS
• En önemli amaçları olabildiğince hızlı açılabilmek ve az güncellemeye sahip olabilmek.
• Görevleri Docker, Rocket runtime’larini çalıstırmak, altyapıyı basitleştirmek, güvenliği ve
sağlamliği artırmak.
• Örneklerine gelince CoreOS (Agustos 2013) , Project Atomic (Nisan 2014) , Ubuntu Core
(December 2014) , RancherOS , VMware Photon OS ve yeni yeni aramıza katılan
Windows Nano Servers.
17
19. Vmware Project Photon OS
• Acik kaynak kodlu
• Photon OS = Linux Container Host
• Lightweigth 300 MB Linux OS (Full Versionu)
• vSphere için optimize edilmiş
• Docker, Rocket, Garden runtime’larini destekleyen
• Yum paket yöneticisi uyumlu
• rpm-ostree (image based versioning)
• VMware Fusion, Workstation, Vagrant gibi test ortamlarında
• vSphere, vCloud Air, Google Cloud Engine, Amazon Elastic Cloud Compute gibi production
ortamlarında çalışabilen bir işletim sistemi
19
20. Neden VMware Photon OS’u yarattı ?
• Vmware’in müşterileri için sağladığı tüm çözümlerinin (güvenlik,dogrulama,kaynak
yönetimi,storage,networking) containerized workload’lara uygulamak istemesiyle yaratıldı.
• Çünkü Container dünyasinda arayıs devam ediyor ve hergün yeni bir bakıs acısı yeni bir çözüm
ortaya çıkıyor
• Tek bir altyapı üzerine geleneksel (VM) ve cloud-native-app (containerized) gereksinimlerini
karşılamak bunu yaparkende var olan çizgisini korumak, yani aynı VMleri nasil monitor
ediyorsanız ,nasil migrate ediyorsanız , nasıl yedek alıyorsanız aynı şekilde yeni birşey
ögrenmeye gerek olmadan, yeni yükleri yönetebilmeniz icin yaratıldı.
Başlamak İçin ;
• Web Adresi : https://vmware.github.io/photon/
• İndirme Adresi : https://github.com/vmware/photon/wiki/Downloading-Photon-OS
• Dökümantasyon : https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md
20
22. Vmware Project Lightwave
• Acik kaynak kodlu , Enterprise düzeyinde doğrulama ve erişim yönetimi saglar.
• Multi-Tenant , yatayda büyüyebilen , multi-master replication model destekleyen
• Directory Service, Certification Authority , Store ve Authentication Servislerden
olusur. (Platform Service Controller)
• Photon ile beraber kullanıldığında izin verilmiş container’ların izin verilmiş
host’larda ve izin verilmiş kişiler tarafından kullanılmasını sağlar.
Başlamak İçin ;
• Web Adresi : https://vmware.github.io/lightwave/
• İndirme Adresi : https://github.com/vmware/lightwave/blob/master/README.md
• Dökümantasyon : https://github.com/vmware/lightwave/wiki
22
23. Sıkça Sorulan Sorular ?
• Neden Container’a ihtiyacım var ?
• Container kullanmak isteyen kim ?
• Container hangi problemleri çözecek ?
• Hangi yeni problemleri beraberinde getirecek ?
• Var olan ortamimda container calistirabilecekmiyim ?
• Yoksa container çalistirmak için yeni şeyler mi ögrenmeliyim ?
• Problem ne ?
• vSphere admin olarak benim yapmam gereken sey ne ?
23
24. Degisen Yazilim Dunyasi mi?
Is Dunyasi mi ? Is Yapis Seklimiz mi ?
• Hepsi !
– Tum yazılımcılar artık daha hızlı sürüm cıkmak istiyorlar
– Yeni sürüm yarattiklarinda bunu hemen production’a kurmak istiyorlar
– Gerektiginde hizlica ve otomatik büyümek, gerektiginde kücülmek istiyorlar
– Yeni tekniklerle geliştirme yapmak istiyorlar (WaterfallAgile)
– Tek bir yazılım dili yerine birden fazla yazılım dilini kullanmak istiyorlar
– Servisleri aralarında API lerle konuşturmak istiyorlar
– Microservice’lere geçmek istiyorlar
– Nasil veri tabanarını kod olarak yazbiliyorlar ise alt yapıyıda kod ile oluşturmak istiyorlar
– Bunları yaparkende operasyon ekiplerine gereksinimi azaltmak istiyorlar
– Kendi ortamlarinda geliştirdikleri kodun , production ortamındada aynı şekilde suprizsiz
çalısmasını istiyorlar
24
28. vSphere Integrated Containers(VIC)
• VIC iki ana bileşenden oluşur
– vSphere Integrated Containers Engine
• Docker runtime’in vSphere enterprise özellikleri ile harmanlandigi nokta ( Clustering, DRS ve
Diğer özellikler )
– vSphere Integrated Containers Registry
• Docker Image Registry’e RBAC + Replication ozellikleri ile gelistirilmis hali
– Acık kaynak kodlu, bugün indirin ve çalıstırın
– Community Support
– vSphere Enterprise Plus lisansi olanlar icin Vmware tarafindan direkt destek
– Artik Linux VM’ler yaratip icersinde container calistirmaya gerek yok ! Her bir container bir VM
(Photon OS)
28
29. VIC vSphare Adminlere Ne Sağlıyor ?
• vSphere admin kullaniciya container yaratabilmesi , silebilmesi ve diger islemler icin bir
endpoint, bir servis sagliyor (Buna VCH Endpoint VM deniyor)
• Hem var olan VM’leri hemde ContainerlarI tek bir arabirim üzerinden yönetmeye , izlemeye
devam ediyor , farkli uygulamalar ögrenmek veya kullanmak zorunda kalmıyorsunuz (!!)
• vSphere = Container Host/Infra/Control Plane
– Tum Container’lar artik bir VM olarak kuruluyor (Buna Container VM deniyor)
– Tum Container’lar %100 izole
– Tenant bazli dinamik kaynak limitasyonu (Buna VCH Virtual Container Host deniyor)
– vSphere uzerinden yarattiginiz networkleri containerlar icin kullanabileme
– Containerlari icin disk alani olarak VMFS kullanabilme
– Dogal araclarla kendine atanan alani yonetebilme (Docker Client)
– Sadece IAAS değil servis saglayabileme imkanı sağlamakta
• VIC vSphere üzerinde en hızlı ve kolay şekilde Linux tabanli yükleri provizyon edilebilmek için
yaratılmıstır
29
31. VIC’den Once
• Kullanici sizden “Docker” kurulu bir VM istiyordu
• Muhtemelen ne kadar ram/disk/cpu istediği belli değil veya belli diye düşünelim
• vSphere admin VM yaratıp, işletim sistemi kurup , güvenlik yamalarını yapıp en
son Docker uygulamasını kurup , ip adresi ile beraber kullanıcıya geri
dönüyordu
• Problem ?
– Disk alanı yetmez ise ?
– Ram yetmez ise ?
– Ekstra başka Docker kurulu VM gereksinimleri doğmuş ise ?
31
33. VIC’den Sonra
• Kullanıcı sizden “Docker” kurulu bir VM istiyordu
• vSphere admin ihtiyaç duyulan disk,network ve kaynak gereksinimini belirledikten veya aldıktan
sonra
• vSphere admin “vic-machine” uygulaması ile ufak/otomatik bir appliance kuruyor ve bu
appliance sayesinde kullanıcı doğrulanmış şekilde kendi başına container yaratmaya başliyor
• İlgili appliance üzerinde remote Docker API çalışmakta ve kullanıcı tüm işlemleri için bu
endpoint’e erişiyor
• Böylelikle kullanıcıya bir Linux VM vermektense kendi kendisini yönetebileceği bir arabirim
vermeye basliyorsunuz
33
42. Örnek VIC ile VCH Yaratma – İlk Container vCenter Üzerinden Görme
42
43. VIC Limitasyonlar, Desteklemediği Özellikler
• VIC gerlistirmesi devam eden bir ürün
• Limitasyonları
– Container Vmler sadece root kullanıcı destekliyor
• Desteklenmeyen Özellikler
– Registry’e push etme
– Containerlar arasında data volume paylaştırma
– Localhost üzerindeki bir klasör veya dosyayı container’a mount etme
– Docker build
– Tüm limitasyon ve desteklenmeyen özellikler için : https://vmware.github.io/vic-
product/assets/files/html/0.8/vic_app_dev/container_limitations.html
– VIC Download İçin : https://bintray.com/vmware/vic/Download
– VIC Dökümantasyon : https://vmware.github.io/vic-product/index.html#getting-started
43