Skip to content
Snippets Groups Projects
Commit bb8ab695 authored by dimitri.lizzi's avatar dimitri.lizzi
Browse files

write synthesis

parent b3a04ade
Branches
No related tags found
No related merge requests found
No preview for this file type
......@@ -35,9 +35,9 @@ demande, pour une utilisation dans le cadre d’une école d’informatique. À
l’utilisateur peut choisir quel système il souhaite utiliser dans une liste prédéfinie. Il est aussi possible de définir
une liste de personnalisations qui permettent de configurer ce système, comme par exemple l’installation de certains
logiciels ou une configuration de réseau spécifique. La première fois qu’un système d’exploitation est choisi, une image
contenant les données du système d’exploitation est téléchagée depuis un serveur central. Cette image est déployée sur
contenant les données du système d’exploitation est téléchargée depuis un serveur central. Cette image est déployée sur
le disque dur pour permettre son utilisation. Une copie de l’image est aussi sauvegardée dans un cache situé à la fin du
disque dur, dans un format compressé, pour permettre de ne plus avoir à la téléchager à nouveau les prochaines fois
disque dur, dans un format compressé, pour permettre de ne plus avoir à la télécharger à nouveau les prochaines fois
qu’elle devra être installée. Une fois le déploiement terminé, les personnalisations choisies sont appliquées, puis le
système choisi est démarré et est utilisable jusqu’à l’extinction de l’ordinateur. Au prochain démarrage, un nouveau
système d’exploitation sera de nouveau déployé. Ce mode de fonctionnement permet aux élèves de l’école de toujours
......
......@@ -1879,12 +1879,82 @@ de personnalisation, avec un exemple type simple.**
## Synthèse du travail effectué
Le travail initial a été récupéré, analysé, documenté et remis en
fonctionnement en corrigeant quelques problèmes dans les fichiers de
configuration et les scripts de déploiement. L'outil _Vagrant_ a été
utilisé pour automatiser la création d'un serveur virtuel qui exécute
les différents services du système.
Le système a été ensuite modifié pour le rendre compatible avec les
ordinateurs modernes utilisant le standard !!acronym{UEFI} au lieu d'un
!!acronym{BIOS}.
Des mesures ont été effectuées pour déterminer si le choix du protocole
!!acronym{NFS}, le protocole réseau utilisé pour transférer les images,
était pertinent. Il été comparé aux protocoles !!acronym{SCP},
!!acronym{HTTP}, !!acronym{FTP}, !!acronym{NFS}, !!acronym{SMB} et
!!acronym{IPFS} en mesurant le temps de transfert d'une image. Ces
mesures ont montré que les temps de déploiement avec ces différents
protocoles étaient similaires, à l'exception d'!!acronym{IPFS} qui
prenait beaucoup plus de temps. Le protocole !!acronym{NFS} a donc été
gardé car les mesures ont prouvé que ses performances étaient similaires
à ses alternatives.
Un format d'images alternatif aux images brutes compressées a été
recherché. Une solution produisant des images plus petites et
déployables plus rapidement a été trouvée: utiliser des images produites
avec l'outil _Clonezilla_. Cet outil permet aussi de faciliter la
création d'images en utilisant sa version _live_. Des mesures prouvant
que ce système de déploiement d'images offre un réel avantage en espace
utilisé et en temps de déploiement par rapport aux images brutes
compressées.
Le système d'exploitation utilisé pour effectuer le déploiement a été
complètement remplacé. Initialement construit avec _Buildroot_, avec un
système de fichiers racine chargé entièrement en mémoire, il a été
remplacé par un système _Debian_ dont le système de fichiers racine est
monté depuis un partage !!acronym{NFS} en lecture seule. Ce système
permet une installation aisée de tous les paquets _Debian_, notamment
_Clonezilla_ qui était compliqué à installer sur un système construit
avec _Buildroot_. La création de ce système d'exploitation a été
automatisée et encapsulée dans un conteneur _Docker_ pour rendre sa
modification et reconstruction très simple, indépendamment du système
d'exploitation utilisé.
Les scripts de déploiement du système initial ont été réécrits. Une
gestion avancée des erreurs a été implémentée. Un système de mesure et
d'affichage du temps d'exécution de chaque partie du déploiement a été
développé. La génération de fichiers de log a été améliorée pour qu'ils
fournissent plus d'informations utiles et qu'ils soient structurés de
manière à rendre leur gestion et leur consultation plus aisée. Le
déploiement d'images avec _Clonezilla_ a été implémenté, tout en gardant
la possibilité d'utiliser des images brutes compressées pour offrir plus
de flexibilité et permettre de comparer les deux systèmes. Le support
des images de systèmes d'exploitations compatibles !!acronym{UEFI} a
aussi été implémenté, notamment en permettant de déterminer
automatiquement l'exécutable !!acronym{EFI} qui devra être lancé pour
démarrer le système déployé.
Enfin, un système de personnalisation d'un système après son déploiement
a été conçu, permettant de définir des configurations que l'utilisateur
peut choisir de copier ou non sur le système déployé. Une image de
système d'exploitation peut être conçue pour exécuter les fichiers
copiés par ces personnalisations dans un dossier spécifique, pour
permettre des configurations complexes exécutées lors du démarrage avec
un outil choisi, par exemple _Ansible_. Ce système offre beaucoup de
flexibilité et permet de définir des configurations avancées tout en
gardant le système de déploiement indépendant de ce qui est utilisé pour
les exécuter, car le seul mécanisme présent dans le système de
déploiement est la copie de fichiers sur une partition donnée.
## Points d'amélioration
## Retour personnel sur la manière dont le travail s'est effectué
!!ifdef{PANDOC_PDF}
# References
# Références
**TODO: add references**
......
......@@ -1992,8 +1992,78 @@ de personnalisation, avec un exemple type simple.**
## Synthèse du travail effectué
Le travail initial a été récupéré, analysé, documenté et remis en
fonctionnement en corrigeant quelques problèmes dans les fichiers de
configuration et les scripts de déploiement. L'outil _Vagrant_ a été
utilisé pour automatiser la création d'un serveur virtuel qui exécute
les différents services du système.
Le système a été ensuite modifié pour le rendre compatible avec les
ordinateurs modernes utilisant le standard <abbr title="Unified Extensible Firmware Interface: interface micrologicielle extensible unifiée ">UEFI</abbr> au lieu d'un
<abbr title="Basic Input Output System: système de base d’entrée sortie ">BIOS</abbr>.
Des mesures ont été effectuées pour déterminer si le choix du protocole
<abbr title="Network File System: système de fichiers en réseau ">NFS</abbr>, le protocole réseau utilisé pour transférer les images,
était pertinent. Il été comparé aux protocoles <abbr title="Secure CoPy: protocole de copie sécurisée sur le réseau ">SCP</abbr>,
<abbr title="HyperText Transfer Protocol: protocole de transfert hypertexte ">HTTP</abbr>, <abbr title="File Transfer Protocol: protocole de transfert de fichier ">FTP</abbr>, <abbr title="Network File System: système de fichiers en réseau ">NFS</abbr>, <abbr title="Server Message Block ">SMB</abbr> et
<abbr title="InterPlanetary File System: système de fichier inter-planétaire ">IPFS</abbr> en mesurant le temps de transfert d'une image. Ces
mesures ont montré que les temps de déploiement avec ces différents
protocoles étaient similaires, à l'exception d'<abbr title="InterPlanetary File System: système de fichier inter-planétaire ">IPFS</abbr> qui
prenait beaucoup plus de temps. Le protocole <abbr title="Network File System: système de fichiers en réseau ">NFS</abbr> a donc été
gardé car les mesures ont prouvé que ses performances étaient similaires
à ses alternatives.
Un format d'images alternatif aux images brutes compressées a été
recherché. Une solution produisant des images plus petites et
déployables plus rapidement a été trouvée: utiliser des images produites
avec l'outil _Clonezilla_. Cet outil permet aussi de faciliter la
création d'images en utilisant sa version _live_. Des mesures prouvant
que ce système de déploiement d'images offre un réel avantage en espace
utilisé et en temps de déploiement par rapport aux images brutes
compressées.
Le système d'exploitation utilisé pour effectuer le déploiement a été
complètement remplacé. Initialement construit avec _Buildroot_, avec un
système de fichiers racine chargé entièrement en mémoire, il a été
remplacé par un système _Debian_ dont le système de fichiers racine est
monté depuis un partage <abbr title="Network File System: système de fichiers en réseau ">NFS</abbr> en lecture seule. Ce système
permet une installation aisée de tous les paquets _Debian_, notamment
_Clonezilla_ qui était compliqué à installer sur un système construit
avec _Buildroot_. La création de ce système d'exploitation a été
automatisée et encapsulée dans un conteneur _Docker_ pour rendre sa
modification et reconstruction très simple, indépendamment du système
d'exploitation utilisé.
Les scripts de déploiement du système initial ont été réécrits. Une
gestion avancée des erreurs a été implémentée. Un système de mesure et
d'affichage du temps d'exécution de chaque partie du déploiement a été
développé. La génération de fichiers de log a été améliorée pour qu'ils
fournissent plus d'informations utiles et qu'ils soient structurés de
manière à rendre leur gestion et leur consultation plus aisée. Le
déploiement d'images avec _Clonezilla_ a été implémenté, tout en gardant
la possibilité d'utiliser des images brutes compressées pour offrir plus
de flexibilité et permettre de comparer les deux systèmes. Le support
des images de systèmes d'exploitations compatibles <abbr title="Unified Extensible Firmware Interface: interface micrologicielle extensible unifiée ">UEFI</abbr> a
aussi été implémenté, notamment en permettant de déterminer
automatiquement l'exécutable <abbr title="Extensible Firmware Interface: interface micrologicielle extensible unifiée ">EFI</abbr> qui devra être lancé pour
démarrer le système déployé.
Enfin, un système de personnalisation d'un système après son déploiement
a été conçu, permettant de définir des configurations que l'utilisateur
peut choisir de copier ou non sur le système déployé. Une image de
système d'exploitation peut être conçue pour exécuter les fichiers
copiés par ces personnalisations dans un dossier spécifique, pour
permettre des configurations complexes exécutées lors du démarrage avec
un outil choisi, par exemple _Ansible_. Ce système offre beaucoup de
flexibilité et permet de définir des configurations avancées tout en
gardant le système de déploiement indépendant de ce qui est utilisé pour
les exécuter, car le seul mécanisme présent dans le système de
déploiement est la copie de fichiers sur une partition donnée.
## Points d'amélioration
## Retour personnel sur la manière dont le travail s'est effectué
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment