🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Créer une application cloud native
15 Questions
0 Views

Créer une application cloud native

Created by
@FruitfulBernoulli

Podcast Beta

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quelle est la fonction de la commande 'FROM' dans un Dockerfile?

  • Définir le répertoire de travail
  • Spécifier l'image de base à utiliser (correct)
  • Exposer un port
  • Créer un conteneur
  • 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.

    False

    La commande 'docker container run NomImage' sert à créer un conteneur à partir d'une image ___ existante et l'exécuter.

    <p>déjà</p> Signup and view all the answers

    Associez les commandes Docker avec leur fonction:

    <p>docker build = Construire une image docker run = Créer et exécuter un conteneur docker stop = Arrêter un conteneur en cours d'exécution docker login = Connecter votre compte Docker</p> Signup and view all the answers

    Quels sont les avantages du cloud ?

    <p>Maintenance allégée et automatisée</p> Signup and view all the answers

    Un serveur informatique relie les postes utilisateurs et les met en réseau.

    <p>True</p> Signup and view all the answers

    Citez deux exemples de cloud publics.

    <p>Microsoft, Amazon</p> Signup and view all the answers

    Un service cloud doit être rapidement ___________.

    <p>élastique</p> Signup and view all the answers

    Associez le type de service avec sa définition :

    <p>IaaS = Infrastructure as a Service PaaS = Platform as a Service SaaS = Software as a Service</p> 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?

    <p>JavaScript</p> Signup and view all the answers

    Quelle est la fonction de channel.assertQueue(queueName, { durable: false }) dans le code de l'émetteur (Publisher) RabbitMQ?

    <p>Créer une file</p> Signup and view all the answers

    Azure est une plateforme de cloud computing développée par Amazon.

    <p>False</p> Signup and view all the answers

    YAML est l'acronyme de YAML Ain't __________ Language.

    <p>Markup</p> Signup and view all the answers

    Associez les définitions aux technologies correspondantes:

    <p>Kubernetes = Plateforme d'orchestration de conteneurs Docker = Plateforme pour créer des conteneurs Azure = Plateforme de cloud computing de Microsoft YAML = Langage de sérialisation de données lisible par l'homme</p> 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)

    É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 ou ADD : 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.

    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 dans docker-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.

    Quiz Team

    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.

    Use Quizgecko on...
    Browser
    Browser