SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Container
Orchestrator
Smackdown
Continous Lifecycle 2016
Container Conf 2016
Michael Müller |  @michmueller_
Container Solutions |  @containersoluti
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Run Docker & Kubernetes on Exoscale
https://github.com/exoscale/multi-master-kubernetes
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
How important is orchestration and what is it for?
● Might not need it for small apps
● No orchestration == manual orchestration
● Manually place containers, network, scale, check, update
● Microservices & Cloud Native Applications
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Design principles for Cloud Native Applications:
● Design for Performance responsiveness, concurrency, efficiency
● Design for Automation automate dev & ops tasks
● Design for Resiliency fault-tolerance, self-healing
● Design for Elasticity automatic scaling
● Design for Delivery minimise cycle-time, automate deployment
● Design for Diagnosability cluster-wide logs, traces & metrics
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Let’s buy some socks...
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Microservice reference application
● Intended to help people getting started with Microservices
● Great for comparing frameworks, test driving new tools...
● Inspired by the "Pet Store" for Java Frameworks
... and “TodoMVC” for JavaScript
Implementations for 10+ Cloud/Container environments:
https://github.com/microservices-demo/microservices-demo/tree/master/deplo
y
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Architecture
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Comparing
Orchestrators
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Comparing orchestrators
● All work and are improving rapidly
● Understand the differences
● Understand your requirements
● Please don't roll your own!
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
The players
● Kubernetes
● Mesos (different workloads)
● Docker Swarm Mode
● Plus others
○ Nomad, PaaSs...
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Side note - the Borg/Omega papers
● Influential papers from Google
● Lessons learnt from 10 years with containers
● Google contributed cgroups to the Linux kernel, cgroups and linux
namespaces are the heart of containers
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Docker Swarm Mode
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Docker Swarm Mode
● New in Docker 1.12
● Docker Inc's official solution
● Part of core distribution
● Major improvement over TOS (“The Original Swarm”)
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Core components
● Manager nodes
○ coordinate via Raft
○ no need for separate etcd/zookeeper
● Worker nodes
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Usability
● Swarm extends concepts from single-node Docker to multi-node setups
● If you are up to date on standard Docker concepts, you’ll pick it up quickly
● Setting up a new Swarm is easy as pie
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Easy to install
$ docker swarm init
Swarm initialized: current node (10vh26gyxppo6j2vyb8rcvjwj) is now a
manager.
To add a worker to this swarm, run the following command:
docker swarm join 
--token SWMTKN-1-5td5x39z8jw...ccrjmkt1o8du3 
172.17.9.102:2377
To add a manager to this swarm, run 'docker swarm join-token manager'
and follow the instructions.
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Secure communication by default
● TLS set up using self-signed certs
● Certificates automatically rotated
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Feature Set
● Services
● Networks
● Constraints and labels
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Services
● Fixed number of containers are launched together and are kept running
● Two types of services: replicated or global
○ Replicated: Maintain a specified number of containers across the cluster
○ Global: Run one instance of a container on each swarm node
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Networks
● Allows creating named overlay networks...
● … which are isolated, flat, encrypted virtual networks
across your Swarm nodes to launch your containers into
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
● Control which node a container can be scheduled on
● E.g.:
○ Only nodes labeled staging
○ Only nodes which have the image
○ Only the node running a given container (affinity rules)
Constraints and Filters
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Other features
● Spread scheduling
○ chooses "least loaded" node
○ More options later
○ support for reserving &
limiting cpu/memory
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Application definition
● Apps are defined in DAB can be deployed on a Swarm cluster
● Possible to scale individual containers defined in the DAB file (manual)
Testing Swarm Mode with Socks Shop:
https://raw.githubusercontent.com/microservices-demo/
microservices-demo/master/deploy/swarmkit/start-swarmkit-services.sh
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Swarm Mode advantages
● Easy to install
● Secure by default
● “Bundled with Docker”
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Swarm Mode disadvantages
● Very new
● Some Docker features unsupported (--privileged, --read-only, …)
● DAB still WIP
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Kubernetes
often just “K8S”
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Kubernetes
● Based on Google's experience running containers
● Many advanced features baked in:
○ Load-balancing
○ Secrets management
○ RBAC (Role Based Access Control)
○ …
● More opinionated
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Core concepts
● Pods
● Labels
● Services
● Deployments
● ReplicaSets
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Pods
● Groups of containers deployed and scheduled together
● Atomic unit of deployment
● Containers in a pod share IP address
● Single container pods are most common case
● Pods are ephemeral
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Labels
● Key/Value pairs attached to objects (primarily pods)
○ e.g. version: dev, tier: frontend
● Label selectors then used to group objects
● Used for load-balancing etc.
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Services
● Stable endpoints addressed by name
● Forward traffic to pods
● Pods are selected by labels
● Round-robin load-balancing
● Separates endpoint from implementation
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Deployments & ReplicaSets
● ReplicaSets monitor status of Pods
○ start/stop pods as needed
● Deployments start/create ReplicaSets
● Rollout/Rollback & Updates
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Usability
● Setting up a production grade Kubernetes-cluster from scratch requires
setting up etcd, networking plugins, DNS servers and certificate authorities.
○ Will change pretty soon with future versions of kubeadm
● Beyond initial setup, Kubernetes still has a steeper learning curve
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Snap to install
$kubeadm init
<master/tokens> generated token: "f0c861.753c505740ecde4c"
<master/pki> created keys and certificates in "/etc/kubernetes/pki"
<util/kubeconfig> created "/etc/kubernetes/kubelet.conf"
<util/kubeconfig> created "/etc/kubernetes/admin.conf"
<master/apiclient> created API client configuration
<master/apiclient> created API client, waiting for the control plane to become ready
<master/apiclient> all control plane components are healthy after 61.346626 seconds
<master/apiclient> waiting for at least one node to register and become ready
<master/apiclient> first node is ready after 4.506807 seconds
<master/discovery> created essential addon: kube-discovery
<master/addons> created essential addon: kube-proxy
<master/addons> created essential addon: kube-dns
Kubernetes master initialised successfully!
You can connect any number of nodes by running:
$kubeadm join --token <token> <master-ip>
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Application Definition
● A combination of Pods, Replication Controllers, Replica Sets, Services and
Deployments
● Each application tier is defined as a pod and can be scaled when managed
by a Deployment or ReplicationController/ReplicaSet.
The scaling can be manual or automated
● Auto-scaling using a simple number-of-pods target is defined declaratively
with the API exposed by ReplicationControllers or ReplicaSets
Testing Kubernetes with Sock Shop:
https://github.com/microservices-demo/microservices-demo/blob/master/dep
loy/kubernetes/complete-demo.yaml
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Kubernetes Advantages
● Easy to install (with kubeadm)
○ Currently limited to a single master installation
○ Currently limited to a single etcd installation
● Advanced features baked-in
● Lots of momentum behind the community
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Kubernetes disadvantages
● Harder to get started
● Extra concepts to learn
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Conclusion
● Different options with different strengths
● In some ways surprisingly similar (k8s Deployment | Swarm service)
● Hard to predict a winner
● All are much better than rolling-your-own
Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
Trainings: Docker, Kubernetes, Microservices,
Docker Security, Mesos… info@container-solutions.com

