Page 1 sur 1

Mise en production

Posté : mar. 9 juil. 2024 15:03
par tioker
Bonjour,

Ceci n'est pas un question mais plutôt un partage.
À mes heures perdues je développe; du bash parfois (peu), du python (plus) et du C++ (Arduino et Attiny).
J'ai un peu la déformation du mon métier passé où, dans l'univers de la production, on utilisait plusieurs environnement pour sécuriser les fameuses "mises en production":
- un environnement de développement
- un environnement de qualification
- un environnement de production
C'est un des sujets de la norme ITIL.
D'ailleurs Github traite aussi de cette problématique, mais plus dans le développement collaboratif (si je ne me trompe pas).

Pour ma petite personne je ne veux pas déployer d'usine à gaz même si Github a son intérêt (je ne l'utilise que pour diffusion dans le libre).

Ainsi, récemment, pour déployer des programmes sur des Raspberry, j'ai creusé la commande rsync. Et bien m'en a pris car j'y ai trouvé une solution simple pour ma petite personne.
Soit un programme python nommé spg.py(routine) et spgui.py(user interface). Il a fini sa phase de développement dans le répertoire Documents/Programmes/Dev/SPG. Je veux le diffuser sur mes raspberry et en local mais je veux conserver l'ancienne version sur la cible au cas où...
Et bien j'utilise la commande:

Code : Tout sélectionner

rsync -rvaz --backup --suffix=`date +'.%F_%H-%M'` ~/Documents/Programmes/Dev/SPG/spg*.py pi@pi4://home/pi/bin/
Explications:
-rvaz pour récursif, verbose, droits et compression
--backup pour backuper ancienne version et --suffix pour l'extension de l'ancienne version

Ainsi, en résultat j'aurai sur mon raspberry

Code : Tout sélectionner

pi@pi4:~/bin $ ls -lah
total 40K
drwxr-xr-x  2 pi pi 4,0K  9 juil. 14:54 .
drwx------ 12 pi pi 4,0K  9 juil. 14:40 ..
-rw-rw-r--  1 pi pi 8,3K  9 juil. 14:53 spg.py
-rw-rw-r--  1 pi pi 8,3K  9 juil. 14:47 spg.py.2024-07-09_14-54
-rw-rw-r--  1 pi pi 6,1K  9 juil. 13:53 spgui.py
pi@pi4:~/bin $ 
On n'est pas obligé de beaucoup développer pour avoir la nécessité d'un retour en arrière. Par cette méthode je me suis évité d'écrire une routine de mise en production complexe.

Je ne sais pas ce que vous en pensez, j'attends vos commentaires. Merci d'avance