David Makogon, Microsoft
@dmakogon
Containerized Neo4j:
Automating Deployments with
Docker on Azure
Patrick Chanezon, Docker Inc.
@chanezon
docker pull neo4j
French
Polyglot
Platforms
Software Plumber
San Francisco
Developer Relations
@chanezon
Azure
Polyglot persistence
Puns
@dmakogon
1995 2015
“The future is already here — it's
just not very evenly distributed”
William Gibson, Neuromancer
Docker’s mission is to
build tools of mass innovation
Internet (hardware layer)
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
Internet (software layer)
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
Internet (hardware layer)
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
a software layer to program the internet
Cloud Market
PublicHybridPrivate
IT Pros Devops DevelopersArchitects
Linux Container Ecosystem
Isolation using Linux kernel features
namespaces
 pid
 mnt
 net
 uts
 ipc
 user
cgroups
 memory
 cpu
 blkio
 devices
Image layers
Docker Mission
Docker for developers
https://registry.hub.docker.com/_/java/
docker-compose: running multiple containers
 Run your stack with one command: docker-compose up
 Describe your stack with one file: docker-compose.yml
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis:redis
redis:
image: redis
docker-machine
docker-machine create -d azure 
—azure-subscription-id="c4f51be3-784c-xxx-7c50ad9e1b7c" 
--azure-subscription-cert="/Users/pat/.ssh/docker-azure-
cert.pem" 
--azure-location="East US" 
--azure-size=Small 
--azure-username="pat" 
pat-docker-machine-n
Kitematic
Docker Mission
Docker Hub
Docker Hub
Dev & QA
ColleaguesDevelopers
QA
Build & Ship
Docker Trusted Registry
Docker Mission
Swarm
Scheduler plugins
Engine
Volumes plugins
Network plugins
Service discovery
plugins
Engine
Volumes plugins
Network plugins
Service discovery
plugins
mesos
flockerglusterfs
weavecalico
consuletcdzookeeper
midokuraciscoazurenuagenetworks
Docker Plugins
Batteries included but removable
Docker
CLI
Docker
CLI
Docker
CLI
Docker Engine
us-west us-east
Docker
CLI
Docker
CLI
Docker Swarm
Swarm
Swarm load balancing: interlock
https://github.com/ehazlett/interlock/tree/master/plugins/haproxy
Project Orca
Control Interface (GUI, API)
Swarm
3rd Party
scheduler
Docker Engine
Dev Self-service
Service
Catalog
Auto-Scale
Pluggable Control Plane
Compose Machine
…
Logging
Monitoring
HA
Network
Mgmt
Volume Mgmt
DeveloperOperations Auditing
Common Micro
Services
(Examples)
Service
Discovery
Load
Balancer
Secrets
Mgmt
+
Tutum: The Container Platform
TUTUM CONTAINER PLATFORM
Any
application
Any
infrastructur
eManagedSimple Flexible
Hybrid/Agnostic
Any
Operating
System
Containers
+
Other
Design Principles:
Tutum: The Container Platform
Dev Deploy ManageBuild
CI CD
Code
repo
Image
repo
Monitoring
Logging
Scaling
Networking
Storage
Service Discovery
Composability
Security
Hosts Public Cloud Private CloudAcross: Environments
TUTUM CONTAINER PLATFORM
Public Cloud
Test
Orchestration
RunC
The universal container runtime
https://runc.io
What’s New?
• Docker 1.9
• docker network
• docker volume
• Built-in nodes discovery
• user namespace experimental
• Swarm 1.0
• production ready
• platform integration: network, volumes
• scales to >1k nodes
Docker and Neo4J
Neo4j official image
Neo4j official Dockerfile
Let’s Dockerize a Neo4J App
https://github.com/neo4j-examples/movies-java-spring-data-neo4j-4
Enterprise Edition & HA
Neo4j Mazerunner and Apache Spark GraphX
https://github.com/kbastani/spark-neo4j
Neo4J in Azure
Neo4j + Azure
Classic VMs
 Spin up VM's, storage, network
 Install software
Azure Resource Manager
 Scripted infrastructure install
Add Docker, stir, serve chilled.
Azure Resource Manager
Azure Resource Manager
Define your infrastructure (JSON)
 Compute, Storage, Networking
 Dependencies
 Optional parameters
API call  Deploy entire infrastructure
Azure Resource Manager
All resources grouped together
Dependencies define order
Azure Resource Manager
API-driven
 REST
 SDK wrappers
 CLI
 Web
Supports custom extensions
 Docker extension
ARM Template for Neo4J
Fire up your first container today!
Ride the Whale!
Learning
docs.docker.com
slideshare.net/chanezon
github.com/chanezon/azure-linux
bit.ly/1QTznWn - Azure Resource Manager overview
bit.ly/1W4BpV5 – Deploy ARM scripts
bit.ly/1M8QEwI - Azure Resource Manager Jumpstart video
https://github.com/dmakogon/arm-template-neo4j-docker
We’re hiring!
https://www.docker.com/company/careers/
Q&A

Neo4J with Docker and Azure - GraphConnect 2015

Editor's Notes

  • #22 Docker Hub is Docker’s cloud service for … Publishing and discovering container images through the public registry Team collaboration and automation of application workflows
  • #25 … and to make all this easy to configure and manage, Docker Trusted Registry also features a web-based admin GUI … for insights into the state of the DTR host …