How to deploy python microservices app updates?

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
Author: AFZ84