SlideShare a Scribd company logo
Deploying
the
Graph
November 2013

Kevin O’Neill
CTO PlayUp
@kevinoneill

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
A little History

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Engage & Entertain
Around Live Sport

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Mobile Games

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
SMS Based

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Number of Runs

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Complex

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Carrier Integration

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Smart Phone Revolution

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Move from a Content
Creator to a Content
Enabler
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Top 10 in Engagement

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Over 3 Million Likes

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
30% - 40% Active

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Manually Curated

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
We Know there's
an Opportunity

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
The Graph

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Scala

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Scala
•
•
•
•
•

A Scalable language
Object-Oriented
Functional
Seamless Java Interoperability
Functions are Objects

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
AKKA

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
AKKA
•
•
•
•

Actors
Fault Tolerance
Location Transparency
Transactors

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Neo4j

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Neo4j
•
•
•
•

Graph Database
Vertices and Edges
Properties
Full Text Index

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Whiteboard
Outlining the bits

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Runtime

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
AWS

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
AWS
•
•
•
•

us-west
m2.2xlarge
ubuntu 13.04
jre 7

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
JVM

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
JVM
•
•
•

Graph - 8G of Heap
Others 128M - 1G
Parallel GC

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
The remaining memory
is reserved for file
system cache and
memory mapped buffers
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Building the Components

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
SBT

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builds the jars

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Debian Packages

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Debian Packages
•
•
•

Places binaries in opt
Adds an upstart file for the
Permissions on data and log directories

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
graph-server.upstart
setuid	
  ubuntu	
  
setgid	
  ubuntu	
  
!

console	
  log	
  
!

chdir	
  /var/lib/playup/spot/graph-­‐server	
  
!

exec	
  java	
  -­‐server	
  -­‐Xms4096M	
  -­‐Xmx8192M	
  -­‐Xss1M	
  	
  
	
  	
  -­‐XX:MaxPermSize=256M	
  -­‐XX:+UseParallelGC	
  	
  
	
  	
  -­‐jar	
  /opt/playup/spot/graph-­‐server/run.jar	
  	
  
	
  	
  com.playup.spot.graph.service.NeoKernel

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Base configuration is for
production

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Baking

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Packer

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Create machine images
for multiple platforms
from a single config

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Images have lots of benefits

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Fast Deployment

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Stability

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Testability

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Packer makes creating
images a breeze

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Example

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builders
"builders":	
  [	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "amazon-­‐ebs",	
  
	
  	
  	
  	
  	
  	
  "instance_type":	
  "t1.micro",	
  
	
  	
  	
  	
  	
  	
  "region":	
  "ap-­‐southeast-­‐2",	
  
	
  	
  	
  	
  	
  	
  "ami_name":	
  "spot-­‐graph-­‐{{user	
  `version`}}-­‐{{timestamp}}",	
  
	
  	
  	
  	
  	
  	
  "source_ami":	
  "ami-­‐4bf26f71",	
  
	
  	
  	
  	
  	
  	
  "ssh_username":	
  "ubuntu",	
  
	
  	
  	
  	
  	
  	
  "tags":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Name":	
  "spot-­‐graph-­‐{{user	
  `version`}}	
  ({{isotime}})",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "OS":	
  "Ubuntu",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Version":	
  "{{user	
  `version`}}-­‐{{timestamp}}"	
  
	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "ami_regions":["us-­‐west-­‐2"]	
  
	
  	
  	
  	
  }	
  …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builders
"builders":	
  [	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "amazon-­‐ebs",	
  
	
  	
  	
  	
  	
  	
  "instance_type":	
  "t1.micro",	
  
	
  	
  	
  	
  	
  	
  "region":	
  "ap-­‐southeast-­‐2",	
  
	
  	
  	
  	
  	
  	
  "ami_name":	
  "spot-­‐graph-­‐{{user	
  `version`}}-­‐{{timestamp}}",	
  
	
  	
  	
  	
  	
  	
  "source_ami":	
  "ami-­‐4bf26f71",	
  
	
  	
  	
  	
  	
  	
  "ssh_username":	
  "ubuntu",	
  
	
  	
  	
  	
  	
  	
  "tags":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Name":	
  "spot-­‐graph-­‐{{user	
  `version`}}	
  ({{isotime}})",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "OS":	
  "Ubuntu",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Version":	
  "{{user	
  `version`}}-­‐{{timestamp}}"	
  
	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "ami_regions":["us-­‐west-­‐2"]	
  
	
  	
  	
  	
  }	
  …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builders
"builders":	
  [	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "amazon-­‐ebs",	
  
	
  	
  	
  	
  	
  	
  "instance_type":	
  "t1.micro",	
  
	
  	
  	
  	
  	
  	
  "region":	
  "ap-­‐southeast-­‐2",	
  
	
  	
  	
  	
  	
  	
  "ami_name":	
  "spot-­‐graph-­‐{{user	
  `version`}}-­‐{{timestamp}}",	
  
	
  	
  	
  	
  	
  	
  "source_ami":	
  "ami-­‐4bf26f71",	
  
	
  	
  	
  	
  	
  	
  "ssh_username":	
  "ubuntu",	
  
	
  	
  	
  	
  	
  	
  "tags":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Name":	
  "spot-­‐graph-­‐{{user	
  `version`}}	
  ({{isotime}})",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "OS":	
  "Ubuntu",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Version":	
  "{{user	
  `version`}}-­‐{{timestamp}}"	
  
	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "ami_regions":["us-­‐west-­‐2"]	
  
	
  	
  	
  	
  }	
  …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builders
"builders":	
  [	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "amazon-­‐ebs",	
  
	
  	
  	
  	
  	
  	
  "instance_type":	
  "t1.micro",	
  
	
  	
  	
  	
  	
  	
  "region":	
  "ap-­‐southeast-­‐2",	
  
	
  	
  	
  	
  	
  	
  "ami_name":	
  "spot-­‐graph-­‐{{user	
  `version`}}-­‐{{timestamp}}",	
  
	
  	
  	
  	
  	
  	
  "source_ami":	
  "ami-­‐4bf26f71",	
  
	
  	
  	
  	
  	
  	
  "ssh_username":	
  "ubuntu",	
  
	
  	
  	
  	
  	
  	
  "tags":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Name":	
  "spot-­‐graph-­‐{{user	
  `version`}}	
  ({{isotime}})",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "OS":	
  "Ubuntu",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Version":	
  "{{user	
  `version`}}-­‐{{timestamp}}"	
  
	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "ami_regions":["us-­‐west-­‐2"]	
  
	
  	
  	
  	
  }	
  …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builders
"builders":	
  [	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "amazon-­‐ebs",	
  
	
  	
  	
  	
  	
  	
  "instance_type":	
  "t1.micro",	
  
	
  	
  	
  	
  	
  	
  "region":	
  "ap-­‐southeast-­‐2",	
  
	
  	
  	
  	
  	
  	
  "ami_name":	
  "spot-­‐graph-­‐{{user	
  `version`}}-­‐{{timestamp}}",	
  
	
  	
  	
  	
  	
  	
  "source_ami":	
  "ami-­‐4bf26f71",	
  
	
  	
  	
  	
  	
  	
  "ssh_username":	
  "ubuntu",	
  
	
  	
  	
  	
  	
  	
  "tags":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Name":	
  "spot-­‐graph-­‐{{user	
  `version`}}	
  ({{isotime}})",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "OS":	
  "Ubuntu",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "Version":	
  "{{user	
  `version`}}-­‐{{timestamp}}"	
  
	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "ami_regions":["us-­‐west-­‐2"]	
  
	
  	
  	
  	
  }	
  …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Variables

	
  	
  "variables":	
  {	
  
	
  	
  	
  	
  "version":	
  "development"	
  
	
  	
  }	
  

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Provisioners
	
  	
  "provisioners":	
  [	
  
	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/update-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐puppet.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "file",	
  
	
  	
  	
  	
  	
  	
  "source":	
  "packages",	
  
	
  	
  	
  	
  	
  	
  "destination":	
  "/tmp"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐spot-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "puppet-­‐masterless",	
  
	
  	
  	
  	
  	
  	
  "manifest_file":	
  "puppet/spot-­‐graph.pp",	
  
	
  	
  	
  	
  	
  	
  "module_paths":	
  ["puppet/local",	
  "puppet/common"]	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/build-­‐date.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  }	
  
	
  
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Provisioners
	
  	
  "provisioners":	
  [	
  
	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/update-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐puppet.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "file",	
  
	
  	
  	
  	
  	
  	
  "source":	
  "packages",	
  
	
  	
  	
  	
  	
  	
  "destination":	
  "/tmp"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐spot-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "puppet-­‐masterless",	
  
	
  	
  	
  	
  	
  	
  "manifest_file":	
  "puppet/spot-­‐graph.pp",	
  
	
  	
  	
  	
  	
  	
  "module_paths":	
  ["puppet/local",	
  "puppet/common"]	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/build-­‐date.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  }	
  
	
  
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Provisioners
	
  	
  "provisioners":	
  [	
  
	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/update-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐puppet.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "file",	
  
	
  	
  	
  	
  	
  	
  "source":	
  "packages",	
  
	
  	
  	
  	
  	
  	
  "destination":	
  "/tmp"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐spot-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "puppet-­‐masterless",	
  
	
  	
  	
  	
  	
  	
  "manifest_file":	
  "puppet/spot-­‐graph.pp",	
  
	
  	
  	
  	
  	
  	
  "module_paths":	
  ["puppet/local",	
  "puppet/common"]	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/build-­‐date.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  }	
  
	
  
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Provisioners
	
  	
  "provisioners":	
  [	
  
	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/update-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐puppet.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "file",	
  
	
  	
  	
  	
  	
  	
  "source":	
  "packages",	
  
	
  	
  	
  	
  	
  	
  "destination":	
  "/tmp"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/install-­‐spot-­‐packages.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "puppet-­‐masterless",	
  
	
  	
  	
  	
  	
  	
  "manifest_file":	
  "puppet/spot-­‐graph.pp",	
  
	
  	
  	
  	
  	
  	
  "module_paths":	
  ["puppet/local",	
  "puppet/common"]	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/build-­‐date.sh",	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell"	
  
	
  	
  	
  	
  }	
  
	
  
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Builder Provisioners
	
  	
  "provisioners":	
  [	
  
!
	
   …	
  
!
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell",	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/vagrant.sh",	
  
	
  	
  	
  	
  	
  	
  "only":	
  ["virtualbox"]	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  "shell",	
  
	
  	
  	
  	
  	
  	
  "script":	
  "scripts/guest-­‐additions.sh",	
  
	
  	
  	
  	
  	
  	
  "only":	
  ["virtualbox"]	
  
	
  	
  	
  	
  },	
  
!
	
   …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Build

$	
  packer	
  build	
  -­‐-­‐only	
  "amazon-­‐ebs"	
  template.json	
  

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
In a few minutes you
have a shiny new image

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
CI

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
CI
•
•
•
•

Variables
source ami
region
default build is for local development

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Starting an instance

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Remember

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Backed config is for
Production*

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
We have staging plus multiple
developer environments

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
CloudInit

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Configure values in
/etc/playup/…

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Configure the
puppet master*

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Cloud Formation

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Which images

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
What CloudInit values

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Challenges

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Too many to list …

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Persistant Data

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Service Registration

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Cluster Membership

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Investigating

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Docker

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Apache Mesos

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Come Join Us

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Disrupting

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Hiring Selectively

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Talk to Me or Andrea

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
You miss 100 percent
of the the shots you
don't take
– Wayne Gretzky
Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013
Questions?
Kevin O’Neill
CTO - PlayUp
@kevinoneill
kevin@playup.com

Kevin O’Neill - CTO PlayUp - @kevinoneill

Infrastructure Coders - Melbourne - November 2013

