chore(content): Complete technical specs structure
This commit is contained in:
parent
f08fa66a3b
commit
3c691bb68e
@ -30,7 +30,7 @@ Pris à part, nous avons chacun nos particularités. Ensemble ces problèmes ét
|
||||
|
||||
À Julien \textsc{Sabiols} pour sa détermination, son travail acharné, son intelligence et son énorme humilité. Il a su être un partenaire de pair-programming brillant avec un esprit affûté. C'est rare. Et très appréciable !
|
||||
|
||||
J'imagine que derrière chaque personne il y a également un ou une partenaire de vie qui a faciliter l'organisation et la disponibilité autour de la formation. Pour ces personnes cachées dans l'ombre : MERCI ! Vous méritez de figurer dans ces lignes.
|
||||
J'imagine que derrière chaque personne il y a également un ou une partenaire de vie qui a facilité l'organisation et la disponibilité autour de la formation. Pour ces personnes cachées dans l'ombre : MERCI ! Vous méritez de figurer dans ces lignes.
|
||||
|
||||
## Au membres de la « cohorte »
|
||||
|
||||
|
@ -4,6 +4,9 @@
|
||||
|
||||
TODO: Lister compétences du référentiel
|
||||
|
||||
* Compétence n°1 : Automatiser la création de serveurs à l'aide de scripts : serveurs virtuels (Vagrant, etc.), avec automatisation config. (type Ansible) et automatisation création du serveur via scripts (bash et/ou Python)
|
||||
* Utilisation des EC2 (serveur virtuel)
|
||||
* Automatisation via Terraform
|
||||
* Compétence n°2 : Automatiser le déploiement d'une infrastructure :
|
||||
* utilisation de Terraform dans le dépôt nommé **infra**
|
||||
* staging
|
||||
@ -33,7 +36,6 @@ TODO: Lister compétences du référentiel
|
||||
|
||||
Ne couvre pas - pour le moment :
|
||||
|
||||
* Compétence n°1 : Automatiser la création de serveurs à l'aide de scripts : serveurs virtuels (Vagrant, etc.), avec automatisation config. (type Ansible) et automatisation création du serveur via scripts (bash et/ou Python)
|
||||
* Compétence n°3 : Sécuriser l'infrastructure
|
||||
* Compétence n°6 : Gérer le stockage des données :
|
||||
* TODO: sauvegardes données
|
||||
|
@ -199,7 +199,7 @@ Documents informatifs :
|
||||
* Cahier des charges
|
||||
* Support de communication diapositive
|
||||
* Schéma pour chaque préoccupation majeure
|
||||
* Dossier de projet
|
||||
* Dossier de projet
|
||||
|
||||
Gitlab :
|
||||
|
||||
|
@ -4,44 +4,118 @@
|
||||
|
||||
TODO: spécifications techniques
|
||||
|
||||
## DevOps
|
||||
Mot clé : écosystème DevOps
|
||||
|
||||
Objectif : mettre en œuvre les bonnes pratiques de DevOps
|
||||
La réalisation de ce projet va plus loin que la simple mise en place d'une
|
||||
application dans le Cloud. C'est une nouvelle équipe, dans un nouvel
|
||||
environnement avec une application inconnue et des savoirs à acquérir.
|
||||
|
||||
* 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)
|
||||
En pareille situation, c'est tout un **écosystème DevOps** qu'il faut mettre
|
||||
en place. Ainsi nous commençons par nous organiser pour collaborer sur le
|
||||
projet pour répondre aux besoins ; après quoi nous nous tournons vers
|
||||
l'étude de l'application pour continuer sur le choix d'une infrastructure pour
|
||||
accueillir nos services. Finalement nous choisissons aussi des outils autour
|
||||
de l'application pour garantir un certain niveau de service.
|
||||
|
||||

|
||||
|
||||
## Selon Gitlab
|
||||
## Organisation
|
||||
|
||||
* 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
|
||||
Gitlab, Slack, SemVer, Git OneFlow, Conventional commit, différents environnements
|
||||
|
||||
## Autre
|
||||
### Normes
|
||||
|
||||
* Base de connaissances collaborative commune : Gitlab avec Wiki
|
||||
* SemVer
|
||||
* Git OneFlow
|
||||
* Conventional commit
|
||||
|
||||
## Specs
|
||||
### Environnements
|
||||
|
||||
* 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
|
||||
*
|
||||
* Développement
|
||||
* Tests
|
||||
* Pré-production (appelé « staging »)
|
||||
* Production
|
||||
|
||||
### Plateforme DevOps
|
||||
|
||||
* couvre les principes DevOps
|
||||
* Github vs. Gitlab ?
|
||||
* services utilisés :
|
||||
* Tickets
|
||||
* Jalons
|
||||
* Kanbans
|
||||
* Base de connaissance collaborative : Wiki sous Gitlab
|
||||
|
||||
### Méthodologie
|
||||
|
||||
* Méthodologie Agile basique
|
||||
* Compte-rendus journaliers
|
||||
|
||||
## Étude de l'application
|
||||
|
||||
### Composants de l'application
|
||||
|
||||
### Implications
|
||||
|
||||
Ce que cela implique pour la suite
|
||||
|
||||
## Infrastructure d'accueil
|
||||
|
||||
### Couche basse
|
||||
|
||||
### Environnement Kubernetes
|
||||
|
||||
* EKS
|
||||
* cert-manager (avec Let's Encrypt) - gratuit
|
||||
* externaldns + Route53 (domaines) ~ 16€/mois pour nos routes
|
||||
* AWS LoadBalancer, couche 4 du modèle OSI (pour le lien entre l'extérieur et le cluster)
|
||||
* Nginx ingress controller pour le lien entre les services du cluster et l'AWS LoadBalancer
|
||||
|
||||
### Déploiement
|
||||
|
||||
* Terraform
|
||||
* Pipelines automatisées
|
||||
|
||||
## Services et outils divers
|
||||
|
||||
Pas si annexes que ça tout de même !
|
||||
|
||||
### Données
|
||||
|
||||
#### BDD postgreSQL
|
||||
|
||||
Aurora, MAIS soucis lors de l'implémentation. Faute de temps : postgresql-ha
|
||||
|
||||
#### Stockage
|
||||
|
||||
#### Sauvegardes
|
||||
|
||||
### Supervision
|
||||
|
||||
Choix de Datadog au détriment de Prometheus, faute de temps
|
||||
|
||||
Prévu de :
|
||||
|
||||
* prometheus
|
||||
* avec nginx-ingress-controller privé
|
||||
* et accès VPN dessus
|
||||
|
||||
Pas fait faute de temps.
|
||||
|
||||
#### Surveillance (monitoring)
|
||||
|
||||
Choix indicateurs
|
||||
|
||||
#### Alertes
|
||||
|
||||
Système d'alerte : slack, ou autre ? Mail ?
|
||||
|
||||
### Sécurité
|
||||
|
||||
#### Gestion utilisateurs
|
||||
|
||||
#### Vault
|
||||
|
||||
#### Système gestion mdp collaboratif
|
||||
|
||||
|
||||
## Conclusion
|
||||
|
49
content/99_notes
Normal file
49
content/99_notes
Normal file
@ -0,0 +1,49 @@
|
||||
\newpage
|
||||
|
||||
# Notes diverses
|
||||
|
||||
TODO: supprimer cette section à la fin
|
||||
|
||||
Mot clé : écosystème DevOps
|
||||
|
||||
## 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)
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
*
|
Loading…
Reference in New Issue
Block a user