SlideShare a Scribd company logo
1 of 14
Download to read offline
+----------------------------------------------------------+
| |
| MAC OS X Workstation |
| |
| |
| |
| |
| |
| |
| Cassandra Redis |
| |
| |
| |
| Kafka |
| |
| Mongo |
| |
| Elasticsearch |
| |
| |
| |
| |
+----------------------------------------------------------+
+----------------------------------------------------------+
| |
| MAC OS X Workstation |
| |
+----------------------------------------------------------+
| devenv.sh up|restart|kill (git) |
+----------------------------------------------------------+
| |
| |
| Cassandra Redis |
| |
| |
| |
| Kafka |
| |
| Mongo |
| |
| Elasticsearch |
| |
| |
| |
| |
+----------------------------------------------------------+
+----------------------------------------------------------+
| |
| MAC OS X Workstation |
| |
+----------------------------------------------------------+
| devenv.sh up|restart|kill (git) |
+----------------------------------------------------------+
| Virtual Box + Vagrant (automate all the things) |
| |
+----------------------------------------------------------+
| |
| |
| kafka mongo cassandra |
| |
| |
| |
| redis elasticsearch storm |
| |
| |
| |
| |
| |
+----------------------------------------------------------+
+----------------------+ +---------------------+
| | | |
| Any Branch Of Code | + | Web Zero Downtime |
| | | |
+--------------------+-+ +-+-------------------+
| |
| |
+----v------------v----+
| |
| Docker Container |
| |
+------+---+---+-------+
| | |
+-------------+---------+ | | | +---------------------+
| | | | | | | |
| Test Data |[devenv] | <-----------+ | +------------> | Production Data |
| | | v | |
+-------------+---------+ +---------------------+
+-------------------+
| |
| Staging Data |
| |
+-------------------+
PaaS
CI/CD
Self-service configuration
Monitoring Any OS
Python
Ruby
Logging
Security
Test everything
WIN! All The Things!
Docker at RelateIQ

More Related Content

Viewers also liked

How to Successfully Build a Local Docker Community by Mathias Renner
How to Successfully Build a Local Docker Community by Mathias RennerHow to Successfully Build a Local Docker Community by Mathias Renner
How to Successfully Build a Local Docker Community by Mathias RennerDocker, Inc.
 
DockerCon SF 2015: Networking Breakout
DockerCon SF 2015: Networking BreakoutDockerCon SF 2015: Networking Breakout
DockerCon SF 2015: Networking BreakoutDocker, Inc.
 
Why should I care about stateful containers?
Why should I care about stateful containers?Why should I care about stateful containers?
Why should I care about stateful containers?Docker, Inc.
 
Trust and Image Provenance by Derek McGowan
Trust and Image Provenance by Derek McGowanTrust and Image Provenance by Derek McGowan
Trust and Image Provenance by Derek McGowanDocker, Inc.
 
Understanding Containers through Gaming by Brendan Fosberry
Understanding Containers through Gaming by Brendan Fosberry Understanding Containers through Gaming by Brendan Fosberry
Understanding Containers through Gaming by Brendan Fosberry Docker, Inc.
 
Building a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltBuilding a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltDocker, Inc.
 
Mobycraft - Docker in 8-bit by Aditya Gupta
Mobycraft - Docker in 8-bit by Aditya Gupta Mobycraft - Docker in 8-bit by Aditya Gupta
Mobycraft - Docker in 8-bit by Aditya Gupta Docker, Inc.
 
DockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack SessionDockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack SessionDocker, Inc.
 
Interoperable Containers
Interoperable ContainersInteroperable Containers
Interoperable ContainersDocker, Inc.
 
Building Images from dockerfiles
Building Images from dockerfilesBuilding Images from dockerfiles
Building Images from dockerfilesDocker, Inc.
 
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...Docker, Inc.
 
