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.
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
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
This project is inspired by various microservices workshops and trainings. In no particular order, they are:
- https://github.com/lloydbenson/microservices-workshop - Lloyd Benson
- https://github.com/nearform/micro-services-tutorial-iot - nearForm