soutenance/content/30_specifications_techniques.md

48 lines
2.1 KiB
Markdown
Raw Normal View History

\newpage
# Spécifications techniques
TODO: spécifications techniques
## 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
*