IMA4 2018/2019 P30 : Différence entre versions
(Page créée avec « __TOC__ <br style="clear: both;"/> =Présentation générale= ==Description== ==Objectifs== =Analyse du projet= ==Positionnement par rapport à l'existant== ==Analyse... ») |
|||
Ligne 3 : | Ligne 3 : | ||
=Présentation générale= | =Présentation générale= | ||
+ | |||
+ | L'intitulé de mon projet est "Système minimal de gestion de conteneurs", il consiste principalement à automatiser la gestion des conteneurs. | ||
+ | |||
+ | Un conteneur Linux est un ensemble de processus qui sont isolés du reste du système. Un conteneur s'exécute à partir d'une image distincte qui fournit tous les fichiers nécessaires à la prise en charge des processus qu'il contient: | ||
+ | - Les caractéristiques systèmes : taille mémoire maximale, nombre de CPUs utilisés, débit disque maximal etc. | ||
+ | - Une configuration réseau : liste de commutateurs virtuels de rattachement avec leurs adresses. | ||
+ | En fournissant une image qui contient toutes les dépendances d'une application, le conteneur assure donc la portabilité et la cohérence de l'application entre les divers environnements (développement, test puis production). | ||
+ | |||
+ | Les conteneurs sont une solution au problème de la façon dont les logiciels peuvent fonctionner de manière fiable lorsqu'ils sont déplacés d'un environnement informatique à l'autre. Cela pourrait être du portable du développeur à un environnement de test, d'un environnement de test à la production, et peut-être d'une machine physique dans un centre de données à une machine virtuelle dans un cloud privé ou public. | ||
+ | |||
+ | Les avantages majeurs de l'utilisation des conteneurs sont : | ||
+ | - La taille : En effet un conteneur prend quelques dizaines de mégaoctets de taille, contrairement à une VM qui peut prendre plusieurs Gigabytes à cause de son système d'exploitation.Ce qui rend l'utilisation des conteneurs très populaire sur les serveurs qui peuvent en contenir plusieurs. | ||
+ | |||
+ | - Le temps : Une application conteneurisée peut être démarrée instantanément et quand il est nécessaire peut disparaître libérant des ressources sur son hôte tandis que les machines virtuelles peuvent prendre plusieurs minutes pour démarrer leurs systèmes d'exploitation et commencer à exécuter les applications qu'ils hébergent | ||
+ | |||
+ | - La modularité : Plutôt que d'exécuter une application complexe entière dans un seul conteneur, l'application peut être divisée en modules (tels que la base de données, l'interface avant de l'application, etc.) Les applications créées de cette manière sont plus faciles à gérer car chaque module est relativement simple et des modifications peuvent être apportées aux modules sans avoir à reconstruire l'application entière. Étant donné que les conteneurs sont si légers, les modules individuels (ou micro services) ne peuvent être instanciés que lorsqu'ils sont nécessaires et sont disponibles presque immédiatement. | ||
==Description== | ==Description== | ||
+ | |||
+ | |||
+ | |||
+ | |||
==Objectifs== | ==Objectifs== | ||
+ | |||
+ | 1 - Créer un programme shell (qu'on lance dans le contexte d'un conteneur) qui permet d'automatiser la gestion des conteneurs, pour : | ||
+ | - Lancer une instance. | ||
+ | - Lister les instances en cours d'exécution (identifiant, nom de l'image d'origine, temps d'exécution) tout en mettant à jour le fichier des instances (s'il le faut). | ||
+ | - Arrêter une instance, détruire ses ressources réseau tout en conservant son image disque dans un état stable ainsi que ses caractéristiques. | ||
+ | - Suppression d'une instance avec la destruction de son image disque et ses caractéristiques. | ||
+ | 2- Stocker les informations sur les conteneurs qui tournent dans un fichier | ||
+ | |||
+ | 3- Mettre en place une application de test : une architecture de ferme de serveurs Web privée avec un accès par mandataire inverse. Les serveurs Web et le mandataire inverse doivent être des conteneurs. | ||
=Analyse du projet= | =Analyse du projet= |
Version du 25 novembre 2018 à 00:05
Sommaire
Présentation générale
L'intitulé de mon projet est "Système minimal de gestion de conteneurs", il consiste principalement à automatiser la gestion des conteneurs.
Un conteneur Linux est un ensemble de processus qui sont isolés du reste du système. Un conteneur s'exécute à partir d'une image distincte qui fournit tous les fichiers nécessaires à la prise en charge des processus qu'il contient: - Les caractéristiques systèmes : taille mémoire maximale, nombre de CPUs utilisés, débit disque maximal etc. - Une configuration réseau : liste de commutateurs virtuels de rattachement avec leurs adresses. En fournissant une image qui contient toutes les dépendances d'une application, le conteneur assure donc la portabilité et la cohérence de l'application entre les divers environnements (développement, test puis production).
Les conteneurs sont une solution au problème de la façon dont les logiciels peuvent fonctionner de manière fiable lorsqu'ils sont déplacés d'un environnement informatique à l'autre. Cela pourrait être du portable du développeur à un environnement de test, d'un environnement de test à la production, et peut-être d'une machine physique dans un centre de données à une machine virtuelle dans un cloud privé ou public.
Les avantages majeurs de l'utilisation des conteneurs sont : - La taille : En effet un conteneur prend quelques dizaines de mégaoctets de taille, contrairement à une VM qui peut prendre plusieurs Gigabytes à cause de son système d'exploitation.Ce qui rend l'utilisation des conteneurs très populaire sur les serveurs qui peuvent en contenir plusieurs.
- Le temps : Une application conteneurisée peut être démarrée instantanément et quand il est nécessaire peut disparaître libérant des ressources sur son hôte tandis que les machines virtuelles peuvent prendre plusieurs minutes pour démarrer leurs systèmes d'exploitation et commencer à exécuter les applications qu'ils hébergent
- La modularité : Plutôt que d'exécuter une application complexe entière dans un seul conteneur, l'application peut être divisée en modules (tels que la base de données, l'interface avant de l'application, etc.) Les applications créées de cette manière sont plus faciles à gérer car chaque module est relativement simple et des modifications peuvent être apportées aux modules sans avoir à reconstruire l'application entière. Étant donné que les conteneurs sont si légers, les modules individuels (ou micro services) ne peuvent être instanciés que lorsqu'ils sont nécessaires et sont disponibles presque immédiatement.
Description
Objectifs
1 - Créer un programme shell (qu'on lance dans le contexte d'un conteneur) qui permet d'automatiser la gestion des conteneurs, pour :
- Lancer une instance. - Lister les instances en cours d'exécution (identifiant, nom de l'image d'origine, temps d'exécution) tout en mettant à jour le fichier des instances (s'il le faut). - Arrêter une instance, détruire ses ressources réseau tout en conservant son image disque dans un état stable ainsi que ses caractéristiques. - Suppression d'une instance avec la destruction de son image disque et ses caractéristiques.
2- Stocker les informations sur les conteneurs qui tournent dans un fichier
3- Mettre en place une application de test : une architecture de ferme de serveurs Web privée avec un accès par mandataire inverse. Les serveurs Web et le mandataire inverse doivent être des conteneurs.
Analyse du projet
Positionnement par rapport à l'existant
Analyse du premier concurrent
Analyse du second concurrent
Scénario d'usage du produit ou du concept envisagé
Réponse à la question difficile
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Liste des tâches à effectuer
Calendrier prévisionnel
Réalisation du Projet
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 0 |