More Related Content

What's hot

Swaggered web apis in Clojure
Swaggered web apis in ClojureSwaggered web apis in Clojure
Swaggered web apis in Clojure
Metosin Oy
 
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
Luke Han
 
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesomeClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
Metosin Oy
 
Helium makes Zeppelin fly!
Helium makes Zeppelin fly!Helium makes Zeppelin fly!
Helium makes Zeppelin fly!
DataWorks Summit
 
How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...
How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...
How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...
Amazon Web Services
 
Way to cloud
Way to cloudWay to cloud
Way to cloud
Andrew Yongjoon Kong
 
Presentation kyushu-2018
Presentation kyushu-2018Presentation kyushu-2018
Presentation kyushu-2018
masahitojp
 
Apache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitter
Apache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitterApache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitter
Apache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitter
Apache Zeppelin
 
Altitude SF 2017: Stories from TED
Altitude SF 2017: Stories from TEDAltitude SF 2017: Stories from TED
Altitude SF 2017: Stories from TED
Fastly
 
BIG DATA ANALYSIS
BIG DATA ANALYSISBIG DATA ANALYSIS
BIG DATA ANALYSIS
Nitesh Singh
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
Travis Redman
 
Going serverless
Going serverlessGoing serverless
Going serverless
Jeremy Green
 
Spring Into Kubernetes DFW
Spring Into Kubernetes DFWSpring Into Kubernetes DFW
Spring Into Kubernetes DFW
VMware Tanzu
 
Kqed And The Npr Api
Kqed And The Npr ApiKqed And The Npr Api
Kqed And The Npr Api
Kevin Cooke
 
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
StampedeCon
 
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForzaFullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Codemotion Tel Aviv
 
Our challenge for Bulkload reliability improvement
Our challenge for Bulkload reliability  improvementOur challenge for Bulkload reliability  improvement
Our challenge for Bulkload reliability improvement
Satoshi Akama
 
Transfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMRTransfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMR
창언 정
 
Openstack summit 2015
Openstack summit 2015Openstack summit 2015
Openstack summit 2015
Andrew Yongjoon Kong
 
CODAIT/Spark-Bench
CODAIT/Spark-BenchCODAIT/Spark-Bench
CODAIT/Spark-Bench
Emily Curtin
 

What's hot (20)

Swaggered web apis in Clojure
Swaggered web apis in ClojureSwaggered web apis in Clojure
Swaggered web apis in Clojure
 
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
4.Building a Data Product using apache Zeppelin - Apache Kylin Meetup @Shanghai
 
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesomeClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
ClojuTRE2015: Kekkonen - making your Clojure web APIs more awesome
 
Helium makes Zeppelin fly!
Helium makes Zeppelin fly!Helium makes Zeppelin fly!
Helium makes Zeppelin fly!
 
How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...
How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...
How Parse Built a Mobile Backend as a Service on AWS (MBL307) | AWS re:Invent...
 
Way to cloud
Way to cloudWay to cloud
Way to cloud
 
Presentation kyushu-2018
Presentation kyushu-2018Presentation kyushu-2018
Presentation kyushu-2018
 
Apache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitter
Apache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitterApache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitter
Apache Zeppelin on Kubernetes with Spark and Kafka - meetup @twitter
 
Altitude SF 2017: Stories from TED
Altitude SF 2017: Stories from TEDAltitude SF 2017: Stories from TED
Altitude SF 2017: Stories from TED
 
BIG DATA ANALYSIS
BIG DATA ANALYSISBIG DATA ANALYSIS
BIG DATA ANALYSIS
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
 
Going serverless
Going serverlessGoing serverless
Going serverless
 
Spring Into Kubernetes DFW
Spring Into Kubernetes DFWSpring Into Kubernetes DFW
Spring Into Kubernetes DFW
 
Kqed And The Npr Api
Kqed And The Npr ApiKqed And The Npr Api
Kqed And The Npr Api
 
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
Big Data at Riot Games – Using Hadoop to Understand Player Experience - Stamp...
 
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForzaFullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
 
