Labels

Wednesday, June 8, 2022

WWD #02 - Initial Architecture for the Web Weather Display

I am currently trying to thrash out the initial architecture for the Web Weather Display.  I know that it will be split into multiple parts and use Microservice patterns as the starting point.  This will take some time as I explore what items to add into the mix.  I do know that I will need the following Microservices as a start:

  • NGINX to separate out the web front end
  • A web front end that can be displayed via NGINX
  • A Service Registry Microservice with a pattern allowing switching between Microservices on the fly, across platforms and vlans
  • A Database back end to record changes as they happen
  • A Microservice to push data to the Database back end
  • A Microservice for each of:
    • OpenWeatherMap data extraction
    • Tempest weather station data extraction
    • NWS data extraction
    • NOAA data extraction
    • WeeWx data extraction
  • A Microservice for extracting current weather in a format that can be easily displayed
  • A Microservice for merging current weather information
  • A Microservice for building graphs of weather over time
  • A Microservice for interacting with other sensors
  • WeeWx (optional) to extract data from sensors
Each of these Microservices can be done with stubs as the overall fixed return.

So I have the following to start with:
  • Defined Microservices
    • service_def
    • service_reg
    • data_logger
    • data_assemble
    • data_gather
    • web_assembly_proxy
    • web_presentation
    • MQTT
  • Services that define the front end
    • NGINX
    • wordpress
    • phpmyadmin
    • mysql (mariadb)
  • Services that provide temporal DB and graphs
    • grafana
    • influxdb
  • Services for prototyping
    • node-red-1
    • node-red-2
    • node-red-3
  • Service for Docker control
    • portainer