containers - (austin cloud meetup april 2016)

108

Upload: derrick-wippler

Post on 07-Jan-2017

11.595 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Containers - (Austin Cloud Meetup April 2016)
Page 2: Containers - (Austin Cloud Meetup April 2016)

Derrick J. WipplerBlog: http://thrawn01.org

Twitter: @thrawn01

Page 3: Containers - (Austin Cloud Meetup April 2016)
Page 4: Containers - (Austin Cloud Meetup April 2016)

Android Super NES Emulatorhttp://www.superretro16.com/

Page 5: Containers - (Austin Cloud Meetup April 2016)

Containers

Page 6: Containers - (Austin Cloud Meetup April 2016)
Page 7: Containers - (Austin Cloud Meetup April 2016)

What Containers Are NOT

Page 8: Containers - (Austin Cloud Meetup April 2016)

DOCKER != CONTAINERS

Page 9: Containers - (Austin Cloud Meetup April 2016)
Page 10: Containers - (Austin Cloud Meetup April 2016)

Container Technology is provided by the Linux

Kernel

Page 11: Containers - (Austin Cloud Meetup April 2016)

NOT LXC

Page 12: Containers - (Austin Cloud Meetup April 2016)

Linux Kernel Containers

Page 13: Containers - (Austin Cloud Meetup April 2016)

Everything you need to create and run containers already exists in the

linux kernel

Page 14: Containers - (Austin Cloud Meetup April 2016)

Everything you need to create and run containers already exists in the

linux kernel

Page 15: Containers - (Austin Cloud Meetup April 2016)

However…….

Page 16: Containers - (Austin Cloud Meetup April 2016)
Page 17: Containers - (Austin Cloud Meetup April 2016)
Page 18: Containers - (Austin Cloud Meetup April 2016)
Page 19: Containers - (Austin Cloud Meetup April 2016)
Page 20: Containers - (Austin Cloud Meetup April 2016)
Page 21: Containers - (Austin Cloud Meetup April 2016)

CHROOT

Page 22: Containers - (Austin Cloud Meetup April 2016)
Page 23: Containers - (Austin Cloud Meetup April 2016)

CHROOT PROVIDES

Isolate Process & File systems

Page 24: Containers - (Austin Cloud Meetup April 2016)

CHROOT

Page 25: Containers - (Austin Cloud Meetup April 2016)

CHROOTKernel Namespaces

CGroups

Page 26: Containers - (Austin Cloud Meetup April 2016)

Namespaces

Page 27: Containers - (Austin Cloud Meetup April 2016)

PID Namespaces

NET Namespaces

Page 28: Containers - (Austin Cloud Meetup April 2016)

PID Namespaces ProvideProcess Isolation

Page 29: Containers - (Austin Cloud Meetup April 2016)
Page 30: Containers - (Austin Cloud Meetup April 2016)

PID NameSpace 1

Page 31: Containers - (Austin Cloud Meetup April 2016)

PID NameSpace 1

PID NameSpace 2

PID NameSpace 3

PID NameSpace 4

Page 32: Containers - (Austin Cloud Meetup April 2016)

PID NameSpace 1

PID NameSpace 2

PID NameSpace 3

PID NameSpace 4

CHROOT ?

Page 33: Containers - (Austin Cloud Meetup April 2016)

NET Namespaces

Page 34: Containers - (Austin Cloud Meetup April 2016)

NET Namespaces ProvideNetwork Isolation

Page 35: Containers - (Austin Cloud Meetup April 2016)

Root NET Namespace

NET Namespace 1

NET Namespace 2

Page 36: Containers - (Austin Cloud Meetup April 2016)

Root NET Namespace

NET Namespace 1

NET Namespace 2

Page 37: Containers - (Austin Cloud Meetup April 2016)

Network your chroots together inside the kernel

Page 38: Containers - (Austin Cloud Meetup April 2016)

Network your chroots together inside the kernel

Sounds like - VM Hypervisor

Page 39: Containers - (Austin Cloud Meetup April 2016)

Container is NOT a VM

Page 40: Containers - (Austin Cloud Meetup April 2016)

Container is NOT a VM

VM’s run entire OS

Page 41: Containers - (Austin Cloud Meetup April 2016)

Container is NOT a VM

VM’s run entire OS

Containers run a single process

Page 42: Containers - (Austin Cloud Meetup April 2016)

<demo>

Page 43: Containers - (Austin Cloud Meetup April 2016)
Page 44: Containers - (Austin Cloud Meetup April 2016)
Page 45: Containers - (Austin Cloud Meetup April 2016)
Page 46: Containers - (Austin Cloud Meetup April 2016)
Page 47: Containers - (Austin Cloud Meetup April 2016)
Page 48: Containers - (Austin Cloud Meetup April 2016)
Page 49: Containers - (Austin Cloud Meetup April 2016)
Page 50: Containers - (Austin Cloud Meetup April 2016)
Page 51: Containers - (Austin Cloud Meetup April 2016)
Page 52: Containers - (Austin Cloud Meetup April 2016)
Page 53: Containers - (Austin Cloud Meetup April 2016)

Prepare for coolness

Page 54: Containers - (Austin Cloud Meetup April 2016)
Page 55: Containers - (Austin Cloud Meetup April 2016)
Page 56: Containers - (Austin Cloud Meetup April 2016)
Page 57: Containers - (Austin Cloud Meetup April 2016)
Page 58: Containers - (Austin Cloud Meetup April 2016)
Page 59: Containers - (Austin Cloud Meetup April 2016)
Page 60: Containers - (Austin Cloud Meetup April 2016)
Page 61: Containers - (Austin Cloud Meetup April 2016)
Page 62: Containers - (Austin Cloud Meetup April 2016)
Page 63: Containers - (Austin Cloud Meetup April 2016)
Page 64: Containers - (Austin Cloud Meetup April 2016)

