what's new in docker - infrakit - docker meetup berlin 2016

66
Patrick Chanezon, @chanezon, Docker Inc. What’s new in Docker InfraKit David Chung, @dchungsf, Docker Inc. Bill Farner, @wfarner, Docker Inc.

Upload: patrick-chanezon

Post on 06-Jan-2017

896 views

Category:

Software


1 download

TRANSCRIPT

Page 1: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Patrick Chanezon, @chanezon, Docker Inc.

What’s new in DockerInfraKit

David Chung, @dchungsf, Docker Inc.Bill Farner, @wfarner, Docker Inc.

Page 2: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

French

Polyglot

Platforms

Software Plumber

San Francisco

Developer Relations

@chanezon

Page 3: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

The world needstools of mass innovation

Page 4: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

A programmable Internet would be the ultimate tool of mass innovation

Page 5: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

A commercial product,

built ona development platform,

built oninfrastructure,

built onstandards.

Docker is building a stack to program the Internet

Page 6: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker Platform

Page 7: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Isolation using Linux kernel featuresnamespaces

pid mnt net uts ipc user

cgroups memory cpu blkio devices

Page 8: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Image layers

Page 9: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

1.

Developer experience

Page 10: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

1. Get out of the way

The best tools…

2. Adapt to you

3. Make thepowerful simple

Page 11: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker for Mac Docker for Windows

Page 12: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

2.

Orchestration

Page 13: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Introducing the best way to orchestrate Docker: Docker.

Docker 1.12: now with orchestration built-in.

Page 14: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Swarm mode

Service API

Cryptographic node identity

Built-in routing mesh

Docker 1.12: now with orchestration built-in.

Page 15: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Using the beta? You already have 1.12 installed.

> docker swarm init> docker service create

Page 16: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

3.

Ops experience

Page 17: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Deep integration with native load-balancers, templates,SSH keys, ACLs, scaling groups, firewall rules…

beta.docker.com

Page 18: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Distributed Application Bundle

experimenta

l www.docker.com/dab

A portable format for multi-container applications

Page 19: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker CaaS

Page 20: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Goals

+ +

Agility Portability Control

Page 21: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Cloud Zone 1

Cloud Zone 2 Data Center

Development Center

Headquarters

Containerization: standard containers on a standardized container engine

Orchestration: build and deploy complex systems easily

Enterprise: Enable delivery and time to value across a large, complex, rapidly evolving enterprise

The Global Enterprise Supply Chain

Page 22: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

BUILDDevelopment Environments

SHIPRegistry: Secure Content &

Collaboration

RUNControl Plane: Deploy,

Orchestrate, Manage, Scale

Networking Volumes MonitoringLoggingConfig MgtCI/CD

IT OperationsDevelopers IT Operations

Docker CaaS Workflow

Page 23: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker Containers as a Service platform

BUILDDeveloper Workflows

SHIPRegistry Services

RUNManagement

Docker for Mac and Windows Docker Trusted Registry Docker Universal Control Plane

Docker Cloud

Docker Container Engine

Ecosystem Plugins and Integrations

Page 24: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

UCP Permission Model

Page 25: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker UCP 1.1 - DTR 2.0• HA• Unified Auth• Compose deployment• UI to add nodes

Page 26: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Security scanning in Docker Cloud

Page 27: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Plumbing

Page 28: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

2013

- 05

2013

- 06

2013

- 07

2013

- 08

2013

- 09

2013

- 10

2013

- 11

2013

- 12

2014

- 01

1,000,0000

2014

- 02

2014

- 03

2014

- 04

2014

- 05

2014

- 06

2014

- 07

2014

- 08

2014

- 09

2014

- 10

2014

- 11

2014

- 12

2015

- 01

2015

- 02

2015

- 03

2015

- 04

2015

- 05

2015

- 06

2015

- 07

2015

- 08

2015

- 09

2015

- 10

2015