Our challenge for Bulkload reliability improvement
Our challenge for Bulkload reliability  improvementOur challenge for Bulkload reliability  improvement
Our challenge for Bulkload reliability improvement
 
Transfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMRTransfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMR
 
Openstack summit 2015
Openstack summit 2015Openstack summit 2015
Openstack summit 2015
 
CODAIT/Spark-Bench
CODAIT/Spark-BenchCODAIT/Spark-Bench
CODAIT/Spark-Bench
 

Viewers also liked

Swipe 2011 - iOS Gems
Swipe 2011 - iOS GemsSwipe 2011 - iOS Gems
Swipe 2011 - iOS Gems
Kevin O'Neill
 
A Slice of Scala
A Slice of Scala A Slice of Scala
A Slice of Scala
Kevin O'Neill
 
Hypermedia for the iOS developer - Swipe 2012
Hypermedia for the iOS developer - Swipe  2012Hypermedia for the iOS developer - Swipe  2012
Hypermedia for the iOS developer - Swipe 2012
Kevin O'Neill
 
Building Hypermedia API's - YOW! Night - March 2013
Building Hypermedia API's - YOW! Night - March 2013Building Hypermedia API's - YOW! Night - March 2013
Building Hypermedia API's - YOW! Night - March 2013
Kevin O'Neill
 
YOW Mobile Night 2011 - The realestate.com.au mobile story
YOW Mobile Night 2011 - The realestate.com.au mobile storyYOW Mobile Night 2011 - The realestate.com.au mobile story
YOW Mobile Night 2011 - The realestate.com.au mobile story
Kevin O'Neill
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)
Gustaf Nilsson Kotte
 

Viewers also liked (6)

Swipe 2011 - iOS Gems
Swipe 2011 - iOS GemsSwipe 2011 - iOS Gems
Swipe 2011 - iOS Gems
 
A Slice of Scala
A Slice of Scala A Slice of Scala
A Slice of Scala
 
Hypermedia for the iOS developer - Swipe 2012
Hypermedia for the iOS developer - Swipe  2012Hypermedia for the iOS developer - Swipe  2012
Hypermedia for the iOS developer - Swipe 2012
 
Building Hypermedia API's - YOW! Night - March 2013
Building Hypermedia API's - YOW! Night - March 2013Building Hypermedia API's - YOW! Night - March 2013
Building Hypermedia API's - YOW! Night - March 2013
 
YOW Mobile Night 2011 - The realestate.com.au mobile story
YOW Mobile Night 2011 - The realestate.com.au mobile storyYOW Mobile Night 2011 - The realestate.com.au mobile story
YOW Mobile Night 2011 - The realestate.com.au mobile story
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)
 

Similar to Deploying the Graph

ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25ACM BPM and elasticsearch AMIS25
Shaping Clouds with Terraform
Shaping Clouds with TerraformShaping Clouds with Terraform
Shaping Clouds with Terraform
Mike Fowler
 
Ensuring Quality in Data Lakes (D&D Meetup Feb 22)
Ensuring Quality in Data Lakes  (D&D Meetup Feb 22)Ensuring Quality in Data Lakes  (D&D Meetup Feb 22)
Ensuring Quality in Data Lakes (D&D Meetup Feb 22)
lakeFS
 
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Mike Qin
 
DevOps with Serverless
DevOps with ServerlessDevOps with Serverless
DevOps with Serverless
Yan Cui
 
Neo4j Import Webinar
Neo4j Import WebinarNeo4j Import Webinar
Neo4j Import Webinar
Neo4j
 
Kube Your Enthusiasm
Kube Your EnthusiasmKube Your Enthusiasm
Kube Your Enthusiasm
VMware Tanzu
 
Kube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiKube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul Czarkowski
VMware Tanzu
 
From Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in SydneyFrom Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in Sydney
SK Telecom
 
Building full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio CodeBuilding full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio Code
Microsoft Tech Community
 
The spring ecosystem in 50 min
The spring ecosystem in 50 minThe spring ecosystem in 50 min
The spring ecosystem in 50 min
Jeroen Sterken
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
Amazon Web Services
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
Chris Bailey
 
Modernizes your objective C - Oliviero
Modernizes your objective C - OlivieroModernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
Codemotion
 
K8s is not for App Developers
K8s is not for App DevelopersK8s is not for App Developers
K8s is not for App Developers
QAware GmbH
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy NguyenGrokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Huy Nguyen
 
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
Salesforce Marketing Cloud
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
Vivek Krishnakumar
 
CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016
CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016
CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016
Cloud Native Day Tel Aviv
 

Similar to Deploying the Graph (20)

ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25
 
Shaping Clouds with Terraform
Shaping Clouds with TerraformShaping Clouds with Terraform
Shaping Clouds with Terraform
 
Ensuring Quality in Data Lakes (D&D Meetup Feb 22)
Ensuring Quality in Data Lakes  (D&D Meetup Feb 22)Ensuring Quality in Data Lakes  (D&D Meetup Feb 22)
Ensuring Quality in Data Lakes (D&D Meetup Feb 22)
 
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
 
DevOps with Serverless
DevOps with ServerlessDevOps with Serverless
DevOps with Serverless
 
Neo4j Import Webinar
Neo4j Import WebinarNeo4j Import Webinar
Neo4j Import Webinar
 
Kube Your Enthusiasm
Kube Your EnthusiasmKube Your Enthusiasm
Kube Your Enthusiasm
 
Kube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiKube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul Czarkowski
 
From Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in SydneyFrom Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in Sydney
 
Building full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio CodeBuilding full-stack Node.js web apps with Visual Studio Code
Building full-stack Node.js web apps with Visual Studio Code
 
The spring ecosystem in 50 min
The spring ecosystem in 50 minThe spring ecosystem in 50 min
The spring ecosystem in 50 min
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
 
Modernizes your objective C - Oliviero
Modernizes your objective C - OlivieroModernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
 
K8s is not for App Developers
K8s is not for App DevelopersK8s is not for App Developers
K8s is not for App Developers
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy NguyenGrokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
 
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
 
CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016
CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016
CI Provisioning with OpenStack - Gidi Samuels - OpenStack Day Israel 2016
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 

