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.
In local development you can start the microservices by running
$ docker-compose -f local-compose.yml up -d
http://localhost:10001 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