SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Docker and Geode
William Markito

wmarkito@pivotal.io
Docker and Geode
Using Apache Geode and Docker
2
Disclaimer
Apache Geode (incubating) has not yet a release under Apache
Software Foundation Incubator. The current bits available are for
development purposes arising from a nightly build.
Use at your own risk.
3
‣ Docker basics
‣ Demo
‣ Building Apache Geode image
‣ Docker and Geode basics
‣ Demo
‣ Troubleshooting
‣ Demo
Agenda
4
‣ Enterprise Architect for Pivotal GemFire
‣ Helping customers & field design GemFire
solutions
‣ Helping (?) engineering with features and bugs
‣ Focusing on Apache Geode
Who Am I ?
5
Enterprise in the next year ?
• Containers
• FreeBSD Jails (2000)
• Solaris Zones (2004)
• Docker (2013)
• Operating system level virtualization
• Isolated user space instances
Some history…
7
* https://linuxcontainers.org/
• Fast churn (create/delete)
• For applications it’s seamless
• Each instance has its own FileSystem, 

RAM, CPU
• Keep environment consistent
• Useful for troubleshooting, CI, tests
• Used in production at scale (Google/Twitter/Netflix)
Why containers ?
8
9
Container vs VM
“..while the hypervisor abstracts the entire device, containers just
abstract the operating system kernel"
10
Docker vs Vagrant
Docker Vagrant
Virtual Environment Virtual Machine Manager
Linux* Any platform
Few seconds Few minutes
Partial isolation Full isolation
Dockerfile Vagrantfile
* https://www.scriptrock.com/articles/docker-vs-vagrant
11
Docker vs Vagrant
Dockerfile Vagrantfile
FROM	
  centos:latest	
  
RUN	
  yum	
  install	
  -­‐y	
  dos2unix	
  
ENV	
  MY_VAR	
  my_value	
  
EXPOSE	
  	
  8080	
  
RUN	
  mkdir	
  /data	
  
CMD	
  ["bash"]	
  
Vagrant.configure("2")	
  do	
  |config|	
  
	
  	
  config.vm.box	
  =	
  "chef/centos-­‐7.0"	
  
	
  	
  config.vm.hostname	
  =	
  "mybox"	
  
	
  	
  config.vm.network	
  :private_network,	
  ip:	
  
"192.168.0.42"	
  
	
  	
  config.vm.provider	
  :virtualbox	
  do	
  |vb|	
  
	
  	
  	
  	
  vb.customize	
  [	
  
	
  	
  	
  	
  	
  	
  "modifyvm",	
  :id,	
  
	
  	
  	
  	
  	
  	
  "-­‐-­‐cpuexecutioncap",	
  "50",	
  
	
  	
  	
  	
  	
  	
  "-­‐-­‐memory",	
  "256",	
  
	
  	
  	
  	
  ]	
  
	
  	
  end	
  
	
  	
  config.vm.provision	
  :shell,	
  path:	
  "bootstrap.sh"	
  	
  	
  
end
• Commands
12
docker	
  create	
  
docker	
  run	
  
docker	
  exec	
  
docker	
  stop	
  
docker	
  start	
  
docker	
  restart	
  
docker	
  rm	
  
docker	
  kill	
  
docker	
  attach	
  
docker	
  ps	
  
docker	
  logs	
  
docker	
  inspect	
  
docker	
  events	
  
docker	
  port	
  
docker	
  top	
  
docker	
  stats	
  
docker	
  diff
Actions Monitoring
Docker 101
• Commands
13
docker	
  images	
  
docker	
  import	
  
docker	
  build	
  
docker	
  commit	
  
docker	
  load	
  
docker	
  history	
  
docker	
  tag	
  
docker	
  login	
  
docker	
  search	
  
docker	
  pull	
  
docker	
  push	
  
Images Other useful commands
Docker 101
https://github.com/wsargent/docker-cheat-sheet
• Dockerfile
• Image descriptor
• Step-by-step instructions
14
FROM	
  centos:latest	
  
RUN	
  yum	
  install	
  -­‐y	
  dos2unix	
  
ENV	
  MY_VAR	
  my_value	
  
EXPOSE	
  	
  8080	
  
RUN	
  mkdir	
  /data	
  
CMD	
  ["bash"]	
  
Docker 101
15
Demo
Docker 101
16
• Dockerfile
• Layers
• Union mount
"A union mount is a way of mounting that
allows several filesystems or directories to
be simultaneously mounted and visible
through a single mount point, appearing
to be one filesystem.”*
* Pendry, Jan-Simon; Marshall Kirk McKusick (December 1995). "Union Mounts in 4.4BSD-Lite”
Docker 101
17
FROM	
  centos:latest	
  
RUN	
  yum	
  install	
  -­‐y	
  dos2unix	
  
RUN	
  yum	
  install	
  -­‐y	
  zlib-­‐devel	
  
ENV	
  MY_VAR	
  my_value	
  
EXPOSE	
  	
  8080	
  
RUN	
  mkdir	
  /data	
  
CMD	
  ["bash"]	
  
Building Apache Geode image
• Docker Layers
Previous image: 236.1MB (docker history <id>)
- Install a header file of 49k
18
Demo
Building Apache Geode image
• Docker Layers
Previous image: 236.1MB
- Install a header file of 49k
Current image: 299.7MB
19
FROM	
  centos:latest	
  
RUN	
  yum	
  install	
  -­‐y	
  dos2unix	
  zlib-­‐devel	
  
ENV	
  MY_VAR	
  my_value	
  
EXPOSE	
  	
  8080	
  
RUN	
  mkdir	
  /data	
  
CMD	
  ["bash"]	
  
Building Apache Geode image
Building Apache Geode image
20
FROM	
  centos:latest	
  
MAINTAINER	
  William	
  Markito	
  <william.markito@gmail.com>	
  
LABEL	
  Vendor="Apache	
  Geode	
  (incubating)"	
  
LABEL	
  version=unstable	
  
#	
  download	
  JDK	
  8	
  
ENV	
   JAVA_HOME	
  /jdk1.8.0_51	
  
RUN	
   yum	
  install	
  -­‐y	
  wget	
  which	
  tar	
  git	
  	
  
	
   &&	
  wget	
  -­‐-­‐no-­‐cookies	
  -­‐-­‐no-­‐check-­‐certificate	
  -­‐-­‐header	
  "Cookie:	
  gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;	
  oraclelicense=accept-­‐
securebackup-­‐cookie"	
  "http://download.oracle.com/otn-­‐pub/java/jdk/8u51-­‐b16/jdk-­‐8u51-­‐linux-­‐x64.tar.gz"	
  	
  
	
   &&	
  tar	
  xf	
  jdk-­‐8u51-­‐linux-­‐x64.tar.gz	
  	
  
	
   &&	
  git	
  clone	
  -­‐b	
  develop	
  https://github.com/apache/incubator-­‐geode.git	
  	
  
	
   &&	
  cd	
  incubator-­‐geode	
  	
  
	
   &&	
  ./gradlew	
  build	
  -­‐Dskip.tests=true	
  	
  
	
   &&	
  ls	
  /incubator-­‐geode	
  |	
  grep	
  -­‐v	
  gemfire-­‐assembly	
  |	
  xargs	
  rm	
  -­‐rf	
  	
  
	
   &&	
  rm	
  -­‐rf	
  /root/.gradle/	
  	
  
	
   &&	
  rm	
  -­‐rf	
  /incubator-­‐geode/gemfire-­‐assembly/build/distributions/	
  	
  
	
   &&	
  rm	
  -­‐rf	
  /jdk-­‐8u51-­‐linux-­‐x64.tar.gz	
  	
  
	
   &&	
  rm	
  -­‐rf	
  $JAVA_HOME/*src.zip	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/lib/missioncontrol	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/lib/visualvm	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/lib/*javafx*	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/jre/lib/plugin.jar	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/jre/lib/amd64/libfxplugins.so	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/jre/lib/amd64/libglass.so	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/jre/lib/amd64/libgstreamer-­‐lite.so	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/jre/lib/amd64/libjavafx*.so	
  	
  
	
   	
   	
   	
   	
   	
   $JAVA_HOME/jre/lib/amd64/libjfx*.so	
  	
  
	
   &&	
  rm	
  -­‐rf	
  /usr/share/locale/*	
  	
  
	
   &&	
  yum	
  remove	
  -­‐y	
  perl	
  	
  
	
   &&	
  yum	
  clean	
  all	
  
ENV	
  GEODE_HOME	
  /incubator-­‐geode/gemfire-­‐assembly/build/install/apache-­‐geode	
  
ENV	
  PATH	
  $PATH:$GEODE_HOME/bin:$JAVA_HOME/bin	
  
#	
  Default	
  ports:	
  
#	
  RMI/JMX	
  1099	
  
#	
  REST	
  8080	
  
#	
  PULE	
  7070	
  
#	
  LOCATOR	
  10334	
  
#	
  CACHESERVER	
  40404	
  
EXPOSE	
  	
  8080	
  10334	
  40404	
  1099	
  7070	
  
VOLUME	
  ["/data/"]	
  
CMD	
  [“gfsh"]	
  
21
Demo
Building Apache Geode image
22
• Docker-compose (Fig)
• Simple YAML file
• Orchestration
• Ordering
• Scale
• Network wiring
locator:	
  
	
  	
  #build:	
  .	
  
	
  	
  image:	
  apachegeode/geode:unstable	
  
	
  	
  hostname:	
  locator	
  
	
  	
  expose:	
  
	
  	
  	
  -­‐	
  "10334"	
  
	
  	
  	
  -­‐	
  "1099"	
  
	
  	
  	
  -­‐	
  "7575"	
  
	
  	
  ports:	
  
	
  	
  	
  -­‐	
  "1099:1099"	
  
	
  	
  	
  -­‐	
  "10334:10334"	
  
	
  	
  	
  -­‐	
  "7575:7575"	
  
	
  	
  volumes:	
  
	
  	
  	
  -­‐	
  scripts/:/data/	
  
	
  	
  command:	
  gfsh	
  start	
  locator	
  -­‐-­‐name=locator	
  -­‐-­‐mcast-­‐port=0	
  
server:	
  
	
  	
  image:	
  apachegeode/geode:unstable	
  
	
  	
  links:	
  
	
  	
  	
  -­‐	
  locator:locator	
  
	
  	
  expose:	
  
	
  	
  	
  -­‐	
  "8080"	
  
	
  	
  	
  -­‐	
  "40404"	
  
	
  	
  	
  -­‐	
  "1099"	
  
	
  	
  ports:	
  
	
  	
  	
  -­‐	
  "40404"	
  
	
  	
  volumes:	
  
	
  	
  	
  -­‐	
  scripts/:/data/	
  
	
  	
  command:	
  gfsh	
  start	
  server	
  —name=server	
  —locators=locator[10334]
Apache Geode - Container cluster
23
Demo
Apache Geode - Container cluster
24
Geode on Containers: Use cases
‣ Scale systems
‣ Microservices architecture
‣ REST services on Geode
‣ Testing or reproducing scenarios
‣ Network partitions
‣ Production environment (multiple nodes)
‣ Deploy on cloud infrastructure
25
Docker ecosystem
Docker ecosystem
26
https://hub.docker.com/u/apachegeode/
Agenda
27
‣ Docker basics
‣ Demo
‣ Building Apache Geode image
‣ Docker and Geode basics
‣ Demo
‣ Troubleshooting
‣ Demo
Troubleshooting
28
29
Troubleshooting
• Postmortem
• docker ps -a
• docker inspect <id>
• Volumes!

• Online
• docker stats
• docker logs
• bash/shell
• Your current knowledge still applies!
30
Demo
Troubleshooting
Concerns
31
• Performance (prefer —net=host)
• Storage (persistence & backup)
• Statistics
• /proc is not containerized
• Metrics are still a bit confusing
• Fair access to system resources
• Security
• Everything as root…
• VM’s do a better job here ?
• Speed + easy of use always wins!
• Portability + consistency for dev, test and prod
• Containers are good for applications and services
• Easy to scale for applications
• Easy to scale for services such as Apache Geode
• Apache Geode as Cloud Native “data storage"
Conclusions
32
• Code
• New features
• Bug fixes
• Writing tests
• Documentation
• Wiki
• Web site
• User guide
33
How to Contribute
• Community
• Join the mailing list
• Ask or answer
• Join our HipChat
• Become a speaker
• Finding bugs
• Testing an RC/Beta
Q&A
34
35
https://github.com/wsargent/docker-cheat-sheet
https://www.docker.com/tryit/
https://docs.docker.com/
References:
https://hub.docker.com/u/apachegeode/
https://geode.incubator.apache.org
Thanks
36
William Markito

wmarkito@pivotal.io


https://hub.docker.com/u/apachegeode/
https://github.com/apache/incubator-geode
http://geode.incubator.apache.org

Contenu connexe

Tendances

Deep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red HatDeep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red HatCloud Native Day Tel Aviv
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinderopenstackindia
 
Big Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and MesosBig Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and MesosHeiko Loewe
 
Apache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationApache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationPivotalOpenSourceHub
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesJimmy Angelakos
 
Kubernetes and Cloud Native Update Q4 2018
Kubernetes and Cloud Native Update Q4 2018Kubernetes and Cloud Native Update Q4 2018
Kubernetes and Cloud Native Update Q4 2018CloudOps2005
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and dockerFabio Fumarola
 
Open stack solidfire-mavenspire-meetup
Open stack solidfire-mavenspire-meetupOpen stack solidfire-mavenspire-meetup
Open stack solidfire-mavenspire-meetupGene Dubensky
 
Manila, an update from Liberty, OpenStack Summit - Tokyo
Manila, an update from Liberty, OpenStack Summit - TokyoManila, an update from Liberty, OpenStack Summit - Tokyo
Manila, an update from Liberty, OpenStack Summit - TokyoSean Cohen
 
Beyond x86: Managing Multi-platform Environments with OpenStack
Beyond x86: Managing Multi-platform Environments with OpenStackBeyond x86: Managing Multi-platform Environments with OpenStack
Beyond x86: Managing Multi-platform Environments with OpenStackPhil Estes
 
ceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortNAVER D2
 
Docker based Hadoop provisioning - Hadoop Summit 2014
Docker based Hadoop provisioning - Hadoop Summit 2014 Docker based Hadoop provisioning - Hadoop Summit 2014
Docker based Hadoop provisioning - Hadoop Summit 2014 Janos Matyas
 
Handling Redis failover with ZooKeeper
Handling Redis failover with ZooKeeperHandling Redis failover with ZooKeeper
Handling Redis failover with ZooKeeperryanlecompte
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack CinderRenuka Apte
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Roberto Hashioka
 
Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleJirayut Nimsaeng
 

Tendances (20)

Deep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red HatDeep Dive into Openstack Storage, Sean Cohen, Red Hat
Deep Dive into Openstack Storage, Sean Cohen, Red Hat
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinder
 
Big Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and MesosBig Data in Container; Hadoop Spark in Docker and Mesos
Big Data in Container; Hadoop Spark in Docker and Mesos
 
Apache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationApache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based Replication
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
 
Kubernetes and Cloud Native Update Q4 2018
Kubernetes and Cloud Native Update Q4 2018Kubernetes and Cloud Native Update Q4 2018
Kubernetes and Cloud Native Update Q4 2018
 
OpenStack Storage Overview
OpenStack Storage OverviewOpenStack Storage Overview
OpenStack Storage Overview
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Open stack solidfire-mavenspire-meetup
Open stack solidfire-mavenspire-meetupOpen stack solidfire-mavenspire-meetup
Open stack solidfire-mavenspire-meetup
 
Manila, an update from Liberty, OpenStack Summit - Tokyo
Manila, an update from Liberty, OpenStack Summit - TokyoManila, an update from Liberty, OpenStack Summit - Tokyo
Manila, an update from Liberty, OpenStack Summit - Tokyo
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
Beyond x86: Managing Multi-platform Environments with OpenStack
Beyond x86: Managing Multi-platform Environments with OpenStackBeyond x86: Managing Multi-platform Environments with OpenStack
Beyond x86: Managing Multi-platform Environments with OpenStack
 
ceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-short
 
Docker based Hadoop provisioning - Hadoop Summit 2014
Docker based Hadoop provisioning - Hadoop Summit 2014 Docker based Hadoop provisioning - Hadoop Summit 2014
Docker based Hadoop provisioning - Hadoop Summit 2014
 
Handling Redis failover with ZooKeeper
Handling Redis failover with ZooKeeperHandling Redis failover with ZooKeeper
Handling Redis failover with ZooKeeper
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Big data and Kubernetes
Big data and KubernetesBig data and Kubernetes
Big data and Kubernetes
 
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
 
Build cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack AnsibleBuild cloud like Rackspace with OpenStack Ansible
Build cloud like Rackspace with OpenStack Ansible
 

En vedette

Apache Geode (incubating) Introduction with Docker
Apache Geode (incubating) Introduction with DockerApache Geode (incubating) Introduction with Docker
Apache Geode (incubating) Introduction with DockerWilliam Markito Oliveira
 
Apache Geode Meetup, Cork, Ireland at CIT
Apache Geode Meetup, Cork, Ireland at CITApache Geode Meetup, Cork, Ireland at CIT
Apache Geode Meetup, Cork, Ireland at CITApache Geode
 
GemFire Data Fabric: Extrema performance e throughput transacional com alta d...
GemFire Data Fabric: Extrema performance e throughput transacional com alta d...GemFire Data Fabric: Extrema performance e throughput transacional com alta d...
GemFire Data Fabric: Extrema performance e throughput transacional com alta d...Fred Melo
 
Big and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable SystemsBig and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable SystemsFred Melo
 
New Security Framework in Apache Geode
New Security Framework in Apache GeodeNew Security Framework in Apache Geode
New Security Framework in Apache GeodePivotalOpenSourceHub
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Dockerjchase50
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28Adrian Otto
 
Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...Fred Melo
 
A Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source SoftwareA Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source SoftwareFred Melo
 
DevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesDevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesFred Melo
 
Microservice Architecuture with Event Sourcing @ Sydney JVM Meetup
Microservice Architecuture with Event Sourcing @ Sydney JVM MeetupMicroservice Architecuture with Event Sourcing @ Sydney JVM Meetup
Microservice Architecuture with Event Sourcing @ Sydney JVM MeetupBoris Kravtsov
 
Zettaset Elastic Big Data Security for Greenplum Database
Zettaset Elastic Big Data Security for Greenplum DatabaseZettaset Elastic Big Data Security for Greenplum Database
Zettaset Elastic Big Data Security for Greenplum DatabasePivotalOpenSourceHub
 
China & the environment
China & the environmentChina & the environment
China & the environmentTrent_Ledford
 
Docker use dockerfile
Docker use dockerfileDocker use dockerfile
Docker use dockerfilecawamata
 

En vedette (19)

JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...
JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...
JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...
 
Apache Geode (incubating) Introduction with Docker
Apache Geode (incubating) Introduction with DockerApache Geode (incubating) Introduction with Docker
Apache Geode (incubating) Introduction with Docker
 
Apache Geode Meetup, Cork, Ireland at CIT
Apache Geode Meetup, Cork, Ireland at CITApache Geode Meetup, Cork, Ireland at CIT
Apache Geode Meetup, Cork, Ireland at CIT
 
GemFire Data Fabric: Extrema performance e throughput transacional com alta d...
GemFire Data Fabric: Extrema performance e throughput transacional com alta d...GemFire Data Fabric: Extrema performance e throughput transacional com alta d...
GemFire Data Fabric: Extrema performance e throughput transacional com alta d...
 
Big and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable SystemsBig and Fast Data - Building Infinitely Scalable Systems
Big and Fast Data - Building Infinitely Scalable Systems
 
New Security Framework in Apache Geode
New Security Framework in Apache GeodeNew Security Framework in Apache Geode
New Security Framework in Apache Geode
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Docker
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28
 
Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...Architecting for cloud native data: Data Microservices done right using Sprin...
Architecting for cloud native data: Data Microservices done right using Sprin...
 
A Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source SoftwareA Stock Prediction System using Open-Source Software
A Stock Prediction System using Open-Source Software
 
DevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesDevOps, CD and [Data] Microservices
DevOps, CD and [Data] Microservices
 
Microservice Architecuture with Event Sourcing @ Sydney JVM Meetup
Microservice Architecuture with Event Sourcing @ Sydney JVM MeetupMicroservice Architecuture with Event Sourcing @ Sydney JVM Meetup
Microservice Architecuture with Event Sourcing @ Sydney JVM Meetup
 
Eyesus(1)
Eyesus(1)Eyesus(1)
Eyesus(1)
 
BILLY THE PUPPET
BILLY THE PUPPETBILLY THE PUPPET
BILLY THE PUPPET
 
Zettaset Elastic Big Data Security for Greenplum Database
Zettaset Elastic Big Data Security for Greenplum DatabaseZettaset Elastic Big Data Security for Greenplum Database
Zettaset Elastic Big Data Security for Greenplum Database
 
China & the environment
China & the environmentChina & the environment
China & the environment
 
Docker use dockerfile
Docker use dockerfileDocker use dockerfile
Docker use dockerfile
 
Nosferatu
NosferatuNosferatu
Nosferatu
 

Similaire à Geode on Docker

PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...Puppet
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configurationlutter
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
Docker workshop
Docker workshopDocker workshop
Docker workshopEvans Ye
 
もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介Takehiko Amano
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Ben Hall
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班Philip Zheng
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班Paul Chao
 
Create a Database Application Development Environment with Docker
Create a Database Application Development Environment with DockerCreate a Database Application Development Environment with Docker
Create a Database Application Development Environment with DockerBlaine Carter
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanMihai Criveti
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationErica Windisch
 
Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Bo-Yi Wu
 
Docker & FieldAware
Docker & FieldAwareDocker & FieldAware
Docker & FieldAwareJakub Jarosz
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline Docker, Inc.
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
 
Delivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devicesDelivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devicesAjeet Singh Raina
 

Similaire à Geode on Docker (20)

PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configuration
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班
 
Create a Database Application Development Environment with Docker
Create a Database Application Development Environment with DockerCreate a Database Application Development Environment with Docker
Create a Database Application Development Environment with Docker
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
Docker & FieldAware
Docker & FieldAwareDocker & FieldAware
Docker & FieldAware
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Docker, OSS and Azure
Docker, OSS and AzureDocker, OSS and Azure
Docker, OSS and Azure
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
Delivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devicesDelivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devices
 
Docker
DockerDocker
Docker
 

Dernier

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Dernier (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Geode on Docker

  • 1. Docker and Geode William Markito
 wmarkito@pivotal.io
  • 2. Docker and Geode Using Apache Geode and Docker 2
  • 3. Disclaimer Apache Geode (incubating) has not yet a release under Apache Software Foundation Incubator. The current bits available are for development purposes arising from a nightly build. Use at your own risk. 3
  • 4. ‣ Docker basics ‣ Demo ‣ Building Apache Geode image ‣ Docker and Geode basics ‣ Demo ‣ Troubleshooting ‣ Demo Agenda 4
  • 5. ‣ Enterprise Architect for Pivotal GemFire ‣ Helping customers & field design GemFire solutions ‣ Helping (?) engineering with features and bugs ‣ Focusing on Apache Geode Who Am I ? 5
  • 6. Enterprise in the next year ?
  • 7. • Containers • FreeBSD Jails (2000) • Solaris Zones (2004) • Docker (2013) • Operating system level virtualization • Isolated user space instances Some history… 7 * https://linuxcontainers.org/
  • 8. • Fast churn (create/delete) • For applications it’s seamless • Each instance has its own FileSystem, 
 RAM, CPU • Keep environment consistent • Useful for troubleshooting, CI, tests • Used in production at scale (Google/Twitter/Netflix) Why containers ? 8
  • 9. 9 Container vs VM “..while the hypervisor abstracts the entire device, containers just abstract the operating system kernel"
  • 10. 10 Docker vs Vagrant Docker Vagrant Virtual Environment Virtual Machine Manager Linux* Any platform Few seconds Few minutes Partial isolation Full isolation Dockerfile Vagrantfile * https://www.scriptrock.com/articles/docker-vs-vagrant
  • 11. 11 Docker vs Vagrant Dockerfile Vagrantfile FROM  centos:latest   RUN  yum  install  -­‐y  dos2unix   ENV  MY_VAR  my_value   EXPOSE    8080   RUN  mkdir  /data   CMD  ["bash"]   Vagrant.configure("2")  do  |config|      config.vm.box  =  "chef/centos-­‐7.0"      config.vm.hostname  =  "mybox"      config.vm.network  :private_network,  ip:   "192.168.0.42"      config.vm.provider  :virtualbox  do  |vb|          vb.customize  [              "modifyvm",  :id,              "-­‐-­‐cpuexecutioncap",  "50",              "-­‐-­‐memory",  "256",          ]      end      config.vm.provision  :shell,  path:  "bootstrap.sh"       end
  • 12. • Commands 12 docker  create   docker  run   docker  exec   docker  stop   docker  start   docker  restart   docker  rm   docker  kill   docker  attach   docker  ps   docker  logs   docker  inspect   docker  events   docker  port   docker  top   docker  stats   docker  diff Actions Monitoring Docker 101
  • 13. • Commands 13 docker  images   docker  import   docker  build   docker  commit   docker  load   docker  history   docker  tag   docker  login   docker  search   docker  pull   docker  push   Images Other useful commands Docker 101 https://github.com/wsargent/docker-cheat-sheet
  • 14. • Dockerfile • Image descriptor • Step-by-step instructions 14 FROM  centos:latest   RUN  yum  install  -­‐y  dos2unix   ENV  MY_VAR  my_value   EXPOSE    8080   RUN  mkdir  /data   CMD  ["bash"]   Docker 101
  • 16. 16 • Dockerfile • Layers • Union mount "A union mount is a way of mounting that allows several filesystems or directories to be simultaneously mounted and visible through a single mount point, appearing to be one filesystem.”* * Pendry, Jan-Simon; Marshall Kirk McKusick (December 1995). "Union Mounts in 4.4BSD-Lite” Docker 101
  • 17. 17 FROM  centos:latest   RUN  yum  install  -­‐y  dos2unix   RUN  yum  install  -­‐y  zlib-­‐devel   ENV  MY_VAR  my_value   EXPOSE    8080   RUN  mkdir  /data   CMD  ["bash"]   Building Apache Geode image • Docker Layers Previous image: 236.1MB (docker history <id>) - Install a header file of 49k
  • 19. • Docker Layers Previous image: 236.1MB - Install a header file of 49k Current image: 299.7MB 19 FROM  centos:latest   RUN  yum  install  -­‐y  dos2unix  zlib-­‐devel   ENV  MY_VAR  my_value   EXPOSE    8080   RUN  mkdir  /data   CMD  ["bash"]   Building Apache Geode image
  • 20. Building Apache Geode image 20 FROM  centos:latest   MAINTAINER  William  Markito  <william.markito@gmail.com>   LABEL  Vendor="Apache  Geode  (incubating)"   LABEL  version=unstable   #  download  JDK  8   ENV   JAVA_HOME  /jdk1.8.0_51   RUN   yum  install  -­‐y  wget  which  tar  git       &&  wget  -­‐-­‐no-­‐cookies  -­‐-­‐no-­‐check-­‐certificate  -­‐-­‐header  "Cookie:  gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;  oraclelicense=accept-­‐ securebackup-­‐cookie"  "http://download.oracle.com/otn-­‐pub/java/jdk/8u51-­‐b16/jdk-­‐8u51-­‐linux-­‐x64.tar.gz"       &&  tar  xf  jdk-­‐8u51-­‐linux-­‐x64.tar.gz       &&  git  clone  -­‐b  develop  https://github.com/apache/incubator-­‐geode.git       &&  cd  incubator-­‐geode       &&  ./gradlew  build  -­‐Dskip.tests=true       &&  ls  /incubator-­‐geode  |  grep  -­‐v  gemfire-­‐assembly  |  xargs  rm  -­‐rf       &&  rm  -­‐rf  /root/.gradle/       &&  rm  -­‐rf  /incubator-­‐geode/gemfire-­‐assembly/build/distributions/       &&  rm  -­‐rf  /jdk-­‐8u51-­‐linux-­‐x64.tar.gz       &&  rm  -­‐rf  $JAVA_HOME/*src.zip                 $JAVA_HOME/lib/missioncontrol                 $JAVA_HOME/lib/visualvm                 $JAVA_HOME/lib/*javafx*                 $JAVA_HOME/jre/lib/plugin.jar                 $JAVA_HOME/jre/lib/amd64/libfxplugins.so                 $JAVA_HOME/jre/lib/amd64/libglass.so                 $JAVA_HOME/jre/lib/amd64/libgstreamer-­‐lite.so                 $JAVA_HOME/jre/lib/amd64/libjavafx*.so                 $JAVA_HOME/jre/lib/amd64/libjfx*.so       &&  rm  -­‐rf  /usr/share/locale/*       &&  yum  remove  -­‐y  perl       &&  yum  clean  all   ENV  GEODE_HOME  /incubator-­‐geode/gemfire-­‐assembly/build/install/apache-­‐geode   ENV  PATH  $PATH:$GEODE_HOME/bin:$JAVA_HOME/bin   #  Default  ports:   #  RMI/JMX  1099   #  REST  8080   #  PULE  7070   #  LOCATOR  10334   #  CACHESERVER  40404   EXPOSE    8080  10334  40404  1099  7070   VOLUME  ["/data/"]   CMD  [“gfsh"]  
  • 22. 22 • Docker-compose (Fig) • Simple YAML file • Orchestration • Ordering • Scale • Network wiring locator:      #build:  .      image:  apachegeode/geode:unstable      hostname:  locator      expose:        -­‐  "10334"        -­‐  "1099"        -­‐  "7575"      ports:        -­‐  "1099:1099"        -­‐  "10334:10334"        -­‐  "7575:7575"      volumes:        -­‐  scripts/:/data/      command:  gfsh  start  locator  -­‐-­‐name=locator  -­‐-­‐mcast-­‐port=0   server:      image:  apachegeode/geode:unstable      links:        -­‐  locator:locator      expose:        -­‐  "8080"        -­‐  "40404"        -­‐  "1099"      ports:        -­‐  "40404"      volumes:        -­‐  scripts/:/data/      command:  gfsh  start  server  —name=server  —locators=locator[10334] Apache Geode - Container cluster
  • 23. 23 Demo Apache Geode - Container cluster
  • 24. 24 Geode on Containers: Use cases ‣ Scale systems ‣ Microservices architecture ‣ REST services on Geode ‣ Testing or reproducing scenarios ‣ Network partitions ‣ Production environment (multiple nodes) ‣ Deploy on cloud infrastructure
  • 27. Agenda 27 ‣ Docker basics ‣ Demo ‣ Building Apache Geode image ‣ Docker and Geode basics ‣ Demo ‣ Troubleshooting ‣ Demo
  • 29. 29 Troubleshooting • Postmortem • docker ps -a • docker inspect <id> • Volumes!
 • Online • docker stats • docker logs • bash/shell • Your current knowledge still applies!
  • 31. Concerns 31 • Performance (prefer —net=host) • Storage (persistence & backup) • Statistics • /proc is not containerized • Metrics are still a bit confusing • Fair access to system resources • Security • Everything as root… • VM’s do a better job here ?
  • 32. • Speed + easy of use always wins! • Portability + consistency for dev, test and prod • Containers are good for applications and services • Easy to scale for applications • Easy to scale for services such as Apache Geode • Apache Geode as Cloud Native “data storage" Conclusions 32
  • 33. • Code • New features • Bug fixes • Writing tests • Documentation • Wiki • Web site • User guide 33 How to Contribute • Community • Join the mailing list • Ask or answer • Join our HipChat • Become a speaker • Finding bugs • Testing an RC/Beta