SlideShare a Scribd company logo
1 of 16
Download to read offline
Microservices
with Node.js
by Ashley Davis
Author of Bootstrapping Microservices
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Three part series…
1. Building a microservice with Node.js
2. Developing microservices with Docker-
Compose
3. Deploying microservices to production with
Kubernetes
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
About Me
CTO of Sortal
https://www.sortal.io
Developer of Data-Forge Notebook
https://www.data-forge-notebook.com
Author of
Data Wrangling with JavaScript
Bootstrapping Microservices
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Bootstrapping Microservices
http://bit.ly/2o0aDsP
Book giveaway and
discount code at the
end of the talk
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Part 1
Building a microservice with
Node.js
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
What is a monolith?
A monolith is an entire application
that runs in a single process
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
What's wrong with the monolith?
•Start simple, but will become very complex
•Difficult to scale
•Difficult to restructure
•Large deployment risk
•Large attack surface
•Once dependent, it is difficult to leave
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
What is a microservice?
It is a small independent software
process with an independent
deployment schedule
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
What is a microservices application?
It is a distributed application
composed of tiny software processes
that communicate via the network
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Why are microservices popular now?
• Modern automatable tools
• Cheap cloud infrastructure
• DevOps + infrastructure as code
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Why microservices?
• Complexity management
• Fine grained control
• Fault isolation
• Minimize deployment risk
• Scalable team structure
• Scalable performance
• Isolate technical debt
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Why Node.js?
• JavaScript is the world's most practical language
• Go truly full stack
• Node.js was made for this
• Node.js is network oriented
• Microservices in Node.js are simple
• Passing data between services is easy
• Node.js has a huge community
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
The basic needs of a microservice
• Communication
• Handle requests
• Make requests
• Process events
• Emit events
• Storage
• Database
• File storage
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Code time
Commence prayers to demo gods
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
To be continued…
• Part 2
• Scaling up to multiple microservices
• Testing microservices
• Development using Docker-Compose
• Part 3
• Automated continuous delivery (CD)
• Automated testing in the CD pipeline
• Deployment to Kubernetes
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
Bootstrapping Microservices:
http://bit.ly/2o0aDsP
Discount code:
mtpdavis21
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75

More Related Content

What's hot

U2F Tutorial - Authentication Tokens for Enterprise and Consumers
U2F Tutorial - Authentication Tokens for Enterprise and ConsumersU2F Tutorial - Authentication Tokens for Enterprise and Consumers
U2F Tutorial - Authentication Tokens for Enterprise and ConsumersFIDO Alliance
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverNanik Tolaram
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectYen-Chin Lee
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ BGA Cyber Security
 
RHCSA EX200 - Summary
RHCSA EX200 - SummaryRHCSA EX200 - Summary
RHCSA EX200 - SummaryNugroho Gito
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiJian-Hong Pan
 
Temel ağ bilgisi
Temel ağ bilgisiTemel ağ bilgisi
Temel ağ bilgisiBegüm Erol
 
Linux Initialization Process (2)
Linux Initialization Process (2)Linux Initialization Process (2)
Linux Initialization Process (2)shimosawa
 
Chapter 2 Introduction to Unix Concepts
Chapter 2 Introduction to Unix ConceptsChapter 2 Introduction to Unix Concepts
Chapter 2 Introduction to Unix ConceptsMeenalJabde
 
Looking into trusted and encrypted keys
Looking into trusted and encrypted keysLooking into trusted and encrypted keys
Looking into trusted and encrypted keysSUSE Labs Taipei
 
Applications secure by default
Applications secure by defaultApplications secure by default
Applications secure by defaultSecuRing
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesHow to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesLeon Anavi
 

What's hot (20)

Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practiceRoom 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
 
U2F Tutorial - Authentication Tokens for Enterprise and Consumers
U2F Tutorial - Authentication Tokens for Enterprise and ConsumersU2F Tutorial - Authentication Tokens for Enterprise and Consumers
U2F Tutorial - Authentication Tokens for Enterprise and Consumers
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
Open ebs 101
Open ebs 101Open ebs 101
Open ebs 101
 
tmux
tmuxtmux
tmux
 
Linux I2C
Linux I2CLinux I2C
Linux I2C
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
RHCSA EX200 - Summary
RHCSA EX200 - SummaryRHCSA EX200 - Summary
RHCSA EX200 - Summary
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry Pi
 
Temel ağ bilgisi
Temel ağ bilgisiTemel ağ bilgisi
Temel ağ bilgisi
 
Linux101
Linux101Linux101
Linux101
 
Linux Initialization Process (2)
Linux Initialization Process (2)Linux Initialization Process (2)
Linux Initialization Process (2)
 
Chapter 2 Introduction to Unix Concepts
Chapter 2 Introduction to Unix ConceptsChapter 2 Introduction to Unix Concepts
Chapter 2 Introduction to Unix Concepts
 
Looking into trusted and encrypted keys
Looking into trusted and encrypted keysLooking into trusted and encrypted keys
Looking into trusted and encrypted keys
 
Applications secure by default
Applications secure by defaultApplications secure by default
Applications secure by default
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesHow to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux Devices
 
Kubernetes networking & Security
Kubernetes networking & SecurityKubernetes networking & Security
Kubernetes networking & Security
 

Similar to Building microservices with Node.js - part 1

Microservices with Node.js for BrisJS
Microservices with Node.js for BrisJSMicroservices with Node.js for BrisJS
Microservices with Node.js for BrisJSAshley Davis
 
Building microservices with Node.js - part 3
Building microservices with Node.js - part 3Building microservices with Node.js - part 3
Building microservices with Node.js - part 3Ashley Davis
 
Building microservices with Node.js - part 2
Building microservices with Node.js - part 2Building microservices with Node.js - part 2
Building microservices with Node.js - part 2Ashley Davis
 
Microservices with Node.js - Livestreamed for Manning
Microservices with Node.js - Livestreamed for ManningMicroservices with Node.js - Livestreamed for Manning
Microservices with Node.js - Livestreamed for ManningAshley Davis
 
2014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 3652014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 365Marco Parenzan
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Boaz Ziniman
 
Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017Fernando Mejía
 
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201Amazon Web Services
 
Microsoft Azure Stack
Microsoft Azure StackMicrosoft Azure Stack
Microsoft Azure StackTudor Damian
 
Azure Ninja Tips and Tricks
Azure Ninja Tips and TricksAzure Ninja Tips and Tricks
Azure Ninja Tips and TricksTodd Whitehead
 
Top ways to deliver your Spring code to the cloud
Top ways to deliver your Spring code to the cloud Top ways to deliver your Spring code to the cloud
Top ways to deliver your Spring code to the cloud VMware Tanzu
 
Hybrid connectivity options with the microsoft cloud
Hybrid connectivity options with the microsoft cloudHybrid connectivity options with the microsoft cloud
Hybrid connectivity options with the microsoft cloudBizTalk360
 
Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...
Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...
Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...Frédéric Harper
 
Getting Started with Containers
Getting Started with ContainersGetting Started with Containers
Getting Started with ContainersVivek Raja P S
 
EWUG 2018 February the journey continues.....
EWUG 2018 February   the journey continues.....EWUG 2018 February   the journey continues.....
EWUG 2018 February the journey continues.....Peter Selch Dahl
 
Microsoft's modern technologies
Microsoft's modern technologiesMicrosoft's modern technologies
Microsoft's modern technologiesFisnik Doko
 
Managing your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSCManaging your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSCczw2pv
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...NodejsFoundation
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Mitoc Group
 

Similar to Building microservices with Node.js - part 1 (20)

Microservices with Node.js for BrisJS
Microservices with Node.js for BrisJSMicroservices with Node.js for BrisJS
Microservices with Node.js for BrisJS
 
Building microservices with Node.js - part 3
Building microservices with Node.js - part 3Building microservices with Node.js - part 3
Building microservices with Node.js - part 3
 
Building microservices with Node.js - part 2
Building microservices with Node.js - part 2Building microservices with Node.js - part 2
Building microservices with Node.js - part 2
 
Microservices with Node.js - Livestreamed for Manning
Microservices with Node.js - Livestreamed for ManningMicroservices with Node.js - Livestreamed for Manning
Microservices with Node.js - Livestreamed for Manning
 
2014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 3652014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 365
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017
 
Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017
 
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
Smaller is Better - Exploiting Microservice Architectures on AWS - Technical 201
 
