SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
Building Node Microservices with Docker
Rami Sayar - @ramisayar
Senior Technical Evangelist
Microsoft Canada
@RAMISAYAR
@RAMISAYAR
Something is not quite right…
Imagefrom http://www.alumaeasyset.com/galleries/monolithic-application/
Monolithic Applications are One
GIANT Point of Failure.
@RAMISAYAR
@ramisayar
@RAMISAYAR
Agenda
• What are Microservices?
• Pros and Cons of Microservice Architecture
• Converting a Monolithic Express Web App into
Microservices
• Patterns to Handle Networking Between Frontend &
Backend
• What are Containers? Docker?
• How to use Docker to Run Microservices
@RAMISAYAR
I neverintended to make a monolithicapplication,
it just happened…
@RAMISAYAR
The Problem with MonolithicApplications
@RAMISAYAR
The Problem with MonolithicApplications
@RAMISAYAR
Introducing Microservices
• A microservice can be a small, fairly-independent (decoupled)
code package that fulfils a single specific task.
• Microservices would form the building blocks of a modular
application.
• In the context of a webapp, your microservices would be
organized around capabilities e.g. authentication, web UI
storefront, recommendation, etc.
@RAMISAYAR
Introducing Microservices
@RAMISAYAR
Image from http://ryanjbaxter.com/2015/07/15/using-microservices-to-build-cloud-native-applications-part-1/
Why Node.js is Well Suited for Microservices
• Follows the UNIX philosophy: Write programs that do one thing
and do it well.
• NPM makes package management and deployment easy.
• Straight-forward networking API.
@RAMISAYAR
Benefits of Microservices Architecture
• Loosely Coupled: Each microservice is independent
• Separate teams can work at different paces
• Easier upgrade path for each microservice
• Smaller code bases make for easier deployments
• Easier for new team members to jump into development
• Refactoring no longer halts development
• Easy to scale heavily used microservices without scaling the
entire app
• You can use the best language/framework/platform for the job
• With Docker Containers, this is even easier
@RAMISAYAR
Disadvantages of Microservices Architecture
• Outsourcing in-process communication to the network stack
• Heavier DevOps requirements on the dev team
• Need to monitor more moving parts and manage more complex
infrastructure
• Networking, service discovery, etc…
• Data sharing and data modeling is hard
• Ideally, each microservice should have per-service db
@RAMISAYAR
In Practice– ConvertinganExpress App into
Microservices
@RAMISAYAR
Sample App: The PizzaBotManager
Github.com/sayar/PizzaBotManager
@RAMISAYAR
React – The Definitive Guide – ITSFREE!!!
bit.ly/reactmva
@RAMISAYAR
PizzaBotManager Web App
• Prototypical monolithic express web app that has three
functionalities:
1. Handle conversations from different chat apps using the Bot
Framework: /api/messages
2. Serve the frontend for the pizza chain manager: /
3. Provide an API to see current pizza orders and ovens in operation:
/api/orders
• Backend follows an Asynchronous Message Queue pattern
• Each functionality has different scaling requirements
• Functionality 2 would be better served by nginx.
@RAMISAYAR
ConvertingPizzaBotManagerinto Microservices
@RAMISAYAR
ConvertingPizzaBotManagerinto Microservices
@RAMISAYAR
DoingThis The Non-Hacky Way
@RAMISAYAR
Common Microservices Requirements
• Service Registration & Discovery
• Automatic Routing & Configuration
Optional:
• Service Monitoring
• Health Endpoints
• Cross-origin resource sharing (CORS) support
@RAMISAYAR
Using Express-Microservice-Starter
• An express-based bootstrapping module for building
microservices with Node.js - github.com/ph0bos/express-
microservice-starter
@RAMISAYAR
Using Express-Microservice-Starter
var express = require('express');
var micro = require('express-microservice-starter');
var app = express();
app.use(micro({ discoverable: false, debug: true }));
@RAMISAYAR
Patternsto Handle NetworkingBetweenFrontend
& Backend
@RAMISAYAR
Requirements for the Networking Stack
• Service Registration & Discovery
• Automatic Routing & Configuration
• We also want:
• Authentication
• Security
• Load Balancing
@RAMISAYAR
API Gateway Pattern
• API Gateway is basically a
Dynamically Configured
Reverse Proxy Server.
• Single Access Point for HTTP
API Requests
@RAMISAYAR
DNS Pattern
• Each microservice has it’s own publically addressable URL.
• myservice.mywebsite.com/api/v1/table
• No single point of failure and easy to setup and scale
• Doesn’t follow the DRY principle
• Individual handling of common concerns like security, authentication,
etc.
• Tempting for each microservice to become it’s own project
• Forces you to use CORS
@RAMISAYAR
Implementing API Gateways
• API Gateways can be implemented with several different
technologies:
• Docker and Swarm Mode – Containers and Orchestration
• Nginx – Reliable, high performance async web server.
• HAProxy - Reliable, high Performance TCP/HTTP load balancer.
• Kong - Open-source API Gateway and Microservices manager layer.
• Skipper - HTTP router on top of a reverse proxy.
• Træfɪk - A modern HTTP reverse proxy and load balancer made to
deploy microservices with ease.
• Tyk - Open source API gateway, dev portal and management
dashboard.
@RAMISAYAR
Deployingto the Cloud with Docker
@RAMISAYAR
Introductionto Containers & Docker
• Docker is an open source project to pack, ship and run any app as a lightweight container.
• Lightweight alternative to virtual machines
• Smaller, less expensive, faster to start up, and self-contained
Host Operating System
Hypervisor
Guest OS
Libraries
App
Guest OS
Libraries
App
Guest OS
Libraries
App
Operating System
Container Engine
Libraries
App
Libraries
App
Libraries
App
Virtual Machines
Containers
Docker
• Leading open-source
containerization platform
• Supported natively in Azure
Docker containers wrap up a piece of software
in a complete filesystem that contains
everything it needs to run: code, runtime,
system tools, system libraries – anything you
can install on a server. This guarantees that it
will always run the same, regardless of the
environment it is running in
Underneath Docker
• Docker leverages libcontainer (previously LXC containers),
which encompasses Linux features like cgroups and
namespaces for strong process isolation and resource control.
• Docker leverages a copy-on-write filesystem.
• Docker uses a “plain text” configuration language to control the
configuration of a container.
@RAMISAYAR
Docker Architecture
Docker CLI
• Command-line interface for Docker, available for Linux, OS X,
and Windows (available separately or as part of Docker
Toolbox)
Running a Container
docker run -i -t ubuntu /bin/bash
Common DockerCLI Commands
docker run - Use an image to run a container
docker pull - Pull an image from a registry
docker build - Build a Docker image
docker exec - Execute a command in a container
docker stop - Stop a running container
docker images - List available Docker images
docker ps - List running Docker containers
Azure Container Service
• Provides robust, ready-to-use Docker hosting environment
• Uses open-source orchestration tools (DC/OS and Swarm)
Container Orchestration
• Facilitates deployment and management of containers
• Containers by design are intended to be deployed in large
volumes with some applications using dozens to even
thousands of containers
• With this type of scale, automating container deployment and
management with orchestration software becomes necessary
• Azure Container service supports Kubernetes, DC/OS, and
Docker Swarm
Container Clusters
• Facilitate load balancing, scalability, and high availability
• A cluster is composed of master nodes which control the
orchestration, and agent nodes that host the containers
DeployingourPizzaBotManagerwith Docker
@RAMISAYAR
PizzaBotManager Microservices Web App
@RAMISAYAR
ReinventingThe Wheel– Building a Simple API
Gateway
Demo - Building a Simple API Gateway
Thanks to memz.co/api-gateway-microservices-docker-node-js/
@RAMISAYAR
Register/ as it’s own “API”
The API Gateway will just do an HTTP Proxy anyways.
@RAMISAYAR
Next Steps?
Docker Container Orchestration
@RAMISAYAR
Kubernetes
• Open-source orchestration engine from Google
• Provides a robust framework for container orchestration, yet
remains lightweight and scalable
• Supported by Azure Container Service and tightly integrated
with ACS, allowing Kubernetes to modify deployments
DC/OS
• Datacenter Operating System built on Apache Mesos
• Creates logical data centers and abstracts underlying hardware
• Provides resources traditionally provided by infrastructure,
including networking, DNS, and load balancing
• Natively supported by Azure Container Service
Docker Swarm
• Docker’s own orchestration engine
• Current releases of the Docker engine have
“Swarm Mode” built in and can many of the
same things that other orchestration
engines do
• Lacks a GUI, but makes up for it with tight
integration with Docker
• Natively supported by Azure Container
Service
Some Tips for Running Node.js Microservices
• Cache your DNS results: Node does not cache the results of
DNS queries (OS issue because OS doesn’t expose TTL)
• Reuse HTTP Connections: Node’s global HTTP agent disables
HTTP Keep-Alive by default.
• Tell Node if it’s running in less than 1.5G of memory:
node --max_old_space_size=400 server.js --production
@RAMISAYAR
In conclusion,what did we learn?
• Microservice Archigtecture, Pros and Cons.
• Converting a PizzaBotManager into Microservices
• Handling Networking with API Gateways & DNS
• Learned about Dockers and Containers
• Learned about Kubernetes, Swarm and DC/OS.
@RAMISAYAR
ThankYou! Questions?
tw: @ramisayar | gh: @sayar
@RAMISAYAR
Resources, References, Links
• express-microservice-starter
• Building Microservices: Using an API Gateway
• awesome-microservices
• Node.js Microservice Optimisations
• Microservices with Weave, Docker and Node.js on Ubuntu
@RAMISAYAR
Resources, References, Links
• Why Enterprises Are Embracing Microservices and Node.js
• Breaking Down the Monolith - Peter Marton, RisingStack
• express-micro-service
• How To Do Microservices with Node.js
• An Introduction to Microservices, Part 1
• API Gateway. An Introduction to Microservices, Part 2
• API Gateway for Dockerized Microservices
• Nginx as a reverse proxy for dockerized microservices
@RAMISAYAR
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the
U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft
must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Weitere ähnliche Inhalte

Was ist angesagt?

Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...dotCloud
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopJonas Rosland
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned RightScale
 
Docker 101 - High level introduction to docker
Docker 101 - High level introduction to dockerDocker 101 - High level introduction to docker
Docker 101 - High level introduction to dockerDr Ganesh Iyer
 
Docker for Java Developers - Fabiane Nardon and Arun gupta
Docker for Java Developers - Fabiane Nardon and Arun guptaDocker for Java Developers - Fabiane Nardon and Arun gupta
Docker for Java Developers - Fabiane Nardon and Arun guptaDocker, Inc.
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioJérôme Petazzoni
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerAjeet Singh Raina
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...Yusuf Hadiwinata Sutandar
 
How we dockerized a startup? #meetup #docker
How we dockerized a startup? #meetup #docker How we dockerized a startup? #meetup #docker
How we dockerized a startup? #meetup #docker Jonathan Martin
 
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with DockerDocker, Inc.
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationSuresh Balla
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless worldRed Hat Developers
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containersRed Hat Developers
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Arun Gupta
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamRachid Zarouali
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Ambassador Labs
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker, Inc.
 

Was ist angesagt? (20)

Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Docker 101 - High level introduction to docker
Docker 101 - High level introduction to dockerDocker 101 - High level introduction to docker
Docker 101 - High level introduction to docker
 
