Skip to content

autopilotpattern/nodejs-example

Repository files navigation

Node.js Microservices in Containers with ContainerPilot

Example microservices implementation using Node.js and Docker. Below is an architectural diagram depicting the composition of services that make up the project. When everything is working a frontend web application is accessible that will display a set of graphs using sensor data. The sensor data is either generated by the smartthings microservice or is sent to the microservice from a SmartThings hub running a Sensor SmartApp.

Usage

Development

In local development you can start the microservices by running

$ docker-compose -f local-compose.yml up -d

Then scale up the frontend by a number of instances (3 in this case):

$ docker-compose -f local-compose.yml scale frontend=3

Navigate to http://localhost in your browser and you will see 3 charts. As data flows into the serializer from the various sensors you will start to see data appear on the charts in real-time.

To check that all of the local containers are running you can execute the ps command by running

$ docker-compose -f local-compose.yml ps

Production

When deploying to Triton, first setup your environment then run docker-compose. Below is an example of setting your environment variables then pushing the code to production.

$ ./setup.sh
$ eval "$(triton env)"
$ docker-compose up -d
$ triton instance get nodejsexample_traefik_1

Credits

This project is inspired by various microservices workshops and trainings. In no particular order, they are: