Podcast
Questions and Answers
Quelle est la fonction de la commande 'FROM' dans un Dockerfile?
Quelle est la fonction de la commande 'FROM' dans un Dockerfile?
Quelle instruction permet de copier des fichiers depuis la machine locale vers le conteneur Docker?
Quelle instruction permet de copier des fichiers depuis la machine locale vers le conteneur Docker?
COPY ou ADD
La commande 'docker ps' affiche tous les conteneurs, qu'ils soient actifs ou inactifs.
La commande 'docker ps' affiche tous les conteneurs, qu'ils soient actifs ou inactifs.
False
La commande 'docker container run NomImage' sert à créer un conteneur à partir d'une image ___ existante et l'exécuter.
La commande 'docker container run NomImage' sert à créer un conteneur à partir d'une image ___ existante et l'exécuter.
Signup and view all the answers
Associez les commandes Docker avec leur fonction:
Associez les commandes Docker avec leur fonction:
Signup and view all the answers
Quels sont les avantages du cloud ?
Quels sont les avantages du cloud ?
Signup and view all the answers
Un serveur informatique relie les postes utilisateurs et les met en réseau.
Un serveur informatique relie les postes utilisateurs et les met en réseau.
Signup and view all the answers
Citez deux exemples de cloud publics.
Citez deux exemples de cloud publics.
Signup and view all the answers
Un service cloud doit être rapidement ___________.
Un service cloud doit être rapidement ___________.
Signup and view all the answers
Associez le type de service avec sa définition :
Associez le type de service avec sa définition :
Signup and view all the answers
Quel est le langage de programmation utilisé dans les exemples de création de l'émetteur et du récepteur pour RabbitMQ?
Quel est le langage de programmation utilisé dans les exemples de création de l'émetteur et du récepteur pour RabbitMQ?
Signup and view all the answers
Quelle est la fonction de channel.assertQueue(queueName, { durable: false })
dans le code de l'émetteur (Publisher) RabbitMQ?
Quelle est la fonction de channel.assertQueue(queueName, { durable: false })
dans le code de l'émetteur (Publisher) RabbitMQ?
Signup and view all the answers
Azure est une plateforme de cloud computing développée par Amazon.
Azure est une plateforme de cloud computing développée par Amazon.
Signup and view all the answers
YAML est l'acronyme de YAML Ain't __________ Language.
YAML est l'acronyme de YAML Ain't __________ Language.
Signup and view all the answers
Associez les définitions aux technologies correspondantes:
Associez les définitions aux technologies correspondantes:
Signup and view all the answers
Study Notes
Définition du cloud
- Le cloud désigne les serveurs accessibles sur Internet ainsi que les logiciels et les bases de données qui fonctionnent sur ces serveurs.
- Les avantages du cloud : faible coût et disponibilité continue, maintenance allégée et automatisée, optimisation des ressources, hébergement d'applications et de services, flexibilité.
Caractéristiques du cloud
- Le service doit être en libre-service à la demande
- Le service doit être mesurable
- Il doit y avoir une mutualisation des ressources
- Il doit être rapidement élastique
Exemples des fournisseurs cloud
- Microsoft
- Amazon
- IBM
- Google cloud
- Oracle
Définition du serveur informatique
- Un serveur informatique relie un poste jouant le rôle de serveur à différents postes utilisateurs (postes clients) et met ces derniers en réseau
Services d’un serveur informatique
- Courrier électronique
- Accès à Internet
- Partage de fichier
- Partage d’imprimantes
- Stockage en base de données
- Mise à disposition d’applications
Limites du serveur informatique
- Pannes matérielles
- Infestation ou piratage des données
- Capacité de stockage limitée
- Coûts élevés pour l’entreprise
Cloud public
- Les Cloud publics sont généralement des environnements cloud créés à partir d’une infrastructure informatique qui n’appartient pas à l’utilisateur final.
- Exemples : Alibaba cloud, Microsoft Azure, Google cloud, AWS, IBM
Cloud privé
- Les cloud privés sont généralement définis comme des environnements cloud spécifiques à un utilisateur final ou à un groupe, et sont habituellement exécutés derrière le pare-feu de l’utilisateur ou du groupe.
- Types du cloud privé : cloud privés gérés, cloud dédiées
Cloud hybride
- Un cloud hybride fonctionne comme un environnement informatique unique créé à partir de plusieurs environnements connectés via des réseaux locaux (LAN), des réseaux étendus (WAN), des réseaux privés virtuels (VPN) et / ou des APIs.
As-a-Service
- L’expression AaS ou As-a-Service signifie généralement qu’un tiers se charge de vous fournir un service de cloud computing.
- Types As-a-Service : IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software as a Service)
Définition du cloud native
- Le Cloud Native décrit une approche de développement logiciel dans laquelle les applications sont dès le début conçues pour une utilisation sur le Cloud.
- Les 4 piliers du cloud native : micro-services, conteneurs, processus de développement et la livraison continue
Avantages du cloud native
- La flexibilité
- L’évolutivité
- L’automatisation
- La vitesse et l’agilité
Définition de l’architecture monolithique
- Dans une architecture monolithique, l’application est développée en un seul bloc, avec une même technologie et déployée dans un serveur d’application.
Inconvénients de l’architecture monolithique
- La complication du déploiement
- La scalabilité non optimisée
Définition de l’architecture micro-services
- L’architecture micro-services consiste à décomposer l’application en un ensemble de petites services indépendantes appelés micro-services.
- Chaque micro-service possède son propre logique et sa propre base de données.
Avantages de l’architecture micro-services
- L’agilité technologique
- Un déploiement continue et rapide
- La scalabilité
Inconvénients de l’architecture micro-services
- La communication entre les services est complexe
- Plus de services équivaut à plus de ressources
- Les tests globaux sont difficiles
- Les problèmes de débogage peuvent être plus difficiles
Types de communication entre services
- Appel synchrone point à point
- Appel asynchrone point à point
- Diffusion d’événements
Définition des passerelles API
- Les passerelles API constituent la couche intermédiaire entre les micro-services et les applications clientes qui ont besoin des micro-services pour fonctionner.
Rôle des passerelles API
- Servent de point d'entrée unique au système en exposant que les points de terminaison requis.
- Équilibrent la charge des demandes des clients en les répartissant sur plusieurs instances d'un service.
Définition de RabbitMQ
- RabbitMQ est un système de messagerie open-source basé sur le modèle de message broker.
- Il agit comme un intermédiaire entre les applications distribuées, leur permettant d’échanger des messages de manière fiable et asynchrone.
Mots clés dans RabbitMQ
- Message broker
- Protocole AMQP (Advanced Message Queuing Protocol)
- Producteurs (Publishers)
- Echanges (Exchanges)
- Liaisons (binding)
- Files d’attente (Queues)
- Consommateurs (consumers)
- Routage des messages
Avantages de RabbitMQ
- La durabilité
- Haut disponibilité et mise en cluster
Définition de Azure
- Azure est la plateforme de cloud computing de Microsoft.
- Il s'agit d'un ensemble de services et de ressources informatiques disponibles à la demande via Internet.
Avantages de Azure
- Évolutivité
- Fiabilité
- Sécurité
- Flexibilité
- Tarification flexible
- Intégration avec les outils Microsoft
- Large gamme de services
Définition de YAML
- YAML (YAML Ain't Markup Language) est un langage de sérialisation de données lisible par l'homme utilisé pour représenter des données structurées.
Définition de Kubernetes
- Kubernetes (K8S) est une plateforme open-source d'orchestration de conteneurs qui permet de déployer, gérer et mettre à l'échelle des applications conteneurisées de manière efficace.
Définition du cluster Kubernetes
- Un cluster Kubernetes est un ensemble de machines (les nœuds) qui permettent d'exécuter des applications conteneurisées.
Définition de Apache Kafka
- Apache Kafka est une plateforme distribuée de diffusion de données en continu, capable de publier, stocker, traiter et souscrire à des flux d'enregistrement en temps réel.
Différence entre Kubernetes et AKS
- Kubernetes (K8S) est une plateforme open-source d'orchestration de conteneurs qui permet de déployer, gérer et mettre à l'échelle des applications conteneurisées de manière efficace.
- Azure Kubernetes Service (AKS) est un service managé par Microsoft Azure qui simplifie le déploiement et la gestion de clusters Kubernetes sur Azure.
Avantages de AKS
- Scalabilité
- Fiabilité
- Sécurité
- Portabilité
- Intégration avec l'écosystème Azure
Architecture AKS
- Cluster AKS
- Nœuds
- API Kubernetes
- Contrôleur de cluster
- Azure Container Registry (ACR)
- Réseau virtuel
- Services Azure
Terminologie AKS
-
Pools
-
Nodes
-
Pods
-
Conteneur (Container)
-
Deployment
-
Manifest### Fichier .gitlab-ci.yml
-
Le fichier
.gitlab-ci.yml
est utilisé pour configurer un pipeline CI (Continuous Integration) dans GitLab CI. -
Il contient les instructions nécessaires pour définir les étapes du pipeline et les actions à effectuer lors de l'intégration continue.
-
Exemple de configuration de base pour un pipeline CI dans GitLab CI :
- Définition des étapes du pipeline (
stages
) - Définition des jobs (actions) pour chaque étape (
build_job
,test_job
,deploy_job
)
- Définition des étapes du pipeline (
Étapes pour configurer un pipeline CI dans GitLab CI
- Créez un fichier
.gitlab-ci.yml
à la racine de votre dépôt Git. - Ajoutez les étapes (stages) que vous souhaitez inclure dans votre pipeline.
- Définissez les jobs (jobs) pour chaque étape en spécifiant le nom du job, l'étape à laquelle il appartient et les commandes ou scripts à exécuter.
- Commitez et poussez votre fichier
.gitlab-ci.yml
dans votre dépôt GitLab.
Conteneurisation
- La conteneurisation est un type de virtualisation qui consiste à rassembler le code du logiciel et tous ses composants de manière à les isoler dans leur propre conteneur.
- Docker est une plateforme qui permet de créer facilement des conteneurs et des applications basées sur les conteneurs.
- Les applications conteneurisées utilisent moins de ressources que les machines virtuelles et réduisent la pression sur la mémoire de l'hôte.
- Les conteneurs sont plus compacts que les machines virtuelles et démarrent plus rapidement.
Moteur Docker (Engine)
- Le moteur Docker est le cœur du système Docker, il réunit tous les composants de la plateforme en un seul endroit.
- Docker Daemon est le serveur Docker qui écoute les requêtes de l'API Docker et gère les objets Docker tels que les images, les conteneurs, les réseaux, et les volumes.
- Client Docker est l'interface utilisateur principale pour communiquer avec le système Docker.
Register Docker
- Le register Docker est un système de catalogage pour héberger, pousser, et extraire des images Docker.
- Docker Hub est un registre public que n'importe qui peut utiliser pour rechercher des images.
Dockerfile
- Un Dockerfile est un fichier qui liste les instructions à exécuter pour construire une image.
- Les instructions de base dans un Dockerfile :
-
FROM
: spécifier l'image de base à utiliser. -
RUN
: exécuter des commandes supplémentaires à l'intérieur du build du Dockerfile. -
COPY
ouADD
: copier des fichiers depuis notre machine locale vers le conteneur Docker. -
ENV
: variables d'environnement utilisables dans le Dockerfile et dans le conteneur. -
EXPOSE
: exposer un port. -
ENTRYPOINT
: point d'entrée du conteneur. -
CMD
: spécifier les arguments qui seront envoyés au ENTRYPOINT. -
WORKDIR
: définir le répertoire de travail qui sera utilisé pour le lancement des commandes CMD et/ou ENTRYPOINT.
-
Docker-Compose
- Docker-compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs.
- Docker-compose fonctionne à partir d'un fichier yml, dans lequel on définit tous les services que l'on souhaite.
- Exemple de configuration d'un service avec Docker-compose :
- Dans un fichier
docker-compose.yml
, on indique la version de Docker-compose, et les services comme suit :-
version
: spécifier la version de Docker-compose. -
services
: définir les services que l'on souhaite.
-
- Dans un fichier
Commandes Docker
-
docker --version
: afficher la version de Docker. -
docker ps --all
: afficher tous les conteneurs. -
docker container run
: créer un conteneur à partir d'une image déjà existante et l'exécuter. -
docker run
: créer un conteneur à partir d'une image (qui peut exister ou non) et l'exécuter. -
docker images
: afficher toutes les images. -
docker rm
: supprimer un conteneur. -
docker image rm
: supprimer une image.
Commandes Docker-Compose
-
docker-compose build
: construire les images définies dansdocker-compose.yml
. -
docker-compose up
: construire les images si elles ne le sont pas déjà, et démarrer les conteneurs. -
docker-compose down
: arrêter et supprimer l'ensemble des conteneurs qui ont été instanciés par Docker-compose. -
docker-compose stop
: arrêter (sans suppression) les conteneurs. -
docker-compose ps
: afficher tous les conteneurs qui ont été lancés par Docker-compose.
Commandes Kubectl
-
kubectl version
: vérifier la version de Kubectl. -
kubectl cluster-info
: vérifier l'état du cluster Kubernetes. -
kubectl get nodes
: vérifier l'état des nœuds du cluster. -
kubectl get pods
: vérifier l'état des pods en cours d'exécution dans le cluster. -
kubectl describe pod
: afficher des informations détaillées sur un pod spécifique. -
kubectl exec
: exécuter une commande à l'intérieur d'un pod. -
kubectl logs
: afficher les logs d'un pod. -
kubectl create
: créer un déploiement à partir d'un fichier de configuration YAML. -
kubectl delete
: supprimer un déploiement. -
kubectl scale
: mettre à l'échelle un déploiement. -
kubectl expose
: exposer un déploiement via un service. -
kubectl set image
: appliquer une mise à jour sur un déploiement en remplaçant les pods existants. -
kubectl autoscale
: appliquer des règles de mise à l'échelle automatique sur un déploiement.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Découvrez les concepts de base du cloud computing, les serveurs accessibles sur Internet, les logiciels et les bases de données qui fonctionnent sur ces serveurs.