SlideShare a Scribd company logo
Interconnecting containers at
scale with NGINX
.
@sarahnovotny
#dockercon
Building a great application

is only half the battle,
delivering the application 

is the other half.
MORE INFORMATION AT NGINX.COM
Microservices
1)
The good things
MORE INFORMATION AT NGINX.COM
Microservices + containers
The Microservices Architecture:
Enables continuous delivery,
rapid deployment and elasticity
MORE INFORMATION AT NGINX.COM
The Microservices Architecture:
To scale, you can scale each
service independently
MORE INFORMATION AT NGINX.COM
The Microservices Architecture:
Services can be written in
different languages using
different frameworks
MORE INFORMATION AT NGINX.COM
Making Changes:
Each service can be changed,
tested and built independently
MORE INFORMATION AT NGINX.COM
Making Changes:
Release cycles can be
dramatically shortened
MORE INFORMATION AT NGINX.COM
Deploying Microservices:
To unlock the potential of
microservices you must
embrace containers, cloud and
DevOps
2)
The bad things
The Microservices Architecture:
Services can be written in
different languages using
different frameworks
Making Changes:
Release cycles can be
dramatically shortened
Complexity:
To unlock the potential of
microservices you must
embrace containers, cloud and
DevOps
MORE INFORMATION AT NGINX.COM
Here be dragons
3)
How can NGINX
help?
NGINX as your stevedores:
Acts as a HTTP router
inspecting requests and
deciding how each one should
be satisfied
ste·ve·dore
ˈstēvəˌdôr/
noun
noun: stevedore; plural noun: stevedores
a person employed, or a contractor engaged, at a dock to load and unload
cargo from ships.

