Introduction à Docker et Gaudi

Post on 21-Jun-2015

1.146 views 0 download

description

Slides de c

Transcript of Introduction à Docker et Gaudi

@manuquentinmarmelab

#AperoWebNancy

#EntenduANancy

« C’est quoi la version de Postgres à installer ? »

« Ah non moi j’ai pas ça chez moi »

« Pourtant ça marchait en preprod »

« C’est quoi la commande pour installer redis sur Fedora ? »

« Je comprends pas, mon apache il tourne plus » !!!!!

Problème dans l’industrie du transport Comment transporter différents type de produits ?

La solution Les containers !

Problème dans le domaine de l’IT Comment faire cohabiter différentes applications ?

La solution Les containers ! (encore)

Installation

Démarrer un container

Structure d’un container

AuFS

Création d’un premier container

Deux choix :

1. Lancer un container vide et commiter les changements

Problème: rend l’installation obscure

2. Créer un container depuis un DockerFile

Avantage: un seul fichier référence toutes les opérations à jouer

Commiter un container

Dockerfile

!

• Définit une image de base !

• Une suite d’instructions à jouer !

• Des fichiers à ajouter !

• Des ports à exposer !

• Une commande à lancer

Back to the future

Exemple : un compteur de visite revisité

!

• Une application NodeJS

• Un serveur Redis stockant le nombre de visites sur la homepage

Dockerfile - nodejs

Docker : options de lancement

Index

Lancer un container en utilisant l’index

Lier les containers

Variables d’environnement après liaison

Serveur NodeJS

Commandes utiles

!

• docker ps [-a]

• docker images

• docker kill [identifiant / nom]

• docker logs [identifiant / nom]

• docker inspect [identifiant / nom]

Docker - débrief

!

• Contraignant (lancer les containers dans l’ordre)

• Obligation de rebuilder après chaque modification dans un Dockerfile

• Peut être optimisé (lancer des containers en //)

• Script (différent pour chaque projet) difficile à mettre en place

Gaudi

!

• Problématique : Installation des composants logiciels

• Outil d’orchestration simple: permet de lancer des containers et les lier entre eux.

• Go : asynchrone grâce aux go-routines et typage fort

Gaudi : configuration

Gaudi : lancement

Gaudi : builder

Question(s) ?