pix
pix copied to clipboard
[TECH] Classe BaseScript pour la standardisation des scripts
:unicorn: Problème
Il y a peu de standard et uniformisation au niveau des scripts. Ce qui rend particulièrement compliqué le développement, la maintenance et l'exploitabilité des scripts.
Développement / Maintenance:
- On développe toujours le même code "boilerplate" sur chaque script:
- lecture des paramètres d’entrée
- gestion des erreurs
- gestion des resources
- Certains scripts “one-shots” / “jetables” restent longtemps dans la codebase.
- Peu d’utilitaires de tests
- Peu de documentation.
Exploitabilité:
- On oublie de fermer certaines resources (db connexions…) quand le script se termine.
- Mauvaise gestion des codes de sortie des scripts (obligé de le killer manuellement).
- Manque de compte-rendu des opérations effectuées (logs de début, de fin, d’erreur…).
- Manque de log de progression des scripts longs.
- Éviter de surcharger la BDD sur les scripts avec énormément de requêtes (throttling)
- Peu de mesure d’impact: connaître les impacts du script (temps, risque sur la prod…) (ex: dry run mode).
Guidelines et bonnes pratiques:
- Doc: Comment créer un script ? comment tester un script ?
- Recommander des scripts interruptibles et idempotants
:robot: Proposition
:rainbow: Remarques
:100: Pour tester
Une fois les applications déployées, elles seront accessibles via les liens suivants :
- App (.fr)
- App (.org)
- Orga (.fr)
- Orga (.org)
- Certif (.fr)
- Certif (.org)
- Junior
- Admin
- API
- Audit Logger
Les variables d'environnement seront accessibles via les liens suivants :