Examens de déploiement

Examen 1 :

Examen de déploiement (Docker, Serveur Web, Serveur FTP, Proxy)

Partie 1: QCM (10 points)

Choisissez la meilleure réponse pour chaque question en cochant la case correspondante.

  1. Qu’est-ce que Docker ?
    a) Un système d’exploitation
    b) Une machine virtuelle
    c) Une plateforme de conteneurisation
    d) Un langage de programmation
  2. Quel protocole est généralement utilisé pour le déploiement d’un site web ?
    a) HTTP
    b) FTP
    c) SMTP
    d) DNS
  3. Quel est le rôle principal d’un serveur FTP ?
    a) Héberger des sites web
    b) Gérer des bases de données
    c) Stocker et partager des fichiers
    d) Fournir des services de messagerie
  4. Quelle est la fonction principale d’un proxy ?
    a) Authentifier les utilisateurs
    b) Gérer le trafic réseau
    c) Héberger des applications web
    d) Stocker des fichiers
  5. Quelle est la différence entre un serveur web et un serveur d’applications ?
    a) Aucune différence, ce sont des termes interchangeables.
    b) Un serveur web gère les requêtes HTTP, tandis qu’un serveur d’applications gère des applications plus complexes.
    c) Un serveur web ne peut pas exécuter de scripts, tandis qu’un serveur d’applications le peut.
    d) Un serveur d’applications est uniquement utilisé pour l’hébergement de bases de données.

Partie 2: Exercices (30 points)

  1. Docker:
    a) Expliquez brièvement ce qu’est Docker et son utilité dans le déploiement d’applications. (10 points)
    b) Donnez un exemple d’une commande Docker pour exécuter un conteneur à partir d’une image spécifique. (10 points)
  2. Serveur Web:
    a) Quelles sont les étapes nécessaires pour déployer un site web statique sur un serveur web ? (5 points)
    b) Quelle est la différence entre les protocoles HTTP et HTTPS ? (5 points)
  3. Serveur FTP:
    a) Expliquez brièvement ce qu’est le protocole FTP et son rôle dans le transfert de fichiers. (10 points)
    b) Donnez un exemple de commande FTP pour télécharger un fichier à partir d’un serveur distant. (5 points)

Partie 3: Problème (30 points)

Vous devez déployer un serveur web sur un système Linux en utilisant Docker. Le serveur web doit héberger un site web dynamique développé en Python avec le framework Flask. Le site web doit pouvoir gérer des connexions simultanées et afficher des données provenant d’une base de données MySQL.

Décrivez les étapes nécessaires pour réaliser ce déploiement en utilisant Docker. Incluez les commandes spécifiques que vous utiliseriez et expliquez brièvement chaque étape. (30 points)

Remarque: La réponse attendue à ce problème devrait inclure des étapes telles que la création d’un Dockerfile, la construction de l’image Docker, le lancement du conteneur, la configuration du serveur Flask et la connexion à la base de données MySQL.

Bonne chance !

Solution

Partie 1: QCM (10 points)

  1. c) Une plateforme de conteneurisation
  2. a) HTTP
  3. c) Stocker et partager des fichiers
  4. b) Gérer le trafic réseau
  5. b) Un serveur web gère les requêtes HTTP, tandis qu’un serveur d’applications gère des applications plus complexes.

Partie 2: Exercices (30 points)

  1. Docker:
    a) Docker est une plateforme de conteneurisation qui permet d’emballer une application et toutes ses dépendances dans un conteneur. Les conteneurs Docker offrent une isolation et une portabilité, facilitant ainsi le déploiement d’applications dans différents environnements.
    b) Exemple de commande Docker pour exécuter un conteneur à partir d’une image spécifique : docker run -d --name mon_conteneur mon_image
  2. Serveur Web:
    a) Les étapes pour déployer un site web statique sur un serveur web sont les suivantes :
    • Placer les fichiers du site web dans le répertoire racine du serveur web.
    • Configurer les règles de routage si nécessaire.
    • Démarrer ou redémarrer le serveur web.
      b) La différence entre les protocoles HTTP et HTTPS est que HTTP est non sécurisé, tandis que HTTPS chiffre les données échangées entre le navigateur et le serveur à l’aide de SSL/TLS, assurant ainsi une communication sécurisée.
  3. Serveur FTP:
    a) Le protocole FTP (File Transfer Protocol) est un protocole utilisé pour transférer des fichiers entre un client et un serveur via un réseau. Il permet le téléchargement, l’envoi, la suppression et la gestion des fichiers sur le serveur FTP.
    b) Exemple de commande FTP pour télécharger un fichier à partir d’un serveur distant : get nom_fichier

Partie 3: Problème (30 points)

Voici les étapes nécessaires pour déployer un serveur web avec Docker hébergeant un site web dynamique développé en Python avec le framework Flask et une base de données MySQL :

  1. Créez un fichier appelé Dockerfile avec les instructions suivantes :
FROM python:latest
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
  1. Créez un fichier requirements.txt contenant les dépendances Python nécessaires pour votre application Flask.
  2. Construisez l’image Docker en exécutant la commande suivante dans le répertoire contenant le Dockerfile :
docker build -t nom_image .
  1. Démarrez un conteneur Docker à partir de l’image que vous avez construite :
docker run -d -p 80:80 --name nom_conteneur nom_image
  1. Assurez-vous que votre application Flask écoute sur le port 80 dans le fichier app.py.
  2. Pour la base de données MySQL, vous pouvez créer un autre conteneur Docker utilisant l’image MySQL officielle. Exécutez la commande suivante pour démarrer un conteneur MySQL :
    « `

docker run -d -p 3306: