SlideShare a Scribd company logo
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

More Related Content

What's hot

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
Cloud 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 Mesos
Heiko Loewe
 
Apache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationApache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based Replication
PivotalOpenSourceHub
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
Jimmy 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 2018
CloudOps2005
 
OpenStack Storage Overview
OpenStack Storage OverviewOpenStack Storage Overview
OpenStack Storage Overview
Bharat Kumar Kobagana
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
Fabio Fumarola
 
Open stack solidfire-mavenspire-meetup
Open stack solidfire-mavenspire-meetupOpen stack solidfire-mavenspire-meetup
Open stack solidfire-mavenspire-meetup
Gene 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 - Tokyo
Sean 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 OpenStack
Phil 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-short
NAVER 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 Nuxeo
Nuxeo
 
Big data and Kubernetes
Big data and KubernetesBig data and Kubernetes
Big data and Kubernetes
Anirudh Ramanathan
 
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 Ansible
Jirayut Nimsaeng
 

What's hot (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
 

Viewers also liked

Apache Geode (incubating) Introduction with Docker
Apache Geode (incubating) Introduction with DockerApache Geode (incubating) Introduction with Docker
Apache Geode (incubating) Introduction with Docker
William 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 CIT
Apache 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 Geode
PivotalOpenSourceHub
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
Roman Rodomansky
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Docker
jchase50
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28
Adrian 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 Software
Fred Melo
 
DevOps, CD and [Data] Microservices
DevOps, CD and [Data] MicroservicesDevOps, CD and [Data] Microservices
DevOps, CD and [Data] Microservices
Fred 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 Meetup
Boris Kravtsov
 
BILLY THE PUPPET
BILLY THE PUPPETBILLY THE PUPPET
BILLY THE PUPPET
Marta Aguilera
 
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
PivotalOpenSourceHub
 
China & the environment
China & the environmentChina & the environment
China & the environment
Trent_Ledford
 
Docker use dockerfile
Docker use dockerfileDocker use dockerfile
Docker use dockerfile
cawamata
 
Nosferatu
NosferatuNosferatu
Nosferatu
Marta Aguilera
 

Viewers also liked (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
 

Similar to 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 configuration
lutter
 
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
Ben 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 2016
Ben 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 Docker
Blaine 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 Podman
Mihai 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, Orchestration
Erica 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 Overview
Leo Lorieri
 
Docker, OSS and Azure
Docker, OSS and AzureDocker, OSS and Azure
Docker, OSS and Azure
Elton Stoneman
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
nklmish
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
andersjanmyr
 
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
Ajeet Singh Raina
 
Docker
DockerDocker
Docker
Cary Gordon
 

Similar to 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
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
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...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
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...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
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...
Sri Ambati
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
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...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
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...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
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...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 

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