46
CloudOpen North America 2014 | Linda Wang 1 Use Cases for Docker in Enterprise Linux Environment CloudOpen North America, 2014 Linda Wang Sr. Software Engineering Manager Red Hat, Inc.

Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

1

Use Cases for Docker in Enterprise Linux Environment

CloudOpen North America, 2014Linda WangSr. Software Engineering ManagerRed Hat, Inc.

Page 2: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

2

Page 3: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

3

Containerize!

Page 4: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

4

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Based on Lightweight Virtualized Technologies● Linux Containers: cgroups, namespaces, SELinux

● Provides a new Format to deliver bits ● Provide Minimal Footprint● Fast Deployment● Can be Used on Various Market Segment

Page 5: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

5

Use Cases for Docker in the Enterprise Linux Environment

● What’s Lightweight virtualization?

● Lightweight Virtualized vs. Fully Virtualized

vs.

Apartment Townhouses

Page 6: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

6

Use Cases for Docker in the Enterprise Linux Environment

● What’s Lightweight Virtualization?

● Lightweight Virtualized vs. Fully Virtualized

vs.

Containers KVM or Xen

Kernel Shared Own Kernel on Hypervisor

Page 7: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

7

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container?

● A Lightweight Virtualized Technologies● Control Groups – Resource Management● Namespace – Process Isolation● SELinux, grsecurity – Security● SystemD/Kubernete – Management tool

Page 8: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

8

Cgroups

Memory

Network

Block IOCPU

Linux KernelHardware

Cgroups

● What’s a Linux Container?

● Control Groups – Resource Management

Use Cases for Docker in the Enterprise Linux Environment

Page 9: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

9

Control Groups – Resource Management

Page 10: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

Namespace - Process Isolation

Page 11: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

11

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container?

● Namespaces

Host Kernel

User Space

Application A..Application B..Application C.....

VirtualizedProcess mgt

Virtualizeddevices

VirtualizedUser ID

Virtualized

FS

interface

Virtualized

FS

interface

Page 12: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

12

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container?

● Namespaces – application point of view

Application A..Application B..Application C.....

Pid 1../dev/tty/dev/eth0.. Uid 500..

/etc /var

/tmp

Host Kernel

User Space

Application A..Application B..Application C.....

Page 13: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

13

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container?

● Namespaces – host point of view

Application A..Application B..Application C.....

Pid 3852../dev/pty12/dev/eth1.. Uid 5600..

/etc/contA/etc

/var/contA/var

/tmp/contA

/tm

p..

Host Kernel

User Space

Application A..Application B..Application C.....

Page 14: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

14

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container

● Namespaces and SELinux

Application A..Application B..Application C.....

Pid 3852../dev/pty12/dev/eth1.. Uid 5600..

/etc/contA/etc

/var/contA/var

/tmp/contA

/tm

p..

Host Kernel

User Space

Application A..Application B..Application C.....

SELinux

/tmp

/var..

Pid 1 Uid500

Page 15: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

15

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container?

● Namespaces, SELinux

Application A..Application B..Application C.....

Pid 3852../dev/pty12/dev/eth1.. Uid 5600..

/etc/contA/etc

/var/contA/var

/tmp/contA

/tm

p..

Host Kernel

User Space

Application A..Application B..Application C.....

SELinux

/tmp

/var..

Pid 1 Uid 500

Mount Namespace

User Namespace

Process ID Namespace

Device Namespace

Legend

Page 16: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

16

Use Cases for Docker in the Enterprise Linux Environment

● What’s a Linux Container?

● Linux Containers: Cgroups, Namespaces, SELinux

Pid 3852..

Host Kernel 8 CPUS, 32G system

User Space

/dev/pty12/dev/eth1..

Uid 5600..

/etc/contA/etc

/var/contA

/var

/tmp

/contA

/tm

p..

Application A..Application B..Application C.....

SELinux

/tmp

/var..

Pid 1

Uid 500

Pid 3852.. Pid 3852..

/dev/pty12/dev/eth1..

/etc/contA/etc

/var/contA/var

/tmp/co

ntA/

tmp..

Application D.....

SELinux

/tmp

/var..

Pid 1

Uid 500

Pid 3852../dev/pty12/dev/eth1..

/etc/contA/etc

/var/contA/var

/tmp/contA

/tm

p..

Application A..Application B..Application C.....

SELinux

/tmp

/var..

Pid 1 Uid 500

UID 5600PID 5362

/tmp/co

ntA/

tmp..

/etc/contA/etc

/var/contA/var

