1. Livres et vidéos
  2. Docker - Déploiement de microservices sous Linux ou Windows (Docker Swarm, Docker Compose, Docker Machine)

Docker Déploiement de microservices sous Linux ou Windows (Docker Swarm, Docker Compose, Docker Machine)

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre s'adresse aux architectes logiciels, tech leads, administrateurs système et de manière générale à toute personne concernée par le déploiement en production d'architectures de services basées sur des conteneurs. Son ambition est de convaincre que les microservices, le DevOps et le déploiement par conteneurs sont les trois faces d'une même réalité, à savoir une architecture réellement agile au service de l'alignement de l'informatique sur les besoins fonctionnels. Il permettra au lecteur, utilisant idéalement Docker couramment, d'être en mesure de mettre en œuvre les toutes nouvelles méthodes de déploiement d'une architecture microservices sur un cluster Swarm.

Le livre s'appuie sur les récents développements de Docker permettant d'industrialiser le déploiement de ces applications sur des réseaux de machines hôtes, levant ainsi les limites des versions précédentes. L'auteur étudie plusieurs technologies en profondeur : Docker Machine qui permet de créer automatiquement des machines hôtes, Docker Compose qui, dans ses nouvelles versions, aide à la prise en compte des spécificités des applications de services distribués et Docker Swarm qui sert de support à un cluster haute disponibilité ainsi que d'orchestrateur de tâches pour assurer une répartition optimale des conteneurs.

Docker apparaissant sous Windows, un chapitre est consacré aux spécificités de cet environnement dans les approches de conteneurs. Enfin, le livre fournit de nombreux conseils pratiques, issus d'une expérience en production, sur des sujets aussi variés que la gestion dynamique de la charge ou la mise à jour à chaud des services.

Docker évoluant rapidement, les exemples sont montrés sur plusieurs versions du produit, depuis la 1.13.0 jusqu'à la 17.04. Des éléments sont en téléchargement sur le site www.editions-eni.fr et sur le compte GitHub des Editions ENI. Ainsi, le lecteur est en mesure de mettre en œuvre la totalité de l'exemple traité dans le livre.


Les chapitres du livre :
Introduction – Docker en réseau – Distribution logicielle – Maintien en condition opérationnelle d'un cluster – Docker pour Windows – Industrialisation

