soutenance/content/50_realisations.md

86 lines
5.3 KiB
Markdown
Raw Normal View History

\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
* 2 règles :
* code = tests
* si tag : on fait évoluer (promotion) du tag
* 3 dépôts, donc 3 pipeline (donner schéma des 3 pipelines simples), Cf. https://mermaid.live/view#pako:eNqNVU2PmzAQ_SuW97LbTRCBJiQcKlVND1VVtVLVHlqqyIEJWAs2sk3UNMrvWfXef5A_VoMhfCyRwsn2vDfMezOYIw55BNjHUhEFa0piQbLp3gkY0s8dmlloff6bn_8p9C2XSgDJTKiod5u82KZUJj76Ui5CoihniGYkBonWPHwCMSCEPMuo2oQJEcpHZocekSIxeleeyYAZxs9Xv9B0-ubC7OepQgqkkj7aCsLCBOR1RJldwPm5MJDqtJe81SFpiR5X2af0lVC24yIDFNV-9cXcIae1sgmVgYotm1xNblPxzFpY7lS3JqYsHjSgz6sxAz_7_A9sJ8gYORc86rywAXahlfCaNWr6VdjA-W6wix61vx_rwoeyX6i9McFA-o2stkvmnRHs2z67bZ87jtNyuYkgT_mhLbuclZRTyIAp1Kvc4Knc8Kexpg6GwaC1mG0KuqpIuyuKsPoUm-4_ojwhEtD6_Xd0H3IhQMd3DyPVGU96pZVHjcIKW5liWKPjcAU0GIZOrIMdmnSlt2PgTpbaOj1Onz-i-z1JaWTupjClWtLDTUkujlJWZQCUE1FnuEHC6HS9QFQ8fdn56K1pWUZYAWkKeIIzEBmhkb6gjyU7wCrRHQmwr5cR7EiRqgAH7KShpFD864GF2Ne9hwkWvIgT7O9IKvWuyKP2gm8gOWE_OM8uIL3H_hH_xr5ju9bKXc5tz17atrecORN80MfezHLdue3MVp6zmC-c-WmC_1QpbGvhOp7rrdzX86WmLiYYIqq4-GR-MNV_5vQfDBQ1Kg
* Résultat :
* Cf. résultat **simplifié** https://mermaid.live/view#pako:eNqNVcuO0zAU_ZUrz2aGaaM0mTZtFkiIskCAQEKwgKLKk7ipNYkd2U41per3IPb8QX8Mx06ax2RGzcr2Pec-zr2xDyjiMUEhkgorsqQ4ETgb77wVA_1dwcSB5elvfvqn4FsulSA4s6ai2q3z4j6lchvCl3IRYUU5A5rhhEhY8uiBiB4h4llG1TraYqFCsDu4BYUTeFueyRWzjJ-vfsF4_PrM7PoxJkWkkqHhCnL6U1iIOe1QmywlLdHDNXQp3Twp23CREYgrNbqpXoHXCFWbSoNhy9pX7dtmPHFmjj_WwieUJT15u7wK01Ory3_PNgIPkXPB41bAGtiGmsIr1rCkbWMbPahr19aG9-t5UsaFDno1Xchq5LcxY7JrGug3DWxJScvlOiZ5yvdN2uUQpJySjDAFncwtnso1fxjqVq_LFq2LuU-JzirW6ooiMn9Q3dZbyLdYEli--w7XEReCaPvmZiA7q0kntfKortBgjSiWNdznlq2F7df_TNuGwC0vlSp6Uj5_gOsdTmlsb4sopTrbm4ucnMWizHggkGNRebighMHBeYIwPH39hPDGdiPDrCBpSppxuXPgo44pQccVBEjx-MI115rFl66Fgdtu8L9pynruf-8jWg3oBEEjlBGRYRrrJ-BQYldIbfXwrFColzHZ4CJVK7RiRw3FheJf9yxCoR5TMkKCF8kWhRucSr0r8rh5QmpIjtkPzrMzSO9ReECPKPRc31n486kbuHPXDeYTb4T2-jiYOL4_db3JIvBm05k3PY7Qb-PCdWa-F_jBwr-bzjV1NkIkpoqLT_YJMy_Z8T-0P1ds
* Plus complet : https://mermaid.live/view#pako:eNqNVcuO0zAU_ZUrz2aGaaM0mb6yQEKUBQIEEoIFFFVucttak9iR7VRTqn4PYs8f9Mdw4qZ5TDpqVrbvOdc-597YexKKCElAlKYaZ4yuJU36W2_OwXw3MHBgdvybHv9p-JYqLZEmNpSdZos0W8ZMbQL4kg9CqpngwBK6RgUzET6ibBFCkSRML8INlToAO4N70HQNb_M1NeeW8fPVL-j3X5-ZzTxFSKPSKoClpDzcoLqMyLNLPP7JLKRYbSSvdCiWo7tVNilNJYyvhEwQopNfTTE34FVWlqE8ULBVmavMbU88cEaO3zelWTO-bhWgyTthWn42-e_5StIucipFVNuwBNahhfATq9P0i7CW8_VgHd1pfzNWh7dlP1N7ZYKW9CtZVZXsnhFuqzr7VZ1rjrN8uIgwjcWuOnbeK7FgmCDX0Di5xTO1EI9dRW01g0UbMcsYzaki467MwuJXLKt_D-mGKoTZu-9wGwop0cRXdx2ns540jpYvlQoLbGGKZXW2wwVQqxlqsRq2bdKF2naBa1lO1pl2-vwBbrc0ZpG9m8KYGUl3VyU5O8p4kQEhpfKU4QoJnd31DFHwzGUXwBtbsoTyDOMYq556cOCj2VOB2VciYPb0wqVaa9iXrpiOu7Xz56pkXbo72ohaARqbkB5JUCaURebB2efYOdEb02FzEphhhCuaxXpO5vxgoDTT4uuOhyQwvYw9IkW23pBgRWNlZlkaVQ9WCUkp_yFEcgaZOQn25IkEnus7U38ydMfuxHXHk4HXIzuzPB44vj90vcF07I2GI2946JHfRQrXGfne2B9P_YfhxFBHPYIR00J-sg9m8W4e_gO7V3yk
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