Déploiement des solutions - Évaluation


Répondez aux questions suivantes :

  • Quel est la différence entre conteneurisation et virtualisation ?
  • Quelle est la différence entre une image et un conteneur ?
  • Qu'est qu'un registry docker ?
  • À quoi sert Docker Hub ?
  • À quoi sert docker-compose ?
  • Citez une alternative à Docker Swarm.
  • Qu'est-ce qu'un reverse proxy ?
  • Qu'est ce qu'une variable d'environnement ?

Vous devez à la fin du TP avoir deux instances du même code (une API toute simple) servis via Express puis par reverse proxy avec Nginx. La configuration de Nginx sera faite en Load Balancing et comportera donc un seul Block Server (Virtual Host) utilisant un algorithme de type Round Robin.
Ces deux serveurs Express recevront des variables d'environnement via Docker ou Docker compose. Qui permettra de changer leurs comportements.

Après avoir eu les informations nécessaires, réalisez les taches suivantes :

Consigne Points
Répondre aux questions 3
Se connecter au VPS 1
Avoir installé Docker 1
Créer un serveur Express 1
Sur la route GET / :
Faite en sorte que votre serveur affiche le hostname sur lequel il tourne
1
Sur cette même route, en fonction d'une variable d'environnement nommé PET :
Si sa valeur est dog : Afficher une image de chien
Si sa valeur est cat : Afficher une image de chat
1
Créer une route GET /pet qui affiche :
Une image de chien ou de chat en fonction de la variable d'environnement
1
Créer un bouton Like qui s'incrémentera et qui sera présent sur toutes les pages 1
Faire en sorte que le serveur se lance en utilisant la commande start 1
Créer un Dockerfile Node qui embarque votre serveur Express puis lance la commande node start 1
Écrire une configuration Nginx qui servira de load-balancer à 2 applications Express 1
Créer un Dockerfile Nginx qui embarque votre configuration et qui ouvre le port 80 de la machine hôte 1
Créer un fichier docker-compose avec :
Un service nginx nommé 'nginx'
Un service express nommé 'front-cat' avec en environnement PET: cat
Un service express nommé 'front-dog' avec en environnement PET: dog
2
Faite en sorte que votre VPS fonctionne et affiche alternativement les deux sites front sur l'url / port 80 2
Modifier votre configuration Nginx pour que le /cat redirige vers front-cat 1
Modifier votre configuration Nginx pour que le /dog redirige vers front-dog 1
[Bonus] Ajouter un registry Docker à votre docker-compose 1
[Bonus] Faites en sorte de sécuriser ce registry 1
[Bonus] Faites en sorte de push votre image docker du front sur ce registry 1
[Bonus] Modifier en conséquence le fichier docker-compose pour qu'il utilise l'image de votre registry 1
[Bonus] Ajouter Portainer avec votre docker-compose 1

Aide :

Install Docker on Ubuntu 18.04: A Step-by-Step Tutorial to Get You Started
Docker is one of the most convenient tools for deploying an application. Improve your project and learn how to install Docker on Ubuntu.
services:
  registry:
    restart: always
    image: registry:2.7
    networks:
      - traefik-public
      - registry-ui-net
    volumes:
      - ./registry-data:/var/lib/registry
Début de configuration du registry
version: '3.6'

services:
  portainer:
    container_name: portainer
    image: portainer/portainer-ce:2.0.0
    hostname: portainer
    command: -H unix:///var/run/docker.sock
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    ports:
      - '9000:9000'

volumes:
  portainer_data:
Début de configuration de portainer