DEPLOIEMENT Flashcards

1
Q

Qu’est-ce que le DNS et quel est son rôle dans le déploiement d’une application web ?

A

Le DNS (Domain Name System) est un système qui associe des noms de domaine à des adresses IP. Son rôle est d’orienter les requêtes des utilisateurs jusqu’au serveur hébergeant l’application, rendant les sites accessibles via des noms faciles à mémoriser plutôt que des adresses IP numériques.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Expliquez la structure d’un nom de domaine avec un exemple.

A

Un nom de domaine se compose de trois parties : le sous-domaine (facultatif), le domaine principal et le TLD (Top Level Domain). Par exemple, dans “odyssey.wildcodeschool.fr”, “odyssey” est le sous-domaine, “wildcodeschool” est le domaine et “.fr” est le TLD.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelles sont les différences principales entre un serveur VPS et un serveur mutualisé ?

A

Un VPS offre un contrôle total sur une machine virtuelle dédiée avec un accès root, adaptable à divers langages et frameworks. Un serveur mutualisé est préconfiguré, moins cher, mais limité dans les technologies (souvent PHP, MySQL) et sans accès complet au système, généralement avec accès FTP limité à un dossier utilisateur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment établir une connexion sécurisée à un serveur distant ?

A

On utilise SSH (Secure Shell), un protocole sécurisé qui nécessite un échange de clés en début de connexion. La commande est de type ssh utilisateur@adresse_ip_ou_domaine. Pour transférer des fichiers de manière sécurisée, on peut utiliser SCP (basé sur SSH) ou SFTP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qu’est-ce que le déploiement continu (CD) et quels outils peut-on utiliser ?

A

Le déploiement continu est une pratique qui automatise la mise en production des applications après validation des tests. Les outils courants incluent GitHub Actions, Jenkins, Caprover et Ansible. Ces outils simplifient les étapes de déploiement et réduisent les erreurs humaines.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quelles différences importantes doit-on configurer entre un environnement de développement et un environnement de production ?

A

En production, on configure APP_ENV=prod, on n’installe pas les composants de développement (fixtures, tests, maker), on désactive les messages d’erreur en configurant des pages d’erreur dédiées (401, 404, 500), on active le cache pour les performances et on utilise des versions optimisées du code (minification avec npm run build).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment préparer un serveur pour le déploiement d’une application web moderne ?

A

Il faut installer les mêmes outils que dans l’environnement de développement : Node.js, un SGBDR (MySQL, PostgreSQL…), un serveur web (NGinx, Apache, Caddy), NPM/Yarn et Git. Selon les besoins, on peut aussi configurer Docker pour la conteneurisation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Expliquez le fonctionnement de SCP et donnez un exemple de commande.

A

SCP (Secure Copy) permet le transfert sécurisé de fichiers entre machines via le protocole SSH. Exemple de commande : scp fichier.txt utilisateur@54.83.12.233:/var/www/ où on envoie le fichier local “fichier.txt” vers le dossier “/var/www/” du serveur distant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quels sont les avantages du cloud pour l’hébergement d’applications ?

A

Le cloud offre souplesse (ressources ajustables), paiement à la consommation réelle, puissance évolutive selon les besoins, et des options de stockage flexibles. Il permet de répondre facilement aux pics de trafic et facilite la création d’environnements de test.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Décrivez les étapes typiques d’un script de déploiement automatisé.

A

Un script de déploiement automatisé inclut généralement : 1) Récupération du code depuis le dépôt Git, 2) Installation des dépendances, 3) Construction des assets (npm run build), 4) Configuration pour l’environnement de production, 5) Migration de la base de données si nécessaire, 6) Redémarrage des services, 7) Tests de vérification post-déploiement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Comment sécuriser un déploiement d’application web ?

A

Pour sécuriser un déploiement, il faut : utiliser des connexions chiffrées (SSH/SFTP), configurer correctement les droits d’accès aux fichiers, utiliser des variables d’environnement pour les informations sensibles, mettre à jour régulièrement les composants, activer HTTPS, et mettre en place des sauvegardes automatiques.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Pourquoi utiliser Docker dans un processus de déploiement ?

A

Docker permet de conteneuriser l’application avec toutes ses dépendances, garantissant qu’elle fonctionnera de manière identique dans tous les environnements. Cela facilite la gestion des versions, l’isolation des applications, le scaling horizontal et simplifie grandement le processus de déploiement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Comment documenter efficacement une procédure de déploiement ?

A

Une documentation efficace doit inclure : les prérequis système, la liste des dépendances avec leurs versions, les étapes détaillées d’installation et de configuration, les variables d’environnement nécessaires, les procédures de mise à jour et rollback, et les tests de vérification post-déploiement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qu’est-ce que l’intégration continue et comment s’articule-t-elle avec le déploiement continu ?

A

L’intégration continue (CI) est la pratique d’intégrer fréquemment le code dans un dépôt partagé, avec des tests automatiques pour valider chaque intégration. Le déploiement continu (CD) prolonge ce processus en automatisant la mise en production. Ensemble, CI/CD forme un pipeline complet de la modification du code jusqu’à sa mise en production.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quelles considérations spécifiques faut-il prendre en compte pour le déploiement d’applications web mobiles ?

A

Pour les applications web mobiles, il faut s’assurer de la compatibilité avec différents navigateurs mobiles, optimiser les performances (temps de chargement, taille des ressources), implémenter le responsive design, configurer correctement les caches pour l’usage hors-ligne, et adapter les stratégies de test pour divers appareils et tailles d’écran.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly