I have been wanting to get into DevOps for a while. Now that I am retired I should be able to find the time to immerse myself in the overall designs and setup for such a system. I have also been studying Microservices and how that impacts the pipeline for a DevOps CI/CD approach. Since I have a number of computer resources available to me, both RPi and Proxmox servers, I should be able to stand up a complete system fairly easily. I also need to make it easy to modify as needed. I am just a one person shop using a HomeLab for development, so much of this will not make sense to most people.
So for the general idea for the Web Weather Display:
- Most programming to be done with Node-Red, but allow for JavaScript and Python
- The Weather Display will be a Kiosk style web display
- Since I don’t have a Weather Station hooked into CWOP or Weather Underground, I need different sources of information
- Should be able to be updated with a display every 5 minutes
- Should show a forecast for at least 5 days
- Should allow for a display of radar data
- Should allow for a display of satellite data
- Should allow merging of micro-weather sensors to show alteration from the normal source of updates
- I want it to be able to display different models from different sources
- I want it to be able to display other environmental information such as earthquakes, hurricanes, tornado damage from different parts of the world
- I would like it to have a map display capability
- I would like it to display data over a range of time from a backend storage medium
- I would like it to be self contained in a single RPi, or pulled to an RPi display from a remote source
For the general idea for Microservices:
- I would like to use some Microservices patterns for the development; those are TBD at this point
- I want to make the Weather Display components split into Microservices that make sense
- The Microservices should be able to be moved to a different host without causing disruption, including to different operating systems and processors
- Individual Microservices should be able to be changed without having to shut the entire set of Microservices down
For the general idea for DevOps:
- I would like to do the development on a separate Development vlan which works in conjunction with a Production vlan for the Weather Display
- The introduction of a newly tested and developed Microservice should be scripted so that I do not have to worry about forcing a change
- The movement of portions of the Microservice architecture should be fluid within the CI/CD pipeline
Some constraints for the Weather Display development:
- I should not have to buy anything additional in order to be able to complete the first version of this project
- I should be able to add additional sensors and merge their output into the displays without issue
- The first iteration of this project should use MQTT as the adhesion point, but allow for use of web services later on - so the mechanism should be hidden