PID 5362/dev/pty12/dev/eth1..

UID 5600

App. F.....

CGroups#1

CGroups#2

CGroups#3CPU#34G

CPU#1, 8G

CPU#0,2, 16G

Legend

Page 17: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

17

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Based on Lightweight Virtualized Technologies● Linux Containers: cgroups, namespaces, SELinux

● Provides a new Format to deliver bits ● Provide Minimal Footprint● Fast Deployment● Can be Used on Various Market Segment

Page 18: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

18

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Provides a new Format to deliver bits

Traditional Way..

Page 19: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

19

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Provides a new Format to deliver bits

Container Format

Page 20: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

20

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Provides a new Format to deliver bits

Docker Image Format

base

Page 21: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

21

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Provides a new Format to deliver bits

1

21

1

2

Page 22: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

22

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Provides image base format to deliver bits

1

21

1

2

1 33

Page 23: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

23

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Based on Lightweight Virtualized Technologies● Linux Containers: cgroups, namespaces, SELinux

● Provides a new Format to deliver bits ● Provide Minimal Footprint● Fast Deployment● Can be Used on Variety of Market Segment

Page 24: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

24

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Provides a new Format to deliver bits

Page 25: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

25

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Based on Lightweight Virtualized Technologies● Provide Minimal Footprint● Fast Deployment

● Simplified application delivery● Light weight Application Isolation● Integrated application delivery using Image-based

solution● Provides application mobility● Provides minimal footprint as needed

Page 26: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

26

Use Cases for Docker in the Enterprise Linux Environment

● What’s Docker?

● Based on Lightweight Virtualized Technologies● Linux Containers: cgroups, namespaces, SELinux

● Provides a new Format to deliver bits ● Provide Small Footprint● Fast Deployment● Can be Used on Various Market Segment

Page 27: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

27

Use Cases – Applications

Page 28: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

28

Use Cases in Enterprise Linux Environment

● Docker acts as the interfaces to Linux containers

● Becomes a new application delivery platform

● Deploy new ‘applications’ based on flexibility that Docker container provides

● Also can be used by traditional enterprise users

Page 29: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

29

Use Cases in Enterprise Linux Environment

● Traditional Use Cases

● Use it to management system resources● Provide application isolation (prevent runaway apps, etc..)

● For long running applications that have static setup and user environment

● Benefit from less impact on upgrade management and less overhead

● Running multiple Linux applications on single Linux host● Instead, run inside docker container

● Applications that run inside of full OS virtualized environment; but in simplified form, can be migrated to Docker environment

Page 30: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

30

Use Cases in Enterprise Linux Environment

● New Application Delivery Use Cases

● Focus on fast deployment● Focus on use cases that mitigate impacts by server

updates● Mixed environment use cases● Stack-able environment use cases

Page 31: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

Use Cases in Enterprise Linux Environment

Operating System

Image-based Containers Image-based Containers

Identical Containers Non-identical ContainersRHEL 6 RHEL 7RHSCLFedora

Host System

Page 32: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

32

Use Cases in Enterprise Linux Environment

● Mixed Environment Use Cases

● Mitigate impacts by server updates● Running newer applications on older hosts

Host Kernel

User Space

Ruby 1.8.7

Java 1.6.0_3

Python 2.6.6

Perl 5.10.1

Gcc PHP

Bash 4.1.2

Ruby 2.0

Java_1.8

Bash 4.3Perl

6.2

Docker

/optRuby 2.0

Java_1.8

Perl 6.2

Bash 4.3

/usr/bin

Gcc

PHP

Page 33: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

33

Use Cases in Enterprise Linux Environment

● Mixed Environment Use Cases

● Mitigate impacts by server updates● Running newer applications on older hosts

Host Kernel

User Space

/usr/bin/ruby_1.8.7

/usr/bin/java_1.6.0

/usr/bin/python_2.6.6 /opt/usr/bin/perl_6.2

/usr/bin/gcc_4.6.6

/bin/bash_4.1.2

/usr/bin/perl_6.2

/usr/bin/java_1.8

/usr/bin/ruby 2.0

/bin/bash_4.3 Docker

Docker

Docker

/opt/usr/bin/ruby_2.0

/opt/usr/bin/java_1.8

/usr/bin/perl_5.10.1 /opt/bin/bash_4.3

...

...

Page 34: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

34

Use Cases in Enterprise Linux Environment

● Stack-able Environment Use Cases

● Uses existing fully virtualized environment and setup● Running newer applications on old virt hosts

Container Host OS & Central Shared Services

Hardware

DockerContainers

DockerContainers

App B

RuntimeB

App C

Runtime C

Kernel & HW Drivers

App A

RuntimeA

Container Host OS & Central Shared Services

DockerContainers

DockerContainers

App B

RuntimeB

App C

Runtime C

Kernel & Virt Drivers

App A

RuntimeA

Hypervisor

Host OS

Kernel & HW Drivers

Hardware

Page 35: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

35

Use Cases – Enterprise Usage

Page 36: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

36

Use Cases in Enterprise Linux Environment

● Enterprise Environment - Full Stack Integration

● Docker Registry - Image manager and database● RHEL Atomic Host – Deploy and management container● Kubernetes - Container orchestration and management

(Google, Red Hat, IBM...)● Openstack - Cloud infrastructure

Page 37: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

37

Use Cases in Enterprise Linux Environment

● Market Segment

● Early Adopter●Existing in-house application migration●PaaS Platform

● Ease of deployment and Integration● Main Stream

●Cloud infrastructure integration●For in-house software development ●For system integraters whom hosts different development environment

Page 38: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

38

Use Cases in Enterprise Linux Environment

● Early Adopters and Main Stream Use Cases

● For in-house software development ● For systems integrator whom hosts different

development environment

ITInternalAppDevel

Ruby

java

HR

Finance

Factory

Company A:

Scenario A

Company B:

IT O

utsource

HR

Finance

Manufacturing

Legal

Company C:

A

B

A

B

Perl

Bash

Scenario B

Page 39: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

39

Use Cases in Enterprise Linux Environment

● Early Adopter

● For in-house software development and/or deployment● To satisfy SLA requirements quickly

ITInternalAppDevel

Ruby

java

HR

Finance

Factory

Company A:

Scenario A

ITInternalAppDevel

PaasOn premise

Ruby Ruby

Ruby

javajava

java

Company A:

Page 40: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

40

Use Cases in Enterprise Linux Environment

● Early Adopters

● For in-house software development and/or deployment● To satisfy SLA requirements quickly

ITInternalAppDevel

Ruby

java

HR

Finance

Factory

Company A:

Scenario A

ITInternalAppDevel

PaasOn premise

Ruby

Ruby

Ruby

javajava

java

Company A:

Factory

Procurement

Page 41: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

41

Use Cases in Enterprise Linux Environment

● Main Stream

● For in-house software development and/or deployment ● To satisfy SLA requirements quickly

ITInternalAppDevel

Ruby

java

HR

Finance

Factory

Company A:

Scenario A

ITInternalAppDevel

Ruby

Ruby

Ruby

javajava

java

PaaS Cloud

Company A:

Page 42: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

42

Use Cases in Enterprise Linux Environment

● Early Adopters

● For external software development, and integration plus deployment

● For systems integrator whom hosts different application environment

Company B:

IT O

utsource

HR

Finance

Manufacturing

Legal

Company C:

A

B

A

B

Perl

Bash

Scenario B

A

B

Perl

Bash

PaasOn premise

Company C:

Page 43: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

43

Use Cases in Enterprise Linux Environment

● Main Stream

● For external software development, and integration plus deployment

● For systems integrator whom hosts different application environment

Company B:

IT O

utsource

HR

Finance

Manufacturing

Legal

Company C:

A

B

A

B

Perl

Bash

Scenario B

A

B

Perl

Bash

Paas Cloud

Company C:

Page 44: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

44

Key Takeaways

● Application resource management and isolation mechanism in a light-weight multi-tenancy environment

● Agile application packaging w/ Docker image-based containers

● Provide flexibility on environment footprint

● Mixed and/or Stack-able Environment● Fast deployment for traditional application's environment

● Compatible with existing full virt environment - run docker inside virtualized environment

Use Cases in Enterprise Linux Environment

Page 45: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

45

References

● Docker – docker.io or https://www.docker.com/tryit/

● Performance Blog on Docker – Jeremy Eder https://developerblog.redhat.com/2014/08/19/performance-analysis-docker-red-hat-enterprise-linux-7/

● RHEL Blog - http://rhelblog.redhat.com/

● Project Atomic - http://www.projectatomic.io/

● https://github.com/GoogleCloudPlatform/kubernetes

Use Cases in Enterprise Linux Environment

Page 46: Use Cases for Docker in Enterprise Linux Environment · CloudOpen North America 2014 | Linda Wang 4 Use Cases for Docker in the Enterprise Linux Environment What’s Docker? Based

CloudOpen North America 2014 | Linda Wang

46

Questions?