36
www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 1 IT. Menschen. Leidenschaft. Überschrift. Grundlagen Docker und Datenbanken. Heiko Stein – Senior Cloud Architekt

Überschrift.Grundlagen Docker und Datenbanken. - doag.org€¦ · Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomerGmbH. 1 IT. Menschen. Leidenschaft

Embed Size (px)

Citation preview

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 1

IT. Menschen. Leidenschaft.

Überschrift.Grundlagen Docker und Datenbanken.Heiko Stein – Senior Cloud Architekt

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 2

IT. Menschen. Leidenschaft.

etomer - Just the facts.etomer - Just the facts.

> 950

Personenjahre Erfahrung

im der IT

100%

Folgebeauftragung nach

Erstauftrag

> 600

Personentage Planung

pro Jahr

96%Beauftragungsquote nach

technischem Erstkontakt

0%ungeplante Downtime bei

Konzepten der etomer

> 5.200

Personentage Betrieb

pro Jahr

> 1.200

Personentage Consulting

pro Jahr

86%aller von uns betriebenen

Systeme sind Mission-

Critical

>150erfolgreiche Proof-of-

Concepts

14 Jahreerfolgreiche Beratung zu

Enterprise- und Cloud-

Computing

>60Berater im Onsite

und

Remote

>1.000erfolgreiche Projekte

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 3

IT. Menschen. Leidenschaft.

etomer - Just the facts.Agenda.

1 Einstieg und Historie Docker.

2 Grundlagen Docker.

3Docker und Datenbanken - was ist zu

beachten

4 Docker und Oracle Datenbanken.

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 4

IT. Menschen. Leidenschaft.

etomer - Just the facts.Was ist Docker ?

Docker sind leichtgewichtige, isolierte

Laufzeitumgebungen (Container), basierend

Standardfunktionen des Linux-Kernel.

Docker ist keine Virtualisierung, kann aber zur

Applikations-/Service-Virtualisierung genutzt werden.

Build

Ship

Run

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 5

IT. Menschen. Leidenschaft.

etomer - Just the facts.Ein paar Daten.

Plattformen:- Linux

- Mac OS X

- Windows

Docker Inc:- Invest 120 Mill. $

Projekte:- DOCKER ENGINE

- Create and runs Docker Containers

- DOCKER COMPOSE

- Define multi-container applications

- DOCKER REGISTRY

- Open source Docker image distribution

- DOCKER MACHINE

- Automated Docker Provisioning

- DOCKER SWARM

- Host clustering and container

scheduling

- KITEMATIC

- Desktop User Interface for Docker

Release:- 0.1 (03/13)

- …

- 1.11 runC/containerd (OCI)

- …

- 1.12 swarmkit in Dockerengine

integriert

- …

- 17.0 Community Edition (CE) /

Enterprise Edition (EE)

- …

- 17.12.0-[ce|ee]

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 6

IT. Menschen. Leidenschaft.

etomer - Just the facts.Wofür kann Docker verwendet werden ?

Isolation/Encapsulation von

Applikationen/Services in

Container

Deployment und Betrieb

skalierbarer, agiler Umgebungen

PaaS, App-

Distribution für

Fachabteilungen,

DevOps

Lifecyclemanagement,

Continuous Delivery,

Microservices und

Selfcontained Systems

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 7

IT. Menschen. Leidenschaft.

etomer - Just the facts.Agenda.

1 Einstieg und Historie Docker.

2 Grundlagen Docker.

3Docker und Datenbanken - was ist zu

beachten

4 Docker und Oracle Datenbanken.

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 8

IT. Menschen. Leidenschaft.

etomer - Just the facts.Die Docker-Architektur.

Der Docker-Client CLI interagiert mit dem

Docker-Daemon über Unix-Domain-

Socket(non-networked) und remote via

REST-API.

Der Docker-Daemon stellt den

docker-service auf dem Docker

Host zur Verwaltung der

Instanzen zur Verfügung.

Docker Registries sind der

Distributionsservice für Docker

Images.

Ein Docker-Image ist ein

transportables Read-only-

Template für Container.

Docker-Container sind

instanzierte und gestartete

Images.

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 9

IT. Menschen. Leidenschaft.

etomer - Just the facts.Etwas technischer Hintergrund.

Docker

Linux cgroups namespaces overlay-fs

Isolationsfeatures für CPU/Memory, Netz-I/O, Prozessraum. Linux layered Filesystem.

Container Runtime Interface(Containerengine)

Execution Environment(libcontainer/libvirt/systemd-nspawn/…)

• Schnittstelle

zum Kernel

• CLI

• Rest-API

• Socket-API

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 10

IT. Menschen. Leidenschaft.

etomer - Just the facts.Noch etwas etwas technischer Hintergrund – driver/libcontainer.

Container

docker-daemon

Execution driver API

Native execution driver

libcontainer

Dockerengine

runC

OCI

Kompatibilität

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 11

IT. Menschen. Leidenschaft.

etomer - Just the facts.Prozessmodell.

systemd/upstart/xinit

docker run …

