SlideShare a Scribd company logo
1 of 22
Download to read offline
Con$nuous 
Deployment 
with 
Docker 
Andrew 
Aslinger 
Oct 
9. 
2014
Who 
is 
Andrew 
#1 
So#ware 
/ 
Systems 
Architect 
for 
OpenWhere 
Passion 
for 
UX, 
Big 
Data, 
and 
Cloud/DevOps 
Previously 
Designed 
and 
Implemented 
automated 
DevOps 
processes 
for 
several 
organiza@ons 
Mul$ple 
environments, 
many 
user 
/ 
developer 
groups, 
big 
data 
clusters, 
hundreds 
of 
machines 
A 
Recovering 
“Chef”
Who 
is 
Andrew 
#2 
(Andy) 
Host 
of 
AWS 
DC 
Meet 
Up 
Started 
as 
a 
developer 
who 
could 
talk 
to 
opera@ons 
and 
infrastructure 
teams 
Lived 
the 
transi@on 
from 
data 
center, 
Co-­‐Lo, 
internal 
cloud, 
to 
AWS 
To 
much 
fun 
to 
ever 
go 
back
4 
Agenda 
What 
is 
Docker 
? 
Con$nuous 
Delivery 
with 
AWS 
and 
Docker 
Docker 
Advanced 
Prac$ces 
and 
Lessons 
Learned 
Demo 
& 
Discussion
What 
is 
Docker? 
“Docker 
is 
an 
open 
pla/orm 
for 
developers 
and 
sysadmins 
to 
build, 
ship, 
and 
run 
distributed 
applica:ons” 
Yet another DevOps tool 
light weight container 
Latest hype?
Docker 
Benefits 
• Portability 
Across 
Machines 
– Local 
Vagrant 
like 
deployment, 
Remote 
Deployment 
including 
Amazon 
EC2 
– Independent 
of 
host 
OS 
– Lightweight 
vs 
VMs 
• Supports 
DevOps 
Best 
Prac@ces 
& 
Re-­‐use 
– Infrastructure 
as 
Code 
– Container 
Extensibility 
• Fits 
into 
a 
Con@nuous 
Deployment 
Pipeline 
• Isola@on 
and 
Single 
Responsibility 
– Reduce 
dependency 
conflicts, 
security 
Virtual Machines 
Docker
7 
A 
Typical 
Docker 
Flow 
with 
six 
simple 
commands 
Docker 
Image 
docker build –t imagename . 
Dockerfile 
conf 
Docker 
Registry 
registryname: 
docker tag imagename registryname/ 
imagename 
https://registry.hub.docker.com/ 
Private registry 
Docker 
Image 
Docker 
Container 
or 
docker run –p 9000:9000 –d --name 
containername imagename 
Development 
Environment 
Host 
Environment 
docker stop/restart/start 
containername
OpenWhere 
DevOps 
Philosophy 
1. Immutable 
Infrastructure 
– Focus 
on 
one 
process 
(build) 
vs. 
two 
(build 
& 
maintain) 
2. Simplify 
the 
Tools 
– Minimize 
On-­‐boarding 
& 
Training 
– Minimize 
Tools 
3. Purpose 
Built 
Environments 
4. DevOps 
code 
should 
co-­‐exist 
with 
applica@on 
code 
– How 
to 
build 
infrastructure 
for 
project 
inline 
with 
project 
– Jenkins 
scripts 
– Docker 
5. Auto-­‐scale 
from 
start
Why 
Docker 
with 
EC2? 
• Build 
once, 
run 
many 
places 
– Dev 
Machines, 
different 
clouds, 
different 
VPCs, 
share 
and 
build 
– Not 
$ed 
to 
box 
size 
or 
guest 
OS 
• AMI’s 
are 
difficult 
to 
rebuild 
and 
more 
difficult 
to 
maintain 
– Snapshots 
retain 
baggage 
– There 
is 
no 
“git” 
version 
control 
for 
AMI 
– AMI’s 
are 
not 
cross 
region 
compa$ble 
– Other 
AMI 
tools 
like 
Amiator 
aren’t 
easy 
to 
use 
• Easier 
to 
achieve 
immutable 
infrastructure 
and 
one 
click 
deploys 
– Maintaining 
machines 
sucks 
• Treat 
your 
infrastructure 
as 
code 
with 
a 
Con@nuous 
Deployment 
Pipeline
Why 
Docker 
with 
EC2? 
• Separate 
your 
data 
and 
state 
from 
your 
image 
• Machine 
layers 
evolve 
at 
different 
velocity 
and 
have 
different 
reuse 
(Example 
Later) 
– Core 
OS 
– Organiza$on 
Level 
Requirements 
– Applica$on 
Level 
Requirements 
– Applica$on 
Code 
• Test 
and 
version 
control 
your 
deploy 
ar$facts 
and 
configura$on 
together 
– Same 
container 
for 
developers 
and 
EC2 
– Java 
Example 
• Stop 
maintaining 
AMIs 
+
Docker 
Con@nuous 
Deployment 
Flow: 
Set 
up 
AWS 
infrastructure 
Create AWS Ec2 Instances 
and install Docker 
1 
yum install -y docker-io 
service docker start 
….
Docker 
Con@nuous 
Deployment 
Flow: 
Build 
and 
push 
docker 
image 
with 
latest 
code 
Commit New 
Code w/ 
Docker file 
SCM Poll Trigger build 
Push Artifacts 
(optional) 
Push new Image to 
public or private repo 
2 
3 
4 
6 
Build new Docker Image 
5 
from Docker File
Docker 
Con@nuous 
Deployment 
Flow: 
Trigger 
EC2 
to 
pull 
latest 
Docker 
image 
Trigger Docker Pull on 
target machines 
7 
Docker Pull & start 
container 
8
Advanced 
#1: 
Docker 
Image 
Layers 
using 
FROM 
and 
OnBuild 
commands 
in 
the 
Docker 
File 
Project 
Code 
Specific 
Image 
Organiza$on 
Applica$on 
Image 
(Example 
NodeJs 
Web 
App 
Image) 
Organiza$on 
Base 
OS 
Core 
OS 
Project 
SCM 
Application Dependencies & Config: 
NodeJS, express, supervisord etc. 
Common Dependencies & Config: 
Security, LDAP, Logging, etc. 
Base OS: 
CentOs, Ubuntu, etc. 
ONBUILD 
Docker Image Layers 
Jenkins Built 
Reusable 
Machine layers can evolve at different velocity 
and have different levels of reuse
Advanced 
#2: 
Linked 
Containers 
Run multiple containers on a machine. Each with a responsibility linked 
by ports / address 
https://docs.docker.com/userguide/dockerlinks/ 
--link name:alias 
docker run -d -P --name web --link db:db training/webapp python app.py 
Host 
OS 
Container 
1 
DB 
Container 
2 
Web 
$DB_PORT = 6379, 
etc. 
/etc/hosts 
db 172.0.0.2
Advanced 
#3: 
Data 
Containers 
A container which allows sharing of data across containers 
https://docs.docker.com/userguide/dockervolumes/ 
Benefits: Change image independent of data (maintainability) 
Enables Data sharing patterns (single responsibility) 
sudo docker run -d --volumes-from dbdata --name db2 training/postgres 
Host 
OS 
Data 
Container 
(non 
running) 
Container 
2 
Web 
/volume 
Limitations: Data is Tied to Host OS 
/volume 
-file1.txt 
-file2.txt 
Physical files 
docker managed 
Container 
3 
Web 
/volume
Advanced 
#4: 
Customize 
on 
Init 
You need to parameterize and modify items in a container based on the 
environment 
Examples: Set a IP address or DNS name, 
Set a DB password 
Pattern: 
1. Load a script onto the box as part of an building the image 
2. Run script at container launch 
3. Script uses environment variables to customize settings files etc 
4. Environment variables are passed to the docker run Command 
Data 
Container 
(non 
running) 
docker run -e sed 
DB=10.0.0.1 
start.sh 
config.conf 
Discovery 
Service 
& 
is 
Registra$on 
an 
area 
emerging
OpenWhere 
Docker 
Wins 
1. Full 
con@nuous 
deployment 
and 
write 
once, 
deploy 
many 
@mes 
realized 
2. Developer 
Replacement 
for 
vagrant 
– Less 
complexity 
– Test 
with 
what 
you 
deploy! 
3. Deployment 
build 
process 
co-­‐exists 
with 
the 
so#ware! 
– Reduced 
Maintenance, 
developer 
buy-­‐in, 
testability 
4. Awesome 
Re-­‐use 
with 
minimal 
code 
– 1 
line 
Dockerfile(s) 
for 
new 
MEAN 
Stack 
apps 
5. Simplicity 
(Streamlined 
DevOps)
OpenWhere 
Docker 
Burns 
• Learning 
Curve 
/ 
Maturity 
– Learning 
a 
Docker 
way 
for 
each 
DevOps 
task 
(s$ll 
in 
progress) 
– Example: 
Need 
“tricks” 
to 
do 
things 
like 
have 
more 
than 
one 
process 
running 
in 
a 
container 
– Example: 
Learning 
layers 
are 
independent 
and 
don’t 
retain 
state 
between 
RUN 
commands 
• A 
Docker 
Container 
is 
not 
the 
same 
as 
a 
typical 
virtual 
machine 
– Basic 
stuff 
like 
syslog 
off 
and 
tar, 
wget 
not 
installed 
– Base 
Image: 
hmp://phusion.github.io/baseimage-­‐docker/ 
• Containers 
not 
restar@ng 
on 
EC2 
Restart 
– We 
hacked 
a 
cloud-­‐init 
work 
around 
• Upda@ng 
to 
new 
images 
is 
dirty 
– Manually 
clean 
up 
images 
/ 
containers 
or 
run 
out 
of 
disk! 
• Debugging 
more 
complex: 
You 
can 
only 
a`ach 
to 
a 
Docker 
container 
if 
the 
program 
you 
are 
running 
is 
a 
shell 
– Install 
SSH 
or 
we 
have 
a 
workaround 
trick
Recommenda$ons 
• Docker 
works 
great 
for 
a 
Con$nuous 
Deployment 
flow 
on 
EC2 
– Especially 
for 
stateless 
applica$ons 
or 
a 
micro-­‐service 
architecture 
• Complex 
cluster 
deployments, 
stateful 
applica$ons 
or 
databases, 
service 
discovery 
etc. 
not 
quite 
there 
yet 
– You 
may 
need 
to 
roll 
your 
own 
solu$on 
or 
integrate 
with 
another 
technology
Ques$ons
22 
Contact 
Informa$on 
Andrew 
Aslinger 
Senior 
Systems 
Architect 
OpenWhere 
aaslinger@openwhere.com 
@aaa572 
hmp://owaaa.github.io/ 
Andrew 
Heifetz 
Chief 
Cloud 
Officer 
OpenWhere 
aheifetz@openwhere.com 
@andyheifetz 
hmp://www.linkedin.com/pub/andrew-­‐heifetz 
Cell: 
240-­‐481-­‐7442

More Related Content

What's hot

Installing WordPress on AWS
Installing WordPress on AWSInstalling WordPress on AWS
Installing WordPress on AWSManish Jain
 
Container Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionContainer Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionMike Splain
 
DCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
DCEU 18: Automating Docker Enterprise: Hands-off Install and UpgradeDCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
DCEU 18: Automating Docker Enterprise: Hands-off Install and UpgradeDocker, Inc.
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideDocker, Inc.
 
Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14dotCloud
 
DockerCon EU 2015: From Local Development to Production Deployments using Ama...
DockerCon EU 2015: From Local Development to Production Deployments using Ama...DockerCon EU 2015: From Local Development to Production Deployments using Ama...
DockerCon EU 2015: From Local Development to Production Deployments using Ama...Docker, Inc.
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Arun Gupta
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registrydotCloud
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016Patrick Chanezon
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresDocker, Inc.
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For DevelopmentLaura Frank Tacho
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker ComposeAjeet Singh Raina
 
A Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsA Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsSalman Baset
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...Docker-Hanoi
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServiceJosh Padnick
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App EngineDocker, Inc.
 
DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith  DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith Docker, Inc.
 

What's hot (20)

Installing WordPress on AWS
Installing WordPress on AWSInstalling WordPress on AWS
Installing WordPress on AWS
 
Container Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionContainer Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in production
 
DCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
DCEU 18: Automating Docker Enterprise: Hands-off Install and UpgradeDCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
DCEU 18: Automating Docker Enterprise: Hands-off Install and Upgrade
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14
 
Docker and stuff
Docker and stuffDocker and stuff
Docker and stuff
 
DockerCon EU 2015: From Local Development to Production Deployments using Ama...
DockerCon EU 2015: From Local Development to Production Deployments using Ama...DockerCon EU 2015: From Local Development to Production Deployments using Ama...
DockerCon EU 2015: From Local Development to Production Deployments using Ama...
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registry
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 
A Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsA Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container Platforms
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App Engine
 
DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith  DCSF19 CMD and Conquer: Containerizing the Monolith
DCSF19 CMD and Conquer: Containerizing the Monolith
 

Viewers also liked

CI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and JenkinsCI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and JenkinsKarl Isenberg
 
Docker and the Container Revolution
Docker and the Container RevolutionDocker and the Container Revolution
Docker and the Container RevolutionRomain Dorgueil
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28Adrian Otto
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
The journey to container adoption in enterprise
The journey to container adoption in enterpriseThe journey to container adoption in enterprise
The journey to container adoption in enterpriseIgor Moochnick
 
Docker use dockerfile
Docker use dockerfileDocker use dockerfile
Docker use dockerfilecawamata
 
Introduction to Docker - What is it and how is it compared to VM's
Introduction to Docker - What is it and how is it compared to VM'sIntroduction to Docker - What is it and how is it compared to VM's
Introduction to Docker - What is it and how is it compared to VM'sJeremy Haas
 
Docker Internals - Twilio talk November 14th, 2013
Docker Internals - Twilio talk November 14th, 2013Docker Internals - Twilio talk November 14th, 2013
Docker Internals - Twilio talk November 14th, 2013Guillaume Charmes
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
 
Docker-OVS
Docker-OVSDocker-OVS
Docker-OVSsnrism
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Amazon Web Services
 
Tutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingTutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingLorisPack Project
 
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Donnie Berkholz
 
Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Kai Wähner
 
Achieving CI/CD with Kubernetes
Achieving CI/CD with KubernetesAchieving CI/CD with Kubernetes
Achieving CI/CD with KubernetesRamit Surana
 

Viewers also liked (20)

CI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and JenkinsCI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and Jenkins
 
Docker and the Container Revolution
Docker and the Container RevolutionDocker and the Container Revolution
Docker and the Container Revolution
 
Docker 101 2015-05-28
Docker 101 2015-05-28Docker 101 2015-05-28
Docker 101 2015-05-28
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
The journey to container adoption in enterprise
The journey to container adoption in enterpriseThe journey to container adoption in enterprise
The journey to container adoption in enterprise
 
Docker use dockerfile
Docker use dockerfileDocker use dockerfile
Docker use dockerfile
 
Introduction to Docker - What is it and how is it compared to VM's
Introduction to Docker - What is it and how is it compared to VM'sIntroduction to Docker - What is it and how is it compared to VM's
Introduction to Docker - What is it and how is it compared to VM's
 
Docker Internals - Twilio talk November 14th, 2013
Docker Internals - Twilio talk November 14th, 2013Docker Internals - Twilio talk November 14th, 2013
Docker Internals - Twilio talk November 14th, 2013
 
Docker
DockerDocker
Docker
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
Docker-OVS
Docker-OVSDocker-OVS
Docker-OVS
 
Geode on Docker
Geode on DockerGeode on Docker
Geode on Docker
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
Tutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingTutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networking
 
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?
 
Achieving CI/CD with Kubernetes
Achieving CI/CD with KubernetesAchieving CI/CD with Kubernetes
Achieving CI/CD with Kubernetes
 

Similar to Continuous Integration with Docker on AWS

Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101Naukri.com
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...Puppet
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
Introduction to Dockers.pptx
Introduction to Dockers.pptxIntroduction to Dockers.pptx
Introduction to Dockers.pptxHassanRaza40719
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...Synergetics Learning and Cloud Consulting
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with dockerMichelle Liu
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyAjeet Singh Raina
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power SystemsCesar Maciel
 
Container on azure
Container on azureContainer on azure
Container on azureVishwas N
 

Similar to Continuous Integration with Docker on AWS (20)

Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
 
Docker
DockerDocker
Docker
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Introduction to Dockers.pptx
Introduction to Dockers.pptxIntroduction to Dockers.pptx
Introduction to Dockers.pptx
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
Docker+java
Docker+javaDocker+java
Docker+java
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
 
Docker team training
Docker team trainingDocker team training
Docker team training
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 
Container on azure
Container on azureContainer on azure
Container on azure
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 

Recently uploaded

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Continuous Integration with Docker on AWS

  • 1. Con$nuous Deployment with Docker Andrew Aslinger Oct 9. 2014
  • 2. Who is Andrew #1 So#ware / Systems Architect for OpenWhere Passion for UX, Big Data, and Cloud/DevOps Previously Designed and Implemented automated DevOps processes for several organiza@ons Mul$ple environments, many user / developer groups, big data clusters, hundreds of machines A Recovering “Chef”
  • 3. Who is Andrew #2 (Andy) Host of AWS DC Meet Up Started as a developer who could talk to opera@ons and infrastructure teams Lived the transi@on from data center, Co-­‐Lo, internal cloud, to AWS To much fun to ever go back
  • 4. 4 Agenda What is Docker ? Con$nuous Delivery with AWS and Docker Docker Advanced Prac$ces and Lessons Learned Demo & Discussion
  • 5. What is Docker? “Docker is an open pla/orm for developers and sysadmins to build, ship, and run distributed applica:ons” Yet another DevOps tool light weight container Latest hype?
  • 6. Docker Benefits • Portability Across Machines – Local Vagrant like deployment, Remote Deployment including Amazon EC2 – Independent of host OS – Lightweight vs VMs • Supports DevOps Best Prac@ces & Re-­‐use – Infrastructure as Code – Container Extensibility • Fits into a Con@nuous Deployment Pipeline • Isola@on and Single Responsibility – Reduce dependency conflicts, security Virtual Machines Docker
  • 7. 7 A Typical Docker Flow with six simple commands Docker Image docker build –t imagename . Dockerfile conf Docker Registry registryname: docker tag imagename registryname/ imagename https://registry.hub.docker.com/ Private registry Docker Image Docker Container or docker run –p 9000:9000 –d --name containername imagename Development Environment Host Environment docker stop/restart/start containername
  • 8. OpenWhere DevOps Philosophy 1. Immutable Infrastructure – Focus on one process (build) vs. two (build & maintain) 2. Simplify the Tools – Minimize On-­‐boarding & Training – Minimize Tools 3. Purpose Built Environments 4. DevOps code should co-­‐exist with applica@on code – How to build infrastructure for project inline with project – Jenkins scripts – Docker 5. Auto-­‐scale from start
  • 9. Why Docker with EC2? • Build once, run many places – Dev Machines, different clouds, different VPCs, share and build – Not $ed to box size or guest OS • AMI’s are difficult to rebuild and more difficult to maintain – Snapshots retain baggage – There is no “git” version control for AMI – AMI’s are not cross region compa$ble – Other AMI tools like Amiator aren’t easy to use • Easier to achieve immutable infrastructure and one click deploys – Maintaining machines sucks • Treat your infrastructure as code with a Con@nuous Deployment Pipeline
  • 10. Why Docker with EC2? • Separate your data and state from your image • Machine layers evolve at different velocity and have different reuse (Example Later) – Core OS – Organiza$on Level Requirements – Applica$on Level Requirements – Applica$on Code • Test and version control your deploy ar$facts and configura$on together – Same container for developers and EC2 – Java Example • Stop maintaining AMIs +
  • 11. Docker Con@nuous Deployment Flow: Set up AWS infrastructure Create AWS Ec2 Instances and install Docker 1 yum install -y docker-io service docker start ….
  • 12. Docker Con@nuous Deployment Flow: Build and push docker image with latest code Commit New Code w/ Docker file SCM Poll Trigger build Push Artifacts (optional) Push new Image to public or private repo 2 3 4 6 Build new Docker Image 5 from Docker File
  • 13. Docker Con@nuous Deployment Flow: Trigger EC2 to pull latest Docker image Trigger Docker Pull on target machines 7 Docker Pull & start container 8
  • 14. Advanced #1: Docker Image Layers using FROM and OnBuild commands in the Docker File Project Code Specific Image Organiza$on Applica$on Image (Example NodeJs Web App Image) Organiza$on Base OS Core OS Project SCM Application Dependencies & Config: NodeJS, express, supervisord etc. Common Dependencies & Config: Security, LDAP, Logging, etc. Base OS: CentOs, Ubuntu, etc. ONBUILD Docker Image Layers Jenkins Built Reusable Machine layers can evolve at different velocity and have different levels of reuse
  • 15. Advanced #2: Linked Containers Run multiple containers on a machine. Each with a responsibility linked by ports / address https://docs.docker.com/userguide/dockerlinks/ --link name:alias docker run -d -P --name web --link db:db training/webapp python app.py Host OS Container 1 DB Container 2 Web $DB_PORT = 6379, etc. /etc/hosts db 172.0.0.2
  • 16. Advanced #3: Data Containers A container which allows sharing of data across containers https://docs.docker.com/userguide/dockervolumes/ Benefits: Change image independent of data (maintainability) Enables Data sharing patterns (single responsibility) sudo docker run -d --volumes-from dbdata --name db2 training/postgres Host OS Data Container (non running) Container 2 Web /volume Limitations: Data is Tied to Host OS /volume -file1.txt -file2.txt Physical files docker managed Container 3 Web /volume
  • 17. Advanced #4: Customize on Init You need to parameterize and modify items in a container based on the environment Examples: Set a IP address or DNS name, Set a DB password Pattern: 1. Load a script onto the box as part of an building the image 2. Run script at container launch 3. Script uses environment variables to customize settings files etc 4. Environment variables are passed to the docker run Command Data Container (non running) docker run -e sed DB=10.0.0.1 start.sh config.conf Discovery Service & is Registra$on an area emerging
  • 18. OpenWhere Docker Wins 1. Full con@nuous deployment and write once, deploy many @mes realized 2. Developer Replacement for vagrant – Less complexity – Test with what you deploy! 3. Deployment build process co-­‐exists with the so#ware! – Reduced Maintenance, developer buy-­‐in, testability 4. Awesome Re-­‐use with minimal code – 1 line Dockerfile(s) for new MEAN Stack apps 5. Simplicity (Streamlined DevOps)
  • 19. OpenWhere Docker Burns • Learning Curve / Maturity – Learning a Docker way for each DevOps task (s$ll in progress) – Example: Need “tricks” to do things like have more than one process running in a container – Example: Learning layers are independent and don’t retain state between RUN commands • A Docker Container is not the same as a typical virtual machine – Basic stuff like syslog off and tar, wget not installed – Base Image: hmp://phusion.github.io/baseimage-­‐docker/ • Containers not restar@ng on EC2 Restart – We hacked a cloud-­‐init work around • Upda@ng to new images is dirty – Manually clean up images / containers or run out of disk! • Debugging more complex: You can only a`ach to a Docker container if the program you are running is a shell – Install SSH or we have a workaround trick
  • 20. Recommenda$ons • Docker works great for a Con$nuous Deployment flow on EC2 – Especially for stateless applica$ons or a micro-­‐service architecture • Complex cluster deployments, stateful applica$ons or databases, service discovery etc. not quite there yet – You may need to roll your own solu$on or integrate with another technology
  • 22. 22 Contact Informa$on Andrew Aslinger Senior Systems Architect OpenWhere aaslinger@openwhere.com @aaa572 hmp://owaaa.github.io/ Andrew Heifetz Chief Cloud Officer OpenWhere aheifetz@openwhere.com @andyheifetz hmp://www.linkedin.com/pub/andrew-­‐heifetz Cell: 240-­‐481-­‐7442