soutenance/content/50_realisations.md

5.3 KiB

\newpage

Mes réalisations

Automatisation upstream -> charts -> infra avec GitlabCI

ATTENTION : c'est du CI/cd (continuous delivery) car intervention humaine entre staging et prod.

TODO : compléter

  • Présentation processus automatisation : pouvoir passer d'une nouvelle version de l'application au déploiement de l'infrastructure

Réalisation 1 : Livraison continue

Contexte

  • manque de ressources humaines (2 personnes sur 4 ne produisaient rien de concret et/ou utilisable)
  • ET de ressources de temps
  • il a fallu imaginer une façon atypique de créer une chaîne de publication logicielle avec l'existant

Analyse

  • 3 dépôts (donner schéma)
  • chacun 1 pipeline existant pour les tests
  • on souhaite pouvoir passer d'un dépôt à l'autre
  • suivant quelle(s) règle(s) ?
  • (RAPPEL chap. précédent) : Échanges avec Maxime concernant la promotion logicielle

Solution

TODO : mettre le complet plutôt qu'un autre ?

Limites

  • même tag sur tous les dépôts… que faire si on dérive/décalle les numéros de version ?
  • plus on ajoute de dépôts, plus on devra modifier les pipelines pour qu'elles s'enchaînent => travail devient colossal

Amélioration(s) possibles(s)

  • dépôt indépendants avec leur propre pipeline qui teste puis publie sur des dépôts utilisables
  • un dépôt peut utiliser des lib en dépendances, en utilisant les dépôts précédemment complétés : avec des versions fixes !

Réalisation 2 : États Terraform

Contexte

  • États continuellement cassés par les collaborateurs
  • Incompréhension/ignorance des collaborateurs sur le fonctionnement

Analyse

  • États sur Gitlab CI :
    • gitlab-ci pour les pipelines de test
    • staging pour l'env de pré-production
    • prod pour l'env de prod
  • Nécessité d'en avoir 1 par développeur
  • Manque de documentation pour savoir comment procéder
  • Trop d'erreurs manuelles dans l'utilisation des commandes Terraform

Solution

  • dossier scripts avec la plupart des commandes
  • documentation
  • ajout d'un Makefile utilisant les scripts
  • préparation de fichiers pré-remplis

Limites

  • si modification à faire : doit être fait sur tous les dépôts
  • si template évolue : les dépôts qui l'ont utilisé n'ont plus les mises à jour. On pourrait avec rebase, mais ça casserait l'historique de chacun des dépôts

Pour aller plus loin

  • Forme de dépendance des nouveaux dépôts à celui de template (avec une commande de mise à jour des fichiers par exemple)
  • Possibilité de choisir/configurer Terraform ou OpenTofu

Conclusion