Docker and stuff
Docker and stuffDocker and stuff
Docker and stuff
 
Docker for Java Developers - Fabiane Nardon and Arun gupta
Docker for Java Developers - Fabiane Nardon and Arun guptaDocker for Java Developers - Fabiane Nardon and Arun gupta
Docker for Java Developers - Fabiane Nardon and Arun gupta
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
 
How we dockerized a startup? #meetup #docker
How we dockerized a startup? #meetup #docker How we dockerized a startup? #meetup #docker
How we dockerized a startup? #meetup #docker
 
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with Docker
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless world
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers
 
Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops Team
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 

Ähnlich wie Rami Sayar - Node microservices with Docker

Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresDocker, Inc.
 
Containerization with Azure
Containerization with AzureContainerization with Azure
Containerization with AzurePranav Ainavolu
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices Weaveworks
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoangHieu Hoang
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetesMohit Chhabra
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture materialAnkit Gupta
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewboxLino Telera
 
Containerization in microsoft azure
Containerization in microsoft azureContainerization in microsoft azure
Containerization in microsoft azureMohit Chhabra
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KuberneteszekeLabs Technologies
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 

Ähnlich wie Rami Sayar - Node microservices with Docker (20)

Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Docker-Intro
Docker-IntroDocker-Intro
Docker-Intro
 
