noun a person employed in a port to load and unload ships. · docker security opvolgers van en...

38
/ˈdɒkə/ noun a person employed in a port to load and unload ships.

Upload: others

Post on 04-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

/ˈdɒkə/

noun

a person employed in a port to load and unload ships.

Page 2: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Welkom

Even voorstellen

Wi Fi

Docker, het verhaal

Een korte demo

Containers vs VM’s

Containers en images

Container networking

Images maken

Docker security

Opvolgers van en alternatieven voor Docker….

Page 3: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Even

voorstellen

Page 4: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Verbind nu

als je geen

4G hebt

startel_wifi

Page 5: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Docker, het verhaal

1982: Unix chroot

2000: FreeBSD Jails

2001: Linux Vserver

2004: Solaris Containers

2005: Open VZ (Open Virtuzzo)

2006: Process

Containers2008: LXC

2011: Warden

2013: Docker

2015: Moby project

Page 6: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

moby

Page 7: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Docker use cases

Modernize Traditional Applications (MTA)

Microservices (Cats and Dogs example)

Continuous Integration and Continuous Deployment (CI/CD)

Data Science

Edge Computing

Cloud Migration

Digital Transformation

Upgrade Legacy Windows Server Apps

Page 8: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Containers

vs Virtual

Machines

Page 9: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Waar draaien de containers?

Cloud –AWS

Cloud –Azure

Openshift

Linux -ARM/Intel

macOSMicrosoft Windows

Page 10: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Zoek de verschillen ;-)

Page 11: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Containers

and images

Page 12: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Images vs

Containers

Page 13: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Demo

Run hello world in een

container

Start twee busybox containers

en bekijk de inhoud

(processen, filesysteem)

Page 14: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Wat gebeurde daar?

Er werden images gedownload. Dit duurde even.

Vervolgens werden containers gestart, dit ging snel.

Informatie binnen een container is daarbuiten niet

beschikbaar.

Page 15: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Levenscyclus container

Stopped

Created

Paused

Running Killed

Page 16: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Containers zijn ‘stateless’

Als een container wordt gekilled dan is de inhoud verloren => stateless

Persistente data buiten de container opslaan:

Host filesysteem

Docker volumes

Lege container (old school)

Updaten is eenvoudig:

Kill container

Download nieuwe versie image

Start nieuwe container

Page 17: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Container

connectivity

Page 18: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Container

connectivity

Page 19: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Demo

De Linux stack gebruikt Python,

Node.js, .NET Core met Redis

voor ‘messaging’ en een

Postgres database.

Download images

Build images

Maak virtueel netwerk aan

Maak een volume aan voor

de database

Start initieel 5 containers

Alles lokaal!

Page 20: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Wat gebeurde daar?

Er zijn 5 images gedownload.

2 Zijn direct gebruikt

3 Vormen de basis voor nieuwe images

Op basis hiervan zijn containers gestart met twee

netwerken.

Een intern netwerk en een extern netwerk.

Van twee containers zijn de poorten geopend via het

externe netwerk.

Page 21: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Het resultaat

Page 22: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Een online test

Page 23: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

De test…

Open een browser en ga naar

http://192.168.x.x:5000

De uitslag is terug te vinden op

http://192.168.x.x:5001

Page 24: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Op naar de cloud…

5 systemen bij Amazon (AWS)

1

Deze vormen een Swarm (Cluster)

2

Zelfde containers als zojuist

3

Containers worden verspreid over deze systemen

4

Indien nodig kunnen meerdere instanties van een container worden gestart

5

Page 25: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Demo

De Linux stack gebruikt Python,

Node.js, .NET Core met Redis

voor ‘messaging’ en een

Postgres database.

Download images

Build images

Maak virtueel netwerk aan

Maak een volume aan voor

de database

Start initieel 5 containers

Alles in de cloud!

Page 26: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Wat gebeurde daar?

Er zijn 5 images gedownload.

2 Zijn direct gebruikt

3 Vormen de basis voor nieuwe images

Op basis hiervan zijn containers gestart met twee

netwerken.

Een intern netwerk en een extern netwerk.

Van twee containers zijn de poorten geopend via het

externe netwerk.

Eigenlijk hetzelfde als daarnet, maar nu in de cloud

Page 27: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Container

connectivity

Page 28: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Een online test

Page 29: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

De test…

Open een browser en ga

naar http://3.x.x.x:5000

De uitslag is terug te vinden op

http://3.x.x.x:5001

Page 30: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Docker swarm

Start services ipv containers

Een service bestaat uit 1 of meer containers op basis van hetzelfde image

Een groep services wordt een stack genoemd

Services zijn over het algemeen ‘desired state’, als een container (of host) crasht dan wordt op een andere host een nieuwe container gestart

Virtuele netwerken tussen containers blijven mogelijk

Goed opletten met storage

Dit is de eenvoudigste vorm van ‘orchestration’

Page 31: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Demo

Zelf images maken

In dit geval een python

applicatie die awk bestand

afspeelt via telnet…

Page 32: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Wat gebeurde daar?

Er is een image gedownload.

In dit image is python geinstalleerd.

Er zijn twee bestanden aan toegevoegd:

Python script

En de ascii art voor de film

Ook is ingesteld welk commando wordt uitgevoerd na het

starten van een container.

Page 33: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Zelf een image maken: Dockerfile

FROM alpine

RUN apk update && apk add python

ADD ascii-telnet-server.py /root/

ADD sw1.txt /root/

EXPOSE 23

ENTRYPOINT ["python", "/root/ascii-telnet-server.py", "-f",

"/root/sw1.txt"]

Page 34: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Resource management

Per container kunnen beperkingen worden ingesteld op:

IO

Memory

CPU

Page 35: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Samengevat

Containers zijn omgevingen die geisoleerd zijn van de host:

Memory, Storage, Netwerken

Containers kunnen onderling verbonden worden via ‘virtuele’ netwerken.

Netwerken kunnen over meerdere hosts heen bestaan.

Deployment kan erg snel

Geschikt voor MTA en microservices

Orchestration tools zijn welkom voor grote(re) configuraties/clusters

Naast Docker zijn ook andere producten interessant, zie volgende slides

Page 36: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

K8S = K……..s = Kubernetes

K8S is een alternatief voor docker swarm.

K8S kan zonder Docker en omgekeerd maar ze werken goed samen.

Het is een orchestration tool en is ontwikkeld door Google

Daar start en stopt K8S 2 miljard containers per week!

Docker en docker swarm zijn eenvoudig aan te leren, K8S is lastiger

Page 37: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Alternatieven voor Docker build

orca-build (SUSE)

jessfraz/img

kaniko (Google)

BuildKit (moby)

Page 38: noun a person employed in a port to load and unload ships. · Docker security Opvolgers van en alternatieven voor Docker…. Even voorstellen. Verbind nu als je geen 4G hebt startel_wifi

Alternatieven voor Docker zelf

rkt (Voorheen CoreOS, nu RedHat)

Mesos (Apache)

LXC, no OCI yet…