The Microservices Architecture
The Microservices Architecture
Docker orchestration
- many options vying
- (and then there’s service
discovery)
MORE INFORMATION AT NGINX.COM
docker-compose
MORE INFORMATION AT NGINX.COM
This .yml file builds –
Consul for service
discovery
Registrator
tutum/hello-world
Google/golang-hello
& NGINX Plus
MORE INFORMATION AT NGINX.COM
$ sarah@ubuntu:~/service-discovery$ more docker-compose.yml
nginx:
build: ./nginxplus
links:
- consul
ports:
- "9050:80"
- "8080:8080"
consul:
command: -server -bootstrap -advertise 10.0.2.15
image: progrium/consul:latest
ports:
- "8300:8300"
- "8400:8400"
- "8500:8500"
- "8600:53/udp”
MORE INFORMATION AT NGINX.COM
registrator:
command: consul://consul:8500
image: progrium/registrator:latest
links:
- consul
volumes:
- "/var/run/docker.sock:/tmp/docker.sock"
service1:
image: tutum/hello-world:latest
environment:
SERVICE_80_NAME: http
SERVICE_NAME: service1
SERVICE_TAGS: production
ports:
- "80"
MORE INFORMATION AT NGINX.COM
service2:
image: google/golang-hello:latest
environment:
SERVICE_80_NAME: http
SERVICE_NAME: service2
SERVICE_TAGS: production
ports:
- "8080"
sarah@ubuntu:~/service-discovery$
MORE INFORMATION AT NGINX.COM
sarah@ubuntu:~/service-discovery$ docker-compose build
consul uses an image, skipping
Building nginx...
Step 0 : FROM ubuntu:14.04
---> 6d4946999d4f
Step 1 : MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com"
---> Using cache
---> 339d0f20dc6e
…
sarah@ubuntu:~/service-discovery$ docker-compose up -d
Recreating servicediscovery_consul_1...
Recreating servicediscovery_nginx_1...
Recreating servicediscovery_registrator_1...
Recreating servicediscovery_service1_6...
Recreating servicediscovery_service2_1...
sarah@ubuntu:~/service-discovery$
MORE INFORMATION AT NGINX.COM
MORE INFORMATION AT NGINX.COM
sarah@ubuntu:~/service-discovery/nginxplus$ more nginx.conf
{{range services}} {{$name := .Name}} {{range $tag, $service := service .Name |
byTag}} {{if eq $tag "production"}}
upstream {{$name}} {
zone upstream-{{$name}} 64k;
least_conn;
{{range $service}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60
weight=1 slow_start=60;
{{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}} {{end}} {{end}}
<snip>
MORE INFORMATION AT NGINX.COM
sarah@ubuntu:~/service-discovery$ docker-compose scale service1=5
Creating servicediscovery_service1_2...
Creating servicediscovery_service1_3...
Creating servicediscovery_service1_4...
Creating servicediscovery_service1_5...
Starting servicediscovery_service1_2...
Starting servicediscovery_service1_3...
Starting servicediscovery_service1_4...
Starting servicediscovery_service1_5...
DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
MORE INFORMATION AT NGINX.COM
Visit our table to go
through this demo
and request a
developer license for
NGINX Plus
Thank you
@sarahnovotny
#dockercon

More Related Content

PDF
DockerCon SF 2015 : Reliably shipping containers in a resource rich world usi...
PDF
DockerCon SF 2015: Faster, Cheaper, Safer
PDF
DockerCon SF 2015: Resilient Routing and Discovery
PPTX
Docker Serverless
PDF
Terrascan - Cloud Native Security Tool
PDF
NetflixOSS and ZeroToDocker Talk
PPTX
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
PDF
Aws + kubernetes = ❤︎
DockerCon SF 2015 : Reliably shipping containers in a resource rich world usi...
DockerCon SF 2015: Faster, Cheaper, Safer
DockerCon SF 2015: Resilient Routing and Discovery
Docker Serverless
Terrascan - Cloud Native Security Tool
NetflixOSS and ZeroToDocker Talk
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Aws + kubernetes = ❤︎

What's hot (20)

PDF
Kubernetes on AWS gone wild
PDF
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
PPTX
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
PPTX
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
PPTX
Azure Service Fabric: The road ahead for microservices
PPTX
End-to-end test automation with Endtest.dev
PPTX
DevOps with Kubernetes and Helm - OSCON 2018
PDF
Using Rancher and Docker with RightScale at Industrie IT
PPTX
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
PPTX
.NET microservices with Azure Service Fabric
PPTX
PaaS and Container Innovation – What’s new with App Service
PDF
56k.cloud intro and pitch deck
PDF
Paris Container Day 2016 : Running docker clusters on AWS (Amazon Web Services)
PDF
Cloud Native & Docker
PDF
Rabncher Meetup India , Lightweight Kubernetes Development with K3s, k3os and...
PDF
XCloudLabs- AWS Overview
PPTX
Application Portability with Kubernetes (k8)
PDF
All roads lead to the cloud
PPTX
Tectonic Summit 2016: CoreOS Tectonic on AWS
PDF
DCSF19 Kubernetes Security with OPA
Kubernetes on AWS gone wild
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
Azure Service Fabric: The road ahead for microservices
End-to-end test automation with Endtest.dev
DevOps with Kubernetes and Helm - OSCON 2018
Using Rancher and Docker with RightScale at Industrie IT
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
.NET microservices with Azure Service Fabric
PaaS and Container Innovation – What’s new with App Service
56k.cloud intro and pitch deck
Paris Container Day 2016 : Running docker clusters on AWS (Amazon Web Services)
Cloud Native & Docker
Rabncher Meetup India , Lightweight Kubernetes Development with K3s, k3os and...
XCloudLabs- AWS Overview
Application Portability with Kubernetes (k8)
All roads lead to the cloud
Tectonic Summit 2016: CoreOS Tectonic on AWS
DCSF19 Kubernetes Security with OPA
Ad

Viewers also liked (20)

PPTX
DockerCon EU 2015: Sparebank; a journey towards Docker
PPTX
Dockerizing WordPress
PDF
LXC to Docker Via Continuous Delivery
PDF
Introduction to Docker I Docker Workshop @ Twitter
PDF
Why should I care about stateful containers?
PDF
Autoscaling Docker Containers by Konstantinos Faliagkas, Docker Birthday #3 A...
PDF
How to Successfully Build a Local Docker Community by Mathias Renner
PPTX
Open source is good for both business and humanity
PDF
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
PDF
DockerCon EU 2015: The Glue is the Hard Part: Making a Production-Ready PaaS
PDF
DockerCon SF 2015: Docker After Launching 1 Billion Containers
PDF
Docker Links
PDF
Contribute and Collaborate 101
PPTX
Cost Control Across Cloud, On-Premise and VM Computers by Mark Lavi, Calm.io
PPTX
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
PDF
Monitoring Containers at New Relic by Sean Kane
PPTX
DockerCon SF 2015: Panel Discussion Birds of a Different Feather Soar Together
PPTX
DockerCon SF 2015: Cultural Change using Docker
PPTX
OpenStack Summit
PPTX
Experiences with AWS immutable deploys and job processing
DockerCon EU 2015: Sparebank; a journey towards Docker
Dockerizing WordPress
LXC to Docker Via Continuous Delivery
Introduction to Docker I Docker Workshop @ Twitter
Why should I care about stateful containers?
Autoscaling Docker Containers by Konstantinos Faliagkas, Docker Birthday #3 A...
How to Successfully Build a Local Docker Community by Mathias Renner
Open source is good for both business and humanity
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
DockerCon EU 2015: The Glue is the Hard Part: Making a Production-Ready PaaS
DockerCon SF 2015: Docker After Launching 1 Billion Containers
Docker Links
Contribute and Collaborate 101
Cost Control Across Cloud, On-Premise and VM Computers by Mark Lavi, Calm.io
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
Monitoring Containers at New Relic by Sean Kane
DockerCon SF 2015: Panel Discussion Birds of a Different Feather Soar Together
DockerCon SF 2015: Cultural Change using Docker
OpenStack Summit
Experiences with AWS immutable deploys and job processing
Ad

Similar to DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX (20)

PPTX
Interconnecting containers at scale #Dockercon
PDF
Docker From Scratch
PDF
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
PPTX
NGINX Lunch and Learn Event: Kubernetes and the NGINX Plus Ingress controller
PPTX
3 Ways to Automate App Deployments with NGINX
PPTX
Load Balancing Apps in Docker Swarm with NGINX
PDF
Using NGINX and NGINX Plus as a Kubernetes Ingress
PDF
Hands-On Session Docker
PPTX
Dockerizing react app
PPTX
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
PDF
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
PPTX
Microservices in academic environment
PDF
Shipping Applications to Production in Containers with Docker
PPTX
How To Run Nginx in a Docker Container on Ubuntu 16.04
PDF
Kubernetes and the NGINX Plus Ingress Controller
PPTX
Dockerize Me: Distributed PHP applications with Symfony, Docker, Consul and A...
PDF
Containers, Docker, and Microservices: the Terrific Trio
PPTX
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
PDF
Алексей Петров "Dockerize Me: Distributed PHP applications with Symfony, Dock...
PDF
Docker - From Walking To Running
Interconnecting containers at scale #Dockercon
Docker From Scratch
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
NGINX Lunch and Learn Event: Kubernetes and the NGINX Plus Ingress controller
3 Ways to Automate App Deployments with NGINX
Load Balancing Apps in Docker Swarm with NGINX
Using NGINX and NGINX Plus as a Kubernetes Ingress
Hands-On Session Docker
Dockerizing react app
Microservices and Container Management with NGINX Plus and Mesosphere DC/OS
NGINX Microservices Reference Architecture: What’s in Store for 2019 – EMEA
Microservices in academic environment
Shipping Applications to Production in Containers with Docker
How To Run Nginx in a Docker Container on Ubuntu 16.04
Kubernetes and the NGINX Plus Ingress Controller
Dockerize Me: Distributed PHP applications with Symfony, Docker, Consul and A...
Containers, Docker, and Microservices: the Terrific Trio
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
Алексей Петров "Dockerize Me: Distributed PHP applications with Symfony, Dock...
Docker - From Walking To Running

More from Docker, Inc. (20)

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

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Cloud computing and distributed systems.
PDF
cuic standard and advanced reporting.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation theory and applications.pdf
A comparative analysis of optical character recognition models for extracting...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
The Rise and Fall of 3GPP – Time for a Sabbatical?
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Cloud computing and distributed systems.
cuic standard and advanced reporting.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Building Integrated photovoltaic BIPV_UPV.pdf
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Weekly Chronicles - August'25-Week II
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Agricultural_Statistics_at_a_Glance_2022_0.pdf

DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX

  • 3. Building a great application
 is only half the battle, delivering the application 
 is the other half.
  • 4. MORE INFORMATION AT NGINX.COM Microservices
  • 6. MORE INFORMATION AT NGINX.COM Microservices + containers
  • 7. The Microservices Architecture: Enables continuous delivery, rapid deployment and elasticity
  • 8. MORE INFORMATION AT NGINX.COM The Microservices Architecture: To scale, you can scale each service independently
  • 9. MORE INFORMATION AT NGINX.COM The Microservices Architecture: Services can be written in different languages using different frameworks
  • 10. MORE INFORMATION AT NGINX.COM Making Changes: Each service can be changed, tested and built independently
  • 11. MORE INFORMATION AT NGINX.COM Making Changes: Release cycles can be dramatically shortened
  • 12. MORE INFORMATION AT NGINX.COM Deploying Microservices: To unlock the potential of microservices you must embrace containers, cloud and DevOps
  • 14. The Microservices Architecture: Services can be written in different languages using different frameworks
  • 15. Making Changes: Release cycles can be dramatically shortened
  • 16. Complexity: To unlock the potential of microservices you must embrace containers, cloud and DevOps
  • 17. MORE INFORMATION AT NGINX.COM Here be dragons
  • 19. NGINX as your stevedores: Acts as a HTTP router inspecting requests and deciding how each one should be satisfied
  • 20. ste·ve·dore ˈstēvəˌdôr/ noun noun: stevedore; plural noun: stevedores a person employed, or a contractor engaged, at a dock to load and unload cargo from ships.

  • 23. Docker orchestration - many options vying - (and then there’s service discovery)
  • 24. MORE INFORMATION AT NGINX.COM docker-compose
  • 25. MORE INFORMATION AT NGINX.COM This .yml file builds – Consul for service discovery Registrator tutum/hello-world Google/golang-hello & NGINX Plus
  • 26. MORE INFORMATION AT NGINX.COM $ sarah@ubuntu:~/service-discovery$ more docker-compose.yml nginx: build: ./nginxplus links: - consul ports: - "9050:80" - "8080:8080" consul: command: -server -bootstrap -advertise 10.0.2.15 image: progrium/consul:latest ports: - "8300:8300" - "8400:8400" - "8500:8500" - "8600:53/udp”
  • 27. MORE INFORMATION AT NGINX.COM registrator: command: consul://consul:8500 image: progrium/registrator:latest links: - consul volumes: - "/var/run/docker.sock:/tmp/docker.sock" service1: image: tutum/hello-world:latest environment: SERVICE_80_NAME: http SERVICE_NAME: service1 SERVICE_TAGS: production ports: - "80"
  • 28. MORE INFORMATION AT NGINX.COM service2: image: google/golang-hello:latest environment: SERVICE_80_NAME: http SERVICE_NAME: service2 SERVICE_TAGS: production ports: - "8080" sarah@ubuntu:~/service-discovery$
  • 29. MORE INFORMATION AT NGINX.COM sarah@ubuntu:~/service-discovery$ docker-compose build consul uses an image, skipping Building nginx... Step 0 : FROM ubuntu:14.04 ---> 6d4946999d4f Step 1 : MAINTAINER NGINX Docker Maintainers "[email protected]" ---> Using cache ---> 339d0f20dc6e … sarah@ubuntu:~/service-discovery$ docker-compose up -d Recreating servicediscovery_consul_1... Recreating servicediscovery_nginx_1... Recreating servicediscovery_registrator_1... Recreating servicediscovery_service1_6... Recreating servicediscovery_service2_1... sarah@ubuntu:~/service-discovery$
  • 30. MORE INFORMATION AT NGINX.COM
  • 31. MORE INFORMATION AT NGINX.COM sarah@ubuntu:~/service-discovery/nginxplus$ more nginx.conf {{range services}} {{$name := .Name}} {{range $tag, $service := service .Name | byTag}} {{if eq $tag "production"}} upstream {{$name}} { zone upstream-{{$name}} 64k; least_conn; {{range $service}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1 slow_start=60; {{else}}server 127.0.0.1:65535; # force a 502{{end}} } {{end}} {{end}} {{end}} <snip>
  • 32. MORE INFORMATION AT NGINX.COM sarah@ubuntu:~/service-discovery$ docker-compose scale service1=5 Creating servicediscovery_service1_2... Creating servicediscovery_service1_3... Creating servicediscovery_service1_4... Creating servicediscovery_service1_5... Starting servicediscovery_service1_2... Starting servicediscovery_service1_3... Starting servicediscovery_service1_4... Starting servicediscovery_service1_5...
  • 34. MORE INFORMATION AT NGINX.COM Visit our table to go through this demo and request a developer license for NGINX Plus