docker engine

containerd

runC

Applikation

Prozessmodell

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 12

IT. Menschen. Leidenschaft.

etomer - Just the facts.

ContainerContainer

Docker in Schichten.

Server

Operating System

Docker Engine

Container

Libraries/Binaries

App

bootfs / kernel (namespaces/cgroups/overlay-fs)

base image (ubuntu/centos/…)

app1

app2

Image

(r/o)

r/w Layer

Container

- Alle benötigten Komponenten für die Lauffähigkeit der

Applikation(en) befinden sich im Image

- Für die Persistierung von Daten ist die Bereitstellung von

Storageentitäten in den Container möglich bzw. nötig

Docker Engine

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 13

IT. Menschen. Leidenschaft.

etomer - Just the facts.Agenda.

1 Einstieg und Historie Docker.

2 Grundlagen Docker.

3Docker und Datenbanken - was ist zu

beachten

4 Docker und Oracle Datenbanken.

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 14

IT. Menschen. Leidenschaft.

etomer - Just the facts.Docker und Datenbanken – Generelle Themen.

StorageCPU

Memory

SecurityNetzwerk

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 15

IT. Menschen. Leidenschaft.

etomer - Just the facts.Umsetzung Security & Compliance.

Securing RegistrySecurity/Compliance Dockerhost

Securing

Dockerdaemon

bzw. Client

Kommunikation

Security/Compliance

Dockerimages

Security Dockercontainer,Runtime und Dockervolumen

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 16

IT. Menschen. Leidenschaft.

etomer - Just the facts.Memory.

• Size Memory (resident) definieren / limitieren• memory-reservation, memory-swap

• memory-swappiness, kernel-memory

• oom-kill-disable

• Size Shared Memory definieren / erhöhen

• shm-size

• Java • Innerhalb des Container immer Heap-Size definieren / MaxRAM /

+UseCGroupMemoryLimitForHeap / …

# docker run -d -it --memory=2g --memory-swap=6g --name MYDB …

# docker run –-memory=1G --rm store/oracle/serverjre:8 java -XX:MaxRAM=1024m …

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 17

IT. Menschen. Leidenschaft.

etomer - Just the facts.CPU.

• CPU-Nutzung limitieren, um die Kompromittierung des Dockerhost zu

vermeiden (… gemeinsamer Kernel, gemeinsame Resourcen)

• cpus, cpu-period, cpuset-cpus, cpu-shares, …

• Nicht Lizenzrelevant !!!

- Alle 50ms Nutzung von 50% aller Cpu’s

# docker run -ti --cpu-period=50000 --cpu-quota=25000 …

- Nutzung von CPU1, CPU2

# $ docker run -ti --cpuset-cpus="1,3" …

- Nutzung von 50 % aller CPU’s pro Sekunde

# $ docker run -ti –cpu=.5 …

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 18

IT. Menschen. Leidenschaft.

etomer - Just the facts.Netzwerk.

Dockerhost

Container Container Container Container

• Kommunikation von Datenbanken, weiteren Services etc. zwischen Containern

via Overlay-Netzwerke absichern

• vxlan

• iptables

• Loadbalancing im Swarm-Mode via Ingress Network

• Externe Loadbalancer können den Service via PublishedPort adressieren

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 19

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage.

Docker persistiert

keine Daten …Das ist jetzt aber

ärgerlich !

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 20

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage – 2 Fragen.

Welcher Storagedriver ?• Files im Container …

• Achtung, Unterschiede in den Default-Storagedriver

Docker EE/CE für verschiedene Linux-Derivate• https://success.docker.com/article/Compatibility_Matrix

Welcher Mount-Typ?• Oder wohin mit den Data-Files ?

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 21

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage – Storagedriver, WER für WAS.

https://docs.docker.com/engine/userguide/storagedriver/selectadriver/

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 22

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage – Storagedriver, WER für WAS.

https://success.docker.com/article/Compatibility_Matrix

EE 17.03 EE 17.06

Storage Driver

CentOS: devicemapper CentOS: devicemapper

Oracle Linux: devicemapperOracle Linux: devicemapper

RHEL: devicemapperRHEL: devicemapper,

overlay26

SLES: btrfs SLES: btrfs

Ubuntu: aufs3 Ubuntu: aufs3

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 23

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage.

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 24

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage – Host Volume.

- Werden implizit durch docker angelegt.

- Befindet sich auf dem Dateisystem des Docker-Hosts und wird über

den Container angesprochen

- Ablage einem einem definierbaren statischen Pfad

- Flexible Ablage der Daten bezüglich des genutzten Verzeichnisses

und somit der genutzten Devices (SAN/local/…)

- Vorsicht bei Shared Storage Architekturen !

- Vor Nutzung als Datastore sind die Berechtigungen entspechend zu

setzen

# docker run -v /path/on/host:/path/in/container ...

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 25

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage – Anonymous Volumen.

- Werden implizit durch Docker angelegt und verwaltet

- Einfach in der Erstellung und Nutzung

- Nachnutzung in anderen Container ist kompliziert

# docker run -v /path/in/container ...

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 26

IT. Menschen. Leidenschaft.

etomer - Just the facts.Storage – Named Volumen.

- Named Volumen sind in Prinzip ähnlich zu Anonymous Volumes

- Werden explizit durch docker angelegt und verwaltet, aber mit

einem eindeutigen Namen versehen

- Ablage unter /var/lib/docker/volumes/<name>

- Gehören per default root

# docker volume create namedv

# docker run -v namedv:/path/in/container ...

# docker volume inspect namedvOutput[ { "CreatedAt": "2018-01-21T21:02:53Z", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/namedv/_data", "Name": "DataVolume1", "Options": {}, "Scope": "local" } ]

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 27

IT. Menschen. Leidenschaft.

etomer - Just the facts.Agenda.

1 Einstieg und Historie Docker.

2 Grundlagen Docker.

3Docker und Datenbanken - was ist zu

beachten

4 Docker und Oracle Datenbanken.

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 28

IT. Menschen. Leidenschaft.

etomer - Just the facts.Status – Was geht ?

- Oracle Database ist komplett supported in Docker

- 11g / 12c

- Oracle Linux 7/UEK 4

- RHEL 7

- 3 Varianten für Oracle in docker

- Images aus der Oracle Container Registry &

- Images aus dem Docker Store

- Docker Buildfiles vom GitHub

- Docker Container enthalten Single-PDB/CDB

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 29

IT. Menschen. Leidenschaft.

etomer - Just the facts.Status – Was geht (noch) nicht ?

- Folgende Features sind noch nicht freigegeben/nicht

unterstützt:

- Oracle Data Guard

- ASM

- Multiples Oracle Homes

- Oracle Grid Infrastructure

- Multiple Instanzen in einem Container

- Automatic Memory Management (AMM)

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 30

IT. Menschen. Leidenschaft.

etomer - Just the facts.Hinweise.

Filesystem:

- Btrfs für Dockerfiles

- Ext4, XFS für Datenbankfiles

Docker:

- Docker CE auf Oracle Linux

- Docker CE und Oracle Linux sind kostenlos für Oracle

DB’s

- Docker Corp. unterstützt nur Docker EE für Oracle

Linux und RHEL

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 31

IT. Menschen. Leidenschaft.

etomer - Just the facts.Hinweise.

Dockerhost/OS:

- /dev/shm wird wird Default ohne Exec Permissions

gemappt

- Bei Einstellungen der Kernelparameter müssen alle

ggf. auf diesem Host gestarteten Container

berücksichtigt worden

# docker run -v /dev/shm --tmpfs/dev/shm:rw,nosuid,nodev,exec,size=2g ...

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 32

IT. Menschen. Leidenschaft.

etomer - Just the facts.Run Oracle Database.

Erstellung eigenes DB-Image mittels Dockerfile vom- https://github.com/oracle/docker-

images/tree/master/OracleDatabase/dockerfiles

# buildDockerImage.sh- oder# docker build --force-rm=true --no-cache=true –t oracle/database:12.2.0.1-ee -f Dockerfile.ee .

Start eines DB-Image (selbst erstellt oder vom GitHub):

# docker run --name <Oracle-DB> -p 1521:1521 -p 5500:5500 -e ORACLE_SID=<SID> \-e ORACLE_PWD=<PASSWORD> -e ORACLE_CHARACTERSET=<CHARACTERSET> \-e ORACLE_CONTAINERDB=false oracle/database:12.2.0.1-ee

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 33

IT. Menschen. Leidenschaft.

etomer - Just the facts.Run Oracle Database.

Dockerstore:

# docker login

# docker run -d -it --name <Oracle-DB> store/oracle/databaseenterprise:

12.2.0.1

# docker exec -it <Oracle-DB> bash -c "source

/home/oracle/.bashrc; sqlplus /nolog"

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 34

IT. Menschen. Leidenschaft.

etomer - Just the facts.Diskussion.

Fragen ?

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 35

IT. Menschen. Leidenschaft.

etomer - Just the facts.Quellen.

• Docker Dokumentation• https://docs.docker.com/

• Docker Blogs• https://blog.docker.com/

• Docker Release Notes• https://github.com/docker/docker/releases/

• Docker & Oracle• https://blogs.oracle.com/developers/three-new-open-source-container-utilities

• https://github.com/oracle/docker-images

• https://developer.oracle.com/containers

• https://apex.oracle.com/pls/apex/germancommunities/dbacommunity/tipp/6241/index.h

tml

• https://store.docker.com/images/oracle-database-enterprise-edition/plans/08cf8677-

bb8f-453c-b667-6b0c24a388d4?tab=instructions

• MOS

• Oracle Support for Database Running on Docker (MOS Note 2216342.1)

www.etomer.com Alle Rechte vorbehalten. Vervielfältigung nur mit schriftlicher Zustimmung der etomer GmbH. 36

IT. Menschen. Leidenschaft.

Überschrift.

[email protected]

Vielen Dank für ihre Aufmerksamkeit.