DockerCon SF 2015: Maintaining the Official Node.js Docker Image
DockerCon SF 2015: Maintaining the Official Node.js Docker ImageDockerCon SF 2015: Maintaining the Official Node.js Docker Image
DockerCon SF 2015: Maintaining the Official Node.js Docker ImageDocker, Inc.
 
DockerCon SF 2015: Orchestration for Devs (machine + compose)
DockerCon SF 2015:  Orchestration for Devs (machine + compose)DockerCon SF 2015:  Orchestration for Devs (machine + compose)
DockerCon SF 2015: Orchestration for Devs (machine + compose)Docker, Inc.
 
DockerCon14 Automated Chef Cookbook Testing
DockerCon14 Automated Chef Cookbook TestingDockerCon14 Automated Chef Cookbook Testing
DockerCon14 Automated Chef Cookbook TestingDocker, Inc.
 
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad AfanahOn-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad AfanahDocker, Inc.
 
DockerCon SF 2015: How to Build a Secure DevOps Environment for the Government
DockerCon SF 2015: How to Build a Secure DevOps Environment for the GovernmentDockerCon SF 2015: How to Build a Secure DevOps Environment for the Government
DockerCon SF 2015: How to Build a Secure DevOps Environment for the GovernmentDocker, Inc.
 
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ Docker, Inc.
 
Making it Easier to Contribute to Open Source Projects Using Docker Container...
Making it Easier to Contribute to Open Source Projects Using Docker Container...Making it Easier to Contribute to Open Source Projects Using Docker Container...
Making it Easier to Contribute to Open Source Projects Using Docker Container...Docker, Inc.
 
Dockerizing Stashboard
Dockerizing StashboardDockerizing Stashboard
Dockerizing StashboardDocker, Inc.
 

Viewers also liked (20)

How to Successfully Build a Local Docker Community by Mathias Renner
How to Successfully Build a Local Docker Community by Mathias RennerHow to Successfully Build a Local Docker Community by Mathias Renner
How to Successfully Build a Local Docker Community by Mathias Renner
 
DockerCon SF 2015: Networking Breakout
DockerCon SF 2015: Networking BreakoutDockerCon SF 2015: Networking Breakout
DockerCon SF 2015: Networking Breakout
 
Why should I care about stateful containers?
Why should I care about stateful containers?Why should I care about stateful containers?
Why should I care about stateful containers?
 
Trust and Image Provenance by Derek McGowan
Trust and Image Provenance by Derek McGowanTrust and Image Provenance by Derek McGowan
Trust and Image Provenance by Derek McGowan
 
Understanding Containers through Gaming by Brendan Fosberry
Understanding Containers through Gaming by Brendan Fosberry Understanding Containers through Gaming by Brendan Fosberry
Understanding Containers through Gaming by Brendan Fosberry
 
Building a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltBuilding a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and Salt
 
Docker at Spotify
Docker at SpotifyDocker at Spotify
Docker at Spotify
 
Mobycraft - Docker in 8-bit by Aditya Gupta
Mobycraft - Docker in 8-bit by Aditya Gupta Mobycraft - Docker in 8-bit by Aditya Gupta
Mobycraft - Docker in 8-bit by Aditya Gupta
 
DockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack SessionDockerCon 16 - Moby's Cool Hack Session
DockerCon 16 - Moby's Cool Hack Session
 
Interoperable Containers
Interoperable ContainersInteroperable Containers
Interoperable Containers
 
Building Images from dockerfiles
Building Images from dockerfilesBuilding Images from dockerfiles
Building Images from dockerfiles
 
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
 
DockerCon SF 2015: Maintaining the Official Node.js Docker Image
DockerCon SF 2015: Maintaining the Official Node.js Docker ImageDockerCon SF 2015: Maintaining the Official Node.js Docker Image
DockerCon SF 2015: Maintaining the Official Node.js Docker Image
 
DockerCon SF 2015: Orchestration for Devs (machine + compose)
DockerCon SF 2015:  Orchestration for Devs (machine + compose)DockerCon SF 2015:  Orchestration for Devs (machine + compose)
DockerCon SF 2015: Orchestration for Devs (machine + compose)
 
