Cours de Rémi JarjatCours de Rémi Jarjat
  • Liste des cours
  • Culture numérique
  • Git
    • Terminologie
    • Avant de commencer
    • Créer un dépôt (local)
    • Enregistrer des changements
    • Des branches
    • Mise en commun du travail
    • Annuler des changements
    • Réécrire l'historique
    • Des outils pour se simplifier Git
    • Exercices
    • Exemples pratiques
  • Linux
    • Installation
    • Historique
    • Rangement des fichiers
    • Les processus
    • Commandes de base
    • Commandes avancées
    • /linux/6-other-technologies.html
    • Exercices
    • Correction des exercices
  • PHP
    • Environnement de travail
    • Bases du PHP
    • Tests et boucles
    • Procédures et fonctions
    • Interagir avec l'utilisateur
    • La temporisation de sortie
    • PHP Doc et PSR
    • PHP Orienté objet
    • Héritage et objets
    • Factorisation
    • Manipuler la BdD avec PDO (PHP Data Object)
    • Architecture MVC
    • Webservices REST
    • Exercices - Bases
    • Exercices - Séparer en plusieurs fichiers
    • Exercices - POST et SESSION
    • Exercices - Panier et validation
    • Exercices - Objets
    • Exercices - BdD avec PDO
    • Projet - montage d'ordinateurs
    • Projet - Personnages de Jeux de Rôle
  • Symfony
    • Installer Symfony et son environnement de travail
    • Structure et utilisation d'un projet
    • Le routing
    • Les controllers
    • Twig
    • Les services et l'injection de dépendances
    • Doctrine et la BdD
    • Formulaires
    • Les traductions
    • Event listeners/subscribers
    • Connexion et sécurisation
    • Bundles
    • Easy Admin Bundle
    • API Platform
    • Pense-bêtes
    • Symfony au quotidien
    • Travailler avec Docker
    • Projet : annonces de SPA / éleveurs
    • Exercices
  • Javascript
    • Les bases du langage
    • Manipulation logique
    • Le DOM
    • JQuery
    • Ajax
    • Programmation orientée objet
    • Webpack
    • Outils utiles
    • Révisions
  • Serveur Lamp
  • Déploiement
    • Des outils et manières de faire
    • Déploiement par FTP
    • Wordpress
    • Intégrer Git dans le processus
    • GitHub Pages pour déployer facilement
    • Symfony et Angular
  • Docker
  • Intégration continue
  • Sécurité informatique

Virtualisation

  • Des machines dans la machine
  • Hyperviseurs

En vidéo :

Historique

  • Développée dans les années 70-80.
  • Popularisée dans les années 90 (émulateurs de vieilles machines).
  • Véritable boom ensuite dans les environnements de travail.
  • Très utilisée de nos jours dans les grands parcs informatiques (y compris hébergeurs).

Intérêts

  • Une VM fonctionne de manière identique quel que soit l'hôte (en théorie).
  • Allocation de resources dynamiques.
  • Mutualisation des resources.
  • Destructible/redimensionnable à l'infini sans casser l'hôte.
  • Isolation des différents systèmes.

Inconvénients

  • Problèmes très variables de performances.
  • Les systèmes virtualisés sont dépendants de leur hôte.
  • Coûteux, long et souvent difficile à mettre en place.

Les virtualisations

La virtualisation expliquée par Red Hat

Virtualisation des données

  • Ensemble de données éparpillées regroupées en une source unique

Virtualisation des postes de travail

  • Permet de déployer, administrer et surveiller des postes de travail depuis un seul outil

Virtualisation de serveurs

  • Une même machine héberge plusieurs serveurs et répartie les resources

Virtualisation des systèmes d'exploitation

  • Avoir accès à d'autres OS dans une même machine

Virtualisation de réseau

  • Séparation des fonctions clés d'un réseau en différents environnements et regroupement des machines physiques

Hyperviseurs

  • Logiciel chargé de répartir les resources

Deux types principaux d'hyperviseurs

Hyperviseur de type 1 (bare metal)
  • Directement sur la machine (hardware) et les OS s'exécutent par-dessus.
  • Principalement pour virtualiser des parcs de machines (serveurs, réseau d'entreprise).
Hyperviseur de type 2 (host metal)
  • Fonctionne à l'intérieur d'un système d'exploitation.
  • Oracle VM VirtualBox, VMWare, KVM, etc.

Conteneurisation

La conteneurisation permet de packager tous les services, scripts, API, librairies dont une application a besoin. L’objectif : en permettre l’exécution sur n’importe quel noyau compatible.

Un conteneur utilise ce noyau et ne fait pas appel à l'OS parent.

  • Un tutoriel sur Docker par Grafikart (très bonne chaine que je vous recommande).
  • Un autre tutoriel Docker par Xavki (encore une très bonne chaine).

En vidéo :

Différences avec la virtualisation

  • Légèreté : peu d'espace occupé.
  • élasticité : pas d'allocation de resource d'avance.
  • performance : pas d'hyperviseur pas d'OS invité.

Docker et Kubernetes

  • Docker : logiciel de conteneurisation.
  • Kubernetes : orchestrateur de conteneurs (fourni des outils de déploiement, de gestion de montée en charge sur des clusters de serveurs).

Quel environnement choisir ?

En vidéo :

Local (Wamp)

  • Très performant (directement sur votre machine, sans intermédiaire).
  • Relativement simple d'utilisation.
  • Compliqué à configurer (surtout pour plusieurs applications) et maintenir.
  • Relativement simple à faire évoluer (nécessite de connaître le fonctionnement de php, apache et mysql dans certains cas).

Virtualisation (Virtualbox / Vagrant)

  • Permet d'avoir un environnement de travail proche du serveur.
  • Pas de configuration à faire, tout est prêt.
  • Compliqué à mettre en place initialement (créer la VM).
  • Très difficile de faire fonctionner plusieurs applications en parallèle et à les faire communiquer.
  • Moins performant que du local (partage des fichiers et des resources avec l'hôte).
  • Peut être difficile à faire évoluer (mais pas toujours).

Conteneurisation (Docker)

  • Permet d'avoir un environnement de travail proche du serveur.
  • Peut être géré depuis quelques fichiers de configuration (relativement simples).
  • Permet de gérer plusieurs applications en parallèle, voir à les faire communiquer simplement.
  • Un peu moins performant que du local (partage des fichiers).
  • Peut être modifié facilement.

Installer des environnements

  • Visual Code
  • Télécharger Wamp
  • Télécharger Virtualbox et (optionnel) Vagrant
  • Télécharger Docker
Dernières mise à jour :
Prev
Commandes avancées
Next
Exercices