L’un des principes que nous avons tenu à mettre en place dans le cadre de notre projet est de conteneuriser nos applications. La conteneurisation est une technique qui consiste à encapsuler des applications dans des unités indépendantes et isolées. Cela permet un déploiement rapide, et plus de sécurité. Cela nous permet une plus grande modularité, puisque l’installation qui était autrefois fastidieuse, et qui impactait l’environnement du système, n’est plus nécessaire. Pour déployer une application, il suffit d’une seule commande, ou d’un bloc dans un fichier YAML. Le paquet que nous utilisons est Docker, qui est un service de conteneurisation assez répandu. Dans le cadre de notre projet, la conteneurisation a été mise en place, de façon à ce que tous les services nécessaires soient instantiables (puissent être démarrés) d’une seule commande. Voici les services qui sont en production, et qui sont tous démarrés en tant que conteneurs :
Pour démarrer ces services d’une seule commande, nous utilisons Docker Compose. Docker Compose est un outil qui permet de déployer des conteneurs, et de les configurer dans un fichier YAML. Le fichier YAML de configuration utilisé pour notre projet est proposé en annexe 6.
Traefik est un reverse proxy, dont la spécificité est de découvrir les services à fournir depuis le service Docker.
Sa configuration se fait via des tags appliqués aux conteneurs, dans le fichier de Docker Compose. Via ces tags, nous pouvons configurer l’URL qui route sur le service, le port du service, et d’autres paramètres utiles pour un reverse proxy.
Traefik fournit aussi une interface web, qui permet de surveiller le bon fonctionnement du service.
Évidemment, le service de reverse proxy ne fonctionnerait pas pour un utilisateur, sans résolution de nom, il fonctionne donc en union avec le DNS.
Le DNS permet de traduire des noms de domaine en adresses IP. Il est un des fondements d’Internet, et notre projet ne déroge pas à ce principe. Dans le cadre de notre projet, plusieurs ressources nous ont été accordées :
Ces ressources ont été attribuées comme suit :
Service | Adresse | Port |
---|---|---|
Interface de gestion Traefik | cloudstack.chalons.univ-reims.fr | 8080 |
Documentation et rapport de projet | doc.sdn.chalons.univ-reims.fr | 80 |
Gestionnaire de topologie et interface web | sdn.chalons.univ-reims.fr | 80 |
APIs | R[123].api.sdn.chalons.univ-reims.fr | 80 |