Examen Expérimental
Cloud Computing -
Réponses
Cloud Computing
1. Qu'est-ce que le cloud computing ?
Le cloud computing est la fourniture de services informatiques via Internet, permettant l'accès à des
ressources partagées (serveurs, applications, données) sans gérer l'infrastructure sous-jacente.
2. Quels sont les avantages principaux du cloud computing pour les entreprises ?
Réduction des coûts
d'infrastructure. Évolutivité et
agilité des ressources. Accès à
des technologies de pointe.
Flexibilité des services.
Sécurité améliorée des données.
3. Qui sont les principaux fournisseurs de services cloud et quelles sont leurs offres distinctives ?
Amazon Web Services (AWS) : Large gamme de services, forte présence mondiale.
Microsoft Azure : Intégration étroite avec les produits Microsoft, gamme complète de services.
Google Cloud Platform (GCP) : Services d'IA et de machine learning, réseau mondial de data centers.
4. Quels sont les critères à considérer lors du choix d'un fournisseur de cloud ?
Réduction des coûts
d'infrastructure. Évolutivité et
agilité des ressources. Accès à
des technologies de pointe.
Flexibilité des services.
Sécurité améliorée des données.
5. Quels sont les inconvénients potentiels du cloud computing ?
Vulnérabilité aux attaques.
Dépendance aux fournisseurs.
Perte de contrôle sur les opérations.
Nécessité d'assurer la sauvegarde des données.
6. Quels sont les différents types de modèles de service dans le cloud computing avec la population
cible ?
Infrastructure as a Service (IaaS): fournit des ressources informatiques virtualisées, telles que des
serveurs et des stockages, pour les développeurs et les administrateurs système.
Platform as a Service (PaaS): offre une plateforme de développement et de déploiement
d'applications, avec des outils et des services intégrés, pour les développeurs d'applications.
Software as a Service (SaaS): fournit des applications logicielles hébergées et accessibles via
internet, sans nécessiter de gestion de l'infrastructure sous-jacente, pour les utilisateurs finaux.
7. Qu'est ce que le cloud privé, le cloud public et le cloud hybride ?
Cloud privé : Infrastructure dédiée à une seule organisation, hébergée sur site ou par un tiers.
Cloud public : Infrastructure partagée entre plusieurs organisations, hébergée par un fournisseur
tiers et accessible via Internet.
Cloud hybride : Combinaison de cloud public et privé pour plus de flexibilité et évolutivité.
8. Quels sont les métiers de cloud computing les plus demandés ?
Fournisseur de services cloud: Vend des services cloud aux entreprises.
Courtier cloud: Aide les entreprises à choisir les services cloud adaptés à
leurs besoins. Constructeur cloud: Met en place des solutions cloud.
Développeur cloud: Développe des applications et des services pour les environnements cloud.
Cloud native
9. Qu'est-ce que l'approche cloud native ?
L'approche cloud native est une méthode de développement et de déploiement d'applications
conçues spécifiquement pour être exécutées dans un environnement cloud, en tirant le maximum
de ses services et de ses capacités.
10. Quels sont les avantages de l'approche cloud native ?
Elasticité : Adaptation dynamique des ressources à la
demande. Résilience : Meilleure résistance aux pannes
et aux erreurs.
Déploiement rapide : Mise sur le marché rapide des fonctionnalités.
Coût efficace : Optimisation pour réduire les coûts d'infrastructure et d'exploitation.
11. Qu'est ce que les microservices ?
Les microservices sont une approche de conception logicielle où les applications sont décomposées
en petits services autonomes et interconnectés.
12. Quels sont les avantages des microservices ?
Flexibilité: facilité pour ajouter ou modifier des fonctionnalités.
Stabilité: les pannes n'affectent qu'une partie, pas tout le système.
Réactivité : Mise à jour rapide des services sans impacter le reste de
l'application. Economie de ressources: utilisation optimale des
ressources informatiques.
13. Quelle est la différence entre une architecture monolithique et une architecture basée sur des
microservices ?
Architecture monolithique : Toutes les fonctionnalités regroupées en un seul bloc, plus simple à gérer
mais moins évolutive.
Microservices : Division en composants indépendants et évolutifs, favorisant modularité, scalabilité
et flexibilité.
Conteneurs
14. Qu'est ce qu'un conteneur dans le contexte du cloud computing ? -Un conteneur est une
unité logicielle qui encapsulant une application et ses dépendances, permettant une
exécution isolée et cohérente.
15. Quels sont les avantages de l'utilisation des conteneurs ?
Portabilité: les conteneurs peuvent être déployés sur n'importe quel environnement
compatible. Isolation: les conteneurs offrent un environnement d'exécution isolé
pour les applications.
Légereté: les conteneurs sont plus rapides à démarrer et à déployer que les machines virtuelles.
Deploiement rapide: les conteneurs permettent de déployer rapidement des applications et de les
mettre à jour.
16. Quel est la différence entre un conteneur et une machine virtuelle ?
Les conteneurs partagent le noyau de l'OS hôte, tandis que les machines virtuelles ont leur
propre OS. Les conteneurs sont plus légers et plus rapides à démarrer que les machines
virtuelles.
Les conteneurs offrent une isolation au niveau du processus, tandis que les machines virtuelles
offrent une isolation au niveau du système.
Docker
17. Qu'est-ce que Docker et pourquoi est-il important dans le cloud computing ?
Docker est une technologie de conteneurisation qui permet de créer des environnements isolés
appelés conteneurs, contenant une application et toutes ses dépendances nécessaires.
Importance: Offre une solution standardisée et portable pour l'exécution d'applications dans des
environnements cloud.
18. Quelles sont les avantages de l'utilisation de Docker ?
Versionnement des images : Gestion efficace des différentes versions d'une
application. Isolation : Exécution isolée des applications et de leurs
dépendances.
Efficacité : Conteneurs légers et rapides à démarrer.
Écosystème robuste : Large gamme d'outils et de services complémentaires.
19. Quelles sont les notions de Docker les plus importantes à comprendre ?
Images: Modèles de conteneurs contenant les fichiers et dépendances nécessaires pour exécuter une
application.
Conteneurs: Instances en cours d'exécution d'une image Docker.
Dockerfile: Fichier de configuration qui définit les étapes pour créer une image Docker.
Docker Hub: Registre public de Docker qui permet de stocker et de partager des images Docker.
Docker Daemon: Service en arrière-plan qui gère les opérations Docker.
Docker Client: Interface en ligne de commande pour interagir avec le Docker Daemon
20. Qu'est ce que Docker Compose et comment facilite-t-il la gestion des applications conteneurisées ?
Docker Compose est un outil qui permet de définir et de gérer des applications multi-conteneurs à
l'aide d'un fichier de configuration YAML.
Il simplifie le déploiement et l'orchestration des applications en spécifiant les dépendances et les
paramètres de configuration des conteneurs.
DevOps et CI/CD
21. Qu'est-ce que DevOps et quel est son objectif principal ?
DevOps est une approche de développement logiciel qui vise à améliorer la collaboration entre les
équipes de développement et d'exploitation, en automatisant les processus de déploiement et de
gestion des applications.
Son objectif principal est d'accélérer le cycle de développement, d'améliorer la qualité des
applications et de favoriser l'innovation continue.
22. Qu'est-ce que l'intégration continue et le déploiement continu (CI/CD) ?
L'intégration continue consiste à intégrer régulièrement les modifications de code dans un référentiel
partagé et à exécuter des tests automatisés pour garantir la qualité du code.
Le déploiement continu consiste à automatiser le déploiement des applications dans des
environnements de production après la validation des tests.
23. Comment le cloud computing facilite-t-il les pratiques DevOps ?
Le cloud computing offre des environnements de développement et de test flexibles et évolutifs.
Il permet l'automatisation des processus de déploiement, de test et de surveillance des applications.
Il favorise la collaboration entre les équipes de développement et d'exploitation pour accélérer la
mise sur le marché des applications.
24. Quels outils sont couramment utilisés pour mettre en œuvre des pipelines CI/CD dans le cloud ?
Jenkins
GitLab
CI/CD
CircleCI
Structure de DockerFile
# Utilisation d'une image de base
FROM node:14
# Création d'un répertoire de travail
WORKDIR /app
# Copie des fichiers de l'application dans le conteneur
COPY package*.json ./
# Installation des dépendances
RUN npm install
# Copie du reste des fichiers de l'application
COPY . .
# Exposition le port sur lequel l'application écoute
EXPOSE 3000
# Commande pour démarrer l'application
CMD ["npm", "start"]
Commandes de base de Docker
docker build -t <nom_image>: Construire une image Docker à partir d'un Dockerfile.
docker run <nom_image>: Créer et démarrer un conteneur à partir d'une image Docker.
docker run --name <nom_conteneur> <nom_image>: Créer et démarre un conteneur avec un nom
spécifique sur la base d'une image Docker.
docker run -p <port_hote>:<port_conteneur> <nom_image>: Créer et démarrer un conteneur en
mappant un port de l'hôte à un port du conteneur.
docker ps: Afficher les conteneurs en cours d'exécution.
docker pull <nom_image>: Télécharger une image Docker depuis un registre.
docker push <nom_image>: Envoyer une image Docker vers un registre.
docker rm <id_conteneur>: Supprimer un conteneur.
docker rmi <nom_image>: Supprimer une image Docker.
docker images: Afficher les images Docker disponibles.
docker start <id_conteneur>: Démarrer un conteneur arrêté.
docker stop <id_conteneur>: Arrêter un conteneur en cours d'exécution.
docker restart <id_conteneur>: Redémarrer un conteneur.
Commandes de base de Docker-
Compose
docker-compose -v: Vérifier la version de Docker Compose.
docker-compose build: Construire les services définis dans un fichier [Link].
docker-compose up: Démarrer les services définis dans un fichier [Link].
docker-compose up -d: Démarrer les services en arrière-plan.
docker compose --build: Construire les services définis dans un fichier [Link].
docker-compose down: Arrêter et supprimer les services définis dans un fichier [Link].
docker-compose stop: Arrêter les services définis dans un fichier [Link].
docker-compose ps: Afficher tous les conteneurs qui ont été lancés par docker-compose.
docker-compose rm: Supprimer les conteneurs arrêtés.
docker-compose config: Vérifier la configuration du fichier [Link].
docker-compose logs: Afficher les logs des services définis dans un fichier [Link].
Kubernetes
25. Qu'est-ce que Kubernetes et quel rôle joue-t-il dans l'orchestration des conteneurs ?
Kubernetes est un système open-source d'orchestration de conteneurs qui automatise le
déploiement, la mise à l'échelle et la gestion des applications conteneurisées.
Il assure la disponibilité, la scalabilité et la résilience des applications en répartissant les
conteneurs sur un cluster de machines.
26. Quels sont les composants principaux d'un cluster Kubernetes ?
Les nœuds: les machines physiques ou virtuelles qui exécutent les
conteneurs. Le maître: le composant central qui coordonne les
opérations du cluster.
Les pods: les unités de base de déploiement dans Kubernetes, contenant un ou plusieurs conteneurs.
Api
27. Qu'est-ce qu'une API et quel rôle joue-t-elle dans le développement d'applications ?
API (Application Programming Interface) : Ensemble de règles et de protocoles permettant à des
logiciels de communiquer entre eux.
Rôle : Intégration de services externes, communication entre composants d'une application, création
d'interfaces utilisateur interactives.
28. Quels sont les types d'API les plus courants ?
API RESTful : Basée sur le protocole HTTP et les méthodes CRUD (Create, Read, Update, Delete).
API SOAP : Utilise le protocole SOAP (Simple Object Access Protocol) pour la communication entre
applications. API GraphQL : Permet de demander des données spécifiques à un serveur, offrant
flexibilité et efficacité.
29. Quels sont les principaux éléments d'une API RESTful ?
Ressources : Entités manipulées par l'API, représentées par des URI.
Méthodes HTTP : Actions sur les ressources (GET, POST, PUT,
DELETE). Réponses : Données renvoyées par l'API (format JSON
ou XML).
Codes de statut : Indiquent le résultat d'une requête (200 OK, 404 Not Found, 500 Internal Server
Error).
30. Quels sont les avantages de l'utilisation d'une API dans le développement d'applications ?
Réutilisation de fonctionnalités existantes.
Séparation de la logique métier et de l'interface
utilisateur. Intégration de services et systèmes
hétérogènes.
Évolution modulaire et flexible des applications.
RabbitMQ
31. Qu'est-ce que RabbitMQ et quel rôle joue-t-il dans l'architecture des microservices ?
RabbitMQ est un logiciel de messagerie open-source qui implémente le protocole AMQP (Advanced
Message Queuing Protocol) pour la communication entre les applications.
Rôle : Facilite la communication asynchrone entre les microservices, gère les files d'attente, et met
en œuvre des modèles de messagerie.
32. Quels sont les principaux concepts de RabbitMQ à comprendre ?
Producteur (Producer) : Application envoyant des messages à une file d'attente.
Consommateur (Consumer) : Application recevant des messages d'une file d'attente.
Échange (Exchange) : Composant recevant les messages des producteurs et les envoyant aux
files d'attente. File d'attente (Queue) : Composant stockant les messages en attente d'être
consommés.
Routage (Routing) : Processus de distribution des messages aux files d'attente appropriées.
Liaison (Binding) : Relation entre un échange et une file d'attente pour le routage des messages.
33. Quels sont les avantages de l'utilisation de RabbitMQ dans une architecture de microservices ?
Découplage : Communication asynchrone entre services sans dépendance directe.
Scalabilité : Gestion efficace des pics de charge et répartition de la charge
entre services. Fiabilité : Stockage durable des messages, assurant leur
livraison même en cas de panne. Flexibilité : Divers modèles de messagerie
pour la communication entre services.
Azure
34. Qu'est-ce que Microsoft Azure et quelles sont ses principales offres de services cloud ?
Microsoft Azure est une plateforme de services cloud de Microsoft, offrant calcul, stockage, mise en
réseau, analyse, IA et développement d'applications.
Principales offres de services cloud : Azure Virtual Machines, Azure Blob Storage, Azure App Service,
Azure SQL Database, Azure Cognitive Services, Azure DevOps.
35. Quels sont les avantages de l'utilisation de Microsoft Azure pour les entreprises ?
Intégration avec Microsoft : Compatible avec les technologies et outils
existants. Sécurité et conformité : Respect des normes strictes.
Évolutivité et performance : Gère efficacement les charges de travail.
Support client : Assistance technique et conseil pour la transition vers le cloud.
36. Quels sont les services Azure les plus couramment utilisés pour le développement d'applications
cloud natives ?
Azure Kubernetes Service (AKS): service de gestion de conteneurs Kubernetes.
Azure Functions: service de calcul serverless pour exécuter du code sans
serveur. Azure Cosmos DB: service de base de données multimodèle et
distribuée.
Azure API Management: service de gestion des API pour la création, la publication et la surveillance
des API.
37. Quels sont les outils et les services Azure les plus couramment utilisés pour la mise en œuvre de
pipelines CI/CD
?
Azure DevOps : Intégration continue, déploiement continu et gestion de projets.
Azure Pipelines : Intégration continue et déploiement continu pour applications cloud et
mobiles. Azure Artifacts : Gestion des packages logiciels.
Azure Repos : Gestion de code source basé sur Git.