Containerization with Azure
Containerization with AzureContainerization with Azure
Containerization with Azure
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoang
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetes
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
Docker
DockerDocker
Docker
 
Containerization in microsoft azure
Containerization in microsoft azureContainerization in microsoft azure
Containerization in microsoft azure
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 

Mehr von Web à Québec

Guillaume Labbé-Morissette
Guillaume Labbé-MorissetteGuillaume Labbé-Morissette
Guillaume Labbé-MorissetteWeb à Québec
 
Frédérick Capovilla
Frédérick CapovillaFrédérick Capovilla
Frédérick CapovillaWeb à Québec
 
Cynthia Thibault-Larouche
Cynthia Thibault-LaroucheCynthia Thibault-Larouche
Cynthia Thibault-LaroucheWeb à Québec
 
Intelligence artificielle, Données massives et Internet des objets: Quels son...
Intelligence artificielle, Données massives et Internet des objets: Quels son...Intelligence artificielle, Données massives et Internet des objets: Quels son...
Intelligence artificielle, Données massives et Internet des objets: Quels son...Web à Québec
 
So you want to be a service designer - Jamin Hegeman
So you want to be a service designer - Jamin HegemanSo you want to be a service designer - Jamin Hegeman
So you want to be a service designer - Jamin HegemanWeb à Québec
 
AI & the future of the political party - Colin Megill
AI & the future of the political party - Colin MegillAI & the future of the political party - Colin Megill
AI & the future of the political party - Colin MegillWeb à Québec
 
comment le Canada peut Gagner dans le secteur du numérique - Alex Benay
comment le Canada peut Gagner dans le secteur du numérique - Alex Benay comment le Canada peut Gagner dans le secteur du numérique - Alex Benay
comment le Canada peut Gagner dans le secteur du numérique - Alex Benay Web à Québec
 
Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...
Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...
Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...Web à Québec
 
Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...
Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...
Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...Web à Québec
 
Complexité et systèmes opérables - Fred Hébert
Complexité et systèmes opérables - Fred HébertComplexité et systèmes opérables - Fred Hébert
Complexité et systèmes opérables - Fred HébertWeb à Québec
 

Mehr von Web à Québec (20)

Kevin Bélanger
Kevin BélangerKevin Bélanger
Kevin Bélanger
 
Gabriel LeBreton
Gabriel LeBretonGabriel LeBreton
Gabriel LeBreton
 
Rémi Prévost
Rémi PrévostRémi Prévost
Rémi Prévost
 
Ludivine Durand
Ludivine DurandLudivine Durand
Ludivine Durand
 
Julie Simard
Julie SimardJulie Simard
Julie Simard
 
Guillaume Labbé-Morissette
Guillaume Labbé-MorissetteGuillaume Labbé-Morissette
Guillaume Labbé-Morissette
 
