SlideShare a Scribd company logo
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

Recommended for you

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

This document provides an overview of Docker containers and their benefits. It begins by explaining what Docker containers are, noting that they wrap up software code and dependencies into lightweight packages that can run consistently on any hardware platform. It then discusses some key benefits of Docker containers like their portability, efficiency, and ability to eliminate compatibility issues. The document provides examples of how Docker solves problems related to managing multiple software stacks and environments. It also compares Docker containers to virtual machines. Finally, it outlines some common use cases for Docker like application development, CI/CD workflows, microservices, and hybrid cloud deployments.

dockercontainervirtualization
Docker and stuff
Docker and stuffDocker and stuff
Docker and stuff

It is the understanding of docker and how it was useful in day-to-day tasks, some basic difference between old and new. At last my learnings and mistake while doing it all.

dockercontainervirtualisation
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 provides PODA (Package Once Deploy Anywhere) and complements WORA (Write Once Run Anywhere) provided by Java. It also helps you reduce the impedance mismatch between dev, test, and production environment and simplifies Java application deployment. In this talk, Arun Gupta, Java Champion and Docker Captain and Fabiane Nardon, Java Champion, will explain how to run and package your Java application with Docker including sharing your Java application using Docker Hub. In addition, they will cover: * Deploying your Java application using Maven * Deploying your application using Docker for AWS * Scaling Java services with Docker Engine swarm mode * Packaging your multi-container application and use service discovery * Monitoring your Docker + Java applications * Building a deployment pipeline using common tools.

dockercon 2017dockercon2017dockercon
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

Recommended for you

Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container

Docker is a tool that makes it easier to use Linux containers (LXC) to deploy applications. It allows applications to run consistently across servers by including dependencies within containers. Containers are more lightweight than virtual machines and use less resources. Docker containers start faster than VMs and allow for easy sharing of application components. The Docker registry stores container images and metadata for easy sharing between developers and production environments.

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

One of the upsides of Microservices is the ability to deploy often,at arbitrary schedules, and independently of other services, instead of requiring synchronized deployments happening on a fixed time. But to really leverage this advantage, we need fast, efficient, and reliable deployment processes. That's one of the value propositions of Containers in general, and Docker in particular. Docker offers a new, lightweight approach to application portability.It can build applications using easy-to-write, repeatable, efficient recipes; then it can ship them across environments using a common container format; and it can run them within isolated namespaces which abstract the operating environment, independently of the distribution,versions, network setup, and other details of this environment. But Docker can do way more than deploy your apps. Docker also enables you to generalize Microservices principles and apply them on operational tasks like logging, remote access, backups, and troubleshooting.This decoupling results in independent, smaller, simpler moving parts.

dockermicroserviceslinux
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

- Docker is a platform for building, shipping and running applications. It allows applications to be quickly assembled from components and eliminates discrepancies between development and production environments. - Docker provides lightweight containers that allow applications to run in isolated environments called containers without running a full virtual machine. Containers are more portable and use resources more efficiently than virtual machines. - Docker Swarm allows grouping Docker hosts together into a cluster where containers can be deployed across multiple hosts. It provides features like service discovery, load balancing, failure recovery and rolling updates without a single point of failure.

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

Recommended for you

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...

Sesi Terakhir sebelum libur PHPID-OL memasuki Bulan Puasa Ramadhan. Kita akan ketemu lagi 19 April 2021. Topik penutup yang akan diisi oleh Om Yusuf Hadiwinata, Praktisi Teknologi terkemuka dan ternama di lingkungan Industri IT Indonesia... Ciyaooo.... Maju Terus PHP Indonesia Link Video: https://fb.me/e/hzWbd0FeW

kubernetes101phpindonesia
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

Docker in production, for real! The Yuzu startup, helped by Vixns, chose to have a docker infrastructure with Mesos/Marathon/Consul. From the development environment to our prod monitoring, we share our mistakes, successes, workflows and tools.

dockerstartupmesos
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with Docker

Docker provides PODA (Package Once Deploy Anywhere) and complements WORA (Write Once Run Anywhere) provided by Java. It also helps you reduce the impedance mismatch between dev, test, and production environment and simplifies Java application deployment. This session will explain how to: * Run your first Java application with Docker * Package your Java application with Docker * Share your Java application using Docker Hub * Deploy your Java application using Maven * Deploy your application using Docker for AWS * Scale Java services with Docker Engine swarm mode * Package your multi-container application and use service discovery * Monitor your Docker + Java applications * Build a deployment pipeline using common tools

dockercondockerdockercon2017
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

Recommended for you

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

Docker is a tool that allows applications to run reliably from one computing environment to another in lightweight execution environments called containers. It solves the problem of differences in computing environments by running applications within standardized containers that have all their dependencies, so they can run on any Docker host regardless of the underlying infrastructure. The presentation demonstrated how Docker works, how to build Docker images using Dockerfiles, and how Docker is being used by companies and integrated into platforms like OpenStack.

dockerlinuxcontainers
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless world

In this session we will start to see What is Serverless and what it means to you ? Knowing that we will continue our journey to quickly deploy a serverless platform Apache OpenWhisk on Kubernetes. Having platform ready we will then demystify what should be your Java Programming model in the serverless world???. Is this enough for me to build my serverless applications, the answer is !!!NO!!! , then what else is required, “TOOLS” , in the last part of this session we will stock check our inventory of tools that can make the serverless journey quick, easy and productive.

Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers

Java in 2019 was predicted to be business as usual by many. We have seen new Java releases coming out as planned, AdoptOpenJDK became the main trustful source of binaries and Oracle fighting for the trademark again by preventing the use of javax as namespace. Everything looks like it would be a silent year for Java. But one thing seems obvious. Java's popularity is not gaining any more traction. New language features keep it up to date but people are getting more selective when it comes to implementation choices. Especially in the age of containers and cloud infrastructures. This talk walks you through the why and how of Java in containers. We will talk about image size and development and deployment processes.

red hatred hat developerjava
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

Recommended for you

Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch

Docker provides a new, powerful way of prototyping, testing and deploying applications on cloud-based infrastructures. In this seminar we delve into the concept of Docker containers without requiring any previous knowledge from the audience.

dockervirtualizationlinux
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

This document discusses Java and containers. It begins with an introduction to Java's suitability for containers due to its managed runtime, hardware agnosticism, safety/security, reliability, and rich ecosystem. It then covers topics like creating Docker images from Java applications, building custom Java runtimes using jlink, and optimizing image sizes through multi-stage builds and smaller base images like Alpine Linux. The document also discusses features like class data sharing between containers using AppCDS, ahead-of-time compilation with jaotc, and how the JVM can honor Docker resource limits for CPU and memory. Overall it provides an overview of using Java in container environments and related tools and techniques.

javadockercontainers
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

Slides from my DockerCon EU 2017 Talk. Find the abstract below: "In this talk, we'll discover how Docker comes to the rescue of the Ops Team, while rebuilding from scratch our monitoring infrastructure. We'll start by quickly describing the challenges, to focus on why and how using docker saved the project. From fixing dependencies and isolation issues, implementing rolling upgrades and new features hot addition, to building a completely modular, scalable and resilient infrastructure, we'll talk about why CI/CD workflows, docker tooling and Docker Swarm were the key to success."

dockerdockerconcicd
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

Recommended for you

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, ...

1. The presentation introduces Docker, Kubernetes, and Envoy as foundational tools for building microservices. Docker allows packaging applications into portable containers, Kubernetes provides a platform to manage containers across clusters of hosts, and Envoy handles traffic routing and resilience at the application layer. 2. The presenters demonstrate how to build a simple Python web application into a Docker container image. They then deploy the containerized application to a Kubernetes cluster using Kubernetes objects like deployments and services. This allows the application to scale across multiple pods and be accessed via a stable service endpoint. 3. Finally, the presenters note that as applications become distributed across microservices, failures at the application layer (L7) become more common and

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

High level overview of Docker + Birthday #3 overview (app and challenge portion)! Learn more about Docker Birthday #3 celebrations here: https://www.docker.com/community/docker-birthday-3

dockerlearn dockerdocker birthday
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker

This document discusses containers and Docker. It begins by explaining that cloud infrastructures comprise virtual resources like compute and storage nodes that are administered through software. Docker is introduced as a standard way to package code and dependencies into portable containers that can run anywhere. Key benefits of Docker include increased efficiency, consistency, and security compared to traditional virtual machines. Some weaknesses are that Docker may not be suitable for all applications and large container management can be difficult. Interesting uses of Docker include malware analysis sandboxes, isolating Skype sessions, and managing Raspberry Pi clusters with Docker Swarm.

containersdocker
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

Recommended for you

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

WaveMaker Webinar: Cloud-based App Development and Docker: Trends to watch out for in 2015 - http://www.wavemaker.com/news/webinar-cloud-app-development-and-docker-trends/ CIOs, IT planners and developers at a growing number of organizations are taking advantage of the simplicity and productivity benefits of cloud application development. With Docker technology, cloud-based app development or aPaaS (Application Platform as a Service) is only becoming more disruptive − forcing organizations to rethink how they handle innovation, time-to-market pressures, and IT workloads.

apaasdockerrad
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment

Docker is a system for running applications in lightweight containers that can be deployed across machines. It allows developers to package applications with all dependencies into standardized units for software development. Docker eliminates inconsistencies in environments and allows applications to be easily deployed on virtual machines, physical servers, public clouds, private clouds, and developer laptops through the use of containers.

Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise

A presentation about container technology for the enterprise held at Ekito's geek breakfast the 4th of November 2016.

dockercloud computingenterprise
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

Recommended for you

Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists

The document discusses containers, microservices, and serverless applications for developers. It provides an overview of these topics, including how containers and microservices fit into the DevOps paradigm and allow for better collaboration between development and operations teams. It also discusses trends in container usage and orchestration as well as differences between platforms as a service (PaaS) and serverless applications.

lambdacontainerdocker
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures

lthough containers are bringing a refreshing flexibility when deploying services in production, the management of those containers in such an environment still requires special care in order to keep the application up and running. In this regard, orchestration platforms like Docker, Kubernetes and Nomad have been trying to alleviate this responsibility, facilitating the task of deploying and maintaining the entire application stack in its desired state. This ensures that a service will be always running, tolerating machine failures, network erratic behavior or software updates and downtime. The purpose of this talk is to explain the mechanisms and architecture of the Docker Engine orchestration platform (using a framework called swarmkit) to tolerate failures of services and machines, from cluster state replication and leader-election to container re-scheduling logic when a host goes down.

networkingswarm modeswarmkit
Docker-Intro
Docker-IntroDocker-Intro
Docker-Intro

The document provides an introduction to Docker, containers, and the problems they aim to solve. It discusses: - Why Docker was created - to address the "matrix from hell" of developing and deploying applications across different environments and platforms. - How Docker works at a high level, using lightweight containers that package code and dependencies to run consistently on any infrastructure. - Some key Docker concepts like images, containers, the Dockerfile for building images, and common Docker commands. - Benefits of Docker for developers and operations in simplifying deployment, reducing inconsistencies, and improving portability of applications.

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

Recommended for you

Containerization with Azure
Containerization with AzureContainerization with Azure
Containerization with Azure

Covers containertizing asp.net core applications with docker and managing docker containers with azure container service

microsoftazuredocker
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices

Weaveworks discusses Microservices and best practices Visit Weave Cloud: https://www.weave.works/product/cloud/ For more free talks, join our Weave Online User Group: https://www.meetup.com/Weave-User-Group/

microservicesdockerkubernetes
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoang

This document provides an introduction to Docker. It discusses how the IT landscape is changing with cloud, apps, and DevOps, creating a tug of war between developers and IT operations. Organizations must deal with diverse technologies and organizations. Docker and containers provide a solution by allowing applications to be packaged with all their dependencies and run virtually isolated on a shared kernel. This improves speed, portability, and efficiency compared to virtual machines. The document introduces Docker concepts like images, containers, engines, registries, and control planes. It describes how Docker Enterprise Edition can help align organizations with initiatives around app modernization, cloud strategies, and DevOps.

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

Recommended for you

Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes

Introduction to dockers and kubernetes. Learn how this helps you to build scalable and portable applications with cloud. It introduces the basic concepts of dockers, its differences with virtualization, then explain the need for orchestration and do some hands-on experiments with dockers

dockerdockerizationkubernetes
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetes

Intro to Docker and Kubernetes was presented at Microsoft Azure Dev usergroup meetup at Microsoft, Munich.

aksazureazure container registry
Docker Overview
Docker OverviewDocker Overview
Docker Overview

Brief overview of the Docker eco system, the paradigm change it brings to development and operations processes. While docker has lots of potential its still working to mature into a viable production system that has proved itself secure, stable, and viable.

linuxjenkinsxen
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

Recommended for you

Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material

(1) Sensor cloud computing integrates large-scale sensor networks with cloud computing infrastructures to collect and process data from various sensor networks. (2) It enables large-scale data sharing and collaborations among users and applications on the cloud. (3) Sensor cloud computing delivers cloud services via sensing applications and provides a truly pervasive computing environment by using sensors as an interface between the physical and cyber worlds.

cloud computing
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox

Lino Telera gave a presentation on serverless computing. He began with introductions and background. The presentation covered serverless concepts like Function as a Service, demonstrated building a simple microservice using AWS Lambda that interacts with S3, and discussed integrating functions with services like S3 using Boto. It also showed how functions can be called from devices using skills and discussed running serverless on-premise using OpenFaaS or Pivotal Container Service. The presentation concluded with a Q&A and thanks to sponsors.

serverlesslinoproject
Docker
DockerDocker
Docker

Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code. In a way, Docker is a bit like a virtual machine. But unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system that they’re running on and only requires applications be shipped with things not already running on the host computer. This gives a significant performance boost and reduces the size of the application.

itvirtual machinecontainer
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

Recommended for you

Containerization in microsoft azure
Containerization in microsoft azureContainerization in microsoft azure
Containerization in microsoft azure

This document provides an overview of containerization with Microsoft Azure. It discusses how containers are lighter weight than virtual machines and supported natively in Azure through Docker. It describes Docker architecture and common Docker CLI commands. It also outlines Azure Container Service for robust Docker hosting, and how container orchestration with tools like Kubernetes, DC/OS and Docker Swarm facilitates deployment and management of large volumes of containers.

containersdockeraks
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

The document outlines the agenda for the OpenStack Summit in November 2013. The agenda includes sessions on Docker and its ecosystem, using Docker with OpenStack and Rackspace, and a cross-cloud deployment demo. Docker is presented as a solution for developing and deploying applications across multiple environments by encapsulating code and dependencies in portable containers. It can help eliminate inconsistencies between development, testing, and production environments.

dockerrackspaceopenstack
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

Agenda 1. The changing landscape of IT Infrastructure 2. Containers - An introduction 3. Container management systems 4. Kubernetes 5. Containers and DevOps 6. Future of Infrastructure Mgmt About the talk In this talk, you will get a review of the components & the benefits of Container technologies - Docker & Kubernetes. The talk focuses on making the solution platform-independent. It gives an insight into Docker and Kubernetes for consistent and reliable Deployment. We talk about how the containers fit and improve your DevOps ecosystem and how to get started with containerization. Learn new deployment approach to effectively use your infrastructure resources to minimize the overall cost.

dockerkubernetesdevops
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

Recommended for you

Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction

This document provides an introduction to Docker and discusses: - The challenges of managing applications across different environments which Docker aims to solve through lightweight containers. - An overview of Docker concepts including images, containers, the Docker workflow and networking. - How Docker Compose allows defining and running multi-container applications and Docker Swarm enables orchestrating containers across a cluster. - The open container ecosystem including the Open Container Initiative for standardization.

