Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
f418643640 | |||
de35100fe9 | |||
181a9770f1 | |||
21a64c6f45 |
BIN
Olivier_DOSSMANN-v1.2.pdf
Normal file
BIN
Olivier_DOSSMANN-v1.2.pdf
Normal file
Binary file not shown.
BIN
Olivier_DOSSMANN-v1.3.pdf
Normal file
BIN
Olivier_DOSSMANN-v1.3.pdf
Normal file
Binary file not shown.
@ -4,7 +4,7 @@ subtitle: Dossier de projet - API Utilisateurs
|
|||||||
author: Olivier \textsc{Dossmann}
|
author: Olivier \textsc{Dossmann}
|
||||||
mail: <emploi@dossmann.net>
|
mail: <emploi@dossmann.net>
|
||||||
date: 05 mars 2025
|
date: 05 mars 2025
|
||||||
version: 1.1
|
version: 1.3
|
||||||
mentor: Jérémie \textsc{Tarot}
|
mentor: Jérémie \textsc{Tarot}
|
||||||
qrcode: https://odtre.gitlab.io/diapos/
|
qrcode: https://odtre.gitlab.io/diapos/
|
||||||
geometry:
|
geometry:
|
||||||
|
@ -22,18 +22,16 @@ professionnel ou dans la sphère privée (pour publier mon blog). C'est donc tou
|
|||||||
DevOps. Et ce à travers la **formation DevOps en BootCamp** au sein de l'organisme
|
DevOps. Et ce à travers la **formation DevOps en BootCamp** au sein de l'organisme
|
||||||
de formation DataScientest.
|
de formation DataScientest.
|
||||||
|
|
||||||
Le présent document présentera principalement le projet étudié lors de cette
|
Le présent document abordera principalement le projet étudié lors de cette
|
||||||
formation. Nous commencerons par faire la corrélation entre les compétences
|
formation. Nous commencerons par faire la corrélation entre les compétences
|
||||||
attendues pour le *Titre Professionnel Administrateur Système DevOps* et le(s)
|
attendues pour le *Titre Professionnel Administrateur Système DevOps* et le(s)
|
||||||
projet(s) présenté(s) dans ce dossier. Après quoi nous continuerons avec le
|
projet(s) présenté(s) dans ce dossier. Après quoi nous continuerons avec le
|
||||||
cahier des charges et les spécifications techniques de ce(s) dernier(s). \
|
cahier des charges et les spécifications techniques de ce(s) dernier(s). \
|
||||||
Nous continuerons en expliquant la démarche suivie pour accomplir le projet,
|
Nous continuerons en expliquant la démarche suivie pour accomplir le projet,
|
||||||
quelques réalisations effectuées et d'une situation de travail qui mérite
|
quelques réalisations effectuées ainsi qu'une situation de travail qui mérite
|
||||||
d'être relevée.
|
d'être relevée.
|
||||||
|
|
||||||
Mais avant tout, nous tenons à présenter nos remerciements à quelques personnes.
|
**Conventions typographiques**
|
||||||
|
|
||||||
## Conventions typographiques
|
|
||||||
|
|
||||||
Ce document suit certaines conventions de mise en forme pour faciliter la
|
Ce document suit certaines conventions de mise en forme pour faciliter la
|
||||||
lecture :
|
lecture :
|
||||||
|
@ -6,55 +6,44 @@
|
|||||||
**précieuse**, sa **présence d'esprit** et son **exceptionnelle
|
**précieuse**, sa **présence d'esprit** et son **exceptionnelle
|
||||||
intelligence** : MERCI !
|
intelligence** : MERCI !
|
||||||
|
|
||||||
## À l'organisme de formation DataScientest
|
## Via l'organisme de formation DataScientest
|
||||||
|
|
||||||
Nous avons parfois besoin d'un coup de pouce pour rejoindre les rails d'une
|
Je remercie **l'ensemble de l'équipe DataScientest** pour leur patience et
|
||||||
autre ligne. C'est ce que permet l'organisme de formation **DataScientest**
|
leur savoir-vivre au regard de mes nombreux retours sur les cours, les examens
|
||||||
au travers de ses nombreux parcours proposés aux personnes qui, comme moi,
|
et les machines virtuelles fournies.
|
||||||
souhaitent **changer de métier**.
|
|
||||||
|
|
||||||
Je remercie particulièrement les personnes suivantes pour leur **écoute**,
|
Une mention toute particulière aux personnes suivantes pour leur **écoute**,
|
||||||
leur **professionnalisme** et leur souci de réponses claires :
|
leur **professionnalisme** et leur souci de réponses claires :
|
||||||
|
|
||||||
* Sarah \textsc{Bouras},
|
* Sarah \textsc{Bouras},
|
||||||
* Benjamin \textsc{Fiche},
|
* Benjamin \textsc{Fiche},
|
||||||
* et Jérémie \textsc{Tarot}.
|
* et Jérémie \textsc{Tarot}.
|
||||||
|
|
||||||
Je remercie également **l'ensemble de l'équipe DataScientest** pour leur
|
Aux **membres de l'équipe DevU42** qui, malgré les **difficultés**, une **vie
|
||||||
patience et leur savoir-vivre au regard de mes nombreux retours sur les cours,
|
sociale et familiale** prenante, des **obligations** et des
|
||||||
les examens et les machines virtuelles fournies.
|
**responsabilités** ont donné ce qu'ils pouvaient :
|
||||||
|
|
||||||
## À l'équipe DevU42
|
|
||||||
|
|
||||||
Chaque membre de l'équipe a ses **difficultés**, une **vie sociale et
|
|
||||||
familiale** prenante, des **obligations** et des **responsabilités** à côté de
|
|
||||||
la formation. Et pourtant ils ont donné ce qu'ils pouvaient.
|
|
||||||
|
|
||||||
Merci à :
|
|
||||||
|
|
||||||
* Hrubech \textsc{Hombessa},
|
* Hrubech \textsc{Hombessa},
|
||||||
* Eliel \textsc{Moncada},
|
* Eliel \textsc{Moncada},
|
||||||
* et Julien \textsc{Sabiols}.
|
* et Julien \textsc{Sabiols}.
|
||||||
|
|
||||||
J'imagine que derrière chaque personne il y a également **un ou une partenaire
|
J'imagine que derrière chacune de ces personnes il y a également **un ou une
|
||||||
de vie**. Vous méritez de figurer dans ces lignes et d'avoir un grand
|
partenaire de vie**. Vous méritez de figurer dans ces lignes et d'avoir un
|
||||||
MERCI !
|
grand MERCI !
|
||||||
|
|
||||||
## Aux membres de la « cohorte »
|
Aux **membres de la « cohorte »** que je tiens à remercier. À
|
||||||
|
ceux qui ont participé aux discussions, qui ont voulu échanger, qui ont
|
||||||
|
accepté de répondre à des questions, qui ont partagé des difficultés ou encore
|
||||||
|
des solutions et qui étaient eux-mêmes finalement.
|
||||||
|
|
||||||
Je tiens à remercier également **l'ensemble des membres de la cohorte**. À
|
Une mention aux personnes suivantes :
|
||||||
ceux qui ont participé aux discussions, à ceux qui ont bien voulu échanger,
|
|
||||||
à ceux qui ont accepté de répondre à des questions, à ceux qui ont partagé
|
|
||||||
des difficultés ou encore des solutions, à ceux qui étaient eux-mêmes.
|
|
||||||
|
|
||||||
Une mention particulière aux personnes suivantes :
|
|
||||||
|
|
||||||
* à Maxime \textsc{Boulanghien},
|
* à Maxime \textsc{Boulanghien},
|
||||||
* à Michael \textsc{Lachand},
|
* à Michael \textsc{Lachand},
|
||||||
* à Philippe \textsc{Risser-Maroix},
|
* à Philippe \textsc{Risser-Maroix},
|
||||||
* et à Dorian \textsc{Roly}.
|
* et à Dorian \textsc{Roly}.
|
||||||
|
|
||||||
## Et les autres
|
## Et d'autres encore !
|
||||||
|
|
||||||
D'autres personnes n'ayant aucun lien avec cette formation ont pourtant
|
D'autres personnes n'ayant aucun lien avec cette formation ont pourtant
|
||||||
participé à leur façon. Je tiens à remercier notamment Grégoire
|
participé à leur façon. Je tiens à remercier notamment Grégoire
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
\newpage
|
||||||
|
|
||||||
# Liste de compétences couvertes par le projet
|
# Liste de compétences couvertes par le projet
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
@ -18,7 +18,7 @@ contraintes attenantes.
|
|||||||
2017, située sur Paris et proposant **plus de 18 formations différentes**,
|
2017, située sur Paris et proposant **plus de 18 formations différentes**,
|
||||||
dont *Administrateur Système DevOps*.
|
dont *Administrateur Système DevOps*.
|
||||||
|
|
||||||
Plusieurs formats de formation existent parmi **Bootcamp**, continu et en
|
Plusieurs formats de formation existent parmi **Bootcamp**, continue et en
|
||||||
alternance. **Ce projet est un exercice de fin de formation** proposé à tous
|
alternance. **Ce projet est un exercice de fin de formation** proposé à tous
|
||||||
les élèves de la « cohorte » (équivalent d'une classe).
|
les élèves de la « cohorte » (équivalent d'une classe).
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ puisse **apprendre par la pratique**.
|
|||||||
|
|
||||||
On imagine facilement le cadre :
|
On imagine facilement le cadre :
|
||||||
|
|
||||||
> Une entreprise ayant une application de gestion d'utilisateur souhaite
|
> Une entreprise ayant une application de gestion d'utilisateurs souhaite
|
||||||
> déployer et faire évoluer son service en favorisant les bonnes pratiques
|
> déployer et faire évoluer son service en favorisant les bonnes pratiques
|
||||||
> suivies dans la culture DevOps.
|
> suivies dans la culture DevOps.
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ locale du **proxy Traefik** configuré pour utiliser Docker.
|
|||||||
Ces éléments sont un **bon point de départ pour l'équipe de DevOps** qui
|
Ces éléments sont un **bon point de départ pour l'équipe de DevOps** qui
|
||||||
prendra connaissance des particularités de cette application.
|
prendra connaissance des particularités de cette application.
|
||||||
|
|
||||||
### Points d'attentions
|
### Points d'attention
|
||||||
|
|
||||||
La **partie Frontend** permet de générer des fichiers dits
|
La **partie Frontend** permet de générer des fichiers dits
|
||||||
« statiques », du **serverless** est envisageable. L'application,
|
« statiques », du **serverless** est envisageable. L'application,
|
||||||
@ -60,13 +60,16 @@ bien que faisant des appels à une API, fonctionne de manière **autonome**. Ce
|
|||||||
qui, a priori, facilite la préparation pour un déploiement. Cependant les
|
qui, a priori, facilite la préparation pour un déploiement. Cependant les
|
||||||
développeurs de l'application utilisent **un nom de domaine inscrit en dur
|
développeurs de l'application utilisent **un nom de domaine inscrit en dur
|
||||||
dans le fichier Dockerfile**, ce qui peut compliquer un déploiement sur
|
dans le fichier Dockerfile**, ce qui peut compliquer un déploiement sur
|
||||||
plusieurs domaines et environnements.
|
plusieurs domaines et environnements. En effet, une fois l'image Docker
|
||||||
|
compilée, il sera impossible de changer le nom de domaine. Déployer une telle
|
||||||
|
image limite donc l'usage à un seul domaine. Si on souhaite déployer sur
|
||||||
|
plusieurs domaines (pour un environnement de pré-production et un
|
||||||
|
environnement de production par exemple), il faudra faire une image Docker par domaine !
|
||||||
|
|
||||||
La **partie backend** s'appuie sur une base de données de type PostgreSQL. Elle
|
La **partie backend** s'appuie sur une base de données de type PostgreSQL. Elle
|
||||||
est donc **dépendante de la BDD**.
|
est donc **dépendante de la BDD**.
|
||||||
|
|
||||||
La **partie proxy** utilise actuellement **Traefik comme outil**. Ce qui n'est
|
La **partie proxy** utilise actuellement **Traefik comme outil**.
|
||||||
pas une obligation d'usage pour un déploiement en production.
|
|
||||||
|
|
||||||
Ces trois parties ont une influence sur le choix de l'infrastructure à mettre
|
Ces trois parties ont une influence sur le choix de l'infrastructure à mettre
|
||||||
en place. Il reste cependant une **marge de manœuvre sur la partie proxy**. En
|
en place. Il reste cependant une **marge de manœuvre sur la partie proxy**. En
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
\newpage
|
|
||||||
|
|
||||||
# Démarche suivie {#demarche}
|
# Démarche suivie {#demarche}
|
||||||
|
|
||||||
La réalisation de ce projet va plus loin que la simple mise en place d'une
|
La réalisation de ce projet va plus loin que la simple mise en place d'une
|
||||||
@ -20,9 +18,9 @@ notamment par :
|
|||||||
|
|
||||||
* des **comptes-rendus journaliers rapides de 10mn** en respectant les points
|
* des **comptes-rendus journaliers rapides de 10mn** en respectant les points
|
||||||
suivants :
|
suivants :
|
||||||
* ce que j'ai fait hier,
|
* « *ce que j'ai fait hier* »,
|
||||||
* ai-je rencontré un/des problème(s) qui vaut(valent) d'être cité(s),
|
* « *ai-je rencontré un/des problème(s) qui vaut(valent) d'être cité(s)* »,
|
||||||
* ce que je compte faire aujourd'hui,
|
* « *ce que je compte faire aujourd'hui* »,
|
||||||
* la **création de jalons** avec un ensemble de tâches sur une période d'une
|
* la **création de jalons** avec un ensemble de tâches sur une période d'une
|
||||||
semaine,
|
semaine,
|
||||||
* des échanges réguliers en **pair-programming** sur des sujets difficiles
|
* des échanges réguliers en **pair-programming** sur des sujets difficiles
|
||||||
@ -193,7 +191,7 @@ fait donc un outil de choix pour notre projet.
|
|||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
#### Base de connaissance
|
#### Base de connaissances
|
||||||
|
|
||||||
Une des premières choses qui a été faite sur cette plateforme a été la **mise
|
Une des premières choses qui a été faite sur cette plateforme a été la **mise
|
||||||
en place d'une base de connaissances** sous la forme d'un Wiki.
|
en place d'une base de connaissances** sous la forme d'un Wiki.
|
||||||
|
@ -189,8 +189,6 @@ dépôt initial (celui de l'application par exemple). Et cela **laisse la
|
|||||||
responsabilité aux personnes suivantes** (qui utilisent le dépôt initial) plutôt
|
responsabilité aux personnes suivantes** (qui utilisent le dépôt initial) plutôt
|
||||||
qu'aux personnes qui s'occupent du code dans le dépôt initial.
|
qu'aux personnes qui s'occupent du code dans le dépôt initial.
|
||||||
|
|
||||||
\newpage
|
|
||||||
|
|
||||||
## Réalisation 2 : États Terraform
|
## Réalisation 2 : États Terraform
|
||||||
|
|
||||||
### Contexte
|
### Contexte
|
||||||
@ -274,8 +272,6 @@ commandes make et qu'ils vérifient l'existence et le contenu du fichier
|
|||||||
|
|
||||||
S'ajoute à cela une **documentation dans le fichier README.md**.
|
S'ajoute à cela une **documentation dans le fichier README.md**.
|
||||||
|
|
||||||
\newpage
|
|
||||||
|
|
||||||
Exemple de script avec **make init** pour bien comprendre de quoi il est
|
Exemple de script avec **make init** pour bien comprendre de quoi il est
|
||||||
question :
|
question :
|
||||||
|
|
||||||
@ -306,6 +302,8 @@ terraform init \
|
|||||||
-backend-config=${BACKEND_HTTP_FILE} $@
|
-backend-config=${BACKEND_HTTP_FILE} $@
|
||||||
```
|
```
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
Et le contenu du fichier **env.example**, partagé aux développeurs comme d'un
|
Et le contenu du fichier **env.example**, partagé aux développeurs comme d'un
|
||||||
template pour fabriquer le fichier **.env** :
|
template pour fabriquer le fichier **.env** :
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ https://blog.stephane-robert.info/docs/#la-roadmap), j'ai pu établir des
|
|||||||
* le **sujet de la virtualisation**,
|
* le **sujet de la virtualisation**,
|
||||||
* **le GitOps avec** un outil tel que **FluxCD**.
|
* **le GitOps avec** un outil tel que **FluxCD**.
|
||||||
|
|
||||||
{width=100%}
|
\textsc{Robert}](./media/screenshot_stephane-robert.png){width=100%}
|
||||||
|
|
||||||
### Recherches
|
### Recherches
|
||||||
@ -144,8 +144,9 @@ https://odtre.gitlab.io/doc/virtualisation/.
|
|||||||
plusieurs systèmes d'exploitation** avant de les adopter et les déployer sur
|
plusieurs systèmes d'exploitation** avant de les adopter et les déployer sur
|
||||||
notre infrastructure.
|
notre infrastructure.
|
||||||
|
|
||||||
{width=100%}
|
odtre.gitlab.io généré sur Gitlab](
|
||||||
|
./media/screenshot_odtre_doc_shadow.png){width=100%}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
@ -169,7 +170,7 @@ Cf. https://fluxcd.io/flux/installation/bootstrap/ pour se mettre à jour
|
|||||||
Comme auparavant, ceci a donné lieu à **la rédaction d'un article sur notre
|
Comme auparavant, ceci a donné lieu à **la rédaction d'un article sur notre
|
||||||
outil de retranscription**, Cf. https://odtre.gitlab.io/doc/fluxcd/.
|
outil de retranscription**, Cf. https://odtre.gitlab.io/doc/fluxcd/.
|
||||||
|
|
||||||
{width=100%}
|
officiel](./media/screenshot_fluxcd-doc.png){width=100%}
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
\newpage
|
|
||||||
|
|
||||||
# Conclusion
|
# Conclusion
|
||||||
|
|
||||||
Ma **passion anticipée pour l'automatisation** et l'**amélioration des
|
Ma **passion anticipée pour l'automatisation** et l'**amélioration des
|
||||||
|
BIN
media/screenshot_odtre_doc_shadow.png
Normal file
BIN
media/screenshot_odtre_doc_shadow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
Loading…
Reference in New Issue
Block a user