- 11

2015

- 12

2016

- 0

1

1,000,000,000~

10,000,0009,000,0008,000,0007,000,0006,000,0005,000,0004,000,0003,000,0002,000,000

6,000,000,0005,750,000,0005,500,000,0005,250,000,0005,000,000,0004,750,000,0004.500,000,0004,250,000,0004,000,000,0003,750,000,0003,500,000,0003,250,000,0003,000,000,0002,750,000,0002,500,000,0002,250,000,0002,000,000,0001,750,000,0001,500,000,0001,250,000,000

Page 29: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

2013

- 05

2013

- 06

2013

- 07

2013

- 08

2013

- 09

2013

- 10

2013

- 11

2013

- 12

2014

- 01

1,000,0000

2014

- 02

2014

- 03

2014

- 04

2014

- 05

2014

- 06

2014

- 07

2014

- 08

2014

- 09

2014

- 10

2014

- 11

2014

- 12

2015

- 01

2015

- 02

2015

- 03

2015

- 04

2015

- 05

2015

- 06

2015

- 07

2015

- 08

2015

- 09

2015

- 10

2015

- 11

2015

- 12

2016

- 0

1

~

2016

- 09

1,000,000,000~

10,000,0009,000,0008,000,0007,000,0006,000,0005,000,0004,000,0003,000,0002,000,000

6,000,000,0005,750,000,0005,500,000,0005,250,000,0005,000,000,0004,750,000,0004.500,000,0004,250,000,0004,000,000,0003,750,000,0003,500,000,0003,250,000,0003,000,000,0002,750,000,0002,500,000,0002,250,000,0002,000,000,0001,750,000,0001,500,000,0001,250,000,000

NotaryrunC •

containerd •

HyperKit , VPNKit, DataKit •

SwarmKit •

libcontainer •

libnetwork • • Docker 1.8 : Docker Content Trust

• Docker for Mac Docker for Windows

• Docker 1.12 with built-in orchestration

• Docker 0.9 : Pluggable execution

• Docker 1.7 : Multi-Host Networking

• Docker 1.11: OCI support

Page 30: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Notary“Let’s stop using curl|sh”

Trusted collections for any content

Transport-agnostic

Reliable updates, proof of origin, resistant to untrusted transport, survivable key compromise

Build on industry-leading standards and research

Page 31: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

RunCThe universal container runtime

https://runc.io

Page 32: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

containerdA daemon to control runC

built for performance and density

http://containerd.tools/

Page 33: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

containerd

Page 34: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker 1.11

Page 35: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker for Mac architecture(simplified)

Page 36: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Hypervisor Framework vmnet Framework

Docker Container Engine

Hypervisor

Linux

VPN

Data Service

Interface

Client Libraries

Admin GUI

CLI

Security Sandbox

Docker for Mac internals

Page 37: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Unikernels

http://unikernel.org/

Page 38: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Hypervisor Framework vmnet Framework

Docker Container Engine

Hyperkit

Linux

VPNKit

DataKit

Client Libraries

Admin GUI

CLI

Security Sandbox

Improving Docker with unikernel tech

Page 39: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

InfraKit

Page 40: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Problem:

Managing Docker on different infrastructure isdifficult and not portable.

Page 41: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Consistent User Experience

How do we handle updates to a cluster??

Page 42: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker for AWS

EBS ELB

Container Engine

Storage plugin

Infrastructure Management

Network plugin Orchestration

IAM

CloudFormation

EC2VPC

Admin interface

Linux

User Applications / Services

Page 43: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Docker for AWS

EBS ELB

Container Engine

Storage plugin

InfraKit

Network plugin Orchestration

IAM

CloudFormation

EC2VPC

Admin interface

Linux

User Applications / Services

Page 44: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

InfraKit

A toolkit for building declarative, self-healing infrastructure.

Page 45: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Declarative