Deploying the Graph

  • 1. Deploying the Graph November 2013 Kevin O’Neill CTO PlayUp @kevinoneill Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 2. Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 3. Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 4. Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 5. Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 6. A little History Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 7. Engage & Entertain Around Live Sport Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 8. Mobile Games Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 9. SMS Based Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 10. Number of Runs Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 11. Complex Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 12. Carrier Integration Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 13. Smart Phone Revolution Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 14. Move from a Content Creator to a Content Enabler Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 15. Top 10 in Engagement Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 16. Over 3 Million Likes Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 17. 30% - 40% Active Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 18. Manually Curated Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 19. We Know there's an Opportunity Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 20. The Graph Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 21. Scala Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 22. Scala • • • • • A Scalable language Object-Oriented Functional Seamless Java Interoperability Functions are Objects Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 23. AKKA Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 24. AKKA • • • • Actors Fault Tolerance Location Transparency Transactors Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 25. Neo4j Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 26. Neo4j • • • • Graph Database Vertices and Edges Properties Full Text Index Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 27. Whiteboard Outlining the bits Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 28. Runtime Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 29. AWS Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 30. AWS • • • • us-west m2.2xlarge ubuntu 13.04 jre 7 Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 31. JVM Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 32. JVM • • • Graph - 8G of Heap Others 128M - 1G Parallel GC Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 33. The remaining memory is reserved for file system cache and memory mapped buffers Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 34. Building the Components Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 35. SBT Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 36. Builds the jars Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 37. Debian Packages Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 38. Debian Packages • • • Places binaries in opt Adds an upstart file for the Permissions on data and log directories Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 39. graph-server.upstart setuid  ubuntu   setgid  ubuntu   ! console  log   ! chdir  /var/lib/playup/spot/graph-­‐server   ! exec  java  -­‐server  -­‐Xms4096M  -­‐Xmx8192M  -­‐Xss1M        -­‐XX:MaxPermSize=256M  -­‐XX:+UseParallelGC        -­‐jar  /opt/playup/spot/graph-­‐server/run.jar        com.playup.spot.graph.service.NeoKernel Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 40. Base configuration is for production Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 41. Baking Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 42. Packer Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 43. Create machine images for multiple platforms from a single config Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 44. Images have lots of benefits Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 45. Fast Deployment Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 46. Stability Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 47. Testability Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 48. Packer makes creating images a breeze Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 49. Example Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 50. Builders "builders":  [          {              "type":  "amazon-­‐ebs",              "instance_type":  "t1.micro",              "region":  "ap-­‐southeast-­‐2",              "ami_name":  "spot-­‐graph-­‐{{user  `version`}}-­‐{{timestamp}}",              "source_ami":  "ami-­‐4bf26f71",              "ssh_username":  "ubuntu",              "tags":  {                  "Name":  "spot-­‐graph-­‐{{user  `version`}}  ({{isotime}})",                  "OS":  "Ubuntu",                  "Version":  "{{user  `version`}}-­‐{{timestamp}}"              },              "ami_regions":["us-­‐west-­‐2"]          }  … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 51. Builders "builders":  [          {              "type":  "amazon-­‐ebs",              "instance_type":  "t1.micro",              "region":  "ap-­‐southeast-­‐2",              "ami_name":  "spot-­‐graph-­‐{{user  `version`}}-­‐{{timestamp}}",              "source_ami":  "ami-­‐4bf26f71",              "ssh_username":  "ubuntu",              "tags":  {                  "Name":  "spot-­‐graph-­‐{{user  `version`}}  ({{isotime}})",                  "OS":  "Ubuntu",                  "Version":  "{{user  `version`}}-­‐{{timestamp}}"              },              "ami_regions":["us-­‐west-­‐2"]          }  … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 52. Builders "builders":  [          {              "type":  "amazon-­‐ebs",              "instance_type":  "t1.micro",              "region":  "ap-­‐southeast-­‐2",              "ami_name":  "spot-­‐graph-­‐{{user  `version`}}-­‐{{timestamp}}",              "source_ami":  "ami-­‐4bf26f71",              "ssh_username":  "ubuntu",              "tags":  {                  "Name":  "spot-­‐graph-­‐{{user  `version`}}  ({{isotime}})",                  "OS":  "Ubuntu",                  "Version":  "{{user  `version`}}-­‐{{timestamp}}"              },              "ami_regions":["us-­‐west-­‐2"]          }  … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 53. Builders "builders":  [          {              "type":  "amazon-­‐ebs",              "instance_type":  "t1.micro",              "region":  "ap-­‐southeast-­‐2",              "ami_name":  "spot-­‐graph-­‐{{user  `version`}}-­‐{{timestamp}}",              "source_ami":  "ami-­‐4bf26f71",              "ssh_username":  "ubuntu",              "tags":  {                  "Name":  "spot-­‐graph-­‐{{user  `version`}}  ({{isotime}})",                  "OS":  "Ubuntu",                  "Version":  "{{user  `version`}}-­‐{{timestamp}}"              },              "ami_regions":["us-­‐west-­‐2"]          }  … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 54. Builders "builders":  [          {              "type":  "amazon-­‐ebs",              "instance_type":  "t1.micro",              "region":  "ap-­‐southeast-­‐2",              "ami_name":  "spot-­‐graph-­‐{{user  `version`}}-­‐{{timestamp}}",              "source_ami":  "ami-­‐4bf26f71",              "ssh_username":  "ubuntu",              "tags":  {                  "Name":  "spot-­‐graph-­‐{{user  `version`}}  ({{isotime}})",                  "OS":  "Ubuntu",                  "Version":  "{{user  `version`}}-­‐{{timestamp}}"              },              "ami_regions":["us-­‐west-­‐2"]          }  … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 55. Variables    "variables":  {          "version":  "development"      }   Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 56. Provisioners    "provisioners":  [        {              "script":  "scripts/update-­‐packages.sh",              "type":  "shell"          },          {              "script":  "scripts/install-­‐puppet.sh",              "type":  "shell"          },          {              "type":  "file",              "source":  "packages",              "destination":  "/tmp"          },          {              "script":  "scripts/install-­‐spot-­‐packages.sh",              "type":  "shell"          },          {              "type":  "puppet-­‐masterless",              "manifest_file":  "puppet/spot-­‐graph.pp",              "module_paths":  ["puppet/local",  "puppet/common"]          },          {              "script":  "scripts/build-­‐date.sh",              "type":  "shell"          }     Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 57. Provisioners    "provisioners":  [        {              "script":  "scripts/update-­‐packages.sh",              "type":  "shell"          },          {              "script":  "scripts/install-­‐puppet.sh",              "type":  "shell"          },          {              "type":  "file",              "source":  "packages",              "destination":  "/tmp"          },          {              "script":  "scripts/install-­‐spot-­‐packages.sh",              "type":  "shell"          },          {              "type":  "puppet-­‐masterless",              "manifest_file":  "puppet/spot-­‐graph.pp",              "module_paths":  ["puppet/local",  "puppet/common"]          },          {              "script":  "scripts/build-­‐date.sh",              "type":  "shell"          }     Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 58. Provisioners    "provisioners":  [        {              "script":  "scripts/update-­‐packages.sh",              "type":  "shell"          },          {              "script":  "scripts/install-­‐puppet.sh",              "type":  "shell"          },          {              "type":  "file",              "source":  "packages",              "destination":  "/tmp"          },          {              "script":  "scripts/install-­‐spot-­‐packages.sh",              "type":  "shell"          },          {              "type":  "puppet-­‐masterless",              "manifest_file":  "puppet/spot-­‐graph.pp",              "module_paths":  ["puppet/local",  "puppet/common"]          },          {              "script":  "scripts/build-­‐date.sh",              "type":  "shell"          }     Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 59. Provisioners    "provisioners":  [        {              "script":  "scripts/update-­‐packages.sh",              "type":  "shell"          },          {              "script":  "scripts/install-­‐puppet.sh",              "type":  "shell"          },          {              "type":  "file",              "source":  "packages",              "destination":  "/tmp"          },          {              "script":  "scripts/install-­‐spot-­‐packages.sh",              "type":  "shell"          },          {              "type":  "puppet-­‐masterless",              "manifest_file":  "puppet/spot-­‐graph.pp",              "module_paths":  ["puppet/local",  "puppet/common"]          },          {              "script":  "scripts/build-­‐date.sh",              "type":  "shell"          }     Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 60. Builder Provisioners    "provisioners":  [   !   …   !        {              "type":  "shell",              "script":  "scripts/vagrant.sh",              "only":  ["virtualbox"]          },          {              "type":  "shell",              "script":  "scripts/guest-­‐additions.sh",              "only":  ["virtualbox"]          },   !   … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 61. Build $  packer  build  -­‐-­‐only  "amazon-­‐ebs"  template.json   Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 62. In a few minutes you have a shiny new image Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 63. CI Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 64. CI • • • • Variables source ami region default build is for local development Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 65. Starting an instance Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 66. Remember Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 67. Backed config is for Production* Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 68. We have staging plus multiple developer environments Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 69. CloudInit Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 70. Configure values in /etc/playup/… Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 71. Configure the puppet master* Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 72. Cloud Formation Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 73. Which images Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 74. What CloudInit values Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 75. Challenges Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 76. Too many to list … Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 77. Persistant Data Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 78. Service Registration Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 79. Cluster Membership Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 80. Investigating Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 81. Docker Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 82. Apache Mesos Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 83. Come Join Us Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 84. Disrupting Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 85. Hiring Selectively Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 86. Talk to Me or Andrea Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 87. You miss 100 percent of the the shots you don't take – Wayne Gretzky Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013
  • 88. Questions? Kevin O’Neill CTO - PlayUp @kevinoneill kevin@playup.com Kevin O’Neill - CTO PlayUp - @kevinoneill Infrastructure Coders - Melbourne - November 2013