Table des matières

  • Introduction
    • 1. Contenu du livre
      • 1.1 Objectifs
      • 1.2 Prérequis de lecture
      • 1.3 Avertissement sur les versions de Docker
      • 1.4 Approche simplificatrice
    • 2. Principes de séparation de l’application, du déploiement et du support
      • 2.1 Industrialisation du déploiement
      • 2.2 Principes de structuration du système d'information
      • 2.3 Découplage obtenu par Docker
  • Docker en réseau
    • 1. Mise en réseau de Docker
      • 1.1 Approche théorique
        • 1.1.1 Problématique de montée en charge
        • 1.1.2 Solution découplée
        • 1.1.3 Conséquences sur l'approche initiale
      • 1.2 Fonctionnement pratique
        • 1.2.1 Notion de réseau
        • 1.2.2 Docker Swarm ou Swarm mode ?
        • 1.2.3 Les différents types de nœuds
        • 1.2.4 Fonctionnalités du cluster
    • 2. Préparation de machines avec Vagrant
      • 2.1 Principe de Vagrant
      • 2.2 Création d'une machine
      • 2.3 Provisionnement de Docker sur la machine
      • 2.4 Accès à la machine
        • 2.4.1 Gestion du certificat
        • 2.4.2 Connexion par PuTTY
      • 2.5 Mise en place des autres machines
    • 3. Docker Swarm
      • 3.1 Initialisation du cluster Swarm
      • 3.2 Liaison des agents au cluster Swarm
      • 3.3 Ajout d'un manager
      • 3.4 Limites à l'ajout de managers
      • 3.5 Promotion d'un nœud
      • 3.6 Suppression d'un nœud du cluster Swarm
      • 3.7 Utilisation simple du cluster Swarm
    • 4. Docker Machine
      • 4.1 Concepts
      • 4.2 Installation
      • 4.3 Mise en œuvre pour une machine seule
      • 4.4 Commandes supplémentaires
      • 4.5 Accès aux machines
      • 4.6 Cycle de vie des machines
      • 4.7 Mise en œuvre pour un ensemble de machines
        • 4.7.1 Choix du driver
        • 4.7.2 Pilotage Azure par la ligne de commande
        • 4.7.3 Analyse des options pour le driver Azure
        • 4.7.4 Dernières recommandations avant la création d'une machine
        • 4.7.5 Déploiement d'une machine dans Azure par Docker Machine
        • 4.7.6 Mise en place du cluster Swarm
        • 4.7.7 Options Swarm dans la ligne de commande
        • 4.7.8 Suppression des ressources
    • 5. Docker for Azure
      • 5.1 Principe
      • 5.2 Préparation du Service Principal
      • 5.3 Remplissage des autres paramètres
      • 5.4 Accès au cluster
      • 5.5 Quelques remarques complémentaires
    • 6. Azure Container Service
      • 6.1 Concepts
      • 6.2 Création d'un cluster ACS
      • 6.3 Accès au cluster
      • 6.4 Quelques remarques complémentaires
        • 6.4.1 Fonctionnement interne du cluster ACS
        • 6.4.2 Autres orchestrateurs disponibles
        • 6.4.3 Arrêter le cluster ACS
        • 6.4.4 Autres solutions de CaaS
  • Distribution logicielle
    • 1. Une première application en mode cluster
      • 1.1 Présentation de l'application exemple
        • 1.1.1 Fichier docker-compose.yml
        • 1.1.2 Fichier Dockerfile
        • 1.1.3 Fichier package.json
        • 1.1.4 Fichier index.js
      • 1.2 Déploiement manuel sur le cluster Swarm
        • 1.2.1 Accès au cluster
        • 1.2.2 Préparation des images
        • 1.2.3 Lancement des services
        • 1.2.4 Premier test
        • 1.2.5 Mise en place d'un réseau overlay dédié
        • 1.2.6 Validation du fonctionnement
      • 1.3 Passage à l'échelle
      • 1.4 Alternative d'installation automatisée
        • 1.4.1 Le retour de Docker Compose
        • 1.4.2 Détail du vocabulaire
        • 1.4.3 Déploiement d'une stack
        • 1.4.4 Gestion par le registre
        • 1.4.5 Alternative pour l'envoi sur Docker Hub
        • 1.4.6 Diagnostic et validation du fonctionnement
        • 1.4.7 Utilisation des réseaux Docker
        • 1.4.8 Passage à l'échelle
        • 1.4.9 Utilisation du DNS
        • 1.4.10 Arrêt de la stack
      • 1.5 Le futur avec les bundles
        • 1.5.1 Principe des bundles
        • 1.5.2 Passage de Docker en mode expérimental
        • 1.5.3 Création du bundle
        • 1.5.4 Déploiement du bundle
        • 1.5.5 Dernière remarque sur les DAB
    • 2. Informations complémentaires
      • 2.1 Évolutions supplémentaires dans la grammaire Dockerfile
        • 2.1.1 Obsolescense du mot-clé MAINTAINER
        • 2.1.2 Passage d'argument à la compilation d'image
        • 2.1.3 Gestion de l'état de santé des conteneurs
        • 2.1.4 Approche complètement découplée
      • 2.2 Évolutions supplémentaires dans la grammaire Docker Compose
        • 2.2.1 Coopération entre image et build
        • 2.2.2 Composition de fichiers
        • 2.2.3 Détails sur les versions
    • 3. Mise en pratique sur un exemple plus complexe
      • 3.1 Contexte
      • 3.2 Modifications
        • 3.2.1 Récupération de la release
        • 3.2.2 Modifications du fichier Docker Compose
        • 3.2.3 Modifications annexes
      • 3.3 Mise en œuvre
        • 3.3.1 Préparation du Swarm
        • 3.3.2 Ouverture de la sécurité
        • 3.3.3 Récupération du code de l'application
        • 3.3.4 Compilation éventuelle des images
        • 3.3.5 Lancement de l'application
        • 3.3.6 Test de l'application
        • 3.3.7 Fermeture pour sécurité
  • Maintien en condition opérationnelle d’un cluster
    • 1. Utilisation d'un registre
      • 1.1 Docker Hub ou registre privé
      • 1.2 Registre privé as a Service avec Azure
    • 2. Gestion de la mise à jour des services
      • 2.1 Lien entre évolution logicielle et Docker
      • 2.2 Problématique associée
      • 2.3 Principe du rolling update
      • 2.4 Bonnes pratiques sur les versions applicatives
      • 2.5 Mise en œuvre sur un service dans Swarm
      • 2.6 Autres ajustements possibles du service
    • 3. Métadonnées et aiguillage
      • 3.1 Problématique
      • 3.2 Contraintes
      • 3.3 Mise en application
      • 3.4 Couplage lâche
    • 4. Répartition de charge dynamique
      • 4.1 Problématique
      • 4.2 Solution apportée
      • 4.3 Fonctionnement
      • 4.4 Préparation du fichier Docker Compose
      • 4.5 Ajout des instructions Traefik
      • 4.6 Test de fonctionnement
      • 4.7 Montage dans une stack Docker
  • Docker pour Windows
    • 1. Docker et Windows
      • 1.1 Généralités
      • 1.2 Plusieurs fonctionnements
        • 1.2.1 Docker Toolbox
        • 1.2.2 Docker for Windows
    • 2. Docker dans Windows
      • 2.1 Windows 10
        • 2.1.1 Installation
        • 2.1.2 Concurrence sur VT-X
        • 2.1.3 Modes de conteneurs disponibles
        • 2.1.4 Premier essai
      • 2.2 Windows Server 2016
        • 2.2.1 Installation
        • 2.2.2 Niveau d'isolation
        • 2.2.3 Utilisation depuis un client
    • 3. Spécificités sous Windows
      • 3.1 Images de base
        • 3.1.1 Nécessité
        • 3.1.2 Windows Server Core
        • 3.1.3 Nano Server
        • 3.1.4 Compatibilité et disponibilité
      • 3.2 Différences avec Linux
        • 3.2.1 Généralités
        • 3.2.2 Dockerfile
        • 3.2.3 Gestion du réseau
        • 3.2.4 Autres différences
      • 3.3 Versions
    • 4. Paramétrages
      • 4.1 Configuration standard
      • 4.2 Mode conteneurs Linux
      • 4.3 Cas particulier des lecteurs de disque
    • 5. Premiers conteneurs sous Windows
      • 5.1 Remarque préliminaire
      • 5.2 Remplacement de Nginx par IIS
        • 5.2.1 Création du Dockerfile
        • 5.2.2 Compilation du Dockerfile en une image
        • 5.2.3 Lancement du conteneur
        • 5.2.4 Test du conteneur
        • 5.2.5 Suppression du conteneur
        • 5.2.6 Mise en place de volumes
  • Industrialisation
    • 1. Objectifs d'industrialisation du cluster
    • 2. Vérification du fonctionnement
      • 2.1 Supervision matérielle du cluster
        • 2.1.1 Définition des tâches
        • 2.1.2 Outillage standard
      • 2.2 Supervision des conteneurs
        • 2.2.1 Définition des tâches
        • 2.2.2 Approche bétail plutôt qu’animal domestique
        • 2.2.3 Outillage possible
      • 2.3 Supervision applicative
        • 2.3.1 Définition des tâches
        • 2.3.2 Approches d'outillage
        • 2.3.3 Point de vue de l'utilisateur
    • 3. Pilotage du cluster
    • 4. Bonnes pratiques logicielles
      • 4.1 Importance de la normalisation des logs
      • 4.2 API de statut
      • 4.3 Retry policies et circuit breakers
      • 4.4 Répartition de la charge
        • 4.4.1 Load-balancing
        • 4.4.2 Inversion de consommation
      • 4.5 Gestion du multitenant
    • 5. Gestion de la performance
      • 5.1 Passage à l'échelle automatique
      • 5.2 Cas particulier du cache
      • 5.3 Alignement sur le CPU et les threads
      • 5.4 Approche "production only"
    • 6. Gestion de la persistance
    • 7. Sécurité
      • 7.1 Évolution de la prise en compte
      • 7.2 Sécurisation du cluster
      • 7.3 Pratique de sécurisation des ports
      • 7.4 Sécurité sur l'utilisation des images
        • 7.4.1 Choix des versions
        • 7.4.2 Distribution
        • 7.4.3 Docker Security Benchmark
    • 8. Pour aller plus loin
      • 8.1 Autres technologies
      • 8.2 Cluster hybride
      • 8.3 Déploiement et intégration continus
    • Index

