Skip to content

Latest commit

 

History

History
30 lines (27 loc) · 5.74 KB

docker-orchestration-frameworks.adoc

File metadata and controls

30 lines (27 loc) · 5.74 KB

Docker vs Kubernetes vs DC/OS vs ECS

This document compares the four container orchestration frameworks: Docker Engine w/ Swarm Mode, Kubernetes, DC/OS, and ECS.

Feature Docker Kubernetes DC/OS ECS

Local Development

Docker Community Edition

minikube

DC/OS Vagrant

Blox

Multiple clouds

Docker Cloud, Docker Machine Drivers, Docker for AWS/Azure

Turn Key Cloud

Mulitple clouds

AWS

Service Discovery and Load Balancer

Docker-compse: DNS
Docker Swarm: (Service)

Service

Yes (multiple: DNS-based and proxy-based/L4 load balancer)

DNS-based, ELB-based, ALB-based

Dynamic Scaling

Services, Distributed Application Bundle, Stack

Replica Set, Replication Controller, Deployment, Horizontal Pod Autoscaling

Marathon app spec (instance count) and multiple options

Service Auto Scaling

Exposing a service

Routing mesh

type=LoadBalancer in Deployment

Multiple (direct placement on public agent or, preferred, via Marathon-LB

Classic and Application Load Balancer

Run-once job

docker run

Job

Jobs

Tasks

Namespace

docker-compose -p <namespace>

Namespace

via labels in System Marathon

Custom Attributes

Global service

--mode=global

DaemonSet

Unique Attribute

'distinctInstance' Task Placement Constraint

Maven

fabric8-maven-plugin

fabric8-maven-plugin

dcos-maven-plugin

No

Volumes

Docker Volumes

Persistent Volumes

local persistent volumes as well as external persistent volumes

Using Data Volumes in Tasks

Multiple Master

Yes

Yes

Yes

Yes (default)

Multi-host networking

Yes

Yes

Yes

Proposed implementation

Rolling Update

https://github.com/arun-gupta/docker-scripts/blob/master/rolling-updates.adoc

https://github.com/arun-gupta/kubernetes-java-sample/tree/master/rolling-update

ZDD Lab

Updating a Service

Container distribution strategies

Automatic?

Automatic, but custom schedulers supported.

Automatic

Task Placement Strategies

Affinity

Labels

Node (1.2) and Pod (1.4) affinity http://kubernetes.io/docs/user-guide/node-selection/

Marathon constraints and pods (in 1.9)

Via Task Placement Strategies and Constraints

Constraints

-c, -m

Labels

Marathon constraints

Task Placement Constraints

On-premise

Yes

Yes

Yes

No

Cluster across multiple clouds

Yes

Yes (partly)

Yes (agents)

No (Can span multiple AZ)

Commercially supported

Docker Enterprise Edition

Google, Apprenda, Canonical, CoreOS, Cloud RTI others?

Mesosphere Enterprise DC/OS

AWS Support

Creating Couchbase Cluster

blog

blog

blog

blog (one node)