Contenu connexe

Tendances

xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)Claudiu Barbura
 
Building real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark StreamingBuilding real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark Streamingdatamantra
 
Kick-Start with SMACK Stack
Kick-Start with SMACK StackKick-Start with SMACK Stack
Kick-Start with SMACK StackKnoldus Inc.
 
Lambda architecture: from zero to One
Lambda architecture: from zero to OneLambda architecture: from zero to One
Lambda architecture: from zero to OneSerg Masyutin
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streamsconfluent
 
DIscover Spark and Spark streaming
DIscover Spark and Spark streamingDIscover Spark and Spark streaming
DIscover Spark and Spark streamingMaturin BADO
 
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...Data Con LA
 
Lambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, Scala
Lambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, ScalaLambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, Scala
Lambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, ScalaHelena Edelson
 
Reactive app using actor model & apache spark
Reactive app using actor model & apache sparkReactive app using actor model & apache spark
Reactive app using actor model & apache sparkRahul Kumar
 
Volta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a ServiceVolta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a ServiceLN Renganarayana
 
Introduction to Spark Streaming
Introduction to Spark StreamingIntroduction to Spark Streaming
Introduction to Spark Streamingdatamantra
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...confluent
 
Interactive Visualization of Streaming Data Powered by Spark
Interactive Visualization of Streaming Data Powered by SparkInteractive Visualization of Streaming Data Powered by Spark
Interactive Visualization of Streaming Data Powered by SparkSpark Summit
 
Reactive streams
Reactive streamsReactive streams
Reactive streamscodepitbull
 
Real-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackReal-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackAnirvan Chakraborty
 
PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!DataStax Academy
 
Spark Summit EU talk by Brij Bhushan Ravat
Spark Summit EU talk by Brij Bhushan RavatSpark Summit EU talk by Brij Bhushan Ravat
Spark Summit EU talk by Brij Bhushan RavatSpark Summit
 

Tendances (20)

xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
 
Building real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark StreamingBuilding real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark Streaming
 
Kick-Start with SMACK Stack
Kick-Start with SMACK StackKick-Start with SMACK Stack
Kick-Start with SMACK Stack
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Lambda architecture: from zero to One
Lambda architecture: from zero to OneLambda architecture: from zero to One
Lambda architecture: from zero to One
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streams
 
DIscover Spark and Spark streaming
DIscover Spark and Spark streamingDIscover Spark and Spark streaming
DIscover Spark and Spark streaming
 
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
Stream your Operational Data with Apache Spark & Kafka into Hadoop using Couc...
 
Lambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, Scala
Lambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, ScalaLambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, Scala
Lambda Architecture with Spark Streaming, Kafka, Cassandra, Akka, Scala
 
Reactive app using actor model & apache spark
Reactive app using actor model & apache sparkReactive app using actor model & apache spark
Reactive app using actor model & apache spark
 
Volta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a ServiceVolta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a Service
 
Kafka - Linkedin's messaging backbone
Kafka - Linkedin's messaging backboneKafka - Linkedin's messaging backbone
Kafka - Linkedin's messaging backbone
 
Introduction to Spark Streaming
Introduction to Spark StreamingIntroduction to Spark Streaming
Introduction to Spark Streaming
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
 
Interactive Visualization of Streaming Data Powered by Spark
Interactive Visualization of Streaming Data Powered by SparkInteractive Visualization of Streaming Data Powered by Spark
Interactive Visualization of Streaming Data Powered by Spark
 
Reactive streams
Reactive streamsReactive streams
Reactive streams
 
Data Pipeline at Tapad
Data Pipeline at TapadData Pipeline at Tapad
Data Pipeline at Tapad
 
Real-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackReal-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stack
 
PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!
 
Spark Summit EU talk by Brij Bhushan Ravat
Spark Summit EU talk by Brij Bhushan RavatSpark Summit EU talk by Brij Bhushan Ravat
Spark Summit EU talk by Brij Bhushan Ravat
 

En vedette

Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleJulia Mateo
 
Container (Docker) Orchestration Tools
Container (Docker) Orchestration ToolsContainer (Docker) Orchestration Tools
Container (Docker) Orchestration ToolsDhilipsiva DS
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introductionEvan Lin
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesDmitry Lazarenko
 
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Carlos Sanchez
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...Neo4j
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesSreenivas Makam
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresDocker, Inc.
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gamePatrick Chanezon
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Patrick Chanezon
 

En vedette (10)

Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscale
 
Container (Docker) Orchestration Tools
Container (Docker) Orchestration ToolsContainer (Docker) Orchestration Tools
Container (Docker) Orchestration Tools
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introduction
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. Kubernetes
 
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
Scaling Jenkins with Docker: Swarm, Kubernetes or Mesos?
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform game
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
 

