SlideShare a Scribd company logo
Migrate	
  your	
  traditional	
  VM-­‐based	
  
Clusters	
  to	
  Containers
Arun Gupta, @arungupta
Docker Captain, Java Champion
©2016	
  Couchbase	
  Inc.
Amazon	
  Web	
  Services
2
©2016	
  Couchbase	
  Inc.
Amazon	
  Web	
  Services
2
• Create VM 1, 2, 3
VM 1 VM 2 VM 3
©2016	
  Couchbase	
  Inc.
Amazon	
  Web	
  Services
2
• Create VM 1, 2, 3
• Add Couchbase 1, 2, 3
VM 1 VM 2 VM 3
©2016	
  Couchbase	
  Inc.
Cluster
Amazon	
  Web	
  Services
2
• Create VM 1, 2, 3
• Add Couchbase 1, 2, 3
• Create cluster
VM 1 VM 2 VM 3
©2016	
  Couchbase	
  Inc.
Cluster
Amazon	
  Web	
  Services
2
• Create VM 1, 2, 3
• Add Couchbase 1, 2, 3
• Create cluster
• Rebalance cluster
VM 1 VM 2 VM 3
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
Swarm Master
Swarm Node 01
Swarm Node 02
Consul Machine
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
Swarm Master
Swarm Node 01
Swarm Node 02
Consul Machine
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
Swarm Master
Swarm Node 01
Swarm Node 02
Consul Machine
version: "2"
services:
db:
image: arungupta/couchbase
network_mode: "host"
ports:
- 8091:8091
- 8092:8092
- 8093:8093
- 11210:11210
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
Swarm Master
Swarm Node 01
Swarm Node 02
Consul Machine
version: "2"
services:
db:
image: arungupta/couchbase
network_mode: "host"
ports:
- 8091:8091
- 8092:8092
- 8093:8093
- 11210:11210
scale db=2
docker-compose
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
Swarm Master
Swarm Node 01
Swarm Node 02
Consul Machine
version: "2"
services:
db:
image: arungupta/couchbase
network_mode: "host"
ports:
- 8091:8091
- 8092:8092
- 8093:8093
- 11210:11210
scale db=2
docker-compose
©2016	
  Couchbase	
  Inc.
Docker	
  Machine	
  +	
  Compose	
  +	
  Swarm
3
Swarm Master
Swarm Node 01
Swarm Node 02
Consul Machine
version: "2"
services:
db:
image: arungupta/couchbase
network_mode: "host"
ports:
- 8091:8091
- 8092:8092
- 8093:8093
- 11210:11210
scale db=2
docker-compose
©2016	
  Couchbase	
  Inc.
Kubernetes
4
©2016	
  Couchbase	
  Inc.
Kubernetes
4
Master
Minion 1
Minion 3
Minion 2
Minion 4
©2016	
  Couchbase	
  Inc.
Kubernetes
4
Master
Minion 1
Minion 3
Minion 2
Minion 4
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-controller
spec:
replicas: 1
selector:
app: couchbase-master-pod
template:
metadata:
labels:
app: couchbase-master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
----
apiVersion: v1
kind: Service
metadata:
name: couchbase-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: couchbase-master-pod
©2016	
  Couchbase	
  Inc.
Kubernetes
4
Master
Minion 1
Minion 3
Minion 2
Minion 4
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-controller
spec:
replicas: 1
selector:
app: couchbase-master-pod
template:
metadata:
labels:
app: couchbase-master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
----
apiVersion: v1
kind: Service
metadata:
name: couchbase-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: couchbase-master-pod
©2016	
  Couchbase	
  Inc.
Kubernetes
4
Master
Minion 1
Minion 3
Minion 2
Minion 4
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-controller
spec:
replicas: 1
selector:
app: couchbase-master-pod
template:
metadata:
labels:
app: couchbase-master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
----
apiVersion: v1
kind: Service
metadata:
name: couchbase-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: couchbase-master-pod
env:
- name: TYPE
value: WORKER
- name: COUCHBASE_MASTER
value: SERVICE_IP_OF_MASTER
- name: AUTO_REBALANCE
value: true
©2016	
  Couchbase	
  Inc.
