mirror of
https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/presentations.git
synced 2026-09-26 13:31:01 +00:00
Chore : move files out of directory
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
.idea/
|
||||
*.iml
|
||||
*.iws
|
||||
*.eml
|
||||
out/
|
||||
.DS_Store
|
||||
.svn
|
||||
log/*.log
|
||||
tmp/**
|
||||
node_modules/
|
||||
.sass-cache
|
||||
_static/
|
||||
*.bkp
|
||||
@@ -0,0 +1,9 @@
|
||||
FROM node:lts-alpine AS build-stage
|
||||
WORKDIR /app
|
||||
COPY package*.json .
|
||||
RUN npm ci
|
||||
COPY . .
|
||||
RUN npm run build
|
||||
|
||||
FROM nginx:stable-alpine AS production-stage
|
||||
COPY --from=build-stage /app/_static /usr/share/nginx/html
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 28 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 27 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 18 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 83 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 64 KiB |
Binary file not shown.
Generated
+5399
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"reveal-md": "^6.1.2"
|
||||
},
|
||||
"scripts":{
|
||||
"start":"npx reveal-md slides.md -w",
|
||||
"docker":"sudo docker run --rm -p 1948:1948 -p 35729:35729 -v .:/slides webpronl/reveal-md:latest /slides --watch",
|
||||
"build":"npm run start -- --static --static-dirs=assets"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"theme":"white",
|
||||
"css":"style.css"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"hash": true,
|
||||
"center": false,
|
||||
"slideNumber": "c/t",
|
||||
"transition":"slide",
|
||||
"backgroundTransition": "slide"
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
## Simplifiez vos déploiement avec la conteneurisation
|
||||
Nathan Tien You
|
||||
|
||||
---
|
||||
|
||||
## Sommaire
|
||||
- Introduction à la conteneurisation
|
||||
- Docker
|
||||
- Principes clés
|
||||
- Conteneurs
|
||||
- Images
|
||||
- Orchestration
|
||||
- Exemples d'applications
|
||||
|
||||
---
|
||||
|
||||
## Nathan Tien You
|
||||
<!-- .slide: data-visibility="hidden"-->
|
||||
- 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
|
||||

|
||||
<!-- <sup>source : [Gitlab](https://gitlab.com)</sup> -->
|
||||
|
||||
---
|
||||
|
||||
## Différents types de conteneurisation
|
||||
- Conteneurs Processus
|
||||
- Docker
|
||||
- Podman
|
||||
- Conteneurs Machine
|
||||
- LXC
|
||||
- LXD
|
||||
|
||||
---
|
||||
|
||||
## Conteneurs
|
||||
Contexte d'éxecution isolé : chroot
|
||||
|
||||
<object data-id="chroot.svg" data="./assets/chroot.svg" type="image/svg+xml"></object>
|
||||
|
||||
---
|
||||
|
||||
## Base du conteneur : image
|
||||
|
||||
<object data-id="Docker image.drawio.svg" data="./assets/Docker image.drawio.svg" type="image/svg+xml"></object>
|
||||
|
||||
---
|
||||
|
||||
## Registres d'images
|
||||
<!-- .slide: data-visibility="hidden"-->
|
||||

|
||||
---
|
||||
|
||||
## Lancement d'un conteneur
|
||||
|
||||
```bash
|
||||
docker run hello-world
|
||||
```
|
||||
|
||||
<object data-id="container.svg" data="./assets/Container.drawio.svg" type="image/svg+xml"></object>
|
||||
|
||||
----
|
||||
|
||||
<!-- .slide: data-visibility="hidden" data-background-video="./assets/run.mp4" data-background-size="contain" -->
|
||||
|
||||
---
|
||||
|
||||
## Bonnes pratiques Docker
|
||||
- Conteneurs éphémères
|
||||
- Processus stateless
|
||||
- Architecture Shared-nothing
|
||||
- Images minimales
|
||||
- Installer uniquement le nécessaire
|
||||
- Compiler le code dans les images : pas de compilation en production
|
||||
|
||||
---
|
||||
|
||||
## Construction d'une image
|
||||
<!-- .slide: data-visibility="hidden"-->
|
||||
```Docker dockercompose
|
||||
FROM node:lts-alpine3.20
|
||||
WORKDIR /app
|
||||
|
||||
COPY package.json ./
|
||||
COPY package-lock.json ./
|
||||
COPY index.js ./
|
||||
RUN npm ci
|
||||
|
||||
CMD ["node", "index.js"]
|
||||
```
|
||||

|
||||
```bash
|
||||
docker buildx build . -t demo:latest
|
||||
```
|
||||
----
|
||||
|
||||
<!-- .slide: data-background-video="./assets/run.mp4" data-background-size="contain" data-visibility="hidden" -->
|
||||
|
||||
---
|
||||
|
||||
## Orchestration
|
||||
- Automatisation du déploiement
|
||||
- Horizontal Scaling
|
||||
- Nombreuses platformes
|
||||
- Kubernetes
|
||||
- Docker Compose
|
||||
- OpenShift
|
||||
|
||||
---
|
||||
|
||||
<h2>Exemple d'usage</h2>
|
||||
<object data-id="Compose.svg" data="./assets/Compose.drawio.svg" type="image/svg+xml"></object>
|
||||
<!-- .slide: data-auto-animate -->
|
||||
|
||||
----
|
||||
```yaml [|1-4,11-13,21-23|5-6,14-15,36-37|8-9,18-19,28-30,32-34|7,16-17,24-25,26-27] dockercompose
|
||||
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
|
||||
@@ -0,0 +1,27 @@
|
||||
.reveal h2 {
|
||||
text-transform: unset;
|
||||
margin-left: -1ch
|
||||
}
|
||||
|
||||
/* .reveal img, .reveal object {
|
||||
margin: auto;
|
||||
display: block;
|
||||
} */
|
||||
|
||||
.reveal pre code {
|
||||
max-height: 620px;
|
||||
}
|
||||
|
||||
.reveal pre code.dockercompose {
|
||||
font-size: 16px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
|
||||
section {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.title-slide {
|
||||
height: unset;
|
||||
}
|
||||
Reference in New Issue
Block a user