I’m working on python microservices based app and I’m wondering how to ship updates.
Let’s start by a summary of what I have:
- Code base on git (several repos)
- The app is running on several remote raspberry pis
- I access these via vpn network
- Raspberry pis have a limited access to internet via GSM MtoM network
- The main custom lib is installed with pip
- Dependencies are installed at the first launch in house with good internet connection
- The code of each service is ofuscated in place
At the moment when I update my services I wrote a shell script which goes and download latest version for each service.
It feels like it’s such a repetitive task for each device.
I only see 2 simple options:
- connect to each device via vpn + ssh and run the update script (even an enhanced version)
- At the end of the CI run a script that send latest.zip and create a service (script + cron ? python + systemd ) on each device that check for new .zip to update the services.
Each of those options doesn’t look pretty clean.
What is usualy done in similar cases ?
Do you have any idea to share with me I don’t find anything that suits my needs.
Thanks for your inputs !
Go to Source