Remember, when you start a container, you are just starting a process with namespaces

Page 65: Containers - (Austin Cloud Meetup April 2016)
Page 66: Containers - (Austin Cloud Meetup April 2016)
Page 67: Containers - (Austin Cloud Meetup April 2016)
Page 68: Containers - (Austin Cloud Meetup April 2016)
Page 69: Containers - (Austin Cloud Meetup April 2016)
Page 70: Containers - (Austin Cloud Meetup April 2016)
Page 71: Containers - (Austin Cloud Meetup April 2016)

Existing container workloads on VMs

1X DataCenters

Page 72: Containers - (Austin Cloud Meetup April 2016)
Page 73: Containers - (Austin Cloud Meetup April 2016)
Page 74: Containers - (Austin Cloud Meetup April 2016)

Configuration Management

Page 75: Containers - (Austin Cloud Meetup April 2016)

Infrastructure is in a known state.Prevent Infrastructure drift.

Self Healing

Page 76: Containers - (Austin Cloud Meetup April 2016)

Container Images treated as immutable

No more Infrastructure Drift

Page 77: Containers - (Austin Cloud Meetup April 2016)

Prevent Infrastructure driftInfrastructure is in a known state

Self Healing

Page 78: Containers - (Austin Cloud Meetup April 2016)

Clustering

Page 79: Containers - (Austin Cloud Meetup April 2016)

What is KubernetesKubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the user's declared intentions.

Page 80: Containers - (Austin Cloud Meetup April 2016)

Kubernetes MonitoringBuiltin support for application level health checks

(DB Checks, Socket & Http checks, etc…)

Automatically restart crashed processes (aka containers)

Natively React to Monitor Events

Page 81: Containers - (Austin Cloud Meetup April 2016)

Prevent Infrastructure driftInfrastructure is in a known state

Self Healing

Page 82: Containers - (Austin Cloud Meetup April 2016)
Page 83: Containers - (Austin Cloud Meetup April 2016)

MANAGED BY KUBERNETES

Self healingNo Infrastructure Drift

Infrastructure is in a known state

Reliability

Page 84: Containers - (Austin Cloud Meetup April 2016)

Why do we need Configuration Management?

Page 85: Containers - (Austin Cloud Meetup April 2016)

What about Operating System Configuration?

Page 86: Containers - (Austin Cloud Meetup April 2016)

Immutable Operating Systems

Immutable InfrastructureAKA

Page 87: Containers - (Austin Cloud Meetup April 2016)

Brandon Phillips CTO Alex Polvi CEO

Page 88: Containers - (Austin Cloud Meetup April 2016)

All you need is a OS that can run Containers

Page 89: Containers - (Austin Cloud Meetup April 2016)

No Package Manager

Immutable Config files

Page 90: Containers - (Austin Cloud Meetup April 2016)

Why configure the OS?

Our containers can contain all OS config files and daemons necessary for our

application to run

Page 91: Containers - (Austin Cloud Meetup April 2016)

How to configure all the disparate containers?

Page 92: Containers - (Austin Cloud Meetup April 2016)

Consistent Distributed Key Store

Page 93: Containers - (Austin Cloud Meetup April 2016)
Page 94: Containers - (Austin Cloud Meetup April 2016)

Why do we need Configuration Management?

Page 95: Containers - (Austin Cloud Meetup April 2016)

Brian Redbeard

Principal Architect CoreOS

Page 96: Containers - (Austin Cloud Meetup April 2016)

“If we do our job correctly, future releases of CoreOS will NOT have SSH server

installed”

Page 97: Containers - (Austin Cloud Meetup April 2016)

“If we do our job correctly, future releases of CoreOS will NOT have SSH server

installed”

Page 98: Containers - (Austin Cloud Meetup April 2016)

How you would design your infrastructure/software if you were unable

to SSH into the host OS?

Page 99: Containers - (Austin Cloud Meetup April 2016)
Page 100: Containers - (Austin Cloud Meetup April 2016)

Typical Operating System

Kernel

Configuration

Storage

Workloads

Page 101: Containers - (Austin Cloud Meetup April 2016)

Typical Operating System

Kernel

Configuration

Storage

Linux Kernel

/etc

FileSystems EXT4

Workloads Processes

Page 102: Containers - (Austin Cloud Meetup April 2016)

Typical Operating System

Kernel

Configuration

Storage

Linux Kernel

/etc

FileSystems EXT4

Kubernetes

etcd

ISCSI Block or FSAS

Workloads Processes Containers

Page 103: Containers - (Austin Cloud Meetup April 2016)

Cloud Operating System

Page 104: Containers - (Austin Cloud Meetup April 2016)

Infinite CPU Power

Distributed Scale

Self Healing

Always Available

Page 105: Containers - (Austin Cloud Meetup April 2016)

GIFEE

Page 106: Containers - (Austin Cloud Meetup April 2016)

GIFEEGoogle Infrastructure For Everyone Else

Page 107: Containers - (Austin Cloud Meetup April 2016)

All I WANTcreate my application in a container

make it scale

I don’t want it to go down

Page 108: Containers - (Austin Cloud Meetup April 2016)

Blog: http://thrawn01.org

Twitter: @thrawn01