• JSON configuration for desired infrastructure state:• Specification of instances — vm image, instance type, etc.• Group properties — size, logical identifiers, etc.

• Design patterns encourage • encapsulation• composition

• Config is input to all operations — system figures out what to do

Page 46: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Self-healing

• Composed of a set of active components / processes that• monitor infrastructure state• detect state divergence• take actions

• Continuous monitoring and reconciliation — always on

• No downtime — rolling update

Page 47: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Toolkit

• Primitives for managing collections of resources• create, scale, destroy• rolling update

• Abstractions & Developer SPI• Group - manages collection of resources• Instance - describes the physical resource• Flavor - extra semantics for handling instances

• A collection of executable, active components — plugins• Initially, Go daemons in the toolkit• Soon, easy management via Docker Plugins (runc)

Page 48: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Architecture

Page 49: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Instance Plugin

• Spec: specification / model of an instance (e.g. vagrant, EC2):• Logical ID, Init, Tags, and attachment• Platform-specific properties

• Methods:• /Instance.Validate• /Instance.Provision• /Instance.Destroy• /Instance.DescribeInstances

• Examples: instance plugins for EC2, Azure VM, Vagrant, …

Page 50: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Flavor Plugin

• Gives more context about the group members:• Size, or list of Logical ID’s (e.g. IP addresses for ‘pets’)• Application-specific notions of ‘health’

Is the node not only present but also joined a swarm?• Methods:

• /Flavor.Validate• /Flavor.Prepare• /Flavor.Healthy

• Examples: flavor for Zookeeper members, Docker swarm nodes

Page 51: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Group Plugin

• Main entry point for user interaction:• Create, describe update, update, destroy• Config JSON is always the input

• Composed of Instance and Flavor — mix and match to manage cattle (fungible) or pets (special)

• Methods:• /Group.Watch• /Group.Unwatch• /Group.Inspect

• /Group.DescribeUpdate• /Group.Update• /Group.StopUpdate

• /Group.Destroy

Page 52: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

ConfigurationExample config file (zk.conf): Group configuration = Instance + Flavor

{ "Properties": {

/* raw configuration */

}}

{ "groups" : { "my_zookeeper_nodes" : { "Properties" : { "Instance" : { "Plugin": "instance-vagrant", "Properties": { "Box": "bento/ubuntu-16.04" } }, "Flavor" : { "Plugin": "flavor-zookeeper", "Properties": { "type": "member", "IPs": ["192.168.1.200", "192.168.1.201", "192.168.1.202"] } } } } }}

Page 53: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Operations

• Make sure the plugins are running:• infrakit/group &; infrakit/zookeeper &; infrakit/vagrant &;

• “Watch” the group starts management:• infrakit/cli group watch zk.conf

• Update the config, e.g. change size or add IP address• Describe changes before committing —

infrakit/cli group describe zk.conf• Begin update —

infrakit/cli group update zk.conf

Page 54: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

InfraKit Demo

Page 55: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 56: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 57: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 58: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 59: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 60: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 61: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 62: What's new in Docker - InfraKit - Docker Meetup Berlin 2016
Page 63: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Today

• InfraKit is just getting started… only primitives for working with groups like clusters of hosts

• But we have big plans• Improve group management strategies• More resource types — networking, load

balancers, storage…

• A cohesive framework for active management of infrastructure — physical, virtual, or containers

Page 64: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

Get Involved

• Help define and implement new and interesting plugins• Instance plugins for different infrastructure providers • Flavor plugins for systems like etcd or mysql clusters• Group controller plugins — metrics-driven auto scaling

and more

• Help define interfaces and implement new infrastructure resource types — load balancers, networks and storage volume provisioners

Page 65: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

More Info

• Github: https://github.com/docker/infrakit

• A quick tutorial: https://github.com/docker/infrakit/blob/master/docs/tutorial.md

Page 66: What's new in Docker - InfraKit - Docker Meetup Berlin 2016

THANK YOU