vSphere Integrated Containers

52
© 2016 VMware Inc. All rights reserved. vSphere Entegre Konteyner Yapıları Vahric Muhtaryan @vahric_M @vmugtr

Transcript of vSphere Integrated Containers

Page 1: vSphere Integrated Containers

© 2016 VMware Inc. All rights reserved.

vSphere Entegre Konteyner Yapıları

Vahric Muhtaryan@vahric_M@vmugtr

Page 2: vSphere Integrated Containers

Sunum İçeriği

• Container Nedir ?

• Containerlar yeni bir kavram mı ?

• Container runtime nedir ?

• Containerlarda paketlemenin önemi nedir ?

• Docker , Dockerfile , Dockercompose nedir ?

• Yazılımcılar neden Docker’ı seviyor ?

• Photon OS Nedir ?

• Lightwave Nedir ?

• Sıkca sorulan sorular ?

• Yazılım Dünyası ve Mikroservisler

• Vmware size containerlar hakkında nasıl yardımcı olabilir ?

• VIC

• Harbor

• Photon Controller

2

Page 3: vSphere Integrated Containers

Container Nedir ?

3

Page 4: vSphere Integrated Containers

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

Page 5: vSphere Integrated Containers

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 sanalmakinelerde bir process’e benzeyen (w3wp.exe, mysqld, java)

– Bir isletim sisteminde olmasi gereken belki bir sürü bileşenden mahrum, sadece çalıstırmakistediğ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

Page 6: vSphere Integrated Containers

Hypervisor ve Container Yapılarına Resimsel Baktığımızda

6

Page 7: vSphere Integrated Containers

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

Page 8: vSphere Integrated Containers

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

Page 9: vSphere Integrated Containers

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

Page 10: vSphere Integrated Containers

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 olmasadadüşü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 atmakve 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

Page 11: vSphere Integrated Containers

Docker Container Runtime

11

Page 12: vSphere Integrated Containers

Docker HUB (Public) https://store.docker.com/

12

Page 13: vSphere Integrated Containers

Docker HUB (Public) https://hub.docker.com

13

Page 14: vSphere Integrated Containers

Örnek Dockerfile

• FROM ubuntu:latest

• MAINTAINER vahric ”[email protected]"

• RUN apt-get update -y

• RUN apt-get install -y python-pip python-dev build-essential

• COPY . /app

• WORKDIR /app

• RUN pip install -r requirements.txt

• ENTRYPOINT ["python"]

• CMD ["app.py"]

• EXPOSE 80

14

Page 15: vSphere Integrated Containers

Örnek Docker Compose Dosyası

• web:

• image: wordpress

• links:

• - mysql

• environment:

• - WORDPRESS_DB_PASSWORD=password

• ports:

• - "127.0.0.3:8080:80"• mysql:

• image: mysql:5.7

• environment:

• - MYSQL_ROOT_PASSWORD=password

• - MYSQL_DATABASE=wordpress

15

Page 16: vSphere Integrated Containers

Neden Yazılımcılar Docker’ı SeviyorBUILD - SHIP - RUN

16

Page 17: vSphere Integrated Containers

Container İçin Yeni İşletim Sistemleri“Minimalist OS” (Just Enough OS)

• Konu Container olunca , container’ların üzerinde çalıştığı işletim sistemleride değişmeyebaş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 vesağ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ılanWindows Nano Servers.

17

Page 18: vSphere Integrated Containers

Vmware Project Photon OS

18

Page 19: vSphere Integrated Containers

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

Page 20: vSphere Integrated Containers

Neden VMware Photon OS’u yarattı ?

• Vmware’in müşterileri için sağladığı tüm çözümlerinin (güvenlik,dogrulama,kaynakyö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ümortaya çıkıyor

• Tek bir altyapı üzerine geleneksel (VM) ve cloud-native-app (containerized) gereksinimlerinikarşı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

Page 21: vSphere Integrated Containers

Vmware Project Lightwave

21

Page 22: vSphere Integrated Containers

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 Servislerdenolusur. (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

Page 23: vSphere Integrated Containers

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

Page 24: vSphere Integrated Containers

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

Page 25: vSphere Integrated Containers

Monolitik servislerden MikroServislere

25

Page 26: vSphere Integrated Containers

vSphere Adminler için problem

26

Page 27: vSphere Integrated Containers

Vmware Bügün Size Nasıl Yardımcı Olabilir ?

27

Page 28: vSphere Integrated Containers

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 veDiğ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

Page 29: vSphere Integrated Containers

VIC vSphare Adminlere Ne Sağlıyor ?

• vSphere admin kullaniciya container yaratabilmesi , silebilmesi ve diger islemler icin birendpoint, bir servis sagliyor (Buna VCH Endpoint VM deniyor)

• Hem var olan VM’leri hemde ContainerlarI tek bir arabirim üzerinden yönetmeye , izlemeyedevam 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çinyaratılmıstır

29

Page 30: vSphere Integrated Containers

VIC + vCenter

30

Page 31: vSphere Integrated Containers

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 geridönüyordu

• Problem ?

– Disk alanı yetmez ise ?

– Ram yetmez ise ?

– Ekstra başka Docker kurulu VM gereksinimleri doğmuş ise ?

31

Page 32: vSphere Integrated Containers

VIC’den Once

32

Page 33: vSphere Integrated Containers

VIC’den Sonra

• Kullanıcı sizden “Docker” kurulu bir VM istiyordu

• vSphere admin ihtiyaç duyulan disk,network ve kaynak gereksinimini belirledikten veya aldıktansonra

• vSphere admin “vic-machine” uygulaması ile ufak/otomatik bir appliance kuruyor ve buappliance 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 buendpoint’e erişiyor

• Böylelikle kullanıcıya bir Linux VM vermektense kendi kendisini yönetebileceği bir arabirimvermeye basliyorsunuz

33

Page 34: vSphere Integrated Containers

VIC’den Sonra

34

Page 35: vSphere Integrated Containers

VIC ile Beraber VM Container ve Bildiğiniz Tüm vSphere Özellikleri Bir Yerde Görülür ve İzlenebilir Oluyor

35

Page 36: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma – VIC Binaries

36

Page 37: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma – vCenter Görünümü

37

Page 38: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma

38

Page 39: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma

39

Page 40: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma – Endpoint Appliance

40

Page 41: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma – İlk Container

41

Page 42: vSphere Integrated Containers

Örnek VIC ile VCH Yaratma – İlk Container vCenter Üzerinden Görme

42

Page 43: vSphere Integrated Containers

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

Page 44: vSphere Integrated Containers

Private Registry Harbor

44

Page 45: vSphere Integrated Containers

Başka bir Platform – Photon Controller

45

Page 46: vSphere Integrated Containers

46

Page 47: vSphere Integrated Containers

47

Page 48: vSphere Integrated Containers

48

Page 49: vSphere Integrated Containers

49

Page 50: vSphere Integrated Containers

SORULAR ?

Page 51: vSphere Integrated Containers

Ödül İçin Sorular ?

1. VCH Nedir ?

2. Harbor Nedir ?

3. Photon Controller’ın VIC’den farkı nedir ?

51

Page 52: vSphere Integrated Containers

Teşekkürler ve İyi Seneler

52