Microsoft Azure Stack
Microsoft Azure StackMicrosoft Azure Stack
Microsoft Azure Stack
 
Azure Ninja Tips and Tricks
Azure Ninja Tips and TricksAzure Ninja Tips and Tricks
Azure Ninja Tips and Tricks
 
Top ways to deliver your Spring code to the cloud
Top ways to deliver your Spring code to the cloud Top ways to deliver your Spring code to the cloud
Top ways to deliver your Spring code to the cloud
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Services
 
Hybrid connectivity options with the microsoft cloud
Hybrid connectivity options with the microsoft cloudHybrid connectivity options with the microsoft cloud
Hybrid connectivity options with the microsoft cloud
 
Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...
Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...
Infrastructure as a service to its maximum, a cultural change - S2LQ - 2016-0...
 
Getting Started with Containers
Getting Started with ContainersGetting Started with Containers
Getting Started with Containers
 
EWUG 2018 February the journey continues.....
EWUG 2018 February   the journey continues.....EWUG 2018 February   the journey continues.....
EWUG 2018 February the journey continues.....
 
Microsoft's modern technologies
Microsoft's modern technologiesMicrosoft's modern technologies
Microsoft's modern technologies
 
Managing your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSCManaging your azure workloads with Chef and PSDSC
Managing your azure workloads with Chef and PSDSC
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...
 

More from Ashley Davis

Live reload across the stack
Live reload across the stackLive reload across the stack
Live reload across the stackAshley Davis
 
Rapid Fullstack Development
Rapid Fullstack DevelopmentRapid Fullstack Development
Rapid Fullstack DevelopmentAshley Davis
 
Rapid Fullstack Development
Rapid Fullstack DevelopmentRapid Fullstack Development
Rapid Fullstack DevelopmentAshley Davis
 
When to reinvent the wheel / Building a query language in TypeScript
When to reinvent the wheel / Building a query language in TypeScriptWhen to reinvent the wheel / Building a query language in TypeScript
When to reinvent the wheel / Building a query language in TypeScriptAshley Davis
 
How to be a good developer
How to be a good developerHow to be a good developer
How to be a good developerAshley Davis
 
Crafting build pipelines with Docker
Crafting build pipelines with DockerCrafting build pipelines with Docker
Crafting build pipelines with DockerAshley Davis
 
How to be a good developer
How to be a good developerHow to be a good developer
How to be a good developerAshley Davis
 
Building desktop apps in java script with Electron
Building desktop apps in java script with ElectronBuilding desktop apps in java script with Electron
Building desktop apps in java script with ElectronAshley Davis
 
Testing trading strategies in JavaScript
Testing trading strategies in JavaScriptTesting trading strategies in JavaScript
Testing trading strategies in JavaScriptAshley Davis
 
Node.js memory limitations
Node.js memory limitationsNode.js memory limitations
Node.js memory limitationsAshley Davis
 
Ai and ml study group lecture 1 and 2
Ai and ml study group   lecture 1 and 2Ai and ml study group   lecture 1 and 2
Ai and ml study group lecture 1 and 2Ashley Davis
 
Data analysis in JavaScript
Data analysis in JavaScriptData analysis in JavaScript
Data analysis in JavaScriptAshley Davis
 

More from Ashley Davis (13)

Live reload across the stack
Live reload across the stackLive reload across the stack
Live reload across the stack
 
Rapid Fullstack Development
Rapid Fullstack DevelopmentRapid Fullstack Development
Rapid Fullstack Development
 
Rapid Fullstack Development
Rapid Fullstack DevelopmentRapid Fullstack Development
Rapid Fullstack Development
 
When to reinvent the wheel / Building a query language in TypeScript
When to reinvent the wheel / Building a query language in TypeScriptWhen to reinvent the wheel / Building a query language in TypeScript
When to reinvent the wheel / Building a query language in TypeScript
 
How to be a good developer
How to be a good developerHow to be a good developer
How to be a good developer
 
Crafting build pipelines with Docker
Crafting build pipelines with DockerCrafting build pipelines with Docker
Crafting build pipelines with Docker
 
How to be a good developer
How to be a good developerHow to be a good developer
How to be a good developer
 
Building desktop apps in java script with Electron
Building desktop apps in java script with ElectronBuilding desktop apps in java script with Electron
Building desktop apps in java script with Electron
 
