Tailscale sur un homelab Kubernetes local

Contexte Mon serveur homelab fait tourner 28 services. La plupart sont privés, et je voulais un moyen simple d’y accéder depuis l’extérieur. J’ai choisi Tailscale. Voici comment je l’ai mis en place. Le réseau en dessous Avant la configuration du VPN, un peu de contexte sur la façon dont le réseau de mon cluster Kubernetes est organisé. La plupart de mes services sont privés, quelques-uns sont exposés sur internet. Cette séparation m’a donné deux classes de services, chacune a son propre namespace, son réseau et ses règles de sécurité (NetworkPolicies). ...

19 août 2026 · 6 min · Flavien Jourdren

Comment j’ai migré une codebase sans tests avec des boucles et un harnais IA

On m’a confié un SaaS sur Firebase à faire passer sur Supabase, avec un budget très limité. Cet article présente les techniques que j’ai utilisées pour y arriver avec un harnais IA. Point de départ L’application était un SaaS Nuxt.js avec 20 gros écrans qui tournaient sur Firebase, déjà écrit en TypeScript. Elle fonctionnait comme un workflow qui enrichissait les données métier étape par étape. Les utilisateurs pouvaient gérer plusieurs projets. Chaque projet appartenait à un ou plusieurs « managers », qui pouvaient inviter des « contributors » à parcourir le workflow. Cela impliquait un système de rôles. Il y avait également une partie administration. ...

8 août 2026 · 7 min · Flavien Jourdren

Installation de DevStack

DevStack est un projet dont le principe est de déployer rapidement un environnement de développement et de test du projet OpenStack. DevStack supporte Ubuntu 16.04 / 17.04, Fedora 24/25, CentOS / RHEL 7, ainsi que Debian et OpenSUSE. Dans cet article, nous installerons la version Ocata d’OpenStack. DevStack installe par défaut les modules : Keystone : Système d’identification. Nova : Module s’occupant de la virtualisation des machines. Cinder : Stockage. Neutron : Module réseau. Horizon : Interface web. Attention : DevStack n’est pas fait pour être redémarré. Il ne peut donc pas être utilisé comme environnement de production. ...

7 juin 2018 · 3 min · Flavien Jourdren

Réaliser une API REST

Le principe est de découper l’application sous forme de ressources que les clients peuvent utiliser au travers de requêtes HTTP. Cette architecture destinée aux systèmes distribués a été créée en 2000 par Roy Fielding dans sa thèse de doctorat. L’intérêt d’une API REST est de rendre les ressources de l’application utilisables par tous les composants de celle-ci. Cela permet de mettre en place des micro-services, de la portabilité, de donner accès à certaines fonctionnalités à des personnes extérieures… ...

6 juin 2018 · 3 min · Flavien Jourdren

Déploiement continu et automatique avec Docker et Jenkins

Le but de ce tutoriel sera de mettre en place le déploiement continu & automatique d’une application avec Jenkins sur une architecture Docker. Le déploiement continu & automatique est l’un des concepts clés du mouvement DevOps. Le but de la manoeuvre est de favoriser l’industrialisation d’une application en permettant à un système : de tester l’application, de construire l’image du conteneur et de mettre celui-ci en production. ...

14 avril 2018 · 6 min · Flavien Jourdren

Rappel sur la répartition de charge

La répartition de charge est l’un des concepts essentiels à la mise en place d’architectures capables d’absorber une charge importante et résistantes aux pannes. Il s’agit d’un ensemble de techniques permettant de distribuer une charge de travail entre différents ordinateurs d’un groupe. Les domaines d’utilisation de la répartition de charge sont de plus en plus nombreux en particulier avec l’avènement du cloud et des architectures de données décentralisées. Ainsi ces techniques sont utilisées dans : les supercalculateurs, les services HTTP à forte audience, les bases de données nécessitant un accès permanent, le big data, l’entraînement des réseaux neuronaux, etc. ...

7 avril 2018 · 3 min · Flavien Jourdren

Installation de Jenkins

Jenkins est un outil d’intégration continue Open Source développé en Java. Ajout des dépôts pour installer Java 8 Ajout des dépôts : echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list Ajout du certificat de vérification des paquets : apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 Mise à jour des dépôts : apt-get update Installation de Java 8 Installer le paquet de java 8 et accepter ses conditions d’utilisation : ...

6 avril 2018 · 2 min · Flavien Jourdren

Création d'un serveur MySQL Master-Master avec load balancing

Cet article traitera de la procédure de mise en place d’un serveur MySQL Master-Master (et Master-Slave) avec un système de load balancing utilisant l’algorithme round robin (grâce à HAProxy). Dans l’exemple nous aurons trois serveurs, un gérera la répartition de charge (qui se nommera SRV-LBSQL et aura l’adresse IP 10.0.0.100) et deux serveurs MySQL connectés l’un avec l’autre (ayant respectivement pour nom SRV-MYSQL01 et SRV-MYSQL02 et les adresses IP 10.0.0.1 et 10.0.0.2). Chaque serveur MySQL traitera à tour de rôle une requête SQL. Les serveurs de base de données répliqueront les informations l’un à l’autre grâce à une technique de double relation Master-Slave. ...

28 mars 2018 · 6 min · Flavien Jourdren

Découverte & Présentation de Vagrant

Vagrant est une solution Open Source créée pour la configuration automatique de machines virtuelles et de conteneurs. Vagrant permet par exemple de configurer la quantité de RAM, la quantité de CPU, les paramètres réseaux et le nom d’hôte. Il peut ensuite automatiquement exécuter des scripts de gestion de configuration (Ansible, Chef, Puppet, etc.). Ces scripts vont permettre l’installation et la configuration des paquets via le protocole SSH. La première version est sortie le 8 mars 2010 et était développée par Mitchell Hashimoto et John Bender en Ruby. Vagrant est par défaut compatible avec les services de virtualisation suivants : ...

27 mars 2018 · 4 min · Flavien Jourdren

Installation d'un environnement de test Ethereum sur Linux

Depuis quelque temps je m’intéresse à la blockchain Ethereum, en particulier à la fonctionnalité de “Smart Contract”. Il s’agit d’un script qui est déployé sur la blockchain et que les mineurs exécutent en échange d’une somme d’argent variable en fonction du contenu du script. Mais pour tester ces smart contracts, il faut installer un réseau Ethereum privé. Ce tutoriel nécessite une compréhension minimale de la blockchain Ethereum et des systèmes de “Proof of Work”. ...

26 mars 2018 · 3 min · Flavien Jourdren