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

Validation verification
Validation  verificationValidation  verification
Validation verificationkhair20
 
Basic CPU (Central Processing Unit)
Basic CPU (Central Processing Unit)Basic CPU (Central Processing Unit)
Basic CPU (Central Processing Unit)Faraz Ahmed
 
operating system
operating systemoperating system
operating systemKadianAman
 
history of computer
history of computerhistory of computer
history of computerBikash Kumar
 
Internal components of the computer
Internal components of the computerInternal components of the computer
Internal components of the computerDanielAtkinson96
 
Evolution of computers/computer evolution/c++
Evolution of computers/computer evolution/c++Evolution of computers/computer evolution/c++
Evolution of computers/computer evolution/c++Archie
 
Partitioning a Hard Drive
Partitioning a Hard DrivePartitioning a Hard Drive
Partitioning a Hard DriveJamaica Olazo
 
Assemble a desktop pc
Assemble a desktop pcAssemble a desktop pc
Assemble a desktop pcRajat Gupta
 
LOGO command worksheet
LOGO command worksheetLOGO command worksheet
LOGO command worksheetSagar Thota
 
Computer Science PowerPoint Presentation
Computer Science PowerPoint PresentationComputer Science PowerPoint Presentation
Computer Science PowerPoint PresentationAshna Rajput
 
Introduction to microsoft access
Introduction to microsoft accessIntroduction to microsoft access
Introduction to microsoft accessHardik Patel
 

What's hot (20)

Computer Mouse
 Computer Mouse Computer Mouse
Computer Mouse
 
Validation verification
Validation  verificationValidation  verification
Validation verification
 
Operating system
Operating systemOperating system
Operating system
 
Basic CPU (Central Processing Unit)
Basic CPU (Central Processing Unit)Basic CPU (Central Processing Unit)
Basic CPU (Central Processing Unit)
 
Ms word
Ms wordMs word
Ms word
 
operating system
operating systemoperating system
operating system
 
history of computer
history of computerhistory of computer
history of computer
 
Files and Folders
Files and FoldersFiles and Folders
Files and Folders
 
Internal components of the computer
Internal components of the computerInternal components of the computer
Internal components of the computer
 
Introduction to computing
Introduction to computingIntroduction to computing
Introduction to computing
 
Evolution of computers/computer evolution/c++
Evolution of computers/computer evolution/c++Evolution of computers/computer evolution/c++
Evolution of computers/computer evolution/c++
 
Partitioning a Hard Drive
Partitioning a Hard DrivePartitioning a Hard Drive
Partitioning a Hard Drive
 
Basic computer skills of BSc IT
Basic computer skills of BSc ITBasic computer skills of BSc IT
Basic computer skills of BSc IT
 
operating system
operating systemoperating system
operating system
 
Assemble a desktop pc
Assemble a desktop pcAssemble a desktop pc
Assemble a desktop pc
 
LOGO command worksheet
LOGO command worksheetLOGO command worksheet
LOGO command worksheet
 
Basic Parts of a Desktop
Basic Parts of a DesktopBasic Parts of a Desktop
Basic Parts of a Desktop
 
Computer Science PowerPoint Presentation
Computer Science PowerPoint PresentationComputer Science PowerPoint Presentation
Computer Science PowerPoint Presentation
 
Introduction to microsoft access
Introduction to microsoft accessIntroduction to microsoft access
Introduction to microsoft access
 
Os ppt
Os pptOs ppt
Os ppt
 

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

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

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