P23 Application de gestion de conteneurs pour sites Web
Sommaire
Présentation générale du projet
L'objectif du projet est de créer une application web de gestion de conteneurs pour l’hébergement de sites web de manière simple. Cette application pourra notamment permettre à l'utilisateur de choisir un nom de domaine, préciser certaines caractéristiques du conteneur hébergeant le site web, modifier le code source du site, ainsi que lancer ou détruire le conteneur.
Cahier des charges
L'application web sera hébergée sur une machine virtuelle linux qui regroupera tous les conteneurs. Cette machine virtuelle consommera une adresse IPv4 routée qui devra être partagée entre les conteneurs. Les sites web doivent être accessibles en IPv4 et IPv6 et communiquer en HTTP et HTTPS. Aussi les ressources processeur de la machine physique devront être gérées avec le mécanisme des cgroups. Il faut donc prévoir l'architecture réseau permettant la connexion des conteneurs, un ou plusieurs modèle(s) de conteneur capable d'héberger un site web, ainsi que l'architecture le l’application web.
Tableau de bord
- L'architecture système / réseau doit pouvoir permettre de gérer plusieurs conteneurs à la fois tout en ne consommant qu'une adresse ip publique, il faut donc mettre en place une machine virtuelle avec une interface ethernet statique pouvant accueillir les conteneurs. Pour cela l'interface ethernet sera montée sur un bridge sur lequel les conteneurs seront eux-mêmes connecté grâce à une lan virtuelle. Il faudra aussi probablement faire du NAT / PAT (Network Address Translation / Port Address Translation) pour permettre aux conteneurs de communiquer avec l'extérieur. Un système de fichiers cgroup sera créer et monté sur la machine virtuelle afin de gérer les espaces de nommages des conteneurs pour assurer l'isolation de chacun ainsi que de contrôler les ressources utilisés.
- Modèle de l’application web :
- page connexion / authentification permettant aux personnes habilitées d'accéder au site
- base de donnée contenant la liste des personnes pouvant créer un site, et leur(s) site(s) web associé(s)
- page administrateur permettant de vérifier l'état de tous les conteneurs
- possibilité de relancer un conteneur stoppé ou de supprimer un conteneur
- page utilisateur permettant de créer, gérer ou supprimer un conteneur
- l'onglet de création permettra de créer et lancer un conteneur
- choix à proposer lors de la création : type de serveur(s), présence ou non d'une base de donné, nom de domaine, langage utilisé
- l'onglet de gestion permettra de lancé / stoppé un conteneur, modifier le code source d'un site ou supprimer un conteneur