mirror of
https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/presentations.git
synced 2026-09-26 21:41:08 +00:00
3.9 KiB
3.9 KiB
Simplifiez vos déploiement avec la conteneurisation
Nathan Tien You
Sommaire
- Introduction à la conteneurisation
- Docker
- Principes clés
- Conteneurs
- Images
- Orchestration
- Exemples d'applications
- Principes clés
Nathan Tien You
- Ingénieur spécialité informatique
- Développeur fullstack
- Home Server :
- Proxmox
- Docker
- Gitea actions
- Amateur de jeux de deckbuilding
Problématiques liées à la virtualisation
- Gourmand (Mémoire, processeur, disque dur)
- Installation lourde
- Mises à jour et maintenance
- Système d'exploitation
- Outils de supervision
- Dépendances / prérequis
Infrastructure as code
- Automatisation
- Fiabilité
- Efficacité
- Contrôle des versions
- Autodocumenté
- Immutabilité
Virtualisation du service
Différents types de conteneurisation
- Conteneurs Processus
- Docker
- Podman
- Conteneurs Machine
- LXC
- LXD
Conteneurs
Contexte d'éxecution isolé : chroot
Base du conteneur : image
- Point d'entrée (exécutable)
- Variables d'environnement
- Ports
Registres d'images
Lancement d'un conteneur
docker run \
-it --rm \
-v /tmp:/usr/local/apache2/htdocs/ \
-p 8000:80 \
httpd:latest
Bonnes pratiques Docker
- Conteneurs éphémères
- Processus stateless
- Architecture Shared-nothing
- Images minimales
- Installer uniquement le nécessaire
- Séparer compilation et mise en production
Construction d'une image
FROM node:lts-alpine3.20
WORKDIR /app
COPY package.json ./
COPY package-lock.json ./
COPY index.js ./
RUN npm ci
CMD ["node", "index.js"]
docker buildx build . -t demo:latest
Orchestration
- Automatisation du déploiement
- Horizontal Scaling
- Nombreuses platformes
- Kubernetes
- Docker Compose
- OpenShift
Docker compose
services:
database:
image: redis:alpine3.20
volumes:
- database-data:/data
command: "redis-server --save 60 1"
networks:
- back
frontend:
image: docker-demo/front
build: ./front
volumes:
- ./test.txt:/usr/local/apache2/htdocs/test.txt
ports:
- "80:80"
networks:
- front
backend:
image: docker-demo/backend
build: ./back
environment:
- REDIS_URL=redis://database
depends_on:
- database
networks:
- back
- front
networks:
front:
back:
volumes:
database-data:
Orchestration : Kubernetes
- Clusters
- Stockage distribué
- Haute Disponibilité
- Redondance
- Stratégie de déploiement
Où utiliser la conteneurisation ?
- Services internes ou publics
- DevOps (Déploiement et intégration continue)
- Technologies Cloud (AWS, Azure...) ou on-prem
- Complémentaire aux machines virtuelles