Similaire à Container Orchestrator Smackdown @ContinousLifecycle

Deploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade KubernetesDeploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade KubernetesWSO2
 
How to achieve scalable environments using kubernetes and vmss on azure cloud
How to achieve scalable environments using kubernetes and vmss on azure cloudHow to achieve scalable environments using kubernetes and vmss on azure cloud
How to achieve scalable environments using kubernetes and vmss on azure cloudNoam Shochat
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design PatternsBilgin Ibryam
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...NETWAYS
 
11thDockerMeetupSwitzerland
11thDockerMeetupSwitzerland11thDockerMeetupSwitzerland
11thDockerMeetupSwitzerlandMichael Mueller
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps WorkshopWeaveworks
 
Mirantis Contributions to Kubernetes Ecosystem
Mirantis Contributions to Kubernetes EcosystemMirantis Contributions to Kubernetes Ecosystem
Mirantis Contributions to Kubernetes EcosystemMoscowKubernetes
 
Ahmadabad mule soft_meetup_6march2021_azure_CICD
Ahmadabad mule soft_meetup_6march2021_azure_CICDAhmadabad mule soft_meetup_6march2021_azure_CICD
Ahmadabad mule soft_meetup_6march2021_azure_CICDShekh Muenuddeen
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Weaveworks
 
Introduction to Containers
Introduction to ContainersIntroduction to Containers
Introduction to ContainersDharmit Shah
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Codemotion
 
9th docker meetup 2016.07.13
9th docker meetup 2016.07.139th docker meetup 2016.07.13
9th docker meetup 2016.07.13Amrita Prasad
 
Scalable Spark deployment using Kubernetes
Scalable Spark deployment using KubernetesScalable Spark deployment using Kubernetes
Scalable Spark deployment using Kubernetesdatamantra
 
Getting started with kubernetes
Getting started with kubernetesGetting started with kubernetes
Getting started with kubernetesJanakiram MSV
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...Jitendra Bafna
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Francisco Javier Ramirez Urea - Hopla - OSL19
Francisco Javier Ramirez Urea - Hopla - OSL19Francisco Javier Ramirez Urea - Hopla - OSL19
Francisco Javier Ramirez Urea - Hopla - OSL19marketingsyone
 

Similaire à Container Orchestrator Smackdown @ContinousLifecycle (20)

Deploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade KubernetesDeploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade Kubernetes
 
How to achieve scalable environments using kubernetes and vmss on azure cloud
How to achieve scalable environments using kubernetes and vmss on azure cloudHow to achieve scalable environments using kubernetes and vmss on azure cloud
How to achieve scalable environments using kubernetes and vmss on azure cloud
 
Container Landscape in 2019
Container Landscape in 2019Container Landscape in 2019
Container Landscape in 2019
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design Patterns
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
 
11thDockerMeetupSwitzerland
11thDockerMeetupSwitzerland11thDockerMeetupSwitzerland
11thDockerMeetupSwitzerland
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Mirantis Contributions to Kubernetes Ecosystem
Mirantis Contributions to Kubernetes EcosystemMirantis Contributions to Kubernetes Ecosystem
Mirantis Contributions to Kubernetes Ecosystem
 
Ahmadabad mule soft_meetup_6march2021_azure_CICD
Ahmadabad mule soft_meetup_6march2021_azure_CICDAhmadabad mule soft_meetup_6march2021_azure_CICD
Ahmadabad mule soft_meetup_6march2021_azure_CICD
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Introduction to Containers
Introduction to ContainersIntroduction to Containers
Introduction to Containers
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...
 
9th docker meetup 2016.07.13
9th docker meetup 2016.07.139th docker meetup 2016.07.13
9th docker meetup 2016.07.13
 
Better code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloudBetter code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloud
 
Scalable Spark deployment using Kubernetes
Scalable Spark deployment using KubernetesScalable Spark deployment using Kubernetes
Scalable Spark deployment using Kubernetes
 
