Dockercon eu tour 2015 - Devoxx Casablanca

106
Michel Courtine Member of Technical Staff - Docker Inc. @michaK [email protected] Build, Ship & Run distributed application

Transcript of Dockercon eu tour 2015 - Devoxx Casablanca

Michel Courtine Member of Technical Staff - Docker Inc.@michaK [email protected]

Build, Ship & Run distributed application

French Polyglot

Platforms Software Plumber

Paris Developer Relations

@michaK

What do you know about Docker?

“Welcome to the jungle we've got fun and games We got everything you want honey, we know the names”

Leading Enterprises Worldwide Depend on Docker

E-Commerce Media Life Sciences Finance

Vertical Search IT SaaS IaaS PaaS

“The future is already here — it's just not very evenly distributed” William Gibson, Neuromancer

Docker’s mission is to build tools of mass innovation

Docker Mission

Internet (hardware layer)

Servers Desktops Phones Cars Houses Drones Network

equipmentPublic transit

TVs Industrial facilities

Scientific instrument

sFinancial system

Programmers

Internet (software layer)

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

Internet (hardware layer)

Servers Desktops Phones Cars Houses Drones Network

equipmentPublic transit

TVs Industrial facilities

Scientific instrument

sFinancial system

Programmers

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

a software layer to program the internet

Linux Container Ecosystem

Business opportunity

as Boromir would say …

http://blogs.gartner.com/richard-watson/ok-get-dockers-great/

Low MTBIAMSH

MTBIAMSH (Mean Time Between Idea And Making Stuff Happen)

Agility == $$

Devops

25

Mainframe

Client-Server

26

27

Web

28

Cloud - Devops

Docker

Traditional Architecture (pre-2000)• One Server = One Application• Single Stack = Single Language• More compute = More servers• Expensive, Slow, Inefficient

Virtualization (2000s)• One Server = Multiple VMs = Multiple Stacks =

Multiple Applications• More compute = More VMs• 10s of VMs per Server• Enabled Cloud Computing

Isolation using Linux kernel featuresnamespaces ● pid ● mnt ● net ● uts ● ipc ● user

cgroups ● memory ● cpu ● blkio ● devices

Image layers

Docker for developers

https://registry.hub.docker.com/_/java/

docker-compose: running multiple containers● Run your stack with one command: docker-compose up● Describe your stack with one file: docker-compose.ymlweb: build: . command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redis:redis

redis: image: redis

docker-machine

docker-machine create -d azure \ —azure-subscription-id="c4f51be3-784c-xxx-7c50ad9e1b7c" \ --azure-subscription-cert="/Users/michaK/.ssh/docker-azure-cert.pem" \ --azure-location="East US" \ --azure-size=Small \ --azure-username="michak" \ michak-docker-machine-n

Kitematic

Docker Hub

Docker Trusted Registry

Swarm

Scheduler plugins

Engine

Volumes plugins

Network plugins

Service discovery plugins

Engine

Volumes plugins

Network plugins

Service discovery plugins

mesos

flockerglusterfs

weavecalico

consuletcdzookeeper

midokuraciscoazurenuagenetworks

Docker Plugins

Batteries included but removable

+

Demo:First day at a job with Docker

Docker CLI

Docker CLI

Docker CLI

Docker Engine

us-west us-east

Docker CLI

Docker CLI

Docker Swarm

Swarm

Open Standards

RunCThe universal container runtime

https://runc.io

Security

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

1.9 Release

Engine 1.9 Release• Network management

•Top-level docker network command•Out of the box support for multi host overlay networking•Extensibility through plugins

• Volume management•Top-level docker volume command•Extensibility through plugins

• Built-in nodes discovery•Daemon --cluster-store and --cluster-advertise

Engine 1.9 Release• Builder

•Refactoring toward client-side build support•ARG: build-time arguments (provides support for HTTP_PROXY)•STOPSIGNAL: choose the stop signal for the contained process

• Miscellaneous•Quality, stability, performance improvements•awslog logging driver

• Experimental•User namespaces phase 1 (daemon-wide root remap)

Roadmap Engine 1.10• Runtime

•Progress toward runC integration

• Distribution•Ongoing effort to rewrite push/pull layer•New manifest design, with content addressability from the grounds-up

• Networking•Stabilize all the new features shipped in 1.9.0•Better support for IPv6

• Security•Stable user namespaces (phase 1)

Orchestration

ORCHES

TRATIO

N

Docker Swarm

Docker CLI

Docker CLI

Docker CLI

Docker Engine

us-west us-east

Docker CLI

Docker CLI

Docker Swarm

Swarm

Swarm integrations● Fully integrated with Machine and Compose ● Mesos integration

Mesos

Kubernetes

KubernetesScheduler

host-1 host-2 host-3 host-n

…..Container Agent

Container Agent

Container Agent

Container Agent

Linux Linux Linux Linux

Container

Container

Kubernetes

host-1

Container

host-2 host-3 host-4 host-n

Container

Container

Container

Container

ContainerContainer

ContainerContainer

Kubernetes

host-1 host-2 host-3 host-4 host-n

Frontend

Worker

my_app pod

MyAppMyApp MyApp

Replication Controller

3

Kubernetes

host-1 host-2 host-3 host-4 host-n

…MyAppMyApp MyApp

Replication Controller

Pod Pod

Pod

Pod

PodPod

PodPod

Replication Controller

Kubernetes

host-1 host-2 host-3 host-4 host-n

…MyAppstaging

MyAppstaging

MyAppstaging

MyAppprod

MyAppprod

