ݺߣ

ݺߣShare a Scribd company logo
Sanallaştırmada yeni akım: Docker
TÜRKSAT
oguzy ~ turksat.com.tr
DevOps
https://about.me/oguzy
2
Önce siz
● Docker resmi “dersini” takip eden?
● Daha önce makinasına Docker kuran?
● Dockerfile yazmayı deneyen?
3
İçerik
● Ne söz veriyor?
● Nasıl çalışır?
● Docker kelime dağarcığı
● Geçmiş, şu an, gelecek
● Kullanıcı hikayeleri
● Özet
4
Üretim sürecinde
“Bende çalışıyor!”
5
Docker sözü
“Build once
run 𱹱ɳ”
6
Nasıl çalışıyor?
Sanallaştırma aracı?
VM Yönetim Aracı?
Yapılandırma (Configuration)
Yönetim Aracı?
Cgroups?
LXC?
Libvirt?
7
Resmi tanım
Docker.com daki açıklamaya göre
Docker, geliştiriciler ve sysadminler için uygulamalarını derlemek,
çalıştırmak ve dağıtmak için açık bir platformdur.
Docker Engine
Taşınabilir, hafif, çalışma
zamanı ve paketleme aracı
Docker Hub
Uygulama paylaşmak ve iş
akışlarını otomatize etmek için
bir bulut servisi
8
Sunucu yapılandırma dünyasında
Daha az taşınabilir,
Daha az yük (overhead)
CM araçları
Elle yapılandırma
Daha taşınabilir,
Daha çok yük (overhead)
Geleneksel VMler
Docker
9
Geleneksel VM Yaklaşımı
VM
Kaynak: docker.io
10
Dockerdaki Durum
Containers
Kaynak: docker.io
11
Tipik bir Docker Mimarisi
Her bir süreç için bir “container”
Kaynak: quay.io
12
Docker Kelime Dağarcığı
Uygulamalarınız “container” lar içinde çalışır
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
$ docker run busybox /bin/echo “hello world”
hello world
13
devam
> docker pull oguzy/statsd
Using default tag: latest
ba8afa23-debc-41d4-91f7-26bcdd49df54-n1: Pulling oguzy/statsd:latest... :
downloaded
> docker history oguzy/statsd
IMAGE CREATED CREATED BY SIZE COMMENT
3575ba401d18 10 months ago /bin/sh -c cd /usr/src && git clone https:// 3.741 MB
3334a6fda5e1 10 months ago /bin/sh -c apt-get install -y git debhelper d 222.5 MB
bb1cab823c31 10 months ago /bin/sh -c apt-get update && apt-get dist-upg 27.47 MB
ea4e0b39c9a4 10 months ago /bin/sh -c #(nop) MAINTAINER Oguz Yarimtepe 0 B
8eaa4ff06b53 10 months ago /bin/sh -c #(nop) CMD [/bin/bash] 0 B
f62feddc05dc 10 months ago /bin/sh -c sed -i 's/^#s*(deb.*universe)$/ 1.895 kB
607c5d1cca71 10 months ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic 194.5 kB
3b363fd9d7da 10 months ago /bin/sh -c #(nop) ADD file:c6927d782cab75b529 188.1 MB
511136ea3c5a 2 years ago 0 B Imported from -
14
Docker hub
15
Dockerfile
# Spin-docker example dockerfile for a Django project
# Use phusion/baseimage as base image
FROM phusion/baseimage:0.9.8
MAINTAINER Andrew T. Baker <andrew@andrewtorkbaker.com>
# Add the Django app and install its requirements
ADD sd_sample_project /var/www/django
RUN apt-get install -y python-pip
RUN pip install virtualenv
RUN virtualenv /var/www/venv
RUN /.../venv/bin/pip install -r /.../requirements.txt
...
16
Docker ve Git
Docker Git
Imaj Saklı bir durum Commit
Container Yerel çalıştırma Checkout
Depo (repository) “commit” lerin toplamı Depo (repository)
Docker Hub Sık kullanılan uzak sunucu Github
17
Açık kaynak başarı hikayesi
● PyCon 2013 te docCloud tarafından proje açıldı
● O zamandan sonra
– 1.000.000+ ın üzerinde indirildi
– 300+ projeye güç verdi
– 350+ docker katkıcısı
– 10.000+ Github yıldızı
● dotCloud adını değiştirdi: Docker
– 1.0 sürümü 2014 te duyuruldu
18
Docker Ecosistemi
19
İnsanlar Docker ile neler yapıyorlar
20
Örnek web uygulaması
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis
$ fig up
Pulling image redis...
Building web...
Starting figtest_redis_1...
Starting figtest_web_1...
redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3
web_1 | * Running on http://0.0.0.0:5000/”
21
Fig (devam)
$ fig up -d
Starting figtest_redis_1...
Starting figtest_web_1...
$ fig ps
Name Command State Ports
-------------------------------------------------------------------
figtest_redis_1 /usr/local/bin/run Up
figtest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp
22
PaaS
23
Deis video
● Deis.io
24
CI
25
CI
26
Araçlar daha iyiye gidiyor
27
Shipyard
28
Bulut ortamında
29
Dockerdaki sorun
30
Kubernetes
● Docker “kapları” için kümelenmiş
ortam
● Birden fazla Docker host
● Yük dengeleme, “auto-healing”,
ölçekleme
● Google
● Contributors = CoreOS, RedHat, HP,
IBM, Microsoft, ...
31
Kavramlar
● Pod: Bir grup “kap”
● Labels: Podları tanımlamak için
isimlendirme
● Kubelet: “kap” ajanı
● Proxy: Podlar için yük dengeleyici
● Scheduler: “Worker” nodlardaki
podları zamanlar
32
Kavramlar
● cAdvisor: Containe Advisor, kullanım
ve performans istatistiklerini sağlar
● Replication Controller: “Replication”
yönetimi
33
Kubernetes Mimarisi
34
Kubernetes Master
35
Kubernetes Minion
36
Bileşen Mimarisi
37
Diğer büyükler
● Amazon EC2 Container Service
● Google Container Service
● Rackspace
– Getcarina (Openstack + Magnum + Swarm)
38
Getcarina
39
Getcarina Dashboard
40
Getcarina CLI
41
Getcarina CLI
42
Çalıştır ve eriş
43
Port 8080
44
Sorular

More Related Content

Sanallaştırmada Yeni Akım - Docker