Part 2 of my talk on building microservice with Node.js.
In this session we scale up our development environment to multiple microservices using Docker-Compose and we talk about testing.
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Building microservices with Node.js - part 2
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
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
3. Three part series…
1. Building a microservice with Node.js
2. Developing microservices with Docker-
Compose
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
4. 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
6. About Me
CTO of Sortal
https://www.sortal.io
Developer of Data-Forge Notebook
https://www.data-forge-notebook.com
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
7. 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
10. Part 2
Developing microservices with
Docker-Compose
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
11. Review: 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. Development needs for microservices
• Build, run & test a single microservice
• Live reload for a single microservice
• Build, run & test multiple microservices, a
microservices application
• Live reload across the microservices application
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
13. Why Docker?
• It’s ubiquitous
• Infrastructure as code
• It’s a script for building a microservice
• Tech stack agnostic
• Standardize our environment
• Package our microservices
• Publish our microservices
• Run our microservices
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
14. Why Docker-Compose?
• It’s convenient
• Scalable development workflow
• It converts many commands to one
• It records configuration
• Infrastructure as code
• It’s a script for building a microservices application
• Development only, Kubernetes for production
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
15. Code time
Commence prayers to demo gods
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
16. Testing microservices
• Manual / exploratory testing
• Automated testing
• End to end testing
• Integration testing
• Unit testing
• Output (snapshot) testing
• Contract testing (Pact)
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
20. Database fixtures
A known piece of data added to the database
for the purposes of testing
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
21. More code
Restart prayers to demo gods
Ashley Davis
Twitter @ashleydavis75
Email ashley@codecapers.com.au
LinkedIn www.linkedin.com/in/ashleydavis75
22. To be continued…
• Part 3
• Indirect communications with RabbitMQ
• Deploying a database
• 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