MyAppprod

MyAppprod

MyAppprod

MyApp Production Service{ environment: prod }

MyApp Staging Service{ environment: staging }

Labels and Services

Cloud Foundry & IBM BlueMix

Cloud Foundry Diego & Lattice

cf docker-push my-app cloudfoundry/lattice-app

IBM BluemixThe Digital Innovation Platform

79

Customer ManagedService Provider Managed

IBM SoftLayer

Bluemix started as a public PaaSBluemix started with a major focus on developer productivity in the public cloud.

Infrastructure as a Service

Code

Data

Runtime

Middleware

OS

Virtualization

Servers

Storage

Networking

Code

Data

Runtime

Middleware

OS

Virtualization

Servers

Storage

Networking

Platform as a Service

80

Customer ManagedService Provider Managed

IBM SoftLayer

We listened. Now we’re evolving to become even more flexible.Capabilities in Bluemix now span PaaS and IaaS and can be delivered as a public, dedicated, or on-premises* implementation.

Infrastructure as a Service

Code

Data

Runtime

Middleware

OS

Virtualization

Servers

Storage

Networking

Code

Data

Runtime

Middleware

OS

Virtualization

Servers

Storage

Networking

Platform as a Service

*Bluemix Local coming Summer 2015

Built on open technologies:

Containers in BluemixBluemix now comes with a fully integrated, high performance Docker experience, meaning monitoring, logging, elasticity, enterprise images, and VM abstraction are all standard.

81

Docker Value IBM Value-add Customer Value

Docker Hub Registry holds a repository of 75000+ Docker images

• IBM hosted public registry containing IBM images - linked to Docker Hub

• Client unique registry available on and off premises • Enterprise-ready images

Access to the images you require to deploy containers that meet your business needs and strategy

Open-source, standardized, lightweight, self sufficient LXC container technology

• Enhanced performance with bare metal deployment • Run images to local datacenter or cloud • Deployment choice with pSeries & zSeries

Flexibility to choose the right hybrid cloud mix for your business

Build, ship, and run standardized containers

• Integrated monitoring & logging • Elasticity to grow storage & container needs • Life-cycle management of containers and data volumes  • No VMs to manage

Docker ease of use combined with enterprise-level integrity and confidence

Container connections using links and service discovery

• Private network communication • External IP address • Subnet Range

Extends and connects Docker containers to production-ready enterprise environments

Other on prem systems

DeisHeroku-like workflow, based on Kubernetes

Yelp PaastaBased on Mesos + Marathon + Chronos

SaaS Orchestration systems

Big 3 managed container servicesAmazon ECS Google Container Engine Microsoft Azure Container Service

The Container Platform

�@tutumcloud �tutum.co �[email protected]

Tutum: The Container Platform

TUTUM CONTAINER PLATFORM

Any application

Any infrastructureManagedSimple Flexible

Hybrid/Agnostic

Any Operating

System

Containers+

Other

Design Principles:

Tutum: The Container Platform

Dev Deploy ManageBuild

CI CD

Code repo

Image repo

Monitoring

Logging

Scaling

Networking

Storage

Service Discovery

Composability

Security

Hosts Public Cloud Private CloudAcross: Environments

TUTUM CONTAINER PLATFORM

Public Cloud

Test

Orchestration

Joyent TritonThe network is the computer… v2:-)

Orchestration summary• Docker Swarm: Docker-style, provision with docker-

machine, 1.0, ready for production, 1k nodes • Mesos: Twitter-style, aligned with Swarm • Fleet: CoreOS-style, simple • Kubernetes: Google-style, heavy-duty, many concepts • Deis: Heroku-style workflow • Cloud Foundry Diego, IBM BlueMix: PaaS ->

orchestration • Also: Joyent, Tutum, Flynn

Docker & Microsoft

Docker & Microsoft• Build

• Docker client & Kitematic for Windows • Docker engine on Windows Server 2016 TP3 • yo-docker to dockerize existing projects • Visual Studio integration

• Ship • VSO?

• Run • Azure Docker agent • Swarm ARM template from Ahmet • Azure Container Service

What’s new with swarm?

Swarm goes stableIntroducing Swarm 1.0

Swarm 1.0

• Focus on Production Readiness• Stability • Scalability • Performance

• Platform Integration• libnetwork & overlay networking • volume plugins support

Scalability: >1,000 nodes

• NEW! Parallel Scheduling

• Scale Tests• 1000 nodes • 50000 containers

• Lab Specs• Manager: m4.xlarge (4 CPUs, 16G RAM)

- As powerful as your average MacBook Pro

• Nodes: t2.micro (1 CPU, 1GB RAM) - Less powerful than an iPhone 5s

• Reached EC2 provisioning limit

Performance

Median: 170 ms90th: 180 ms99th: 360 ms

Performance

Median: 170 ms90th: 180 ms99th: 360 ms

Stability

• Stress test under heavy load• 100s of clients competing for the same resources • Concurrent scheduling decisions • Loss of hundreds of nodes while scheduler is operating

Platform Integration

• Networking- docker network create, docker network attach, … - overlay networking by default

• Volume plugin subsystem- docker run -v volumename:/data --volume-driver …

Demo:Swarm doesn’t scale?

Fire up your first container today!

Ride the Whale!

Learning• http://docs.docker.com/ • http://training.docker.com • http://slideshare.net/chanezon • http://opencontainers.org • https://github.com/chanezon/docker-tips • https://github.com/dave-tucker/docker-network-demos

We’re hiring!

https://www.docker.com/company/careers/

Q&A