\newpage

# Notes diverses

TODO: supprimer cette section à la fin

Mot clé : écosystème DevOps

Définition DevOps : https://fr.wikipedia.org/wiki/Cha%C3%AEne_d%27outils_Devops#cite_note-DevOpsToolchain-1

## DevOps

Objectif : mettre en œuvre les bonnes pratiques de DevOps

* Plan / Planifier (Gitlab : Milestones + issues)
* Code / Développer (Gitlab : Dépôts Git, différents projets)
* Build / Générer (Gitlab : Gitlab CI - docker build, npm build, etc.)
* Test / Tester (Gitlab : Gitlab CI)
* Publish / Publier (Gitlab : Gitlab CI + Docker repositories + package registry)
* Deploy / Déployer (Terraform + Gitlab)
* Operate / Opérer ( ??? ) = services en ligne + backup + reprise sur échec + feedback utilisateurs
* Observe / Surveiller (Prometheus OU Datadog)

![Schéma des concepts DevOps](media/concept_devops-loop.png)

## Selon Gitlab

* Planification : organisez le travail à effectuer, hiérarchisez-le et suivez son achèvement.
* Création : écrivez, concevez, développez et gérez en toute sécurité le code et les données du projet avec votre équipe.
* Vérification : assurez-vous que votre code fonctionne correctement et respecte vos normes de qualité, idéalement avec des tests automatisés.
* Empaquetage : empaquetez vos applications et dépendances, gérez les conteneurs et générez des artéfacts.
* Sécurisation : vérifiez les vulnérabilités à l'aide de tests statiques et dynamiques, de tests à données aléatoires et d'analyses des dépendances.
* Release : déployez le logiciel pour les utilisateurs finaux.
* Configuration : gérez et configurez l'infrastructure nécessaire pour prendre en charge vos applications.
* Surveillance : suivez les métriques de performance et les erreurs pour réduire la gravité et la fréquence des incidents.
* Gouvernance: gérez les vulnérabilités de sécurité, les politiques et la conformité dans l'ensemble de votre entreprise

## Autre

* Base de connaissances collaborative commune : Gitlab avec Wiki

## Specs

* Technologies utilisées par l'application initiale + schémas dépendances
* contrainte : haute disponibilité, sous AWS
* sauvegardes
* supervision (outils monitoring + alerting)
* collaboration : Gitlab = plateforme DevOps
* gestion utilisateurs (id/mdp, clefs, accès)
* gestion des secrets
* 
