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