Slide 1

Slide 1 text

mais peut-on faire autrement ? Docker c'est cool, Kubernetes c'est hype Julien Maitrehenry - 2025

Slide 2

Slide 2 text

Dev, Ops, Cloud Architect, mentor Chief Architect @Paren Qui suis-je? Docker Captain Julien Maitrehenry - 2025 Julien Maitrehenry Paren.app jmaitrehenry.ca Github.com/jmaitrehenry Linkedin/in/jmaitrehenry

Slide 3

Slide 3 text

Pourquoi cette conférence ? • Docker et Kubernetes sont devenus des standards. • Mais sont-ils toujours la meilleure solution ? • Explorons des alternatives plus légères et accessibles. Introduction Julien Maitrehenry - 2025

Slide 4

Slide 4 text

Docker • Isolation • Portabilité • Facilité de déploiement • Rapidité • Gestion des données persistantes • Supervision • Gestion multi-conteneurs • Complexité du réseau Julien Maitrehenry - 2025 Avantages Limites

Slide 5

Slide 5 text

Kubernetes • Orchestration automatisée • Évolutivité • Haute disponibilité • Gestion du réseau et des services • Sécurité renforcée • Courbe d’apprentissage élevée • Consommation de ressources • Configuration et maintenance • Déploiement difficile • Complexité Julien Maitrehenry - 2025 Avantages Limites

Slide 6

Slide 6 text

Julien Maitrehenry - 2025

Slide 7

Slide 7 text

Nos autres options Julien Maitrehenry - 2025

Slide 8

Slide 8 text

Solutions clef en mains • Gestion minimal • Haute disponibilité • Coût de maintenance faible • Déploiement simple • Flexibilité limité • Évolutivité limité • Limitation réseau Julien Maitrehenry - 2025 Avantages Limites Azure Container App, Digital Ocean App Platform, Vercel, etc

Slide 9

Slide 9 text

Notre framework Julien Maitrehenry - 2025 Infrastructure as Code Configuration as Code Continuous Deployment

Slide 10

Slide 10 text

Infrastructure as Code Julien Maitrehenry - 2025 • Automatisation 🤖 • Réduction des erreurs humaines ⚠ • Cohérence et reproductibilité 🔄 • Versionnement et collaboration 🛠 • Sécurité et conformité 🔐

Slide 11

Slide 11 text

Terraform Julien Maitrehenry - 2025 • Cloud agnostic • Bonne communauté • Supporte les principaux cloud providers

Slide 12

Slide 12 text

Configuration as Code Julien Maitrehenry - 2025 • Automatisation 🤖 • Réduction des erreurs humaines ⚠ • Cohérence et reproductibilité 🔄 • Versionnement et collaboration 🛠 • Sécurité et conformité 🔐

Slide 13

Slide 13 text

Ansible Julien Maitrehenry - 2025 • Simple à utiliser • Sans agents • Mostly YAML • Aussi des templates Jinja • Encryption des secrets

Slide 14

Slide 14 text

Continuous Deployment Julien Maitrehenry - 2025 • Automatisation 🤖 • Réduction des erreurs humaines ⚠ • Cohérence et reproductibilité 🔄 • Versionnement et collaboration 🛠 • Sécurité et conformité 🔐

Slide 15

Slide 15 text

Github Action Julien Maitrehenry - 2025 • Build as usual • Déploiement via SSH • Déploiement via CLI/API du produit cloud

Slide 16

Slide 16 text

Exemples Julien Maitrehenry - 2025

Slide 17

Slide 17 text

Application Go Julien Maitrehenry - 2025 • Build d’un binaire • VM (Digital Ocean droplet) • Ansible • Systemd • Déploiement via SSH

Slide 18

Slide 18 text

Ansible module Architecture

Slide 19

Slide 19 text

Ansible module Architecture Tâches

Slide 20

Slide 20 text

SystemD unit paren-amenities.service paren-scraper-manager.service

Slide 21

Slide 21 text

SystemD unit + timer Timer Unit paren-scraper-metadata.service paren-scraper-metadata.timer

Slide 22

Slide 22 text

jobs: build-and-test: runs-on: ubuntu-latest steps: […] - name: Build run: go build -o bin/paren-cli -ldflags="-X 'dataget/internal/version.tag=${GITHUB_REF}' -X ‘paren/internal/version.commitHash=${GITHUB_SHA}'" . - name: Archive production artifacts uses: actions/upload-artifact@v4 with: name: paren-cli retention-days: 1 path: | bin/paren-cli Github Action

Slide 23

Slide 23 text

deploy: steps: […] - name: Setup SSH run: | mkdir -p ~/.ssh/ echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H ${{ env.managerHost }} >> ~/.ssh/known_hosts - name: Update ${{ matrix.org }} run: | scp paren-cli root@host:/opt/paren/bin/paren-cli-new ssh root@host "chmod +x /opt/paren/bin/paren-cli-new \ && mv /opt/paren/bin/paren-cli /opt/paren/bin/paren-cli-previous \ && mv /opt/paren/bin/paren-cli-new /opt/paren/bin/paren-cli" ssh root@host "systemctl restart paren-scraper-manager paren-ingestion" Github Action

Slide 24

Slide 24 text

Application nodeJS Julien Maitrehenry - 2025 • Docker • Terraform • Digital Ocean App Service • Digital Ocean Container Registry • Déploiement via l’API/CLI

Slide 25

Slide 25 text

Oui mais ! Julien Maitrehenry - 2025

Slide 26

Slide 26 text

Utilisation de Docker Julien Maitrehenry - 2025 • En dev pour les dependences • Docker compose • Docker run pour des utilitaires • Tests d’intégrations • Test containers

Slide 27

Slide 27 text

Utilisation de Kubernetes Julien Maitrehenry - 2025 • Remplacement de App Plateforme • Seuil critique d’application • Besoin grandissant en observabilité

Slide 28

Slide 28 text

Faut-il toujours suivre les hypes ? Non. Conclusion Julien Maitrehenry - 2025

Slide 29

Slide 29 text

Faut-il toujours suivre les hypes ? Non. ✔ Choisir selon le besoin réel ✔ Ne pas complexifier inutilement ✔ Pas ”d’optimisation” précoce ✔ Les alternatives existent et fonctionnent ✔ Adapter les outils à son projet, son context et son équipe Conclusion Julien Maitrehenry - 2025

Slide 30

Slide 30 text

💬 Votre avis ? ❓ Questions et échanges Discussion & Questions Julien Maitrehenry - 2025