DockerCon14 Automated Chef Cookbook Testing
DockerCon14 Automated Chef Cookbook TestingDockerCon14 Automated Chef Cookbook Testing
DockerCon14 Automated Chef Cookbook Testing
 
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad AfanahOn-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
 
DockerCon SF 2015: How to Build a Secure DevOps Environment for the Government
DockerCon SF 2015: How to Build a Secure DevOps Environment for the GovernmentDockerCon SF 2015: How to Build a Secure DevOps Environment for the Government
DockerCon SF 2015: How to Build a Secure DevOps Environment for the Government
 
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
 
Making it Easier to Contribute to Open Source Projects Using Docker Container...
Making it Easier to Contribute to Open Source Projects Using Docker Container...Making it Easier to Contribute to Open Source Projects Using Docker Container...
Making it Easier to Contribute to Open Source Projects Using Docker Container...
 
Dockerizing Stashboard
Dockerizing StashboardDockerizing Stashboard
Dockerizing Stashboard
 

Similar to Docker at RelateIQ

CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster Shaun Domingo
 
Spring MVC - The Basics
Spring MVC -  The BasicsSpring MVC -  The Basics
Spring MVC - The BasicsIlio Catallo
 
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...Puppet
 
Kickstat File_Draft_ESXI5.1_Template
Kickstat File_Draft_ESXI5.1_TemplateKickstat File_Draft_ESXI5.1_Template
Kickstat File_Draft_ESXI5.1_TemplateLuca Viscomi
 
IP Addresses
IP AddressesIP Addresses
IP Addressesadil raja
 
Operating CloudStack: the easy way (automation!)
Operating CloudStack: the easy way (automation!)Operating CloudStack: the easy way (automation!)
Operating CloudStack: the easy way (automation!)Remi Bergsma
 
Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...
Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...
Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...Redis Labs
 
The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015
The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015
The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015Remi Bergsma
 
ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022René Cannaò
 
M|18 User Defined Function
M|18 User Defined FunctionM|18 User Defined Function
M|18 User Defined FunctionMariaDB plc
 
Spring MVC - Wiring the different layers
Spring MVC -  Wiring the different layersSpring MVC -  Wiring the different layers
Spring MVC - Wiring the different layersIlio Catallo
 
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnCouch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnTrevor Roberts Jr.
 
MySQL Kitchen : spice up your everyday SQL queries
MySQL Kitchen : spice up your everyday SQL queriesMySQL Kitchen : spice up your everyday SQL queries
MySQL Kitchen : spice up your everyday SQL queriesDamien Seguy
 
16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboardsDenis Ristic
 
Couch to OpenStack: Glance - July, 23, 2013
Couch to OpenStack: Glance - July, 23, 2013Couch to OpenStack: Glance - July, 23, 2013
Couch to OpenStack: Glance - July, 23, 2013Trevor Roberts Jr.
 
Bare-metal and Virtual Provisioning with Razor
Bare-metal and Virtual Provisioning with RazorBare-metal and Virtual Provisioning with Razor
Bare-metal and Virtual Provisioning with RazorKristian Reese
 
(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private CloudAmazon Web Services
 

Similar to Docker at RelateIQ (20)

CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
 
What is new in neutron QoS?
What is new in neutron QoS?What is new in neutron QoS?
What is new in neutron QoS?
 
Spring MVC - The Basics
Spring MVC -  The BasicsSpring MVC -  The Basics
Spring MVC - The Basics
 
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
 
Kickstat File_Draft_ESXI5.1_Template
Kickstat File_Draft_ESXI5.1_TemplateKickstat File_Draft_ESXI5.1_Template
Kickstat File_Draft_ESXI5.1_Template
 
IP Addresses
IP AddressesIP Addresses
IP Addresses
 
Operating CloudStack: the easy way (automation!)
Operating CloudStack: the easy way (automation!)Operating CloudStack: the easy way (automation!)
Operating CloudStack: the easy way (automation!)
 
Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...
Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...
Real Time Health Analytics With WebSockets Python 3 and Redis PubSub: Benjami...
 
The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015
The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015
The Mission Critical Cloud @ Apache CloudStack meetup Amsterdam June 2015
 
ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022ProxySQL Cluster - Percona Live 2022
ProxySQL Cluster - Percona Live 2022
 
M|18 User Defined Function
M|18 User Defined FunctionM|18 User Defined Function
M|18 User Defined Function
 
Spring MVC - Wiring the different layers
Spring MVC -  Wiring the different layersSpring MVC -  Wiring the different layers
Spring MVC - Wiring the different layers
 
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnCouch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
 
MySQL Kitchen : spice up your everyday SQL queries
MySQL Kitchen : spice up your everyday SQL queriesMySQL Kitchen : spice up your everyday SQL queries
MySQL Kitchen : spice up your everyday SQL queries
 
Development Workflows on AWS
Development Workflows on AWSDevelopment Workflows on AWS
Development Workflows on AWS
 
16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards16 MySQL Optimization #burningkeyboards
16 MySQL Optimization #burningkeyboards
 
Couch to OpenStack: Glance - July, 23, 2013
Couch to OpenStack: Glance - July, 23, 2013Couch to OpenStack: Glance - July, 23, 2013
Couch to OpenStack: Glance - July, 23, 2013
 
MySQL document_store
MySQL document_storeMySQL document_store
MySQL document_store
 
Bare-metal and Virtual Provisioning with Razor
Bare-metal and Virtual Provisioning with RazorBare-metal and Virtual Provisioning with Razor
Bare-metal and Virtual Provisioning with Razor
 
(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud
 

More from Docker, Inc.

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Docker, Inc.
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXDocker, Inc.
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeDocker, Inc.
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDocker, Inc.
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubDocker, Inc.
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices WorldDocker, Inc.
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...Docker, Inc.
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with DockerDocker, Inc.
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeDocker, Inc.
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryDocker, Inc.
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Docker, Inc.
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog ScaleDocker, Inc.
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels Docker, Inc.
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...Docker, Inc.
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDocker, Inc.
 

More from Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 

Docker at RelateIQ

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. +----------------------------------------------------------+ | | | MAC OS X Workstation | | | | | | | | | | | | | | Cassandra Redis | | | | | | | | Kafka | | | | Mongo | | | | Elasticsearch | | | | | | | | | +----------------------------------------------------------+ +----------------------------------------------------------+ | | | MAC OS X Workstation | | | +----------------------------------------------------------+ | devenv.sh up|restart|kill (git) | +----------------------------------------------------------+ | | | | | Cassandra Redis | | | | | | | | Kafka | | | | Mongo | | | | Elasticsearch | | | | | | | | | +----------------------------------------------------------+ +----------------------------------------------------------+ | | | MAC OS X Workstation | | | +----------------------------------------------------------+ | devenv.sh up|restart|kill (git) | +----------------------------------------------------------+ | Virtual Box + Vagrant (automate all the things) | | | +----------------------------------------------------------+ | | | | | kafka mongo cassandra | | | | | | | | redis elasticsearch storm | | | | | | | | | | | +----------------------------------------------------------+
  • 10.
  • 11.
  • 12.
  • 13. +----------------------+ +---------------------+ | | | | | Any Branch Of Code | + | Web Zero Downtime | | | | | +--------------------+-+ +-+-------------------+ | | | | +----v------------v----+ | | | Docker Container | | | +------+---+---+-------+ | | | +-------------+---------+ | | | +---------------------+ | | | | | | | | | Test Data |[devenv] | <-----------+ | +------------> | Production Data | | | | v | | +-------------+---------+ +---------------------+ +-------------------+ | | | Staging Data | | | +-------------------+ PaaS CI/CD Self-service configuration Monitoring Any OS Python Ruby Logging Security Test everything WIN! All The Things!

Editor's Notes

  1. To help visualize what we’ve done. Here is some great ascii art. Talk though the diagram. We put all our code in a git repo so both teams could contribute to the environment. We made it possible to wipe the entire environment without involving IT by containing it all within a virtual machine, for that we used virtualbox and vagrant. By using docker we instantly had golden images of each service within of our infrastructure, which made sure it worked perfectly every time. And to boot it was all orchestrated by running a single shell command. After 24 hours we replaced our entire dev environment and had several developers already up and running with it. To cap it off we won the award in our hackday for “most ready for production”. The dev environment is still used today. Over the past month at RelateIQ we’ve upgraded to the latest major versions of Cassandra 2.0 and Elasticsearch 1.0. The Ops team is able to make these updates to the git repo and just shoot a message to the developers to run devenv update. Across our entire development team we are able to upgrade to the latest versions almost instantly. Not to mention if we forget to make a setting, developers can make the changes themselves as well. They can create their beloved tests and database schema changes whenever they want. We didn’t know it at the time but Docker started a transformation at RelateIQ. Dev and Ops was moving closer together. SCOTT Yeah, that hack day lives on in RelateIQ lore and has turned an 18 page environment setup document into just a few pages. Very earnestly there are these moments in computing history that stick out for me: The first time I spun up NCSA Mosaic over a PPP connection and browsed the nascent web on Windows 3.11 The first time I played Doom, jaw-on-the-floor and soon-thereafter with my Dad’s 2 computers connected via 10-base-2, terminators and all, playing a game of deathmatch and shooting my friends virtually for the first time. And now, that first time I ran docker, creating ready-to-run containers in milliseconds, iterating on dockerfiles with snapshots after each successful run. true devops bliss. contrasting chef.. yeesh
  2. SCOTT (continued) So, once we had a great dev environment and had seen the power of Docker, I started dreaming about production uses, pre-1.0 be damned. At that time our web app deployment method was effectively, rsync the files over and restart the services. Sure, we had redundant stateless servers behind a load balancer, but we didn’t have the necessary orchestration or patience to develop something that would require serially upgrading our servers. We started getting tweets about prod pushes that happened at 2AM pacific from international clients. 5 minutes of downtime was enough to convince us we should scope out a solution. We are a startup, so we have a lot of things to build and not enough people to build them (cough we’re hiring cough) and I had been having this recurring dream of a docker-based method of sneaking zero-downtime nearly seamlessly into our existing servers. Armed with Docker, another engineer, and myself could we do it in a week? Enter “Project Zero Downtime” First, we had to enhance our build agents to be able to run docker. Anyone want to guess how we did that? Docker of course. So, my compadre Jon Gretarrson built a TeamCity docker container, a TeamCity agent docker container, and a Docker-in-docker container. Our agents (running in docker) could all talk to the Docker container (running in Docker) in order to build our webapp Docker containers. It sounds complicated, but it was up and running and pushing the existing prod build configurations in 2 days. We planned at first to use a private docker repository to push and pull these webapp containers to the prod servers, but .. yeah.. that particular service wasn’t ready yet. We settled temporarily at least on using docker save to package up the containers and distribute them to the servers. Before this docker work we had integration testing using a combination of sketchy “embedded” versions of our various database dependencies, and a parallel infrastructure for testing. This was slow, flaky, and innacurate. Once we had docker accessible from our CI agents we easily swapped our tests to use containers spun up specifically for that test run. Containers that perfectly matched our production environment and versions.
  3. Meanwhile, I was tasked with building the Dockerfile for our webapp, and a simple bash script to orchestrate a single-node to be able to be upgraded with zero downtime. The design we settled on, while not necessarily perfect, was perfect for the time and place. Heres how it works: First, so we didn’t need to orchestrate between multiple virtual machines or spin up any new machines we wanted something that was zero downtime even if we had only 1 node. We also liked the idea of being able to roll out the new version in parallel across all our web nodes so the time when we had unmatching fe/be versions was shortest . To do this we needed something that was going to keep running while we replaced the current container version. We chose Hipache (another Dotclou.. errr. Docker product) for its simple live configurability. The plan was to have hipache, running in a container of course, on each web node. Then, we’d spin up the latest version of the webapp container, wait until it was healthy, and use hipache to reroute traffic to it. Finally, once things were copacetic we’d tell hipache to remove the old container, and kill it off. Now, I wouldn’t necessarily completely copy this method, for example you clearly need some spare memory to temporarily have 2 webapp containers going on the same node. The point, however, is that it worked for us, and it took 1 week to build something that made us heroes to Engineering, Product, Marketing, and Sales and has given us months of runway on building a more permanent solution. Jon (not John, its confusing) ended up later spending a day or two bolting on a ZERO-ROLLBACK functionality that used the containers that already existed on the web nodes to be able to quickly, easily, and with zero-downtime roll back to a previously working release. Zero-downtime deployments are one of those things that should be a requirement for any saas engineering team. The freedom it gives for quick and silent mid-day pushes lifts a huge weight off the shoulders of everyone. We’ve had absolutely no docker-related downtime in the 8 months it has been a part of our production infrastructure. And in fact, because of this particular project, it has significantly increased our uptime.
  4. The lines between Dev and Ops was completely blurred and Docker really brought us together on some great projects. We built several amazing things with Docker over the past year. For our most recent project we got a really crazy idea. What if we combined the automated infrastructure of our dev environment and modified our zero downtime project which baked in our web infrastructure and code together? The reason docker is so important to accomplish this: * didn’t have to worry about dependency collisions * if you can run a container you can run it anywhere, thus if you have containers for all your dependencies, you can run your whole stack anywhere * isolated networking means you dont have to figure out how to randomize ports for every single dependency (and the client consuming them!) * isolated OS so you can run whatever version works best for a given piece of your stack * super-fast iteration on creating the actual containers for different pieces of environment * containers start up so quickly that you can spin these up and not worry about slowing a critical path Enter the new project “Ubiquitous deployment” The project’s goal was to take any branch of web code. Not just our production code off master. Build it within Teamcity anytime new code was pushed to a dockerme branch, along with starting up all the backend infrastructure on the same machine. By using linking functionality in Docker we were able to take the zero downtime web deployment and join it to the dev environment all with continuous deployment. However, we didn’t stop there. The app.properties settings were made adjustable so each piece of infrastructure could be redirected to a new location. We were able to take any branch of code, point it to any data set, deploy at any time, and anywhere. Not really anywhere, it all runs on the same server. I just needed to make the slide symmetrical. To give a couple examples of how we’ve used this deployment here are several. First, We know every company does 3rd party penetration tests right? Well we do. Using the ubiquitous deployment project we were able to unleash the hackers against an isolated web environment pointing towards production data. We allowed our 3rd party pentesters to hack away at our app without worrying about affecting our production customers. No need to worry about those pesky DDoS attacks running during the day. The best example was a couple months ago we completely redesigned the front end of our application. All new CSS, modals, buttons, colors, and positioning. How were we going to get our Product team, Web Team, Quality Team, and Marketing team to work together on this project without being able to see the results every day? The answer was Ubiquitous deployment. We set up a new server running the redesign branch hitting staging data. This allowed every team to hit a url seeing the latest and greatest code and design. Product was able to sync with the web team and the quality team was able to test all the new changes. When we were ready we were able to redirect the same branch of code to our production servers. However, we quickly realized the new code was not ready. This saved us a ton of time. We had found so many small issues the launch of the new design would have been a flop. We pushed the new code to production two weeks later with an outstanding release. It was our biggest code merge with one of the highest quality pushes since we launched our site. It was a major success. expand this section Docker has transformed how our technology at RelateIQ works. The days of dev and ops at war is long over and now we work together on building the latest and greatest projects with Docker being loved by dev and Ops. By the end of the year is for 75% of our infra to be running in docker containers Thank you.
  5. Any questions for John or myself? Our emails are our first names @ relateiq.com … i’ll spell that for you J O B S @relateiq.com and mine is J O B S @ relateiq.com