containerdevopstutorial
Kevin Bélanger
Kevin BélangerKevin Bélanger
Kevin Bélanger

Présentation reliée à la conférence de Kevin Tremblay dans le cadre du Web à Québec.

Gabriel LeBreton
Gabriel LeBretonGabriel LeBreton
Gabriel LeBreton

This document introduces Gabriel Le Breton, a programmer analyst and co-owner of the company TLM.ninja. It provides details about his roles as a developer, instructor, and his involvement in starting the company in 2014. It also includes information about continuous integration, continuous deployment, and diagrams illustrating the CI/CD process.

©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.

More Related Content

What's hot

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 Workshop
Jonas 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 docker
Dr Ganesh Iyer
 
Docker and stuff
Docker and stuffDocker and stuff
Docker and stuff
Varun Sharma
 
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, Inc.
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
Balaji 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 Trio
Jé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 Docker
Ajeet 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 Docker
Docker, 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 virtualization
Suresh Balla
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless world
Red Hat Developers
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers
Red Hat Developers
 
Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
Giacomo Vacca
 
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
Arun 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 Team
Rachid 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 Slides
Docker, Inc.
 

What's hot (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
 

Similar to Rami Sayar - Node microservices with Docker

Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
Damian T. Gordon
 
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
WaveMaker, Inc.
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
javaonfly
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
Bert Poller
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
Karthik Gaekwad
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
Docker, Inc.
 
Docker-Intro
Docker-IntroDocker-Intro
Docker-Intro
Sujai Sivasamy
 
Containerization with Azure
Containerization with AzureContainerization with Azure
Containerization with Azure
Pranav Ainavolu
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
Weaveworks
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoang
Hieu Hoang
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
Dr Ganesh Iyer
 
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetes
Mohit Chhabra
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
Alexander Moon
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
Ankit Gupta
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
Lino Telera
 
Docker
DockerDocker
Containerization in microsoft azure
Containerization in microsoft azureContainerization in microsoft azure
Containerization in microsoft azure
Mohit 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 2013
dotCloud
 
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
zekeLabs Technologies
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Peng Xiao
 

Similar to 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
 

More from Web à Québec

Kevin Bélanger
Kevin BélangerKevin Bélanger
Kevin Bélanger
Web à Québec
 
Gabriel LeBreton
Gabriel LeBretonGabriel LeBreton
Gabriel LeBreton
Web à Québec
 
Rémi Prévost
Rémi PrévostRémi Prévost
Rémi Prévost
Web à Québec
 
Ludivine Durand
Ludivine DurandLudivine Durand
Ludivine Durand
Web à Québec
 
Julie Simard
Julie SimardJulie Simard
Julie Simard
Web à Québec
 
Guillaume Labbé-Morissette
Guillaume Labbé-MorissetteGuillaume Labbé-Morissette
Guillaume Labbé-Morissette
Web à Québec
 
Katherine Mailloux
Katherine MaillouxKatherine Mailloux
Katherine Mailloux
Web à Québec
 
Denis Martel
Denis MartelDenis Martel
Denis Martel
Web à Québec
 
Charles Davignon
Charles DavignonCharles Davignon
Charles Davignon
Web à Québec
 
Frédérick Capovilla
Frédérick CapovillaFrédérick Capovilla
Frédérick Capovilla
Web à Québec
 
Cynthia Thibault-Larouche
Cynthia Thibault-LaroucheCynthia Thibault-Larouche
Cynthia Thibault-Larouche
Web à Québec
 
Louis-André Labadie
Louis-André LabadieLouis-André Labadie
Louis-André Labadie
Web à Québec
 
Christophe Clouzeau
Christophe ClouzeauChristophe Clouzeau
Christophe Clouzeau
Web à 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 Hegeman
Web à 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 Megill
Web à 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ébert
Web à Québec
 

More from 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
 

Recently uploaded

論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 

Recently uploaded (20)

論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.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.