Auteur

Jean-Philippe GOUIGOUXEn savoir plus

Ingénieur en Génie des Systèmes Mécaniques (Université de Technologie de Compiègne), diplômé de l'université de Cranfield en Angleterre (Master of science, spécialité Advanced Automation and Design), Jean-Philippe GOUIGOUX est aujourd'hui directeur technique de la société MGDIS, éditeur de logiciels spécialisés dans les architectures microservices et l'urbanisation des systèmes d'information. Jean-Philippe GOUIGOUX est reconnu Microsoft MVP (Most Valuable Professional) dans diverses spécialités depuis 2011. Il intervient régulièrement en conférences sur des sujets informatiques variés allant de la gestion de données à Docker, en passant par la performance en .NET. Passionné par le partage de ses connaissances, il est auteur de plusieurs livres et vidéos parus aux Éditions ENI.

Caractéristiques

  • Niveau Expert
  • Nombre de pages 362 pages
  • Parution juillet 2017
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-00937-2
    • EAN : 9782409009372
    • Ref. ENI : EPDOCDE
  • Niveau Expert
  • Parution juillet 2017
    • HTML
    • ISBN : 978-2-409-00987-7
    • EAN : 9782409009877
    • Ref. ENI : LNEPDOCDE

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (43,9 Ko)
  • Webographie