Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BreizhCamp 2025 - Comment transformons-nous les...

Avatar for Julien Briault Julien Briault
June 27, 2025
32

BreizhCamp 2025 - Comment transformons-nous les Restos du Coeur en Cloud Provider ? (Keynote)

Avatar for Julien Briault

Julien Briault

June 27, 2025
Tweet

More Decks by Julien Briault

Transcript

  1. Disclaimer 3 On aime les acronymes RDC = Restos du

    Coeur République Démocratique du Congo Rez de chaussée
  2. Julien Briault Uptime 27y Senior Network Engineer | SRE @

    Auteur @ Linux Pratique Responsable (bénévole) @ #3615 Ma vie @ju_hnny5 @jbriault.fr
  3. “J’ai une petite idée comme ça (...) un resto qui

    aurait comme ambition, au départ, de distribuer deux ou trois milles couverts par jour.” @ju_hnny5
  4. Les Restos en quelques chiffres … 163 millions de repas

    servis (2023-2024) 112 Associations départementales 2348 Lieux d’accueil (centre de distribution, etc). 78 000 Bénévoles réguliers (dont 35 000 qui utilisent l’informatique au quotidien) + de 40 Applications fonctionnelles (Applications utilisées par les bénévoles au quotidien) @ju_hnny5
  5. Le pc qui “traine dans un coin” Des sauvegardes ??

    ☠ De la redondance ?!? 💀 Y’a quoi là dessus ? 👀 Ça x112 ? (spoiler : presque) @ju_hnny5
  6. Nos objectifs - Une infrastructure ouverte et accessible (cloud?) -

    Une infrastructure fiable et de confiance - Que ça ne coûte (presque) rien - Être indépendant au maximum (sur l’hébergement de la donnée) - Une expertise partagée pour le bien commun
  7. Le réseau 💀 • Réseau Out of band (OOB) •

    Réseau 1G (pour le management, provisionner les machines) • Réseau 10G 100G pour la production • V1 = 3 tier (L2) ◦ vxlan / vlan • V2 = Leaf/Spine/Super spine (Full L3) ◦ BGP EVPN + vxlan @ju_hnny5
  8. Tout est code* … 📄 • Limiter le “Shadow IT”

    • Déploiements accélérés • Rollbacks facilités • Application des bonnes pratiques de sécurité (SAST/DAST) et de développement (linter, etc) dans nos pipelines (CI/CD) @ju_hnny5
  9. 2 règles importantes : • Les évolutions de configuration des

    machines sont appliquées via de la CI|CD • En cas de besoin, il est possible de se connecter via : Pas de connexion directe sur les machines ? @ju_hnny5
  10. • Vérifier l’application du benchmark CIS • Alerter sur les

    connexions hors heures ouvrées • Alerter en cas de CVE >= 7.0 sur Slack/Teams Un SIEM/XDR ? 👀 @ju_hnny5
  11. • Déploiement des noeuds muables ◦ Déploiement des agents* via

    cloud-init • Gérer le cycle de vie du serveur ◦ Gérer le serveur physique comme une VM ◦ Redéployer facilement si besoin • Création des enregistrements DNS dédiés à l’administration MaaS en renfort ! 🦾 @ju_hnny5
  12. • Stockage des roles et collections dans Gitlab • Chaque

    applicatif séparé possède son dépôt Git qui lui est dédié ◦ Exemple : ▪ Ansible/Collections/rudder ▪ Ansible/Playbooks/rudder-provisioning • Chaque déploiement est réalisé via la CI (Gitlab Runner) ◦ Les runners sont éphémères, sont créés dans Kubernetes en fonction du besoin. : Déploiement de configuration @StephaneTrognon
  13. • “Share Session” ◦ Format de 15/30 mn sur un

    sujet précis qui est record ◦ Vient en complément de la documentation • Tout doit être documenté ◦ Exemple : “run books” en cas de pépin sur l’infra ▪ Stack déployée = obligatoirement documentée ◦ Pas de rétention d’information ▪ On est pas éternel • Construction commune sans oublier les objectifs Le partage @ju_hnny5
  14. Kube… pourquoi ? • Faciliter les déploiements et la mise

    à l’échelle des éléments de “l’undercloud”* • Gestion “as code” + • Astreinte friendly 🩷 @ju_hnny5
  15. Algo de Feynman 1. Écrire le problème 2. Réfléchir 3.

    Écrire la solution https://ploum.net/2024-06-05-complexite-simplicite.html
  16. OpenStack from scratch (via Ansible) @ju_hnny5 • Horrible à maintenir

    (montées de versions) • Python 3 … (Cc les dépendances) • Ça ne scale pas des masses …
  17. OpenStack ? • Les antennes départementales peuvent déployer leur service

    sur l’infrastructure de manière transparente • L’antenne nationale a à sa disposition des ressources qui peuvent se mettre à l’échelle à moindre coût @ju_hnny5
  18. console. aucoeurdu. cloud <service> .<region>. aucoeurdu. clou d Point d’entrée

    unique : Accès aux services cloud de manière régionalisée : @ju_hnny5
  19. Architecture classique 📄 Hyperviseur A Hyperviseur B Hyperviseur C Hyperviseur

    D Stockage A Stockage B Stockage C Stockage D @ju_hnny5
  20. Architecture Hyper-convergée 📄 Hyperviseur A + Stockage Hyperviseur B +

    Stockage Hyperviseur C + Stockage Hyperviseur D + Stockage @ju_hnny5
  21. @ju_hnny5 L’hyper-convergence ? • Matériel : PowerEdge R730xd ◦ Hyperviseur

    (KVM) + Ceph embarqué (OSDs en façade) ◦ Noeuds : ▪ Bi-Xeon (32 coeurs) ▪ 512 -> 1k RAM ▪ x10 OSDs (entre 2 et 4TO /disque) ▪ Réseau 10G 100G • Ceph-mon, manager, dashboard sont embarqués dans Kubernetes
  22. @ju_hnny5 Laisser les serveurs allumés ? • Contrat à la

    consommation ◦ Plus je consomme, plus je paie • Allumer/éteindre de manière totalement automatisée
  23. Surveillance et observabilité 1. Toute application déployée se doit d’être

    observée 2. Les alertes doivent être configurées 3. Les alertes doivent avoir en relation : a. La documentation “runbook” b. Les graphiques
  24. Une seule source de vérité ? • V1 : Spreadsheet

    pour stocker les informations • V2 : Inventaire de Rudder + Ansible + OctoDNS @ju_hnny5
  25. Context • Projet né à l’AD28 comme un autre projet

    en lien* • La supervision + alerting des chambres froides ◦ ça coûte cher, très cher (coût /an) ◦ différent d’une AD à une autre @ju_hnny5
  26. Pour faire simple • Les sondes envoient les données dans

    le “Cloud” des Restos • Rétention d’un an • Données distribuées et sauvegardées @ju_hnny5
  27. Linux du Coeur • Besoin de stockage pour : ◦

    La mise à disposition des images ISO ◦ L’accès aux majs (repo geo-localisés) • Besoin d’outillage pour build les images ◦ CI/CD Gitlab @ju_hnny5
  28. Linux du Coeur • L’outillage pour le dépannage (Open Source)

    • La mise à disposition de packages customs ◦ Système de “GPO” pour Linux ◦ Déploiement de nouvelles apps @ju_hnny5
  29. @ju_hnny5 Quelques chiffres pour terminer 📝 • Environ : ◦

    900 VMs (éphémères pour la plupart) ◦ 500 Pods (monte jusqu’à 700) ◦ 80 serveurs/AZ (allumés en fonction du besoin) • 11 personnes actives sur le projet (on recrute 󰗞) • Plusieurs millions d’euros économisés (et donc de repas distribués) • Une vingtaine d’entreprises partenaires