Getting started with kubernetes
Getting started with kubernetesGetting started with kubernetes
Getting started with kubernetes
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Francisco Javier Ramirez Urea - Hopla - OSL19
Francisco Javier Ramirez Urea - Hopla - OSL19Francisco Javier Ramirez Urea - Hopla - OSL19
Francisco Javier Ramirez Urea - Hopla - OSL19
 

Dernier

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Dernier (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Container Orchestrator Smackdown @ContinousLifecycle

  • 1. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Container Orchestrator Smackdown Continous Lifecycle 2016 Container Conf 2016 Michael Müller |  @michmueller_ Container Solutions |  @containersoluti
  • 2. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_
  • 3. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Run Docker & Kubernetes on Exoscale https://github.com/exoscale/multi-master-kubernetes
  • 4. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ How important is orchestration and what is it for? ● Might not need it for small apps ● No orchestration == manual orchestration ● Manually place containers, network, scale, check, update ● Microservices & Cloud Native Applications
  • 5. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Design principles for Cloud Native Applications: ● Design for Performance responsiveness, concurrency, efficiency ● Design for Automation automate dev & ops tasks ● Design for Resiliency fault-tolerance, self-healing ● Design for Elasticity automatic scaling ● Design for Delivery minimise cycle-time, automate deployment ● Design for Diagnosability cluster-wide logs, traces & metrics
  • 6. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Let’s buy some socks...
  • 7. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Microservice reference application ● Intended to help people getting started with Microservices ● Great for comparing frameworks, test driving new tools... ● Inspired by the "Pet Store" for Java Frameworks ... and “TodoMVC” for JavaScript Implementations for 10+ Cloud/Container environments: https://github.com/microservices-demo/microservices-demo/tree/master/deplo y
  • 8. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Architecture
  • 9. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Comparing Orchestrators
  • 10. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Comparing orchestrators ● All work and are improving rapidly ● Understand the differences ● Understand your requirements ● Please don't roll your own!
  • 11. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ The players ● Kubernetes ● Mesos (different workloads) ● Docker Swarm Mode ● Plus others ○ Nomad, PaaSs...
  • 12. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Side note - the Borg/Omega papers ● Influential papers from Google ● Lessons learnt from 10 years with containers ● Google contributed cgroups to the Linux kernel, cgroups and linux namespaces are the heart of containers
  • 13. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Docker Swarm Mode
  • 14. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Docker Swarm Mode ● New in Docker 1.12 ● Docker Inc's official solution ● Part of core distribution ● Major improvement over TOS (“The Original Swarm”)
  • 15. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Core components ● Manager nodes ○ coordinate via Raft ○ no need for separate etcd/zookeeper ● Worker nodes
  • 16. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Usability ● Swarm extends concepts from single-node Docker to multi-node setups ● If you are up to date on standard Docker concepts, you’ll pick it up quickly ● Setting up a new Swarm is easy as pie
  • 17. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Easy to install $ docker swarm init Swarm initialized: current node (10vh26gyxppo6j2vyb8rcvjwj) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5td5x39z8jw...ccrjmkt1o8du3 172.17.9.102:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
  • 18. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Secure communication by default ● TLS set up using self-signed certs ● Certificates automatically rotated
  • 19. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Feature Set ● Services ● Networks ● Constraints and labels
  • 20. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Services ● Fixed number of containers are launched together and are kept running ● Two types of services: replicated or global ○ Replicated: Maintain a specified number of containers across the cluster ○ Global: Run one instance of a container on each swarm node
  • 21. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Networks ● Allows creating named overlay networks... ● … which are isolated, flat, encrypted virtual networks across your Swarm nodes to launch your containers into
  • 22. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ ● Control which node a container can be scheduled on ● E.g.: ○ Only nodes labeled staging ○ Only nodes which have the image ○ Only the node running a given container (affinity rules) Constraints and Filters
  • 23. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Other features ● Spread scheduling ○ chooses "least loaded" node ○ More options later ○ support for reserving & limiting cpu/memory
  • 24. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Application definition ● Apps are defined in DAB can be deployed on a Swarm cluster ● Possible to scale individual containers defined in the DAB file (manual) Testing Swarm Mode with Socks Shop: https://raw.githubusercontent.com/microservices-demo/ microservices-demo/master/deploy/swarmkit/start-swarmkit-services.sh
  • 25. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Swarm Mode advantages ● Easy to install ● Secure by default ● “Bundled with Docker”
  • 26. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Swarm Mode disadvantages ● Very new ● Some Docker features unsupported (--privileged, --read-only, …) ● DAB still WIP
  • 27. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Kubernetes often just “K8S”
  • 28. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Kubernetes ● Based on Google's experience running containers ● Many advanced features baked in: ○ Load-balancing ○ Secrets management ○ RBAC (Role Based Access Control) ○ … ● More opinionated
  • 29. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Core concepts ● Pods ● Labels ● Services ● Deployments ● ReplicaSets
  • 30. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Pods ● Groups of containers deployed and scheduled together ● Atomic unit of deployment ● Containers in a pod share IP address ● Single container pods are most common case ● Pods are ephemeral
  • 31. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Labels ● Key/Value pairs attached to objects (primarily pods) ○ e.g. version: dev, tier: frontend ● Label selectors then used to group objects ● Used for load-balancing etc.
  • 32. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Services ● Stable endpoints addressed by name ● Forward traffic to pods ● Pods are selected by labels ● Round-robin load-balancing ● Separates endpoint from implementation
  • 33. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Deployments & ReplicaSets ● ReplicaSets monitor status of Pods ○ start/stop pods as needed ● Deployments start/create ReplicaSets ● Rollout/Rollback & Updates
  • 34. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Usability ● Setting up a production grade Kubernetes-cluster from scratch requires setting up etcd, networking plugins, DNS servers and certificate authorities. ○ Will change pretty soon with future versions of kubeadm ● Beyond initial setup, Kubernetes still has a steeper learning curve
  • 35. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Snap to install $kubeadm init <master/tokens> generated token: "f0c861.753c505740ecde4c" <master/pki> created keys and certificates in "/etc/kubernetes/pki" <util/kubeconfig> created "/etc/kubernetes/kubelet.conf" <util/kubeconfig> created "/etc/kubernetes/admin.conf" <master/apiclient> created API client configuration <master/apiclient> created API client, waiting for the control plane to become ready <master/apiclient> all control plane components are healthy after 61.346626 seconds <master/apiclient> waiting for at least one node to register and become ready <master/apiclient> first node is ready after 4.506807 seconds <master/discovery> created essential addon: kube-discovery <master/addons> created essential addon: kube-proxy <master/addons> created essential addon: kube-dns Kubernetes master initialised successfully! You can connect any number of nodes by running: $kubeadm join --token <token> <master-ip>
  • 36. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Application Definition ● A combination of Pods, Replication Controllers, Replica Sets, Services and Deployments ● Each application tier is defined as a pod and can be scaled when managed by a Deployment or ReplicationController/ReplicaSet. The scaling can be manual or automated ● Auto-scaling using a simple number-of-pods target is defined declaratively with the API exposed by ReplicationControllers or ReplicaSets Testing Kubernetes with Sock Shop: https://github.com/microservices-demo/microservices-demo/blob/master/dep loy/kubernetes/complete-demo.yaml
  • 37. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Kubernetes Advantages ● Easy to install (with kubeadm) ○ Currently limited to a single master installation ○ Currently limited to a single etcd installation ● Advanced features baked-in ● Lots of momentum behind the community
  • 38. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Kubernetes disadvantages ● Harder to get started ● Extra concepts to learn
  • 39. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Conclusion ● Different options with different strengths ● In some ways surprisingly similar (k8s Deployment | Swarm service) ● Hard to predict a winner ● All are much better than rolling-your-own
  • 40. Continous Lifecycle 2016 | container-solutions.com | info@container-solutions.com | @michmueller_ Trainings: Docker, Kubernetes, Microservices, Docker Security, Mesos… info@container-solutions.com