Needs

The platform that supports every feature of the WebControl. It allows the monitoring, logging and command of every connected heatpump manufactured by Vivreco.

Stack

The system is based on the microservice architecture. Most of them communicate either with HTTP request/response or asynchronous messages passing by a VerneMQ MQTT broker.

The stack is mostly based on :

  • Python, with Flask for API
  • NodeJS with Express
  • VueJS for the front-end
  • VerneMQ for the message broker
  • InfluxDB for timeseries databases
  • Redis for simple NoSQL databases, with added capabilities with ReJSON and RediSearch
  • the rest of the TICK stack : Telegraf, Chronograf and Kapacitor for the monitoring of the stack itself, and special rules alerting for heatpumps (connection rate, and specific behaviors)
  • HAProxy for the reverse-proxy and SSL termination
  • All of which are deployed in Docker and managed with Docker Swarm in several Stacks

Today, we have a total of 24 microservices and 23 apps :

  • 3 microservices for the custom server app stack
  • 2 microservices on a Windows Server VM
  • 3 microservices for the front-end
  • 16 microservices for the backend on an Linux dedicated server
  • 2 different MQTT brokers in bridge mode
  • 5 for the TICK stack (2 different InfluxDB servers, one for heat pumps and one for internal metrics)
  • +6 databases servers (Redis mostly, with ReJSON or RediSearch), used to store users, heat pumps, search, weather reports, parameters…