P22 Nuage pour sites Web

De Wiki de Projets IMA

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

Semaine 7

Fichier:Rapport PFE final GuillaumeVILLEMONT.pdf