Katherine Mailloux
Katherine MaillouxKatherine Mailloux
Katherine Mailloux
 
Denis Martel
Denis MartelDenis Martel
Denis Martel
 
Charles Davignon
Charles DavignonCharles Davignon
Charles Davignon
 
Frédérick Capovilla
Frédérick CapovillaFrédérick Capovilla
Frédérick Capovilla
 
Cynthia Thibault-Larouche
Cynthia Thibault-LaroucheCynthia Thibault-Larouche
Cynthia Thibault-Larouche
 
Louis-André Labadie
Louis-André LabadieLouis-André Labadie
Louis-André Labadie
 
Christophe Clouzeau
Christophe ClouzeauChristophe Clouzeau
Christophe Clouzeau
 
Intelligence artificielle, Données massives et Internet des objets: Quels son...
Intelligence artificielle, Données massives et Internet des objets: Quels son...Intelligence artificielle, Données massives et Internet des objets: Quels son...
Intelligence artificielle, Données massives et Internet des objets: Quels son...
 
So you want to be a service designer - Jamin Hegeman
So you want to be a service designer - Jamin HegemanSo you want to be a service designer - Jamin Hegeman
So you want to be a service designer - Jamin Hegeman
 
AI & the future of the political party - Colin Megill
AI & the future of the political party - Colin MegillAI & the future of the political party - Colin Megill
AI & the future of the political party - Colin Megill
 
comment le Canada peut Gagner dans le secteur du numérique - Alex Benay
comment le Canada peut Gagner dans le secteur du numérique - Alex Benay comment le Canada peut Gagner dans le secteur du numérique - Alex Benay
comment le Canada peut Gagner dans le secteur du numérique - Alex Benay
 
Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...
Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...
Rendre son équipe performante : plus simple qu'on le pense - Louis-Philippe C...
 
Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...
Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...
Turning Research Ripples Into Waves: Growing UX Research Capacity Through Col...
 
Complexité et systèmes opérables - Fred Hébert
Complexité et systèmes opérables - Fred HébertComplexité et systèmes opérables - Fred Hébert
Complexité et systèmes opérables - Fred Hébert
 