Kubernetes
4
Master
Minion 1
Minion 3
Minion 2
Minion 4
apiVersion: v1
kind: ReplicationController
metadata:
name: couchbase-controller
spec:
replicas: 1
selector:
app: couchbase-master-pod
template:
metadata:
labels:
app: couchbase-master-pod
spec:
containers:
- name: couchbase-master
image: arungupta/couchbase
env:
- name: TYPE
value: MASTER
ports:
- containerPort: 8091
----
apiVersion: v1
kind: Service
metadata:
name: couchbase-service
labels:
app: couchbase-master-service
spec:
ports:
- port: 8091
selector:
app: couchbase-master-pod
scale replicas=2
kubectlenv:
- name: TYPE
value: WORKER
- name: COUCHBASE_MASTER
value: SERVICE_IP_OF_MASTER
- name: AUTO_REBALANCE
value: true
©2016	
  Couchbase	
  Inc.
DC/OS
5
©2016	
  Couchbase	
  Inc.
DC/OS
5
Master
Slave 1
Slave 3
Slave 2
©2016	
  Couchbase	
  Inc.
DC/OS
5
Master
Slave 1
Slave 3
Slave 2
©2016	
  Couchbase	
  Inc.
DC/OS
5
Master
Slave 1
Slave 3
Slave 2
{
"id": "couchbase-mesos",
"container": {
"type": "DOCKER",
"docker": {
"image": "arungupta/couchbase",
"network": "BRIDGE",
"portMappings": [
{ "hostPort": 0, "containerPort":
8091, "servicePort": 8091 },
{ "hostPort": 0, "containerPort":
8092, "servicePort": 8092 },
{ "hostPort": 0, "containerPort":
8093, "servicePort": 8093 },
{ "hostPort": 0, "containerPort":
11210, "servicePort": 11210 }
],
"forcePullImage":true
}
},
"instances": 1,
"cpus": 2.0,
"mem": 2048,
"labels":{
"HAPROXY_GROUP":"external"
}
}
©2016	
  Couchbase	
  Inc.
DC/OS
5
Master
Slave 1
Slave 3
Slave 2
{
"id": "couchbase-mesos",
"container": {
"type": "DOCKER",
"docker": {
"image": "arungupta/couchbase",
"network": "BRIDGE",
"portMappings": [
{ "hostPort": 0, "containerPort":
8091, "servicePort": 8091 },
{ "hostPort": 0, "containerPort":
8092, "servicePort": 8092 },
{ "hostPort": 0, "containerPort":
8093, "servicePort": 8093 },
{ "hostPort": 0, "containerPort":
11210, "servicePort": 11210 }
],
"forcePullImage":true
}
},
"instances": 1,
"cpus": 2.0,
"mem": 2048,
"labels":{
"HAPROXY_GROUP":"external"
}
}
Marathon
©2016	
  Couchbase	
  Inc.
DC/OS
5
Master
Slave 1
Slave 3
Slave 2
{
"id": "couchbase-mesos",
"container": {
"type": "DOCKER",
"docker": {
"image": "arungupta/couchbase",
"network": "BRIDGE",
"portMappings": [
{ "hostPort": 0, "containerPort":
8091, "servicePort": 8091 },
{ "hostPort": 0, "containerPort":
8092, "servicePort": 8092 },
{ "hostPort": 0, "containerPort":
8093, "servicePort": 8093 },
{ "hostPort": 0, "containerPort":
11210, "servicePort": 11210 }
],
"forcePullImage":true
}
},
"instances": 1,
"cpus": 2.0,
"mem": 2048,
"labels":{
"HAPROXY_GROUP":"external"
}
}
app update instances=2
Marathon Marathon
dcos
©2016	
  Couchbase	
  Inc.
References
▪Docker: docker.io
– Interlock: https://github.com/ehazlett/interlock
▪Kubernetes: kubernetes.io
▪DC/OS: dcos.io
▪OpenShift: openshift.io
▪Couchbase on Containers: couchbase.com/containers
6

More Related Content

What's hot

Was liberty profile and docker
Was liberty profile and dockerWas liberty profile and docker
Was liberty profile and docker
sflynn073
 