Testing trading strategies in JavaScript
Testing trading strategies in JavaScriptTesting trading strategies in JavaScript
Testing trading strategies in JavaScript
 
Node.js memory limitations
Node.js memory limitationsNode.js memory limitations
Node.js memory limitations
 
Ai and ml study group lecture 1 and 2
Ai and ml study group   lecture 1 and 2Ai and ml study group   lecture 1 and 2
Ai and ml study group lecture 1 and 2
 
Web scraping
Web scrapingWeb scraping
Web scraping
 
Data analysis in JavaScript
Data analysis in JavaScriptData analysis in JavaScript
Data analysis in JavaScript
 

Recently uploaded

Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024BookNet Canada
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdfHCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdfROWELL MARQUINA
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Introduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxIntroduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxmprakaash5
 
Which standard is best for your content?
Which standard is best for your content?Which standard is best for your content?
Which standard is best for your content?Rustici Software
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...BookNet Canada
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A PowerPoint Presentation on Vikram Lander pptx
A PowerPoint Presentation on Vikram Lander pptxA PowerPoint Presentation on Vikram Lander pptx
A PowerPoint Presentation on Vikram Lander pptxatharvdev2010
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Deliver Latency Free Customer Experience
Deliver Latency Free Customer ExperienceDeliver Latency Free Customer Experience
Deliver Latency Free Customer ExperienceOpsTree solutions
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Recently uploaded (20)

Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdfHCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Introduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxIntroduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptx
 
Which standard is best for your content?
Which standard is best for your content?Which standard is best for your content?
Which standard is best for your content?
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A PowerPoint Presentation on Vikram Lander pptx
A PowerPoint Presentation on Vikram Lander pptxA PowerPoint Presentation on Vikram Lander pptx
A PowerPoint Presentation on Vikram Lander pptx
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Deliver Latency Free Customer Experience
Deliver Latency Free Customer ExperienceDeliver Latency Free Customer Experience
Deliver Latency Free Customer Experience
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Building microservices with Node.js - part 1

  • 1. Microservices with Node.js by Ashley Davis Author of Bootstrapping Microservices Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 2. Three part series… 1. Building a microservice with Node.js 2. Developing microservices with Docker- Compose 3. Deploying microservices to production with Kubernetes Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 3. About Me CTO of Sortal https://www.sortal.io Developer of Data-Forge Notebook https://www.data-forge-notebook.com Author of Data Wrangling with JavaScript Bootstrapping Microservices Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 4. Bootstrapping Microservices http://bit.ly/2o0aDsP Book giveaway and discount code at the end of the talk Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 5. Part 1 Building a microservice with Node.js Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 6. What is a monolith? A monolith is an entire application that runs in a single process Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 7. What's wrong with the monolith? •Start simple, but will become very complex •Difficult to scale •Difficult to restructure •Large deployment risk •Large attack surface •Once dependent, it is difficult to leave Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 8. What is a microservice? It is a small independent software process with an independent deployment schedule Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 9. What is a microservices application? It is a distributed application composed of tiny software processes that communicate via the network Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 10. Why are microservices popular now? • Modern automatable tools • Cheap cloud infrastructure • DevOps + infrastructure as code Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 11. Why microservices? • Complexity management • Fine grained control • Fault isolation • Minimize deployment risk • Scalable team structure • Scalable performance • Isolate technical debt Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 12. Why Node.js? • JavaScript is the world's most practical language • Go truly full stack • Node.js was made for this • Node.js is network oriented • Microservices in Node.js are simple • Passing data between services is easy • Node.js has a huge community Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 13. The basic needs of a microservice • Communication • Handle requests • Make requests • Process events • Emit events • Storage • Database • File storage Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 14. Code time Commence prayers to demo gods Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 15. To be continued… • Part 2 • Scaling up to multiple microservices • Testing microservices • Development using Docker-Compose • Part 3 • Automated continuous delivery (CD) • Automated testing in the CD pipeline • Deployment to Kubernetes Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75
  • 16. Bootstrapping Microservices: http://bit.ly/2o0aDsP Discount code: mtpdavis21 Ashley Davis Twitter @ashleydavis75 Email ashley@codecapers.com.au LinkedIn www.linkedin.com/in/ashleydavis75