Dockercon eu tour 2015 - Devoxx Casablanca
-
Upload
michel-courtine -
Category
Technology
-
view
45 -
download
0
Transcript of Dockercon eu tour 2015 - Devoxx Casablanca
Michel Courtine Member of Technical Staff - Docker Inc.@michaK [email protected]
Build, Ship & Run distributed application
Leading Enterprises Worldwide Depend on Docker
E-Commerce Media Life Sciences Finance
Vertical Search IT SaaS IaaS PaaS
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
as Boromir would say …
http://blogs.gartner.com/richard-watson/ok-get-dockers-great/
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
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
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
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
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)
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
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
Big 3 managed container servicesAmazon ECS Google Container Engine Microsoft Azure Container Service
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
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• 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
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
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 …
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