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 !
|
À 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 »
|
## Au membres de la « cohorte »
|
||||||
|
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
|
|
||||||
TODO: Lister compétences du référentiel
|
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 :
|
* Compétence n°2 : Automatiser le déploiement d'une infrastructure :
|
||||||
* utilisation de Terraform dans le dépôt nommé **infra**
|
* utilisation de Terraform dans le dépôt nommé **infra**
|
||||||
* staging
|
* staging
|
||||||
@ -33,7 +36,6 @@ TODO: Lister compétences du référentiel
|
|||||||
|
|
||||||
Ne couvre pas - pour le moment :
|
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°3 : Sécuriser l'infrastructure
|
||||||
* Compétence n°6 : Gérer le stockage des données :
|
* Compétence n°6 : Gérer le stockage des données :
|
||||||
* TODO: sauvegardes données
|
* TODO: sauvegardes données
|
||||||
|
@ -4,44 +4,118 @@
|
|||||||
|
|
||||||
TODO: spécifications techniques
|
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)
|
En pareille situation, c'est tout un **écosystème DevOps** qu'il faut mettre
|
||||||
* Code / Développer (Gitlab : Dépôts Git, différents projets)
|
en place. Ainsi nous commençons par nous organiser pour collaborer sur le
|
||||||
* Build / Générer (Gitlab : Gitlab CI - docker build, npm build, etc.)
|
projet pour répondre aux besoins ; après quoi nous nous tournons vers
|
||||||
* Test / Tester (Gitlab : Gitlab CI)
|
l'étude de l'application pour continuer sur le choix d'une infrastructure pour
|
||||||
* Publish / Publier (Gitlab : Gitlab CI + Docker repositories + package registry)
|
accueillir nos services. Finalement nous choisissons aussi des outils autour
|
||||||
* Deploy / Déployer (Terraform + Gitlab)
|
de l'application pour garantir un certain niveau de service.
|
||||||
* Operate / Opérer ( ??? ) = services en ligne + backup + reprise sur échec + feedback utilisateurs
|
|
||||||
* Observe / Surveiller (Prometheus OU Datadog)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Selon Gitlab
|
## Organisation
|
||||||
|
|
||||||
* Planification : organisez le travail à effectuer, hiérarchisez-le et suivez son achèvement.
|
Gitlab, Slack, SemVer, Git OneFlow, Conventional commit, différents environnements
|
||||||
* 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
|
### 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
|
* Développement
|
||||||
* contrainte : haute disponibilité, sous AWS
|
* Tests
|
||||||
* sauvegardes
|
* Pré-production (appelé « staging »)
|
||||||
* supervision (outils monitoring + alerting)
|
* Production
|
||||||
* collaboration : Gitlab = plateforme DevOps
|
|
||||||
* gestion utilisateurs (id/mdp, clefs, accès)
|
### Plateforme DevOps
|
||||||
* gestion des secrets
|
|
||||||
*
|
* 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