P22 Nuage pour sites Web : Différence entre versions
(→Présentation Générale du Projet) |
|||
(7 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 5 : | Ligne 5 : | ||
La démocratisation de l'informatique nous permet aujourd'hui d'autohéberger son propre site web et ses services. Cependant tout le monde n'a pas les connaissances nécessaires pour installer et maintenir un tel système. | La démocratisation de l'informatique nous permet aujourd'hui d'autohéberger son propre site web et ses services. Cependant tout le monde n'a pas les connaissances nécessaires pour installer et maintenir un tel système. | ||
− | La légèreté et la gratuité de projets basés sur des méthodes professionnelles permet de faire tourner un serveur à moindre coût. | + | La légèreté et la gratuité de projets basés sur des méthodes professionnelles permet de faire tourner un serveur à moindre coût. |
====''Objectif''==== | ====''Objectif''==== | ||
Installer une infrastructure infonuagique pour la création de sites Web école. | Installer une infrastructure infonuagique pour la création de sites Web école. | ||
+ | Ce projet se propose ici de fournir une solution d'hébergement de sites web simple, sécurisé et extensible. La solution proposée pour le réaliser est l'utilisation de conteneurs. | ||
====''Description du projet''==== | ====''Description du projet''==== | ||
+ | |||
+ | Un utilisateur souhaitant créer son site web pourra se connecter sur le serveur de l'école. Il accedera à une page web lui proposant de sélectionner différents paramètres pour son site (base de données BDD, langage script, ...). Sur le serveur école sera alors créé un conteneur logiciel correspondant à ces critères. | ||
+ | |||
+ | Un conteneur est une structure pouvant regrouper des données, des bibliothèques ou des applications. Le conteneur se lance comme un processus et utilise le système hôte contrairement aux machines virtuelles. Chaque conteneur est indépendant. L'application qu'il héberge peut donc être démarrée, mise à jour ou arrêtée au besoin. Ce système est plus léger et plus facile à gérer qu'une machine virtuelle ou des virtualhost. | ||
La mise à disposition de l'infrastructure s'articule sur trois plans : | La mise à disposition de l'infrastructure s'articule sur trois plans : | ||
− | + | * L'installation d'un système de conteneur. | |
− | + | * Le développement d'une interface utilisateur pour le choix et la création de son site web/conteneur. | |
− | + | * La gestion de l'accès au serveur pour chaque utilisateur. | |
+ | |||
+ | |||
+ | == Compte Rendu == | ||
+ | |||
+ | ====''Semaine 1''==== | ||
+ | |||
+ | * Premier entretien avec Mr.Redon | ||
+ | * Délimitation du sujet | ||
+ | * Recherche des solutions possibles | ||
+ | |||
+ | ====''Semaine 2''==== | ||
+ | |||
+ | * Création d'une machine virtuelle de test | ||
+ | * Comparatif des container runtime | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! !! Utilisation d'un daemon centralisé !! Comptabilité des images !! Installation facile sur le serveur école (Debian) !! Utilisation !! Sécurité !! Ressources | ||
+ | |- | ||
+ | | Docker | ||
+ | | Oui | ||
+ | | docker images | ||
+ | | Dépôt officiel | ||
+ | | applications, commandes simples, configuration limitée | ||
+ | | Téléchargement et vérification automatiques, usage en tant que root | ||
+ | | | ||
+ | |- | ||
+ | | rkt | ||
+ | | non | ||
+ | | docker images, OCI images | ||
+ | | Dépôt unstable ou installation .deb | ||
+ | | applications, commandes simples, configuration facile | ||
+ | | Téléchargement et vérification automatiques | ||
+ | | | ||
+ | |- | ||
+ | | runC | ||
+ | | non | ||
+ | | OCI images | ||
+ | | Dépôt officiel (installé avec Docker v1.11) | ||
+ | | applications, commandes complexes, compréhension détaillé du système | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | LXC/LXD | ||
+ | | oui | ||
+ | | OCI images, full system operating images | ||
+ | | Dépôt officiel | ||
+ | | OS complets, commandes simples, configuration complexes | ||
+ | | Téléchargement et vérification automatiques (uniquement pour OS complet) | ||
+ | | | ||
+ | |- | ||
+ | | systemd-nspawn | ||
+ | | non | ||
+ | | OCI images, full system operating images | ||
+ | | Inclus avec systemd | ||
+ | | applications et OS complets | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | D'après les premiers résultats, rkt semble être la solution la plus adéquat pour ce projet. Il reste à vérifier la facilité d'accès au namespace et réseau virtuel pour acceder à chaque conteneur. | ||
+ | |||
+ | ====''Semaine 3''==== | ||
+ | |||
+ | * Installation de rkt sur Debian | ||
+ | * Création de container avec rkt | ||
+ | * Configuration du reverse proxy Nginx | ||
+ | * Utilisation de Nginx en conteneur ou sur la machine hôte à discuter | ||
+ | |||
+ | ====''Semaine 4''==== | ||
+ | |||
+ | * Migration des machines virtuelles de test vers le serveur école | ||
+ | * Installation de Debian et rkt | ||
+ | * Configuration réseau | ||
+ | |||
+ | ====''Semaine 5''==== | ||
+ | |||
+ | * Configuration du nom de domaine | ||
+ | * Problème de résolution de nom des conteneurs | ||
+ | * Utilisation de rkt pour monter des volumes de l'hôte vers le conteneur | ||
+ | |||
+ | ====''Semaine 6''==== | ||
+ | |||
+ | * Création de script de redemarrage des conteneurs | ||
+ | * Installation de ACbuild pour créer des conteneurs sur mesure | ||
+ | |||
+ | ====''Semaine 7''==== | ||
+ | [[Fichier:Rapport_PFE_final_GuillaumeVILLEMONT.pdf]] |
Version actuelle datée du 25 février 2017 à 19:36
Sommaire
Présentation Générale du Projet
Contexte
La démocratisation de l'informatique nous permet aujourd'hui d'autohéberger son propre site web et ses services. Cependant tout le monde n'a pas les connaissances nécessaires pour installer et maintenir un tel système.
La légèreté et la gratuité de projets basés sur des méthodes professionnelles permet de faire tourner un serveur à moindre coût.
Objectif
Installer une infrastructure infonuagique pour la création de sites Web école. Ce projet se propose ici de fournir une solution d'hébergement de sites web simple, sécurisé et extensible. La solution proposée pour le réaliser est l'utilisation de conteneurs.
Description du projet
Un utilisateur souhaitant créer son site web pourra se connecter sur le serveur de l'école. Il accedera à une page web lui proposant de sélectionner différents paramètres pour son site (base de données BDD, langage script, ...). Sur le serveur école sera alors créé un conteneur logiciel correspondant à ces critères.
Un conteneur est une structure pouvant regrouper des données, des bibliothèques ou des applications. Le conteneur se lance comme un processus et utilise le système hôte contrairement aux machines virtuelles. Chaque conteneur est indépendant. L'application qu'il héberge peut donc être démarrée, mise à jour ou arrêtée au besoin. Ce système est plus léger et plus facile à gérer qu'une machine virtuelle ou des virtualhost.
La mise à disposition de l'infrastructure s'articule sur trois plans :
- L'installation d'un système de conteneur.
- Le développement d'une interface utilisateur pour le choix et la création de son site web/conteneur.
- La gestion de l'accès au serveur pour chaque utilisateur.
Compte Rendu
Semaine 1
- Premier entretien avec Mr.Redon
- Délimitation du sujet
- Recherche des solutions possibles
Semaine 2
- Création d'une machine virtuelle de test
- Comparatif des container runtime
Utilisation d'un daemon centralisé | Comptabilité des images | Installation facile sur le serveur école (Debian) | Utilisation | Sécurité | Ressources | |
---|---|---|---|---|---|---|
Docker | Oui | docker images | Dépôt officiel | applications, commandes simples, configuration limitée | Téléchargement et vérification automatiques, usage en tant que root | |
rkt | non | docker images, OCI images | Dépôt unstable ou installation .deb | applications, commandes simples, configuration facile | Téléchargement et vérification automatiques | |
runC | non | OCI images | Dépôt officiel (installé avec Docker v1.11) | applications, commandes complexes, compréhension détaillé du système | ||
LXC/LXD | oui | OCI images, full system operating images | Dépôt officiel | OS complets, commandes simples, configuration complexes | Téléchargement et vérification automatiques (uniquement pour OS complet) | |
systemd-nspawn | non | OCI images, full system operating images | Inclus avec systemd | applications et OS complets |
D'après les premiers résultats, rkt semble être la solution la plus adéquat pour ce projet. Il reste à vérifier la facilité d'accès au namespace et réseau virtuel pour acceder à chaque conteneur.
Semaine 3
- Installation de rkt sur Debian
- Création de container avec rkt
- Configuration du reverse proxy Nginx
- Utilisation de Nginx en conteneur ou sur la machine hôte à discuter
Semaine 4
- Migration des machines virtuelles de test vers le serveur école
- Installation de Debian et rkt
- Configuration réseau
Semaine 5
- Configuration du nom de domaine
- Problème de résolution de nom des conteneurs
- Utilisation de rkt pour monter des volumes de l'hôte vers le conteneur
Semaine 6
- Création de script de redemarrage des conteneurs
- Installation de ACbuild pour créer des conteneurs sur mesure