What's hot (20)

Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker Images
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
Mesos swam-kubernetes-vds-02062017
Mesos swam-kubernetes-vds-02062017Mesos swam-kubernetes-vds-02062017
Mesos swam-kubernetes-vds-02062017
 
Kubernetes Hands-On Guide
Kubernetes Hands-On GuideKubernetes Hands-On Guide
Kubernetes Hands-On Guide
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content Services
 
CI/CD Across Multiple Environments
CI/CD Across Multiple EnvironmentsCI/CD Across Multiple Environments
CI/CD Across Multiple Environments
 
Was liberty profile and docker
Was liberty profile and dockerWas liberty profile and docker
Was liberty profile and docker
 
Continuous Integration with Docker on AWS
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWS
 
Kubernetes Node Deep Dive
Kubernetes Node Deep DiveKubernetes Node Deep Dive
Kubernetes Node Deep Dive
 
Docker for (Java) Developers
Docker for (Java) DevelopersDocker for (Java) Developers
Docker for (Java) Developers
 
Openstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-ServiceOpenstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-Service
 
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfContinuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
 
Continuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on KubernetesContinuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on Kubernetes
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
 
DCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
DCEU 18: Automating Docker Enterprise: Hands-off Install and UpgradeDCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
DCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
 

Viewers also liked

Viewers also liked (20)

Thanks Managers!
Thanks Managers!Thanks Managers!
Thanks Managers!
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
How to run your first marathon ? JavaOne 2014 Ignite
How to run your first marathon ? JavaOne 2014 IgniteHow to run your first marathon ? JavaOne 2014 Ignite
How to run your first marathon ? JavaOne 2014 Ignite
 
50 features of Java EE 7 in 50 minutes at Geecon 2014
50 features of Java EE 7 in 50 minutes at Geecon 201450 features of Java EE 7 in 50 minutes at Geecon 2014
50 features of Java EE 7 in 50 minutes at Geecon 2014
 
NoSQL - Vital Open Source Ingredient for Modern Success
NoSQL - Vital Open Source Ingredient for Modern SuccessNoSQL - Vital Open Source Ingredient for Modern Success
NoSQL - Vital Open Source Ingredient for Modern Success
 
Teaching kids how to program
Teaching kids how to programTeaching kids how to program
Teaching kids how to program
 
Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8
 
50 features of Java EE 7 in 50 minutes at JavaZone 2014
50 features of Java EE 7 in 50 minutes at JavaZone 201450 features of Java EE 7 in 50 minutes at JavaZone 2014
50 features of Java EE 7 in 50 minutes at JavaZone 2014
 
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 201450 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and Jenkins
 
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareTrends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 

Similar to Migrate your traditional VM-based Clusters to Containers

vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
hokismen
 

Similar to Migrate your traditional VM-based Clusters to Containers (20)

How to build 1000 microservices with Kafka and thrive
How to build 1000 microservices with Kafka and thriveHow to build 1000 microservices with Kafka and thrive
How to build 1000 microservices with Kafka and thrive
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Cloud Foundry Container Runtimeで快適Kubernetes運用
Cloud Foundry Container Runtimeで快適Kubernetes運用Cloud Foundry Container Runtimeで快適Kubernetes運用
Cloud Foundry Container Runtimeで快適Kubernetes運用
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
 
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
 
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트) Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud MigrationContainerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
 
Getting Started with Azure Kubernetes Service
Getting Started with Azure Kubernetes ServiceGetting Started with Azure Kubernetes Service
Getting Started with Azure Kubernetes Service
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
 
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
 
Workshop Interstella GTC - Tiffany Jernigan.pdf
Workshop Interstella GTC - Tiffany Jernigan.pdfWorkshop Interstella GTC - Tiffany Jernigan.pdf
Workshop Interstella GTC - Tiffany Jernigan.pdf
 
Interstella GTC Workshop
Interstella GTC WorkshopInterstella GTC Workshop
Interstella GTC Workshop
 
kubernetes for beginners
kubernetes for beginnerskubernetes for beginners
kubernetes for beginners
 

More from Arun Gupta

More from Arun Gupta (13)

5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
 
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
 
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesMachine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
 
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
 
Why Amazon Cares about Open Source
Why Amazon Cares about Open SourceWhy Amazon Cares about Open Source
Why Amazon Cares about Open Source
 
Machine learning using Kubernetes
Machine learning using KubernetesMachine learning using Kubernetes
Machine learning using Kubernetes
 
Building Cloud Native Applications
Building Cloud Native ApplicationsBuilding Cloud Native Applications
Building Cloud Native Applications
 
Chaos Engineering with Kubernetes
Chaos Engineering with KubernetesChaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
 
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMHow to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
 
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitMastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 

Migrate your traditional VM-based Clusters to Containers

  • 1. Migrate  your  traditional  VM-­‐based   Clusters  to  Containers Arun Gupta, @arungupta Docker Captain, Java Champion
  • 2. ©2016  Couchbase  Inc. Amazon  Web  Services 2
  • 3. ©2016  Couchbase  Inc. Amazon  Web  Services 2 • Create VM 1, 2, 3 VM 1 VM 2 VM 3
  • 4. ©2016  Couchbase  Inc. Amazon  Web  Services 2 • Create VM 1, 2, 3 • Add Couchbase 1, 2, 3 VM 1 VM 2 VM 3
  • 5. ©2016  Couchbase  Inc. Cluster Amazon  Web  Services 2 • Create VM 1, 2, 3 • Add Couchbase 1, 2, 3 • Create cluster VM 1 VM 2 VM 3
  • 6. ©2016  Couchbase  Inc. Cluster Amazon  Web  Services 2 • Create VM 1, 2, 3 • Add Couchbase 1, 2, 3 • Create cluster • Rebalance cluster VM 1 VM 2 VM 3
  • 7. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3
  • 8. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3 Swarm Master Swarm Node 01 Swarm Node 02 Consul Machine
  • 9. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3 Swarm Master Swarm Node 01 Swarm Node 02 Consul Machine
  • 10. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3 Swarm Master Swarm Node 01 Swarm Node 02 Consul Machine version: "2" services: db: image: arungupta/couchbase network_mode: "host" ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210
  • 11. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3 Swarm Master Swarm Node 01 Swarm Node 02 Consul Machine version: "2" services: db: image: arungupta/couchbase network_mode: "host" ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 scale db=2 docker-compose
  • 12. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3 Swarm Master Swarm Node 01 Swarm Node 02 Consul Machine version: "2" services: db: image: arungupta/couchbase network_mode: "host" ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 scale db=2 docker-compose
  • 13. ©2016  Couchbase  Inc. Docker  Machine  +  Compose  +  Swarm 3 Swarm Master Swarm Node 01 Swarm Node 02 Consul Machine version: "2" services: db: image: arungupta/couchbase network_mode: "host" ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 scale db=2 docker-compose
  • 16. ©2016  Couchbase  Inc. Kubernetes 4 Master Minion 1 Minion 3 Minion 2 Minion 4 apiVersion: v1 kind: ReplicationController metadata: name: couchbase-controller spec: replicas: 1 selector: app: couchbase-master-pod template: metadata: labels: app: couchbase-master-pod spec: containers: - name: couchbase-master image: arungupta/couchbase env: - name: TYPE value: MASTER ports: - containerPort: 8091 ---- apiVersion: v1 kind: Service metadata: name: couchbase-service labels: app: couchbase-master-service spec: ports: - port: 8091 selector: app: couchbase-master-pod
  • 17. ©2016  Couchbase  Inc. Kubernetes 4 Master Minion 1 Minion 3 Minion 2 Minion 4 apiVersion: v1 kind: ReplicationController metadata: name: couchbase-controller spec: replicas: 1 selector: app: couchbase-master-pod template: metadata: labels: app: couchbase-master-pod spec: containers: - name: couchbase-master image: arungupta/couchbase env: - name: TYPE value: MASTER ports: - containerPort: 8091 ---- apiVersion: v1 kind: Service metadata: name: couchbase-service labels: app: couchbase-master-service spec: ports: - port: 8091 selector: app: couchbase-master-pod
  • 18. ©2016  Couchbase  Inc. Kubernetes 4 Master Minion 1 Minion 3 Minion 2 Minion 4 apiVersion: v1 kind: ReplicationController metadata: name: couchbase-controller spec: replicas: 1 selector: app: couchbase-master-pod template: metadata: labels: app: couchbase-master-pod spec: containers: - name: couchbase-master image: arungupta/couchbase env: - name: TYPE value: MASTER ports: - containerPort: 8091 ---- apiVersion: v1 kind: Service metadata: name: couchbase-service labels: app: couchbase-master-service spec: ports: - port: 8091 selector: app: couchbase-master-pod env: - name: TYPE value: WORKER - name: COUCHBASE_MASTER value: SERVICE_IP_OF_MASTER - name: AUTO_REBALANCE value: true
  • 19. ©2016  Couchbase  Inc. Kubernetes 4 Master Minion 1 Minion 3 Minion 2 Minion 4 apiVersion: v1 kind: ReplicationController metadata: name: couchbase-controller spec: replicas: 1 selector: app: couchbase-master-pod template: metadata: labels: app: couchbase-master-pod spec: containers: - name: couchbase-master image: arungupta/couchbase env: - name: TYPE value: MASTER ports: - containerPort: 8091 ---- apiVersion: v1 kind: Service metadata: name: couchbase-service labels: app: couchbase-master-service spec: ports: - port: 8091 selector: app: couchbase-master-pod scale replicas=2 kubectlenv: - name: TYPE value: WORKER - name: COUCHBASE_MASTER value: SERVICE_IP_OF_MASTER - name: AUTO_REBALANCE value: true
  • 23. ©2016  Couchbase  Inc. DC/OS 5 Master Slave 1 Slave 3 Slave 2 { "id": "couchbase-mesos", "container": { "type": "DOCKER", "docker": { "image": "arungupta/couchbase", "network": "BRIDGE", "portMappings": [ { "hostPort": 0, "containerPort": 8091, "servicePort": 8091 }, { "hostPort": 0, "containerPort": 8092, "servicePort": 8092 }, { "hostPort": 0, "containerPort": 8093, "servicePort": 8093 }, { "hostPort": 0, "containerPort": 11210, "servicePort": 11210 } ], "forcePullImage":true } }, "instances": 1, "cpus": 2.0, "mem": 2048, "labels":{ "HAPROXY_GROUP":"external" } }
  • 24. ©2016  Couchbase  Inc. DC/OS 5 Master Slave 1 Slave 3 Slave 2 { "id": "couchbase-mesos", "container": { "type": "DOCKER", "docker": { "image": "arungupta/couchbase", "network": "BRIDGE", "portMappings": [ { "hostPort": 0, "containerPort": 8091, "servicePort": 8091 }, { "hostPort": 0, "containerPort": 8092, "servicePort": 8092 }, { "hostPort": 0, "containerPort": 8093, "servicePort": 8093 }, { "hostPort": 0, "containerPort": 11210, "servicePort": 11210 } ], "forcePullImage":true } }, "instances": 1, "cpus": 2.0, "mem": 2048, "labels":{ "HAPROXY_GROUP":"external" } } Marathon
  • 25. ©2016  Couchbase  Inc. DC/OS 5 Master Slave 1 Slave 3 Slave 2 { "id": "couchbase-mesos", "container": { "type": "DOCKER", "docker": { "image": "arungupta/couchbase", "network": "BRIDGE", "portMappings": [ { "hostPort": 0, "containerPort": 8091, "servicePort": 8091 }, { "hostPort": 0, "containerPort": 8092, "servicePort": 8092 }, { "hostPort": 0, "containerPort": 8093, "servicePort": 8093 }, { "hostPort": 0, "containerPort": 11210, "servicePort": 11210 } ], "forcePullImage":true } }, "instances": 1, "cpus": 2.0, "mem": 2048, "labels":{ "HAPROXY_GROUP":"external" } } app update instances=2 Marathon Marathon dcos
  • 26. ©2016  Couchbase  Inc. References ▪Docker: docker.io – Interlock: https://github.com/ehazlett/interlock ▪Kubernetes: kubernetes.io ▪DC/OS: dcos.io ▪OpenShift: openshift.io ▪Couchbase on Containers: couchbase.com/containers 6