Kürzlich hochgeladen

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Rami Sayar - Node microservices with Docker

  • 1. Building Node Microservices with Docker Rami Sayar - @ramisayar Senior Technical Evangelist Microsoft Canada @RAMISAYAR
  • 2. @RAMISAYAR Something is not quite right… Imagefrom http://www.alumaeasyset.com/galleries/monolithic-application/
  • 3. Monolithic Applications are One GIANT Point of Failure. @RAMISAYAR
  • 5. Agenda • What are Microservices? • Pros and Cons of Microservice Architecture • Converting a Monolithic Express Web App into Microservices • Patterns to Handle Networking Between Frontend & Backend • What are Containers? Docker? • How to use Docker to Run Microservices @RAMISAYAR
  • 6. I neverintended to make a monolithicapplication, it just happened… @RAMISAYAR
  • 7. The Problem with MonolithicApplications @RAMISAYAR
  • 8. The Problem with MonolithicApplications @RAMISAYAR
  • 9. Introducing Microservices • A microservice can be a small, fairly-independent (decoupled) code package that fulfils a single specific task. • Microservices would form the building blocks of a modular application. • In the context of a webapp, your microservices would be organized around capabilities e.g. authentication, web UI storefront, recommendation, etc. @RAMISAYAR
  • 10. Introducing Microservices @RAMISAYAR Image from http://ryanjbaxter.com/2015/07/15/using-microservices-to-build-cloud-native-applications-part-1/
  • 11. Why Node.js is Well Suited for Microservices • Follows the UNIX philosophy: Write programs that do one thing and do it well. • NPM makes package management and deployment easy. • Straight-forward networking API. @RAMISAYAR
  • 12. Benefits of Microservices Architecture • Loosely Coupled: Each microservice is independent • Separate teams can work at different paces • Easier upgrade path for each microservice • Smaller code bases make for easier deployments • Easier for new team members to jump into development • Refactoring no longer halts development • Easy to scale heavily used microservices without scaling the entire app • You can use the best language/framework/platform for the job • With Docker Containers, this is even easier @RAMISAYAR
  • 13. Disadvantages of Microservices Architecture • Outsourcing in-process communication to the network stack • Heavier DevOps requirements on the dev team • Need to monitor more moving parts and manage more complex infrastructure • Networking, service discovery, etc… • Data sharing and data modeling is hard • Ideally, each microservice should have per-service db @RAMISAYAR
  • 14. In Practice– ConvertinganExpress App into Microservices @RAMISAYAR
  • 15. Sample App: The PizzaBotManager Github.com/sayar/PizzaBotManager @RAMISAYAR
  • 16. React – The Definitive Guide – ITSFREE!!! bit.ly/reactmva @RAMISAYAR
  • 17. PizzaBotManager Web App • Prototypical monolithic express web app that has three functionalities: 1. Handle conversations from different chat apps using the Bot Framework: /api/messages 2. Serve the frontend for the pizza chain manager: / 3. Provide an API to see current pizza orders and ovens in operation: /api/orders • Backend follows an Asynchronous Message Queue pattern • Each functionality has different scaling requirements • Functionality 2 would be better served by nginx. @RAMISAYAR
  • 20. DoingThis The Non-Hacky Way @RAMISAYAR
  • 21. Common Microservices Requirements • Service Registration & Discovery • Automatic Routing & Configuration Optional: • Service Monitoring • Health Endpoints • Cross-origin resource sharing (CORS) support @RAMISAYAR
  • 22. Using Express-Microservice-Starter • An express-based bootstrapping module for building microservices with Node.js - github.com/ph0bos/express- microservice-starter @RAMISAYAR
  • 23. Using Express-Microservice-Starter var express = require('express'); var micro = require('express-microservice-starter'); var app = express(); app.use(micro({ discoverable: false, debug: true })); @RAMISAYAR
  • 25. Requirements for the Networking Stack • Service Registration & Discovery • Automatic Routing & Configuration • We also want: • Authentication • Security • Load Balancing @RAMISAYAR
  • 26. API Gateway Pattern • API Gateway is basically a Dynamically Configured Reverse Proxy Server. • Single Access Point for HTTP API Requests @RAMISAYAR
  • 27. DNS Pattern • Each microservice has it’s own publically addressable URL. • myservice.mywebsite.com/api/v1/table • No single point of failure and easy to setup and scale • Doesn’t follow the DRY principle • Individual handling of common concerns like security, authentication, etc. • Tempting for each microservice to become it’s own project • Forces you to use CORS @RAMISAYAR
  • 28. Implementing API Gateways • API Gateways can be implemented with several different technologies: • Docker and Swarm Mode – Containers and Orchestration • Nginx – Reliable, high performance async web server. • HAProxy - Reliable, high Performance TCP/HTTP load balancer. • Kong - Open-source API Gateway and Microservices manager layer. • Skipper - HTTP router on top of a reverse proxy. • Træfɪk - A modern HTTP reverse proxy and load balancer made to deploy microservices with ease. • Tyk - Open source API gateway, dev portal and management dashboard. @RAMISAYAR
  • 29. Deployingto the Cloud with Docker @RAMISAYAR
  • 30. Introductionto Containers & Docker • Docker is an open source project to pack, ship and run any app as a lightweight container. • Lightweight alternative to virtual machines • Smaller, less expensive, faster to start up, and self-contained Host Operating System Hypervisor Guest OS Libraries App Guest OS Libraries App Guest OS Libraries App Operating System Container Engine Libraries App Libraries App Libraries App Virtual Machines Containers
  • 31. Docker • Leading open-source containerization platform • Supported natively in Azure Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in
  • 32. Underneath Docker • Docker leverages libcontainer (previously LXC containers), which encompasses Linux features like cgroups and namespaces for strong process isolation and resource control. • Docker leverages a copy-on-write filesystem. • Docker uses a “plain text” configuration language to control the configuration of a container. @RAMISAYAR
  • 34. Docker CLI • Command-line interface for Docker, available for Linux, OS X, and Windows (available separately or as part of Docker Toolbox)
  • 35. Running a Container docker run -i -t ubuntu /bin/bash
  • 36. Common DockerCLI Commands docker run - Use an image to run a container docker pull - Pull an image from a registry docker build - Build a Docker image docker exec - Execute a command in a container docker stop - Stop a running container docker images - List available Docker images docker ps - List running Docker containers
  • 37. Azure Container Service • Provides robust, ready-to-use Docker hosting environment • Uses open-source orchestration tools (DC/OS and Swarm)
  • 38. Container Orchestration • Facilitates deployment and management of containers • Containers by design are intended to be deployed in large volumes with some applications using dozens to even thousands of containers • With this type of scale, automating container deployment and management with orchestration software becomes necessary • Azure Container service supports Kubernetes, DC/OS, and Docker Swarm
  • 39. Container Clusters • Facilitate load balancing, scalability, and high availability • A cluster is composed of master nodes which control the orchestration, and agent nodes that host the containers
  • 42. ReinventingThe Wheel– Building a Simple API Gateway Demo - Building a Simple API Gateway Thanks to memz.co/api-gateway-microservices-docker-node-js/ @RAMISAYAR
  • 43. Register/ as it’s own “API” The API Gateway will just do an HTTP Proxy anyways. @RAMISAYAR
  • 44. Next Steps? Docker Container Orchestration @RAMISAYAR
  • 45. Kubernetes • Open-source orchestration engine from Google • Provides a robust framework for container orchestration, yet remains lightweight and scalable • Supported by Azure Container Service and tightly integrated with ACS, allowing Kubernetes to modify deployments
  • 46. DC/OS • Datacenter Operating System built on Apache Mesos • Creates logical data centers and abstracts underlying hardware • Provides resources traditionally provided by infrastructure, including networking, DNS, and load balancing • Natively supported by Azure Container Service
  • 47. Docker Swarm • Docker’s own orchestration engine • Current releases of the Docker engine have “Swarm Mode” built in and can many of the same things that other orchestration engines do • Lacks a GUI, but makes up for it with tight integration with Docker • Natively supported by Azure Container Service
  • 48. Some Tips for Running Node.js Microservices • Cache your DNS results: Node does not cache the results of DNS queries (OS issue because OS doesn’t expose TTL) • Reuse HTTP Connections: Node’s global HTTP agent disables HTTP Keep-Alive by default. • Tell Node if it’s running in less than 1.5G of memory: node --max_old_space_size=400 server.js --production @RAMISAYAR
  • 49. In conclusion,what did we learn? • Microservice Archigtecture, Pros and Cons. • Converting a PizzaBotManager into Microservices • Handling Networking with API Gateways & DNS • Learned about Dockers and Containers • Learned about Kubernetes, Swarm and DC/OS. @RAMISAYAR
  • 50. ThankYou! Questions? tw: @ramisayar | gh: @sayar @RAMISAYAR
  • 51. Resources, References, Links • express-microservice-starter • Building Microservices: Using an API Gateway • awesome-microservices • Node.js Microservice Optimisations • Microservices with Weave, Docker and Node.js on Ubuntu @RAMISAYAR
  • 52. Resources, References, Links • Why Enterprises Are Embracing Microservices and Node.js • Breaking Down the Monolith - Peter Marton, RisingStack • express-micro-service • How To Do Microservices with Node.js • An Introduction to Microservices, Part 1 • API Gateway. An Introduction to Microservices, Part 2 • API Gateway for Dockerized Microservices • Nginx as a reverse proxy for dockerized microservices @RAMISAYAR
  • 53. ©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.