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