<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Engineering Archives | Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/fr/blog/tag/engineering/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.clever.cloud/fr/blog/tag/engineering/</link>
	<description>From Code to Product</description>
	<lastBuildDate>Mon, 19 Oct 2026 15:03:35 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>Engineering Archives | Clever Cloud</title>
	<link>https://www.clever.cloud/fr/blog/tag/engineering/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Stop Prompting. Start Shipping. Ce que 40 développeurs ont créé à Devoxx Belgium</title>
		<link>https://www.clever.cloud/fr/blog/event/2026/10/16/devoxx-belgium-48-applications-40-developpeurs/</link>
		
		<dc:creator><![CDATA[Horacio Gonzalez]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 15:25:26 +0000</pubDate>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Engineering]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=25805</guid>

					<description><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.10.16 Clever Cloud Bannière Blog Stop Prompting. Start Shipping. FR" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1.png 2500w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-1368x607.png 1368w" sizes="(max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p><em>À Devoxx Belgium, nous avons lancé un défi aux développeurs : créer et déployer une véritable application, avec une vraie base de données, en une quinzaine de minutes. Un petit coup de pouce de l'IA, une touche belge et quelques LEGO pour la motivation. Voici ce que ça a donné.</em></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça fait presque 20 ans que je vais à Devoxx Belgium. C'est une conférence qui compte énormément pour moi, aussi bien personnellement que professionnellement. C'est là que j'ai eu l'idée de créer ce qui allait devenir FinistDevs, là que j'ai commencé à m'imaginer un jour sur scène en tant que speaker, et là aussi que, quelques années plus tard, j'ai découvert que les Developer Relations pouvaient être un vrai métier.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors, quand Clever Cloud a décidé de sponsoriser Devoxx Belgium cette année, j'étais particulièrement heureux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais avant de partir pour Anvers, il y avait une question que je me posais : <strong>qu'est-ce qu'on pourrait proposer sur notre stand qui soit vraiment intéressant pour les développeurs ?</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Bien sûr, on voulait faire découvrir Clever Cloud. C'est quand même une des raisons pour lesquelles les entreprises sponsorisent des conférences de développeurs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais je n'avais pas envie de passer trois jours à expliquer aux visiteurs à quel point c'est facile de déployer une application sur notre plateforme.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Je voulais qu'ils le découvrent par eux-mêmes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et c'est comme ça qu'est né le <strong>15-minute Clever Cloud Challenge</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Stop Prompting. Start Shipping.</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le principe était tout simple.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Venez sur notre stand. Ouvrez votre ordinateur. Créez une petite application. Connectez-la à une vraie base de données. Déployez le tout sur Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et faites ça en une quinzaine de minutes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il n'y avait que quelques règles :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>N'importe quelle stack.</strong> JavaScript, Python, Java, Go, ce que vous préférez.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>N'importe quelle IA.</strong> Claude, ChatGPT, Gemini, Copilot ou votre agent de code préféré. Peu importe.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Une petite touche belge.</strong> Frites, bière, BD, cyclisme, Magritte, Devoxx lui-même. Tout ce qui pouvait avoir un rapport, même lointain, avec la Belgique.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Une vraie base de données et un vrai déploiement.</strong> Pas une maquette, pas une capture d'écran, pas une application qui tourne uniquement sur votre ordinateur. Quelque chose d'accessible publiquement, avec des données qui persistent réellement.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Et comme les 15 minutes étaient un objectif, pas une raison de pénaliser quelqu'un qui passait un peu plus de temps à déboguer, on n'était pas particulièrement stricts sur le chronomètre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'important, c'était de déployer quelque chose.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avions préparé une <a href="https://lostinbrittany.dev/cc-devoxx-be-2026/?utm_source=chatgpt.com">page dédiée au challenge</a> avec les instructions, un prompt de démarrage à copier dans son assistant IA préféré et un coupon offrant <strong>200 € de crédits Clever Cloud, valables six mois</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le prompt proposait trois idées de petites applications, aidait le participant à en choisir une, puis l'accompagnait dans le développement, la création de la base de données et le déploiement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On avait aussi prévu une petite motivation supplémentaire : chaque personne ayant terminé le challenge pouvait participer à un tirage au sort quotidien pour gagner des LEGO. Parce que bon, des LEGO, quoi.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25792,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-1024x430.png" alt="image" class="wp-image-25792"/><figcaption class="wp-element-caption">BB-8 le mardi. La fusée de Tintin le mercredi. Goinfrex le jeudi.</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Mais il n'y avait ni jury, ni classement, ni récompense pour l'application la plus sophistiquée. Une toute petite application fonctionnelle avait exactement les mêmes chances de gagner qu'un projet ambitieux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On n'organisait pas un hackathon, on invitait les développeurs à découvrir une plateforme en l'utilisant vraiment.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">40 développeurs. 48 applications déployées.</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Et ça a marché.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pendant les trois jours, <strong>40 développeurs ont créé et déployé une application avec une véritable base de données sur Clever Cloud.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Je voudrais insister un instant sur ce chiffre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pas 40 personnes qui ont scanné un QR code. Pas 40 adresses email récupérées sur un stand. Pas 40 coupons distribués.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>40 développeurs qui ont réellement construit quelque chose, provisionné une base de données, déployé leur application et sont revenus nous montrer ce qu'ils avaient créé.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour moi, c'est un résultat beaucoup plus intéressant que le nombre de personnes passées devant notre stand.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et le meilleur dans tout ça ? Ce qu'ils ont construit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avions volontairement laissé le challenge très ouvert. Pas d'application modèle, pas de tutoriel imposé que tout le monde devait suivre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On donnait aux participants un objectif, quelques contraintes et la liberté d'être créatifs. Les résultats ont été bien plus variés que ce que j'imaginais.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Quelques-unes de mes applications préférées</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Impossible de présenter les 48 applications ici, mais j'avais envie de partager quelques-unes de celles qui m'ont particulièrement marqué.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pas forcément parce qu'elles étaient les plus sophistiquées techniquement, mais parce qu'elles étaient amusantes, originales ou qu'elles exploitaient particulièrement bien les contraintes du challenge.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">It's Raining Devs : quand Magritte rencontre Devoxx</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://raining-devs.cleverapps.io/?utm_source=chatgpt.com"><strong>Essayer It's Raining Devs</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Celle-ci fait probablement partie de mes préférées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Prenez les tableaux surréalistes de René Magritte, ajoutez une foule de développeurs participant à Devoxx et transformez le tout en une œuvre interactive et collaborative.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25794,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-1-1024x557.png" alt="image" class="wp-image-25794"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Les participants peuvent créer leur propre personnage flottant, choisir ce qui lui cache le visage, lui donner un nom et rejoindre le tableau.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et ces développeurs ne sont pas de simples éléments affichés temporairement dans un navigateur. Chacun est enregistré dans PostgreSQL sur Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il y a même de petites interactions, un appel des participants et des cartes postales à enregistrer ou à partager.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>J'adore cette application parce qu'elle combine quelque chose de très belge, une idée vraiment ludique et une base de données qui fait partie intégrante de l'expérience.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elle illustre aussi quelque chose que j'apprécie particulièrement dans ce genre de challenges :&nbsp;<strong>une petite application n'est pas obligée d'être une application ennuyeuse.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Roll for Waffle : laissez les dés décider de votre destin</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://roll-for-waffle.cleverapps.io/"><strong>Créer votre propre gaufre belge</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Qu'est-ce qui se passe quand on mélange des gaufres belges et des dés polyédriques, comme ceux qu'on utilise dans les jeux de rôle sur table ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On obtient&nbsp;<strong>Roll for Waffle</strong>, et j'adore le résultat.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le concept est merveilleusement simple : au lieu de choisir les ingrédients de votre gaufre, vous laissez les dés décider.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>D'abord, un lancer pour la base de la gaufre. Ensuite, un autre pour la garniture principale. Et enfin, un dernier pour la garniture secondaire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque lancer s'accompagne d'un joli dé polyédrique animé, et le résultat vient s'ajouter à votre création.<br></p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25801,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-5-1024x794.png" alt="image" class="wp-image-25801"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Vous allez peut-être obtenir une classique gaufre de Liège avec de la pâte de spéculoos et des fraises fraîches. Ou alors une combinaison complètement improbable qu'aucun pâtissier belge n'oserait servir.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est justement ce qui fait tout le charme du jeu. Vous ne choisissez pas. Les dés ont parlé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et une fois votre création terminée, vous pouvez partager votre chef-d'œuvre généré aléatoirement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En tant que personne ayant passé un nombre absolument déraisonnable d'heures à lancer des dés polyédriques, cette application m'a immédiatement fait sourire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est un exemple parfait de ce que j'ai aimé dans ce challenge :&nbsp;<strong>donnez aux développeurs un thème simple, un peu de liberté et l'occasion d'expérimenter, et ils trouveront des idées auxquelles vous n'auriez jamais pensé.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Bon, excusez-moi, j'ai une gaufre à tirer aux dés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Devoxx Bingo : parce que chaque conférence a ses clichés</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://app-8b118b78-eda8-41cf-bae3-96fd714dc7a8.cleverapps.io/"><strong>Jouer à Devoxx Bingo</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si vous avez participé à suffisamment de conférences de développeurs, vous savez que certaines choses finissent presque toujours par arriver.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Certaines expressions vont être répétées. Certaines technologies vont être mentionnées. Certains moments vont vous sembler étrangement familiers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors pourquoi ne pas en faire un bingo ?</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25795,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-2-1024x916.png" alt="image" class="wp-image-25795"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Devoxx Bingo vous propose une grille de clichés de conférence à repérer pendant l'événement. Cochez-les au fur et à mesure que vous les rencontrez et essayez de compléter une ligne.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'application se présente comme une quête secondaire non officielle, sans le moindre prix à gagner, mais avec le droit de se vanter de sa victoire. Un droit tout à fait discutable, d'ailleurs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Exactement le genre d'application qui me fait sourire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et franchement, j'imagine très bien des gens y jouer pendant une conférence.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Devoxx YouTube Search : retrouver cette conférence dont on se souvient vaguement</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://devoxx-youtube-search.cleverapps.io/"><strong>Explorer Devoxx YouTube Search</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Vous connaissez cette sensation ? Vous vous souvenez d'avoir vu une excellente conférence, mais impossible de retrouver qui la présentait, ou même en quelle année c'était.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avec presque deux décennies de conférences enregistrées, Devoxx a constitué une incroyable bibliothèque de connaissances techniques sur YouTube. Mais retrouver une session précise n'est pas toujours évident.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est là qu'intervient&nbsp;<strong>Devoxx YouTube Search</strong>.<br></p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25802,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-6-1024x499.png" alt="image" class="wp-image-25802"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>L'application permet de rechercher des vidéos Devoxx à partir de leurs titres et descriptions, pour retrouver plus facilement des conférences sur les sujets qui vous intéressent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que j'aime particulièrement ici, c'est le choix du sujet. Alors que beaucoup de participants ont choisi quelque chose de ludique ou de typiquement belge, ce développeur a décidé de créer un outil directement lié à la conférence et à son contenu.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est un joli rappel qu'un challenge comme le nôtre ne produit pas uniquement des jeux et des expérimentations. Il peut aussi inspirer des outils qui répondent à de vrais besoins de la communauté.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et en tant que personne ayant donné pas mal de conférences au fil des années, j'apprécie forcément tout ce qui peut aider les gens à les découvrir !</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">BelgiQ : à quel point êtes-vous belge ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://app-ffd5ff7b-b8c7-4a47-8c51-6a14f097f314.cleverapps.io/"><strong>Essayer BelgiQ</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>BelgiQ se présente comme&nbsp;<em>« Le quiz qui a la frite »</em>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça commence déjà bien.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est un quiz sur le thème de la Belgique, disponible en français, en néerlandais et en anglais, avec un classement des joueurs.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25796,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-3-1024x601.png" alt="image" class="wp-image-25796"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Mais ce qui rend cette application particulièrement intéressante, c'est que son créateur,&nbsp;<strong>Gwenaël Jakab, a partagé son expérience sur LinkedIn</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Gwenaël a choisi de construire BelgiQ avec Node.js, Express et PostgreSQL. Il a utilisé ChatGPT pour préparer son prompt, puis confié l'implémentation et le déploiement à ChatGPT Work.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>15 minutes plus tard, il avait une application fonctionnelle.</strong>&nbsp;Après 10 minutes supplémentaires à examiner le résultat, demander quelques ajustements et du refactoring, il avait une V2 dont il était satisfait.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et il n'avait pas écrit lui-même le code de l'application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que j'ai particulièrement apprécié dans&nbsp;<a href="https://lnkd.in/p/ebBTemUP">son témoignage</a>, c'est sa vision du rôle du développeur. Même lorsqu'un agent IA prend en charge l'implémentation, il faut toujours quelqu'un pour faire les choix d'architecture, définir les besoins, relire le code et valider le résultat.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est une distinction importante, qui se perd parfois dans les discussions autour du développement assisté par IA.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour moi, son expérience illustre aussi exactement ce qu'on cherchait à montrer avec ce challenge :&nbsp;<strong>permettre aux développeurs de se concentrer sur ce qu'ils veulent construire, tout en découvrant à quel point il peut être simple de le déployer sur Clever Cloud.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et le mieux dans tout ça ? Vous pouvez&nbsp;<a href="https://app-ffd5ff7b-b8c7-4a47-8c51-6a14f097f314.cleverapps.io/">essayer BelgiQ vous-même</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Friesdvisor : les vraies questions de la vie</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://friesdvisor.cleverapps.io/"><strong>Explorer Friesdvisor</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Oubliez les recommandations de restaurants.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On est en Belgique. Il faut parler de frites.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Friesdvisor est un annuaire dans lequel vous pouvez rechercher une friterie ou une ville, et ajouter de nouveaux établissements.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25799,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-4.png" alt="image" class="wp-image-25799"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>C'est une idée merveilleusement simple, et exactement le genre de référence belge qu'on espérait voir apparaître.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que j'aime particulièrement, c'est que ce n'est pas juste une blague. C'est un concept qui pourrait devenir une petite application communautaire réellement utile.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et évidemment, il faut bien un endroit où stocker toutes ces friteries.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">48 applications et encore plein de créativité à découvrir</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Ce ne sont que quelques-unes de mes préférées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais une des choses que j'ai le plus aimées dans ce challenge, c'est l'incroyable diversité des idées. Donnez à 40 développeurs le même point de départ, les mêmes contraintes et une quinzaine de minutes, et vous obtenez 48 interprétations différentes de ce que peut être une petite application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Certains ont créé des jeux. D'autres des outils pratiques. Certains ont puisé leur inspiration dans la culture belge, tandis que d'autres se sont tournés vers la conférence elle-même.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et impossible de rendre justice à toutes ces créations dans un seul article.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pour ça que nous avons créé la galerie&nbsp;<strong>Built at Devoxx Belgium</strong>, dans laquelle vous pouvez découvrir les applications que les participants ont choisi de partager publiquement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://devrel.clever.cloud/2026/devoxx-be/gallery/"><strong>👉 Découvrir la galerie du Clever Cloud Challenge</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Allez y faire un tour. Essayez les applications. Découvrez ce que les participants ont imaginé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et si l'une d'entre elles vous fait sourire, ou vous donne une idée de quelque chose que vous aimeriez construire vous-même, alors je pense que notre petite expérience aura déjà accompli quelque chose de plutôt chouette.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Qu'est-ce qu'on a appris ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Plusieurs choses m'ont marqué pendant ces trois jours.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>D'abord, les développeurs sont incroyablement créatifs quand on leur donne juste assez de contraintes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le thème belge était volontairement vague. On ne voulait pas que les participants passent dix minutes à se demander si leur idée était recevable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un plat belge ? Parfait.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une référence à un artiste belge ? Excellent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une blague sur Devoxx ? Évidemment.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette petite contrainte créative donnait un point de départ sans imposer ce qu'il fallait construire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ensuite, les assistants de développement IA rendent ce genre d'exercice beaucoup plus accessible.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Tout le monde n'arrivait pas avec une idée d'application, un framework préféré ou une connaissance précise de la manière de provisionner et connecter une base de données. Mais avec un peu d'accompagnement, les participants pouvaient passer d'une idée à quelque chose qui tournait en ligne étonnamment vite.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'expérience de Gwenaël avec BelgiQ illustre un autre point important :&nbsp;<strong>le développement assisté par IA ne fait pas disparaître le développeur. Il change la manière dont celui-ci utilise son temps.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le développeur continue à prendre les décisions, définir les besoins, examiner les résultats et assumer la responsabilité de ce qui est livré. Pendant ce temps, l'agent de code peut prendre en charge une bonne partie de l'implémentation, et la plateforme s'occupe de l'infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Bien sûr, l'IA ne faisait pas disparaître magiquement tous les problèmes. Il y avait toujours des questions de déploiement, des soucis de configuration et des moments où quelqu'un avait besoin d'un petit coup de main. C'est aussi pour ça qu'on était là.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais la combinaison du développement assisté par IA et d'une plateforme qui prend en charge l'infrastructure permettait de se concentrer sur la partie intéressante : construire et déployer l'application. Et c'est exactement ce qu'on voulait faire découvrir aux participants avec Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Enfin, cette expérience m'a rappelé quelque chose de fondamental dans les Developer Relations.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Montrer aux gens comment quelque chose fonctionne, c'est utile. Leur permettre de le découvrir par eux-mêmes, c'est encore mieux.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>J'aurais pu passer quinze minutes à expliquer comment Clever Cloud gère les déploiements, les bases de données, les variables d'environnement et l'hébergement des applications. À la place, les développeurs ont passé ces quinze minutes à le faire. Et à la fin, ils avaient quelque chose à eux à nous montrer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça change complètement la conversation qu'on peut avoir sur un stand de conférence.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Et maintenant ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le challenge ne doit pas forcément s'arrêter à Devoxx.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Tous les participants ont reçu 200 € de crédits Clever Cloud, valables six mois après leur activation. De quoi continuer à expérimenter, améliorer leur application ou commencer quelque chose de complètement différent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous réfléchissons aussi à la manière de prolonger l'expérience avec de nouveaux petits défis, pour encourager les participants à explorer davantage la plateforme.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et j'aimerais vraiment renouveler cette expérience dans d'autres conférences.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le thème belge a merveilleusement bien fonctionné à Devoxx Belgium. Imaginez ce que les développeurs pourraient inventer dans d'autres villes ou d'autres pays.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On a déjà quelques idées.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">À votre tour. Stop Prompting. Start Shipping !</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>J'ai participé à énormément de conférences de développeurs au fil des années, des deux côtés du stand. J'ai distribué des stickers, offert des T-shirts, fait des démonstrations, répondu à des questions techniques et eu d'innombrables conversations autour des plateformes cloud. Et j'aime toujours autant tout ça.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais voir quelqu'un arriver sur notre stand avec rien de plus qu'une idée, puis revenir un peu plus tard avec une application fonctionnelle déployée sur Clever Cloud ? Ça, c'était particulièrement satisfaisant.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et découvrir la créativité de ces 40 développeurs a rendu toute cette expérience encore plus intéressante.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors, à toutes celles et ceux qui ont participé au challenge à Devoxx Belgium :&nbsp;<strong>merci !</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Merci d'avoir pris le temps de découvrir Clever Cloud, d'avoir joué le jeu de notre thème belge un peu farfelu et, surtout, de nous avoir montré vos créations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Envie d'essayer ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Bonne nouvelle :&nbsp;<strong>pas besoin d'avoir participé à Devoxx pour relever le défi !</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le&nbsp;<a href="https://lostinbrittany.dev/cc-devoxx-be-2026/">challenge original de Devoxx Belgium</a>&nbsp;est toujours en ligne, et nous avons également créé une&nbsp;<a href="https://devrel.clever.cloud/2026/stop-prompting-start-shipping/en/">version générique de Stop Prompting. Start Shipping.</a>&nbsp;que tout le monde peut essayer, n'importe où.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le coupon spécial Devoxx de 200 € n'est plus disponible, mais&nbsp;<strong>chaque nouveau compte Clever Cloud bénéficie de 20 € de crédits gratuits</strong>, largement de quoi créer et déployer une petite application avec une base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Choisissez un thème. Ouvrez votre assistant de développement IA préféré. Donnez-vous 15 minutes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Construisez quelque chose d'amusant, connectez une base de données et déployez le tout.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et si vous le faites, j'adorerais vraiment découvrir ce que vous avez imaginé. Partagez votre application avec moi !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Stop Prompting. Start Shipping.</strong></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.10.16 Clever Cloud Bannière Blog Stop Prompting. Start Shipping. FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1.png 2500w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/10/2026-10-16-clever-cloud-banniere-blog-stop-prompting--start-shipping--fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p><em>À Devoxx Belgium, nous avons lancé un défi aux développeurs : créer et déployer une véritable application, avec une vraie base de données, en une quinzaine de minutes. Un petit coup de pouce de l'IA, une touche belge et quelques LEGO pour la motivation. Voici ce que ça a donné.</em></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça fait presque 20 ans que je vais à Devoxx Belgium. C'est une conférence qui compte énormément pour moi, aussi bien personnellement que professionnellement. C'est là que j'ai eu l'idée de créer ce qui allait devenir FinistDevs, là que j'ai commencé à m'imaginer un jour sur scène en tant que speaker, et là aussi que, quelques années plus tard, j'ai découvert que les Developer Relations pouvaient être un vrai métier.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors, quand Clever Cloud a décidé de sponsoriser Devoxx Belgium cette année, j'étais particulièrement heureux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais avant de partir pour Anvers, il y avait une question que je me posais : <strong>qu'est-ce qu'on pourrait proposer sur notre stand qui soit vraiment intéressant pour les développeurs ?</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Bien sûr, on voulait faire découvrir Clever Cloud. C'est quand même une des raisons pour lesquelles les entreprises sponsorisent des conférences de développeurs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais je n'avais pas envie de passer trois jours à expliquer aux visiteurs à quel point c'est facile de déployer une application sur notre plateforme.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Je voulais qu'ils le découvrent par eux-mêmes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et c'est comme ça qu'est né le <strong>15-minute Clever Cloud Challenge</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Stop Prompting. Start Shipping.</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le principe était tout simple.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Venez sur notre stand. Ouvrez votre ordinateur. Créez une petite application. Connectez-la à une vraie base de données. Déployez le tout sur Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et faites ça en une quinzaine de minutes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il n'y avait que quelques règles :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>N'importe quelle stack.</strong> JavaScript, Python, Java, Go, ce que vous préférez.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>N'importe quelle IA.</strong> Claude, ChatGPT, Gemini, Copilot ou votre agent de code préféré. Peu importe.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Une petite touche belge.</strong> Frites, bière, BD, cyclisme, Magritte, Devoxx lui-même. Tout ce qui pouvait avoir un rapport, même lointain, avec la Belgique.</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Une vraie base de données et un vrai déploiement.</strong> Pas une maquette, pas une capture d'écran, pas une application qui tourne uniquement sur votre ordinateur. Quelque chose d'accessible publiquement, avec des données qui persistent réellement.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Et comme les 15 minutes étaient un objectif, pas une raison de pénaliser quelqu'un qui passait un peu plus de temps à déboguer, on n'était pas particulièrement stricts sur le chronomètre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'important, c'était de déployer quelque chose.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avions préparé une <a href="https://lostinbrittany.dev/cc-devoxx-be-2026/?utm_source=chatgpt.com">page dédiée au challenge</a> avec les instructions, un prompt de démarrage à copier dans son assistant IA préféré et un coupon offrant <strong>200 € de crédits Clever Cloud, valables six mois</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le prompt proposait trois idées de petites applications, aidait le participant à en choisir une, puis l'accompagnait dans le développement, la création de la base de données et le déploiement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On avait aussi prévu une petite motivation supplémentaire : chaque personne ayant terminé le challenge pouvait participer à un tirage au sort quotidien pour gagner des LEGO. Parce que bon, des LEGO, quoi.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25792,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-1024x430.png" alt="image" class="wp-image-25792"/><figcaption class="wp-element-caption">BB-8 le mardi. La fusée de Tintin le mercredi. Goinfrex le jeudi.</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Mais il n'y avait ni jury, ni classement, ni récompense pour l'application la plus sophistiquée. Une toute petite application fonctionnelle avait exactement les mêmes chances de gagner qu'un projet ambitieux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On n'organisait pas un hackathon, on invitait les développeurs à découvrir une plateforme en l'utilisant vraiment.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">40 développeurs. 48 applications déployées.</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Et ça a marché.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pendant les trois jours, <strong>40 développeurs ont créé et déployé une application avec une véritable base de données sur Clever Cloud.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Je voudrais insister un instant sur ce chiffre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pas 40 personnes qui ont scanné un QR code. Pas 40 adresses email récupérées sur un stand. Pas 40 coupons distribués.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>40 développeurs qui ont réellement construit quelque chose, provisionné une base de données, déployé leur application et sont revenus nous montrer ce qu'ils avaient créé.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour moi, c'est un résultat beaucoup plus intéressant que le nombre de personnes passées devant notre stand.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et le meilleur dans tout ça ? Ce qu'ils ont construit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avions volontairement laissé le challenge très ouvert. Pas d'application modèle, pas de tutoriel imposé que tout le monde devait suivre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On donnait aux participants un objectif, quelques contraintes et la liberté d'être créatifs. Les résultats ont été bien plus variés que ce que j'imaginais.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Quelques-unes de mes applications préférées</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Impossible de présenter les 48 applications ici, mais j'avais envie de partager quelques-unes de celles qui m'ont particulièrement marqué.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pas forcément parce qu'elles étaient les plus sophistiquées techniquement, mais parce qu'elles étaient amusantes, originales ou qu'elles exploitaient particulièrement bien les contraintes du challenge.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">It's Raining Devs : quand Magritte rencontre Devoxx</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://raining-devs.cleverapps.io/?utm_source=chatgpt.com"><strong>Essayer It's Raining Devs</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Celle-ci fait probablement partie de mes préférées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Prenez les tableaux surréalistes de René Magritte, ajoutez une foule de développeurs participant à Devoxx et transformez le tout en une œuvre interactive et collaborative.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25794,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-1-1024x557.png" alt="image" class="wp-image-25794"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Les participants peuvent créer leur propre personnage flottant, choisir ce qui lui cache le visage, lui donner un nom et rejoindre le tableau.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et ces développeurs ne sont pas de simples éléments affichés temporairement dans un navigateur. Chacun est enregistré dans PostgreSQL sur Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il y a même de petites interactions, un appel des participants et des cartes postales à enregistrer ou à partager.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>J'adore cette application parce qu'elle combine quelque chose de très belge, une idée vraiment ludique et une base de données qui fait partie intégrante de l'expérience.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elle illustre aussi quelque chose que j'apprécie particulièrement dans ce genre de challenges :&nbsp;<strong>une petite application n'est pas obligée d'être une application ennuyeuse.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Roll for Waffle : laissez les dés décider de votre destin</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://roll-for-waffle.cleverapps.io/"><strong>Créer votre propre gaufre belge</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Qu'est-ce qui se passe quand on mélange des gaufres belges et des dés polyédriques, comme ceux qu'on utilise dans les jeux de rôle sur table ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On obtient&nbsp;<strong>Roll for Waffle</strong>, et j'adore le résultat.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le concept est merveilleusement simple : au lieu de choisir les ingrédients de votre gaufre, vous laissez les dés décider.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>D'abord, un lancer pour la base de la gaufre. Ensuite, un autre pour la garniture principale. Et enfin, un dernier pour la garniture secondaire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque lancer s'accompagne d'un joli dé polyédrique animé, et le résultat vient s'ajouter à votre création.<br></p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25801,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-5-1024x794.png" alt="image" class="wp-image-25801"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Vous allez peut-être obtenir une classique gaufre de Liège avec de la pâte de spéculoos et des fraises fraîches. Ou alors une combinaison complètement improbable qu'aucun pâtissier belge n'oserait servir.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est justement ce qui fait tout le charme du jeu. Vous ne choisissez pas. Les dés ont parlé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et une fois votre création terminée, vous pouvez partager votre chef-d'œuvre généré aléatoirement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En tant que personne ayant passé un nombre absolument déraisonnable d'heures à lancer des dés polyédriques, cette application m'a immédiatement fait sourire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est un exemple parfait de ce que j'ai aimé dans ce challenge :&nbsp;<strong>donnez aux développeurs un thème simple, un peu de liberté et l'occasion d'expérimenter, et ils trouveront des idées auxquelles vous n'auriez jamais pensé.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Bon, excusez-moi, j'ai une gaufre à tirer aux dés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Devoxx Bingo : parce que chaque conférence a ses clichés</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://app-8b118b78-eda8-41cf-bae3-96fd714dc7a8.cleverapps.io/"><strong>Jouer à Devoxx Bingo</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si vous avez participé à suffisamment de conférences de développeurs, vous savez que certaines choses finissent presque toujours par arriver.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Certaines expressions vont être répétées. Certaines technologies vont être mentionnées. Certains moments vont vous sembler étrangement familiers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors pourquoi ne pas en faire un bingo ?</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25795,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-2-1024x916.png" alt="image" class="wp-image-25795"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Devoxx Bingo vous propose une grille de clichés de conférence à repérer pendant l'événement. Cochez-les au fur et à mesure que vous les rencontrez et essayez de compléter une ligne.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'application se présente comme une quête secondaire non officielle, sans le moindre prix à gagner, mais avec le droit de se vanter de sa victoire. Un droit tout à fait discutable, d'ailleurs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Exactement le genre d'application qui me fait sourire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et franchement, j'imagine très bien des gens y jouer pendant une conférence.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Devoxx YouTube Search : retrouver cette conférence dont on se souvient vaguement</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://devoxx-youtube-search.cleverapps.io/"><strong>Explorer Devoxx YouTube Search</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Vous connaissez cette sensation ? Vous vous souvenez d'avoir vu une excellente conférence, mais impossible de retrouver qui la présentait, ou même en quelle année c'était.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avec presque deux décennies de conférences enregistrées, Devoxx a constitué une incroyable bibliothèque de connaissances techniques sur YouTube. Mais retrouver une session précise n'est pas toujours évident.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est là qu'intervient&nbsp;<strong>Devoxx YouTube Search</strong>.<br></p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25802,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-6-1024x499.png" alt="image" class="wp-image-25802"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>L'application permet de rechercher des vidéos Devoxx à partir de leurs titres et descriptions, pour retrouver plus facilement des conférences sur les sujets qui vous intéressent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que j'aime particulièrement ici, c'est le choix du sujet. Alors que beaucoup de participants ont choisi quelque chose de ludique ou de typiquement belge, ce développeur a décidé de créer un outil directement lié à la conférence et à son contenu.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est un joli rappel qu'un challenge comme le nôtre ne produit pas uniquement des jeux et des expérimentations. Il peut aussi inspirer des outils qui répondent à de vrais besoins de la communauté.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et en tant que personne ayant donné pas mal de conférences au fil des années, j'apprécie forcément tout ce qui peut aider les gens à les découvrir !</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">BelgiQ : à quel point êtes-vous belge ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://app-ffd5ff7b-b8c7-4a47-8c51-6a14f097f314.cleverapps.io/"><strong>Essayer BelgiQ</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>BelgiQ se présente comme&nbsp;<em>« Le quiz qui a la frite »</em>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça commence déjà bien.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est un quiz sur le thème de la Belgique, disponible en français, en néerlandais et en anglais, avec un classement des joueurs.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25796,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-3-1024x601.png" alt="image" class="wp-image-25796"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Mais ce qui rend cette application particulièrement intéressante, c'est que son créateur,&nbsp;<strong>Gwenaël Jakab, a partagé son expérience sur LinkedIn</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Gwenaël a choisi de construire BelgiQ avec Node.js, Express et PostgreSQL. Il a utilisé ChatGPT pour préparer son prompt, puis confié l'implémentation et le déploiement à ChatGPT Work.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>15 minutes plus tard, il avait une application fonctionnelle.</strong>&nbsp;Après 10 minutes supplémentaires à examiner le résultat, demander quelques ajustements et du refactoring, il avait une V2 dont il était satisfait.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et il n'avait pas écrit lui-même le code de l'application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que j'ai particulièrement apprécié dans&nbsp;<a href="https://lnkd.in/p/ebBTemUP">son témoignage</a>, c'est sa vision du rôle du développeur. Même lorsqu'un agent IA prend en charge l'implémentation, il faut toujours quelqu'un pour faire les choix d'architecture, définir les besoins, relire le code et valider le résultat.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est une distinction importante, qui se perd parfois dans les discussions autour du développement assisté par IA.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour moi, son expérience illustre aussi exactement ce qu'on cherchait à montrer avec ce challenge :&nbsp;<strong>permettre aux développeurs de se concentrer sur ce qu'ils veulent construire, tout en découvrant à quel point il peut être simple de le déployer sur Clever Cloud.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et le mieux dans tout ça ? Vous pouvez&nbsp;<a href="https://app-ffd5ff7b-b8c7-4a47-8c51-6a14f097f314.cleverapps.io/">essayer BelgiQ vous-même</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Friesdvisor : les vraies questions de la vie</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://friesdvisor.cleverapps.io/"><strong>Explorer Friesdvisor</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Oubliez les recommandations de restaurants.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On est en Belgique. Il faut parler de frites.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Friesdvisor est un annuaire dans lequel vous pouvez rechercher une friterie ou une ville, et ajouter de nouveaux établissements.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":25799,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2026/10/image-4.png" alt="image" class="wp-image-25799"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>C'est une idée merveilleusement simple, et exactement le genre de référence belge qu'on espérait voir apparaître.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que j'aime particulièrement, c'est que ce n'est pas juste une blague. C'est un concept qui pourrait devenir une petite application communautaire réellement utile.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et évidemment, il faut bien un endroit où stocker toutes ces friteries.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">48 applications et encore plein de créativité à découvrir</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Ce ne sont que quelques-unes de mes préférées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais une des choses que j'ai le plus aimées dans ce challenge, c'est l'incroyable diversité des idées. Donnez à 40 développeurs le même point de départ, les mêmes contraintes et une quinzaine de minutes, et vous obtenez 48 interprétations différentes de ce que peut être une petite application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Certains ont créé des jeux. D'autres des outils pratiques. Certains ont puisé leur inspiration dans la culture belge, tandis que d'autres se sont tournés vers la conférence elle-même.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et impossible de rendre justice à toutes ces créations dans un seul article.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pour ça que nous avons créé la galerie&nbsp;<strong>Built at Devoxx Belgium</strong>, dans laquelle vous pouvez découvrir les applications que les participants ont choisi de partager publiquement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://devrel.clever.cloud/2026/devoxx-be/gallery/"><strong>👉 Découvrir la galerie du Clever Cloud Challenge</strong></a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Allez y faire un tour. Essayez les applications. Découvrez ce que les participants ont imaginé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et si l'une d'entre elles vous fait sourire, ou vous donne une idée de quelque chose que vous aimeriez construire vous-même, alors je pense que notre petite expérience aura déjà accompli quelque chose de plutôt chouette.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Qu'est-ce qu'on a appris ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Plusieurs choses m'ont marqué pendant ces trois jours.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>D'abord, les développeurs sont incroyablement créatifs quand on leur donne juste assez de contraintes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le thème belge était volontairement vague. On ne voulait pas que les participants passent dix minutes à se demander si leur idée était recevable.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un plat belge ? Parfait.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une référence à un artiste belge ? Excellent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une blague sur Devoxx ? Évidemment.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette petite contrainte créative donnait un point de départ sans imposer ce qu'il fallait construire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ensuite, les assistants de développement IA rendent ce genre d'exercice beaucoup plus accessible.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Tout le monde n'arrivait pas avec une idée d'application, un framework préféré ou une connaissance précise de la manière de provisionner et connecter une base de données. Mais avec un peu d'accompagnement, les participants pouvaient passer d'une idée à quelque chose qui tournait en ligne étonnamment vite.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'expérience de Gwenaël avec BelgiQ illustre un autre point important :&nbsp;<strong>le développement assisté par IA ne fait pas disparaître le développeur. Il change la manière dont celui-ci utilise son temps.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le développeur continue à prendre les décisions, définir les besoins, examiner les résultats et assumer la responsabilité de ce qui est livré. Pendant ce temps, l'agent de code peut prendre en charge une bonne partie de l'implémentation, et la plateforme s'occupe de l'infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Bien sûr, l'IA ne faisait pas disparaître magiquement tous les problèmes. Il y avait toujours des questions de déploiement, des soucis de configuration et des moments où quelqu'un avait besoin d'un petit coup de main. C'est aussi pour ça qu'on était là.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais la combinaison du développement assisté par IA et d'une plateforme qui prend en charge l'infrastructure permettait de se concentrer sur la partie intéressante : construire et déployer l'application. Et c'est exactement ce qu'on voulait faire découvrir aux participants avec Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Enfin, cette expérience m'a rappelé quelque chose de fondamental dans les Developer Relations.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Montrer aux gens comment quelque chose fonctionne, c'est utile. Leur permettre de le découvrir par eux-mêmes, c'est encore mieux.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>J'aurais pu passer quinze minutes à expliquer comment Clever Cloud gère les déploiements, les bases de données, les variables d'environnement et l'hébergement des applications. À la place, les développeurs ont passé ces quinze minutes à le faire. Et à la fin, ils avaient quelque chose à eux à nous montrer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça change complètement la conversation qu'on peut avoir sur un stand de conférence.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Et maintenant ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le challenge ne doit pas forcément s'arrêter à Devoxx.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Tous les participants ont reçu 200 € de crédits Clever Cloud, valables six mois après leur activation. De quoi continuer à expérimenter, améliorer leur application ou commencer quelque chose de complètement différent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous réfléchissons aussi à la manière de prolonger l'expérience avec de nouveaux petits défis, pour encourager les participants à explorer davantage la plateforme.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et j'aimerais vraiment renouveler cette expérience dans d'autres conférences.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le thème belge a merveilleusement bien fonctionné à Devoxx Belgium. Imaginez ce que les développeurs pourraient inventer dans d'autres villes ou d'autres pays.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On a déjà quelques idées.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">À votre tour. Stop Prompting. Start Shipping !</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>J'ai participé à énormément de conférences de développeurs au fil des années, des deux côtés du stand. J'ai distribué des stickers, offert des T-shirts, fait des démonstrations, répondu à des questions techniques et eu d'innombrables conversations autour des plateformes cloud. Et j'aime toujours autant tout ça.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais voir quelqu'un arriver sur notre stand avec rien de plus qu'une idée, puis revenir un peu plus tard avec une application fonctionnelle déployée sur Clever Cloud ? Ça, c'était particulièrement satisfaisant.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et découvrir la créativité de ces 40 développeurs a rendu toute cette expérience encore plus intéressante.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors, à toutes celles et ceux qui ont participé au challenge à Devoxx Belgium :&nbsp;<strong>merci !</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Merci d'avoir pris le temps de découvrir Clever Cloud, d'avoir joué le jeu de notre thème belge un peu farfelu et, surtout, de nous avoir montré vos créations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Envie d'essayer ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Bonne nouvelle :&nbsp;<strong>pas besoin d'avoir participé à Devoxx pour relever le défi !</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le&nbsp;<a href="https://lostinbrittany.dev/cc-devoxx-be-2026/">challenge original de Devoxx Belgium</a>&nbsp;est toujours en ligne, et nous avons également créé une&nbsp;<a href="https://devrel.clever.cloud/2026/stop-prompting-start-shipping/en/">version générique de Stop Prompting. Start Shipping.</a>&nbsp;que tout le monde peut essayer, n'importe où.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le coupon spécial Devoxx de 200 € n'est plus disponible, mais&nbsp;<strong>chaque nouveau compte Clever Cloud bénéficie de 20 € de crédits gratuits</strong>, largement de quoi créer et déployer une petite application avec une base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Choisissez un thème. Ouvrez votre assistant de développement IA préféré. Donnez-vous 15 minutes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Construisez quelque chose d'amusant, connectez une base de données et déployez le tout.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et si vous le faites, j'adorerais vraiment découvrir ce que vous avez imaginé. Partagez votre application avec moi !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Stop Prompting. Start Shipping.</strong></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Compliance as code : intégrer le socle documentaire SMI dans GitLab, de 1 mois à 30 minutes</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/09/01/compliance-as-code-socle-documentaire-gitlab/</link>
		
		<dc:creator><![CDATA[Darya Khendrik]]></dc:creator>
		<pubDate>Tue, 01 Sep 2026 10:21:01 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=25338</guid>

					<description><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.08.26 Clever Cloud Bannière Blog Compliance as Code FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr.png 2499w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:paragraph -->
<p>Retour d'expérience d'une responsable conformité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il y a quatre ans, en arrivant chez Clever Cloud, je me suis retrouvée face à une culture très technique : pas de suite collaborative, pas d'outil de gestion de projet classique. Tout vit dans GitLab, GitHub et les terminaux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Or, piloter un SMI (ISO 9001, <a href="https://www.clever.cloud/fr/iso-27001-la-securite-par-defaut-chez-clever-cloud/">ISO 27001</a>, <a href="https://www.clever.cloud/fr/hebergement-donnees-de-sante/">HDS</a>, <a href="https://www.clever.cloud/fr/conformite/">conformité réglementaire</a>), c'est de la formalisation : politiques, procédures, règles de sécurité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avions donc commencé, classiquement, sur une suite collaborative.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et très vite, certaines pratiques sont devenues un gouffre chronophage : versionnage à la main dans un tableur, PDF à faire valider en COPIL, signatures, dossiers « validés » et « en cours », liens cassés à chaque changement de format.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Des contrôles humains partout, donc des erreurs probables. Et surtout : les développeurs ne vont jamais dans ces outils. Leur documentation, elle, est dans GitLab.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors nous avons fait un choix simple : tout le socle documentaire en Markdown, versionné dans GitLab, au même endroit que la documentation technique.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que ça change concrètement :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>historique complet et natif : commits, diffs, auteurs ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>chaque modification passe par une Merge Request, avec au moins une approbation d'une personne tierce : la séparation des tâches ne repose plus sur un processus déclaratif, elle est portée par l'outil ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la population tech consulte les politiques toute l'année, pas seulement à la sensibilisation annuelle (le nouveau défi, ce sont les profils non tech, qui se forment à GitLab dès l'onboarding, comme moi il y a quatre ans).</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Puis nous avons automatisé : un script mensuel lit les changelogs de la plateforme, rédige les mises à jour aux bons endroits des politiques et ouvre les MRs. Il me reste la relecture, puis la validation par la personne experte du sujet. C'est là que le mois devient 30 minutes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et le vrai changement est ailleurs : on ne met plus à jour les documents pour l'audit, une fois par an. On met à jour à chaque changement réel du SI. Face à l'auditeur, les sources, les versions et les validations sont sous ses yeux. La conformité devient un état mesuré, pas déclaré.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est comme ça que je visualise le compliance as code d'un point de vue gouvernance SMI. Ce que ce fonctionnement change en profondeur, c'est le rythme : la conformité suit celui du système d'information, plus celui du calendrier d'audit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.08.26 Clever Cloud Bannière Blog Compliance as Code FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr.png 2499w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/08/2026-08-26-clever-cloud-banniere-blog-compliance-as-code-fr-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:paragraph -->
<p>Retour d'expérience d'une responsable conformité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il y a quatre ans, en arrivant chez Clever Cloud, je me suis retrouvée face à une culture très technique : pas de suite collaborative, pas d'outil de gestion de projet classique. Tout vit dans GitLab, GitHub et les terminaux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Or, piloter un SMI (ISO 9001, <a href="https://www.clever.cloud/fr/iso-27001-la-securite-par-defaut-chez-clever-cloud/">ISO 27001</a>, <a href="https://www.clever.cloud/fr/hebergement-donnees-de-sante/">HDS</a>, <a href="https://www.clever.cloud/fr/conformite/">conformité réglementaire</a>), c'est de la formalisation : politiques, procédures, règles de sécurité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avions donc commencé, classiquement, sur une suite collaborative.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et très vite, certaines pratiques sont devenues un gouffre chronophage : versionnage à la main dans un tableur, PDF à faire valider en COPIL, signatures, dossiers « validés » et « en cours », liens cassés à chaque changement de format.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Des contrôles humains partout, donc des erreurs probables. Et surtout : les développeurs ne vont jamais dans ces outils. Leur documentation, elle, est dans GitLab.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alors nous avons fait un choix simple : tout le socle documentaire en Markdown, versionné dans GitLab, au même endroit que la documentation technique.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce que ça change concrètement :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>historique complet et natif : commits, diffs, auteurs ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>chaque modification passe par une Merge Request, avec au moins une approbation d'une personne tierce : la séparation des tâches ne repose plus sur un processus déclaratif, elle est portée par l'outil ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la population tech consulte les politiques toute l'année, pas seulement à la sensibilisation annuelle (le nouveau défi, ce sont les profils non tech, qui se forment à GitLab dès l'onboarding, comme moi il y a quatre ans).</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Puis nous avons automatisé : un script mensuel lit les changelogs de la plateforme, rédige les mises à jour aux bons endroits des politiques et ouvre les MRs. Il me reste la relecture, puis la validation par la personne experte du sujet. C'est là que le mois devient 30 minutes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Et le vrai changement est ailleurs : on ne met plus à jour les documents pour l'audit, une fois par an. On met à jour à chaque changement réel du SI. Face à l'auditeur, les sources, les versions et les validations sont sous ses yeux. La conformité devient un état mesuré, pas déclaré.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est comme ça que je visualise le compliance as code d'un point de vue gouvernance SMI. Ce que ce fonctionnement change en profondeur, c'est le rythme : la conformité suit celui du système d'information, plus celui du calendrier d'audit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Magnetar : un client Apache Pulsar en Rust conçu pour la simulation déterministe</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/07/15/magnetar-client-apache-pulsar-rust-simulation-deterministe/</link>
		
		<dc:creator><![CDATA[Florentin Dubois]]></dc:creator>
		<pubDate>Wed, 15 Jul 2026 14:46:37 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Rust]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24982</guid>

					<description><![CDATA[<p><img width="2400" height="1065" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.15 Clever Cloud Bannière Blog Magnetar FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr.png 2400w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-1368x607.png 1368w" sizes="auto, (max-width: 2400px) 100vw, 2400px" /></p><!-- wp:paragraph -->
<p><a href="https://apple.github.io/foundationdb/testing.html">FoundationDB</a> a rendu cette idée célèbre. Au lieu de s'appuyer seulement sur des tests unitaires et des tests end-to-end sur un vrai cluster, le projet exécute des workloads distribués dans un monde simulé, où le temps, les fautes réseau, les pannes de processus et les décisions d'ordonnancement peuvent être explorés puis rejoués à partir d'une seed. <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md">TigerBeetle</a> pousse une discipline complémentaire : rendre les invariants explicites dans le code, vérifier en continu la forme de l'état et transformer une corruption silencieuse en panne locale et bruyante.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chez Clever Cloud, nous appliquons cette direction à des logiciels d'infrastructure en Rust. <a href="https://github.com/PierreZ/moonpool">Moonpool</a>, développé par Pierre Zemb, donne aux systèmes Rust un environnement de simulation déterministe où le temps, le réseau, les tâches, l'aléa et le stockage peuvent être virtualisés derrière des traits de providers. <a href="https://github.com/CleverCloud/magnetar">Magnetar</a> est l'application de cette approche à un client <a href="https://pulsar.apache.org/">Apache Pulsar</a>. C’est d’ailleurs, l’approche que nous prenons au sein de notre reverse proxy <a href="https://www.clever.cloud/fr/blog/entreprise/2026/07/01/sozu-2-1-0-load-balancing-udp-edge-programmable/">Sōzu</a>.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar est un driver Apache Pulsar écrit en Rust, depuis zéro. Il repose sur un coeur protocolaire sans-io, un moteur de production Tokio et un moteur Moonpool pour la simulation déterministe. Cette première release publique s'adresse aux ingénieurs qui veulent essayer Magnetar, évaluer son architecture, comparer son comportement avec les clients Pulsar existants et contribuer à structurer un écosystème Pulsar Rust plus solide.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'objectif n'est pas seulement d'exposer une API Rust autour de Pulsar. L'objectif est de construire un client dont les comportements difficiles peuvent être inspectés, rejoués et forcés à échouer avant que la production ne s'en charge.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Un client Pulsar fait partie du système distribué</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>On pourrait être tenté de considérer une bibliothèque cliente comme la partie simple d'un système distribué. Le broker porterait la réplication, le stockage, l'ownership et la coordination. Le client se contenterait de se connecter, d'envoyer des messages, d'en recevoir et de les acquitter.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette vision ne tient pas face à un vrai client Apache Pulsar.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un client Pulsar sérieux doit gérer les producers, consumers, readers, topics partitionnés, consumers multi-topics, subscriptions par pattern, transactions, schémas, authentification, routage proxy, lookup broker, failover de cluster, reconnect, backoff, batching, chunking, ack grouping, suivi des messages non acquittés, negative acknowledgements, retry-letter et dead-letter flows, observabilité et une longue liste de Pulsar Improvement Proposals.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les bugs difficiles ne viennent pas seulement d'une commande mal encodée. Ils viennent souvent du temps et de l'ordre. Un broker tombe pendant qu'un publish est en vol. Une reconnexion arrive alors qu'un consumer a des acknowledgements en attente. Un refresh de token se produit pendant un reset de session. Un lookup via proxy pointe vers un nouveau broker alors que l'ancienne connexion se vide encore. Un topic migre et le client doit reconstruire assez d'état pour continuer sans prétendre que l'ancienne session existe toujours.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela signifie qu'un client Pulsar n'est pas seulement un wrapper pratique autour d'une socket. Il fait partie du système distribué. Il possède un état qui doit rester cohérent pendant que le monde autour de lui change.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si cet état est caché dans des tâches runtime, des files de channels, des horloges implicites et des accidents de timing, alors le client devient plus difficile à raisonner précisément au moment où cette précision compte le plus. Magnetar part de l'hypothèse inverse : rendre l'état protocolaire explicite, le piloter à travers des frontières étroites et garder l'I/O à l'extérieur.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">De l'écosystème Pulsar Rust à Magnetar</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar vient d'une expérience concrète avec l'écosystème Pulsar Rust, notamment la maintenance et l'usage de <a href="https://github.com/streamnative/pulsar-rs">pulsar-rs</a>. Ce travail compte. Il a donné aux utilisateurs Rust un client Apache Pulsar et a créé le contexte pratique dans lequel l'étape suivante pouvait être évaluée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar n'est pas une critique de ce qui existait avant lui. C'est une continuation du même écosystème, avec un point de départ architectural différent. Après avoir travaillé sur des usages Pulsar réels, la direction est devenue plus claire : un driver Pulsar Rust doit rendre la frontière protocole/runtime plus nette, rendre les comportements difficiles reproductibles, suivre la parité explicitement et faire de la testabilité une contrainte de conception.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi Magnetar ne commence pas par le builder public. Il commence par le protocole.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'API utilisateur compte, et cette première release expose déjà une surface large. Mais pour un client distribué, la question plus profonde est ce qui se passe sous cette API lorsque le broker bouge, que la connexion tombe, que l'horloge avance, qu'un timeout se déclenche, qu'une subscription est reconstruite ou que la même trace est rejouée sous un autre runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Le coeur sans-io</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le coeur de Magnetar est <a href="https://github.com/CleverCloud/magnetar/tree/main/crates/magnetar-proto">magnetar-proto</a>. C'est une machine d'état protocolaire synchrone. Elle n'a pas de socket. Elle ne dépend pas de Tokio. Elle ne lance pas de tâches. Elle n'utilise pas async. Elle ne lit pas l'horloge hôte sur le chemin chaud du protocole.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Sa forme suit la même idée générale qui a rendu <a href="https://github.com/quinn-rs/quinn/tree/main/quinn-proto">quinn-proto</a> influent dans le monde réseau Rust : injecter des octets, récupérer des octets à transmettre, récupérer des événements sémantiques et demander à la machine d'état quand son prochain timer expire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Conceptuellement, l'interface ressemble à ceci :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div
  style="
    max-width: 780px;
    margin: 1.5rem auto;
    padding: 16px 20px;
    background: #0f172a;
    color: #e5eefc;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
      Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 15px;
    line-height: 1.7;
  "
>
  <pre
    style="
      margin: 0;
      overflow-x: auto;
      white-space: pre-wrap;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        'Liberation Mono', 'Courier New', monospace;
    "
  ><code>&gt; connection.handle_bytes(now, bytes);

connection.poll_transmit(&amp;mut out);
connection.poll_event();
connection.poll_timeout();</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette petite forme est un grand choix d'architecture.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>handle_bytes permet à un moteur d'injecter les octets du wire dans la machine d'état. poll_transmit draine les frames sortantes. poll_event produit les événements sémantiques auxquels le runtime doit réagir : challenges d'authentification, résultats de lookup, checksum mismatch, signaux de reconnexion ou transitions protocolaire. poll_timeout permet au runtime de savoir quand réveiller la machine d'état.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La machine d'état ne décide pas d'où viennent les octets. Elle ne sait pas si le réseau est un vrai stream TCP, un stream TLS, un pipe d'octets dans un simulateur ou un broker scripté dans un harnais différentiel. Elle ne décide pas non plus ce que "maintenant" veut dire. Le moteur lui passe le temps.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les traits publics de magnetar-proto suivent la même règle. Ce ne sont pas des services runtime cachés derrière des callbacks async. Ce sont de petits contrats protocolaires, placés aux endroits où la machine d'état a besoin d'une décision ou d'une transformation : <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/auth.rs">AuthProvider</a> produit les octets d'authentification, <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/schema/mod.rs">Schema</a> définit l'encodage, le décodage, les données de schéma et les hooks de schéma résolu par le broker, <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/crypto.rs">MessageEncryptor et MessageDecryptor</a> décrivent la crypto de payload sur des octets et de la metadata de message, <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/service_url.rs">ServiceUrlProvider</a> expose l'URL de service courante pour le failover, et <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/health_probe.rs">HealthProbe</a> utilise un contrat de type poll au lieu d'attacher le crate protocolaire à un runtime async. Le motif est volontaire : le coeur protocolaire peut demander des faits, des octets ou un état de readiness, tandis que l'I/O, le cache, le refresh, les probes réseau et le scheduler restent à l'extérieur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette séparation n'est pas seulement une affaire de propreté. C'est ce qui rend le protocole testable sans broker, sans socket et sans runtime async. Un bug protocolaire peut être réduit à une fixture : injecter ces octets à cet instant, récupérer ces sorties, vérifier cet event stream et rejouer la même séquence.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour un client Apache Pulsar, cela compte parce que le protocole wire ne se limite pas au chemin heureux. Il comprend la création de producers, la subscription de consumers, les acks, nacks, transactions, erreurs broker, redirects, challenges d'authentification, migrations de topics, markers de replicated subscriptions, metadata de schémas, batching, chunking et chemins de fermeture. Chacun de ces éléments porte de l'état. Chaque transition d'état est plus facile à raisonner lorsqu'elle n'est pas mélangée aux lectures de socket, au scheduling de tâches et aux wakeups spécifiques d'un runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">L'interdiction des channels comme contrainte d'architecture</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar fait aussi un choix Rust async peu courant : les primitives de channels sont interdites dans le workspace.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'architecture directe d'un client réseau ressemble souvent à ceci : future producer vers channel, channel vers driver task, driver task vers channel, channel vers future consumer. Cela peut fonctionner, mais cela disperse l'état entre des files et des tâches. La backpressure devient implicite. Les sémantiques de fermeture dépendent de la bibliothèque de channel. Des futures abandonnées peuvent laisser des messages dans des endroits difficiles à inspecter. La question de debug devient : où est passé ce message ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar utilise un autre motif. L'état vit dans la machine d'état protocolaire et dans la connexion partagée détenue par le runtime. Les futures utilisateur enregistrent des wakers dans des slabs indexés par identifiants d'opération. Le driver possède la boucle d'I/O, injecte les octets dans la machine d'état, draine les frames sortantes et réveille les futures correspondantes lorsque les outcomes arrivent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce n'est pas une interdiction esthétique des channels. C'est une manière de garder la propriété de l'état explicite. Lorsque le driver reconstruit des producers après une reconnexion, lorsqu'un consumer attend un message, lorsqu'un ack outcome est livré ou lorsqu'une opération en attente échoue parce qu'une session a disparu, l'état pertinent est dans la machine d'état et peut y être inspecté.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce design a des compromis. Il met plus de pression sur la correction de la machine d'état. Il impose un ordre de locks précis. Il demande aux reviewers de comprendre l'enregistrement des wakers et les chemins de réveil. Mais il rend aussi le comportement beaucoup plus facile à simuler, rejouer et comparer entre runtimes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Deux moteurs, une machine d'état</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar livre deux moteurs qui pilotent le même coeur protocolaire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le moteur par défaut est <a href="https://github.com/CleverCloud/magnetar/tree/main/crates/magnetar-runtime-tokio">magnetar-runtime-tokio</a>. C'est le chemin d'exécution de production : TCP, TLS via tokio-rustls, tâches driver, temps réel, vraies sockets et surface publique PulsarClient que la plupart des utilisateurs rencontreront en premier.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le second moteur est <a href="https://github.com/CleverCloud/magnetar/tree/main/crates/magnetar-runtime-moonpool">magnetar-runtime-moonpool</a>. Il pilote la même machine d'état magnetar-proto::Connection à travers des providers Moonpool. Au lieu d'inscrire le runtime en dur, Moonpool expose des traits de providers pour le réseau, le temps, le spawning de tâches, l'aléa et le stockage. Avec un bundle de providers proche de la production, le moteur peut exécuter de vraies I/O. Avec des providers de simulation, ces mêmes catégories peuvent être virtualisées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est là que la simulation déterministe devient pratique. Le client peut être piloté dans un monde où le temps avance sous contrôle, où les livraisons réseau peuvent être réordonnées ou interrompues, où les tâches s'exécutent sous un scheduler déterministe, où l'aléa est seedé et où les pannes peuvent être rejouées depuis la même seed.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moonpool n'est pas un mock. Un mock remplace généralement un composant par un comportement simplifié. C'est utile pour beaucoup de tests unitaires, mais ce n'est pas la même chose que d'exercer un vrai client dans des interleavings difficiles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moonpool n'est pas non plus un test end-to-end classique. Un e2e exécute le vrai système, ce qui est indispensable, mais il utilise souvent du temps réel, un vrai réseau et des pannes difficiles à reproduire une fois le timing passé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moonpool occupe un autre espace. Il garde le code proche du chemin réel d'exécution tout en virtualisant les providers qui rendent le comportement distribué difficile à reproduire. Le but n'est pas d'éviter les e2e. Le but est d'ajouter un régime où les pannes ne sont plus des anecdotes. Elles deviennent des seeds.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le moteur Moonpool de Magnetar utilise la même machine d'état protocolaire que le moteur Tokio. Le chemin TLS est lui aussi piloté de façon à préserver la frontière de simulation : au lieu de s'appuyer sur tokio-rustls, le moteur Moonpool pilote directement rustls::ClientConnection au-dessus du pipe d'octets. Cela maintient les handshakes TLS sous le même contrôle déterministe que le reste du réseau simulé.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Tests différentiels : faire converger les moteurs</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Deux moteurs ne sont utiles que s'ils ne deviennent pas silencieusement deux clients différents.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar inclut donc un harnais différentiel. Il exécute une trace, par exemple connect, open producer, send, subscribe, receive, ack, seek et close, contre les moteurs Tokio et Moonpool, puis compare les event streams visibles par l'utilisateur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela compte parce que le moteur Moonpool sert à trouver des bugs difficiles à exposer avec du temps réel et de vraies sockets. Pour que cette recherche ait du sens, le moteur simulé doit rester aligné avec le moteur de production à la frontière utilisateur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si Tokio et Moonpool divergent, le simulateur devient moins fiable. Si le harnais différentiel les maintient alignés, alors une seed rouge dans le monde simulé pointe beaucoup plus probablement vers une propriété réelle du client, et non vers une implémentation séparée réservée aux tests.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est aussi pour cela que la politique de validation de Magnetar est stricte sur la couverture cross-runtime. Les changements comportementaux doivent exercer la couche sans-io, le runtime Tokio, le runtime Moonpool, l'équivalence différentielle et la surface e2e lorsque c'est applicable. C'est plus de travail qu'un seul test unitaire. C'est aussi le coût pour faire de la simulation déterministe un vrai outil d'ingénierie, pas une expérience annexe.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">La parité Java comme contrat de crédibilité</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La simulation ne remplace pas la largeur fonctionnelle. Elle rend cette largeur moins fragile.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Apache Pulsar possède un <a href="https://pulsar.apache.org/docs/">client Java</a> mature, et pour beaucoup d'utilisateurs ce client définit ce que signifie "un client Pulsar". Le produce/consume de base ne suffit pas. Un client crédible doit couvrir les comportements sur lesquels les applications s'appuient : batching, compression, transactions, schémas, topics partitionnés, consumers multi-topics et par pattern, retries, dead-letter flows, providers d'authentification, support proxy, failover, opérations admin et PIPs qui structurent les usages modernes de Pulsar.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar suit la parité avec le client Java comme un contrat public. Le <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">README</a> porte la matrice de parité et le statut moteur par moteur. L'article n'a pas besoin de recopier cette matrice, mais son existence est importante. Elle donne aux utilisateurs un moyen d'évaluer le projet comme client Pulsar, et non comme une expérience étroite autour d'un seul chemin heureux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi la première release publique de Magnetar est plus large qu'une démo minimale. Elle inclut la fondation protocolaire, la façade publique, les moteurs runtime, le support admin, les providers d'authentification, la crypto de messages, le travail CLI, les hooks d'observabilité et une liste croissante de surfaces PIP.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La raison de suivre la parité est simple : les utilisateurs ne choisissent pas une bibliothèque cliente uniquement parce que son architecture interne est élégante. Ils la choisissent parce qu'elle peut représenter le système qu'ils exécutent réellement. L'architecture rend cette surface maintenable. La parité la rend utile.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Au-delà de la production et de la consommation</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'expression "client Pulsar" peut masquer une large surface fonctionnelle. Vus de l'extérieur, les premiers exemples paraissent généralement modestes : construire un client, créer un producer, envoyer un payload, souscrire avec un consumer, recevoir un message, l'acquitter. Ces exemples sont utiles parce qu'ils montrent le point d'entrée. Ils ne suffisent pas à évaluer le client.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les vraies applications Pulsar dépendent de comportements qui n'apparaissent qu'une fois la première démo fonctionnelle. Un producer peut avoir besoin de batching, de compression, de chunking, de modes d'accès, de sequence ids, de timeouts d'envoi, de propriétés par message, de transactions, d'interceptors et de statistiques de latence. Un consumer peut avoir besoin de batch receive, d'acquittements cumulatifs, d'acquittements par index de batch, de nack backoff, de gestion des timeouts d'ack, de retry topics, de dead-letter topics, de seek, de pause/resume, de modes de souscription et de comportements par partition. Les applications avec des schémas stricts ont besoin d'Avro, de JSON, de Protobuf, de Protobuf-native, de KeyValue, de schémas primitifs et de la sémantique de résolution de schéma côté broker. Les déploiements avec des exigences de sécurité ont besoin d'authentification par token, de mTLS, d'OAuth2, de SASL, de Kerberos/GSSAPI, d'Athenz, de choix de provider TLS, et d'un moyen de raisonner sur le comportement de la crypto sans forcer chaque build à embarquer tous les providers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ces fonctionnalités ne sont pas des cases à cocher indépendantes. Elles interagissent. Le batching interagit avec la compression et les timeouts d'envoi. Le chunking interagit avec les sequence ids et la redélivrance. Les transactions interagissent avec les acquittements. La reconnexion interagit avec les producers, les consumers, les lookups, le routage proxy et le failover. L'observabilité doit décrire le comportement sans laisser fuiter de secrets ni noyer les opérateurs en période de churn.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi le travail fonctionnel et le travail d'architecture de Magnetar sont liés. Plus la surface devient complète, plus il est important que l'état protocolaire soit explicite et que la frontière avec le runtime reste étroite. Un client large bâti sur un état accidentel devient plus difficile à maintenir à mesure qu'il devient plus utile. Un client large bâti sur un état rejouable donne aux mainteneurs une meilleure chance d'empêcher la croissance fonctionnelle de se transformer en comportement caché.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">La validation comme architecture</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La stratégie de test de Magnetar est volontairement stratifiée, parce que chaque couche attrape une classe différente de bugs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La couche sans-io permet de tester le comportement protocolaire sans sockets ni tâches async. La <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/testing.md">documentation de test du projet</a> mentionne aujourd'hui plus de 270 tests unitaires dans magnetar-proto. Ces tests exercent directement la machine d'état : octets en entrée, événements en sortie, buffers de transmission en sortie, transitions d'état vérifiées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les tests d'intégration runtime exercent la colle que les tests purement protocolaires ne peuvent pas couvrir. Les moteurs Tokio et Moonpool ont chacun leur surface d'intégration, et le projet impose une parité runtime afin qu'un moteur ne prenne pas silencieusement du retard sur l'autre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le pack de chaos déterministe cible les ordonnancements de panne qui ont motivé l'architecture : reconnect, failover, timers en horloge virtuelle, ordre des handshakes TLS, publishes en vol, migration de broker et comportements réseau adversariaux. La <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">documentation du moteur Moonpool</a> décrit un sweep Moonpool quotidien avec 128 seeds aléatoires fraîchement générées en parallèle. Le chiffre compte moins que ce qu'il représente : le client est poussé dans des ordonnancements qu'un humain n'écrirait pas à la main.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les tests d'équivalence différentielle comparent les deux mondes runtime. Ils posent une question directe : si la même trace est exécutée dans Tokio et Moonpool, l'utilisateur observe-t-il le même comportement ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les tests end-to-end restent nécessaires. Ils gardent Magnetar honnête face à un vrai broker Apache Pulsar. La simulation rend des pannes reproductibles, mais elle ne remplace pas la compatibilité avec le système que les utilisateurs déploient.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ensemble, ces couches ne sont pas une cérémonie. Elles font partie de l'architecture. Le but n'est pas d'accumuler de grands nombres de tests. Le but est d'appliquer la pression de validation exactement là où les clients distribués échouent : état protocolaire, frontières runtime, logique de reconnexion, timing, équivalence et comportement face à un vrai broker.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Ce que la reproductibilité change concrètement</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La valeur pratique de la simulation déterministe n'est pas seulement de rendre les tests plus sophistiqués. Elle change la boucle de debug.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Lorsqu'un test end-to-end traditionnel échoue à cause du timing, la première question est souvent de savoir si l'échec est reproductible. S'il ne l'est pas, on ajoute des sleeps, des logs, des timeouts plus larges ou des boucles de retry. Certaines de ces modifications sont utiles. Beaucoup ne font que déplacer la panne ailleurs. La panne reste une histoire : "on l'a vue une fois en CI".</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avec une simulation déterministe, la panne doit devenir un artefact. Cet artefact est une seed, une trace et une transition d'état rejouable. La question passe de "peut-on la refaire apparaître ?" à "quel invariant cet ordonnancement a-t-il violé ?"</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette différence compte pour une bibliothèque cliente. Les bugs de client se trouvent souvent à la frontière entre le code utilisateur et le broker. Ils sont faciles à attribuer au mauvais endroit. Un publish peut échouer parce que le broker a fermé la connexion, parce que le client a perdu un outcome, parce que le chemin de reconnexion a reconstruit le producer trop tard, parce qu'un ack a réveillé le mauvais waiter, parce qu'un timeout a frappé un état de session périmé, ou parce que la tâche runtime est morte après que le protocole a déjà changé d'état.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si tout ce comportement est dispersé entre des tâches, des channels, des timers et des sockets, un rapport de panne est difficile à réduire. Si la machine d'état protocolaire est explicite, si la frontière runtime est étroite et si la même séquence peut être rejouée avec des providers contrôlés, le rapport devient beaucoup plus petit : cette seed, cette trace, cet ordre d'événements, cet invariant.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi Magnetar traite la reproductibilité comme une partie du design du client. Le but n'est pas seulement de trouver plus de bugs. Le but est que les bugs trouvés coûtent moins cher à comprendre et soient plus sûrs à corriger.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela change aussi la revue de code. Un reviewer peut demander si un comportement est couvert à la bonne couche. Est-ce une transition protocolaire pure ? Alors le test sans-io doit injecter des octets et vérifier des événements. Est-ce de la colle runtime ? Alors Tokio et Moonpool doivent avoir une couverture équivalente. Est-ce un comportement observable partagé par les deux moteurs ? Alors le harnais différentiel doit comparer les event streams. Est-ce de la compatibilité broker ? Alors un e2e doit toucher un vrai broker Pulsar.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ces questions sont plus précises que "a-t-on ajouté des tests ?" Elles relient le test au modèle de panne.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Par où commencer la lecture</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour les ingénieurs qui découvrent Magnetar, le meilleur point d'entrée n'est pas un fichier unique. C'est la relation entre les documents et le code.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">README</a> donne la surface publique : ce que le client expose, quelles fonctionnalités sont implémentées, comment la matrice de parité Java est suivie, quels PIPs sont supportés et comment les deux moteurs sont positionnés. C'est le contrat utilisateur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le <a href="https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md">document d'architecture</a> explique la forme située sous ce contrat. Il montre la topologie de crates, le sens des dépendances, la frontière sans-io, la boucle driver, le modèle d'événements, les chemins producer et consumer, les moteurs runtime, les sites TLS, les schémas, la couverture PIP et la stratégie de validation. C'est la carte du système.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La <a href="https://github.com/CleverCloud/magnetar/tree/main/specs/adr">série d'ADR</a> explique pourquoi le système a cette forme. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0004-sans-io-protocol-core.md">ADR-0004</a> documente la séparation sans-io. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0003-no-channels-rule.md">ADR-0003</a> documente l'interdiction des channels. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0011-clock-injection-sans-io.md">ADR-0011</a> documente l'injection d'horloge. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0010-v0-1-full-java-parity.md">ADR-0010</a> documente la décision de parité Java. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0019-engine-scope-and-moonpool-parity.md">ADR-0019</a> documente la relation entre le moteur de production Tokio et le moteur Moonpool par rapport à cet objectif de parité. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0024-cross-runtime-test-and-coverage-policy.md">ADR-0024</a> documente la politique de test cross-runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela compte parce que Magnetar n'est volontairement pas seulement un dépôt de code. C'est un ensemble de décisions d'ingénierie avec une trace publique. Si vous n'êtes pas d'accord avec le design, les ADR donnent la bonne surface de discussion. Si vous voulez contribuer une fonctionnalité, la matrice de parité et la politique de validation indiquent ce que "terminé" veut dire. Si vous voulez évaluer le travail de simulation, la <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">documentation du moteur Moonpool</a> et le harnais différentiel montrent comment le même coeur protocolaire est piloté dans plusieurs mondes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette première release doit donc se lire de deux manières. Comme utilisateur Pulsar, regardez la surface cliente et la matrice de parité. Comme ingénieur infrastructure Rust, regardez la frontière de machine d'état et la stratégie de simulation. Ce qui rend Magnetar intéressant, c'est que ces deux lectures sont censées se renforcer.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Ce que donne la première release publique</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Cette première release publique est un point d'entrée technique. Elle s'adresse aux ingénieurs qui veulent essayer Magnetar, lire l'architecture, inspecter les ADR, comparer le comportement avec les clients Pulsar existants et contribuer à structurer l'écosystème Pulsar Rust.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'API cliente de haut niveau commence par une forme attendue :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div
  style="
    max-width: 780px;
    margin: 1.5rem auto;
    padding: 16px 20px;
    background: #0f172a;
    color: #e5eefc;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
      Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 15px;
    line-height: 1.7;
  "
>
  <pre
    style="
      margin: 0;
      overflow-x: auto;
      white-space: pre-wrap;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        'Liberation Mono', 'Courier New', monospace;
    "
  ><code>let client = PulsarClient::builder()
    .service_url("pulsar://localhost:6650")
    .build()
    .await?;

let producer = client
    .producer("persistent://public/default/orders")
    .create()
    .await?;</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette API est importante, parce que le client doit être utilisable. Mais la release est aussi une invitation à inspecter les couches inférieures. Lire le <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">README</a> pour la matrice fonctionnelle. Lire le <a href="https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md">document d'architecture</a> pour le design sans-io. Lire les <a href="https://github.com/CleverCloud/magnetar/tree/main/specs/adr">ADR</a> pour les décisions derrière l'interdiction des channels, les moteurs remplaçables, l'injection d'horloge, la parité Java, la parité Moonpool, les choix de providers TLS et la validation cross-runtime. Lire la <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">documentation du moteur Moonpool</a> si la simulation déterministe appliquée à un vrai client réseau vous intéresse.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le point important pour cet article est la direction : Magnetar est public pour que les ingénieurs puissent évaluer à la fois la surface cliente et le modèle d'ingénierie qui la porte.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Vous pouvez consulter la première release publique de Magnetar <a href="https://github.com/CleverCloud/magnetar/releases#release-v1.0.0">v1.0.0</a>, ainsi que la dernière release à ce jour, la version <a href="https://github.com/CleverCloud/magnetar/releases#release-v1.2.0">v1.2.0</a>.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pourquoi cela dépasse Magnetar</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar est un client Apache Pulsar. C'est aussi un exemple concret de la manière dont nous voulons construire davantage de logiciel d'infrastructure en Rust.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les systèmes distribués échouent par transitions d'état. Certaines de ces transitions sont évidentes et faciles à tester. Beaucoup ne le sont pas. Elles apparaissent lorsque le temps avance au mauvais endroit, lorsqu'un retry chevauche un chemin de fermeture, lorsqu'un broker coupe une connexion après avoir accepté une partie de la session, lorsqu'un callback est enregistré juste après une notification, ou lorsqu'un chemin de reconnexion reconstruit un handle mais pas un autre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On peut essayer de traquer ces bugs après coup. C'est parfois inévitable. Mais l'architecture peut rendre cette traque plus facile ou plus difficile.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un client avec un coeur protocolaire pur, des événements explicites, du temps injecté, une I/O remplaçable, des seeds déterministes et une comparaison cross-runtime donne de meilleurs outils aux ingénieurs. Il permet de réduire une panne à une trace. Il permet de rejouer cette trace. Il permet de demander si une panne simulée correspond au runtime de production. Il permet d'ajouter un invariant là où une dérive silencieuse de l'état pouvait se cacher.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est la direction prise par Magnetar. Rendre le protocole explicite. Rendre le runtime remplaçable. Rendre les pannes reproductibles. Faire de la correction quelque chose que le code doit démontrer en continu.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Merci à Pierre Zemb pour Moonpool et pour cette direction de simulation déterministe en Rust, ainsi qu'aux contributeurs et mainteneurs de l'écosystème Pulsar Rust dont le travail a rendu l'étape suivante possible.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar est open source. Le code, les notes d'architecture, les ADR et la documentation vivent sur <a href="https://github.com/CleverCloud/magnetar">github.com/CleverCloud/magnetar</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<hr style="border: none; height: 1px; background-color: #ccc; margin: 32px 0;">
<!-- /wp:html -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Références</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Magnetar</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>Dépôt Magnetar</strong>. Dépôt public du client Apache Pulsar Rust. <a href="https://github.com/CleverCloud/magnetar">https://github.com/CleverCloud/magnetar</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>README Magnetar</strong>. Surface publique, matrice de parité Java, PIPs supportés, couverture par moteur et statut. <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">https://github.com/CleverCloud/magnetar/blob/main/README.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Architecture Magnetar</strong>. Rationale sans-io, topologie de crates, driver loop, machine d'état protocolaire et tests. <a href="https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md">https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Index de documentation Magnetar</strong>. Moteur Moonpool, testing, CLI, observabilité, logging, features PIP. <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/README.md">https://github.com/CleverCloud/magnetar/blob/main/docs/README.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Documentation du moteur Moonpool</strong>. Moteur de simulation déterministe, chaos pack, harnais différentiel, modèle de providers. <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Documentation de test</strong>. Catégories de tests et commandes de validation. <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/testing.md">https://github.com/CleverCloud/magnetar/blob/main/docs/testing.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ADR-0004</strong>. magnetar-proto sans-io et moteurs d'I/O remplaçables. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0004-sans-io-protocol-core.md">https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0004-sans-io-protocol-core.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ADR-0010</strong>. Parité complète avec le client Java. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0010-v0-1-full-java-parity.md">https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0010-v0-1-full-java-parity.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ADR-0024</strong>. Politique de tests et couverture cross-runtime. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0024-cross-runtime-test-and-coverage-policy.md">https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0024-cross-runtime-test-and-coverage-policy.md</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Écosystème</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>pulsar-rs</strong>. Client Apache Pulsar Rust existant. <a href="https://github.com/streamnative/pulsar-rs">https://github.com/streamnative/pulsar-rs</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Apache Pulsar</strong>. Plateforme distribuée de messaging et streaming. <a href="https://pulsar.apache.org/">https://pulsar.apache.org/</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Client Java Apache Pulsar</strong>. Surface de référence pour de nombreux utilisateurs Pulsar. <a href="https://pulsar.apache.org/docs/">https://pulsar.apache.org/docs/</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Simulation déterministe</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>FoundationDB testing</strong>. Lignée de la simulation déterministe et de l'injection de fautes. <a href="https://apple.github.io/foundationdb/testing.html">https://apple.github.io/foundationdb/testing.html</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>TigerBeetle TigerStyle</strong>. Style d'ingénierie centré sur les assertions. <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md">https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>TigerBeetle VOPR</strong>. Approche de simulation testing. <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/internals/vopr.md">https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/internals/vopr.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Dépôt Moonpool</strong>. Simulation déterministe pour systèmes Rust, développée par Pierre Zemb. <a href="https://github.com/PierreZ/moonpool">https://github.com/PierreZ/moonpool</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>moonpool-sim</strong>. Crate du moteur de simulation Moonpool. <a href="https://crates.io/crates/moonpool-sim">https://crates.io/crates/moonpool-sim</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->]]></description>
										<content:encoded><![CDATA[<p><img width="2400" height="1065" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.15 Clever Cloud Bannière Blog Magnetar FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr.png 2400w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-15-clever-cloud-banniere-blog-magnetar-fr-1368x607.png 1368w" sizes="auto, (max-width: 2400px) 100vw, 2400px" /></p><!-- wp:paragraph -->
<p><a href="https://apple.github.io/foundationdb/testing.html">FoundationDB</a> a rendu cette idée célèbre. Au lieu de s'appuyer seulement sur des tests unitaires et des tests end-to-end sur un vrai cluster, le projet exécute des workloads distribués dans un monde simulé, où le temps, les fautes réseau, les pannes de processus et les décisions d'ordonnancement peuvent être explorés puis rejoués à partir d'une seed. <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md">TigerBeetle</a> pousse une discipline complémentaire : rendre les invariants explicites dans le code, vérifier en continu la forme de l'état et transformer une corruption silencieuse en panne locale et bruyante.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chez Clever Cloud, nous appliquons cette direction à des logiciels d'infrastructure en Rust. <a href="https://github.com/PierreZ/moonpool">Moonpool</a>, développé par Pierre Zemb, donne aux systèmes Rust un environnement de simulation déterministe où le temps, le réseau, les tâches, l'aléa et le stockage peuvent être virtualisés derrière des traits de providers. <a href="https://github.com/CleverCloud/magnetar">Magnetar</a> est l'application de cette approche à un client <a href="https://pulsar.apache.org/">Apache Pulsar</a>. C’est d’ailleurs, l’approche que nous prenons au sein de notre reverse proxy <a href="https://www.clever.cloud/fr/blog/entreprise/2026/07/01/sozu-2-1-0-load-balancing-udp-edge-programmable/">Sōzu</a>.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar est un driver Apache Pulsar écrit en Rust, depuis zéro. Il repose sur un coeur protocolaire sans-io, un moteur de production Tokio et un moteur Moonpool pour la simulation déterministe. Cette première release publique s'adresse aux ingénieurs qui veulent essayer Magnetar, évaluer son architecture, comparer son comportement avec les clients Pulsar existants et contribuer à structurer un écosystème Pulsar Rust plus solide.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'objectif n'est pas seulement d'exposer une API Rust autour de Pulsar. L'objectif est de construire un client dont les comportements difficiles peuvent être inspectés, rejoués et forcés à échouer avant que la production ne s'en charge.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Un client Pulsar fait partie du système distribué</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>On pourrait être tenté de considérer une bibliothèque cliente comme la partie simple d'un système distribué. Le broker porterait la réplication, le stockage, l'ownership et la coordination. Le client se contenterait de se connecter, d'envoyer des messages, d'en recevoir et de les acquitter.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette vision ne tient pas face à un vrai client Apache Pulsar.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un client Pulsar sérieux doit gérer les producers, consumers, readers, topics partitionnés, consumers multi-topics, subscriptions par pattern, transactions, schémas, authentification, routage proxy, lookup broker, failover de cluster, reconnect, backoff, batching, chunking, ack grouping, suivi des messages non acquittés, negative acknowledgements, retry-letter et dead-letter flows, observabilité et une longue liste de Pulsar Improvement Proposals.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les bugs difficiles ne viennent pas seulement d'une commande mal encodée. Ils viennent souvent du temps et de l'ordre. Un broker tombe pendant qu'un publish est en vol. Une reconnexion arrive alors qu'un consumer a des acknowledgements en attente. Un refresh de token se produit pendant un reset de session. Un lookup via proxy pointe vers un nouveau broker alors que l'ancienne connexion se vide encore. Un topic migre et le client doit reconstruire assez d'état pour continuer sans prétendre que l'ancienne session existe toujours.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela signifie qu'un client Pulsar n'est pas seulement un wrapper pratique autour d'une socket. Il fait partie du système distribué. Il possède un état qui doit rester cohérent pendant que le monde autour de lui change.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si cet état est caché dans des tâches runtime, des files de channels, des horloges implicites et des accidents de timing, alors le client devient plus difficile à raisonner précisément au moment où cette précision compte le plus. Magnetar part de l'hypothèse inverse : rendre l'état protocolaire explicite, le piloter à travers des frontières étroites et garder l'I/O à l'extérieur.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">De l'écosystème Pulsar Rust à Magnetar</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar vient d'une expérience concrète avec l'écosystème Pulsar Rust, notamment la maintenance et l'usage de <a href="https://github.com/streamnative/pulsar-rs">pulsar-rs</a>. Ce travail compte. Il a donné aux utilisateurs Rust un client Apache Pulsar et a créé le contexte pratique dans lequel l'étape suivante pouvait être évaluée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar n'est pas une critique de ce qui existait avant lui. C'est une continuation du même écosystème, avec un point de départ architectural différent. Après avoir travaillé sur des usages Pulsar réels, la direction est devenue plus claire : un driver Pulsar Rust doit rendre la frontière protocole/runtime plus nette, rendre les comportements difficiles reproductibles, suivre la parité explicitement et faire de la testabilité une contrainte de conception.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi Magnetar ne commence pas par le builder public. Il commence par le protocole.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'API utilisateur compte, et cette première release expose déjà une surface large. Mais pour un client distribué, la question plus profonde est ce qui se passe sous cette API lorsque le broker bouge, que la connexion tombe, que l'horloge avance, qu'un timeout se déclenche, qu'une subscription est reconstruite ou que la même trace est rejouée sous un autre runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Le coeur sans-io</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le coeur de Magnetar est <a href="https://github.com/CleverCloud/magnetar/tree/main/crates/magnetar-proto">magnetar-proto</a>. C'est une machine d'état protocolaire synchrone. Elle n'a pas de socket. Elle ne dépend pas de Tokio. Elle ne lance pas de tâches. Elle n'utilise pas async. Elle ne lit pas l'horloge hôte sur le chemin chaud du protocole.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Sa forme suit la même idée générale qui a rendu <a href="https://github.com/quinn-rs/quinn/tree/main/quinn-proto">quinn-proto</a> influent dans le monde réseau Rust : injecter des octets, récupérer des octets à transmettre, récupérer des événements sémantiques et demander à la machine d'état quand son prochain timer expire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Conceptuellement, l'interface ressemble à ceci :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div
  style="
    max-width: 780px;
    margin: 1.5rem auto;
    padding: 16px 20px;
    background: #0f172a;
    color: #e5eefc;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
      Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 15px;
    line-height: 1.7;
  "
>
  <pre
    style="
      margin: 0;
      overflow-x: auto;
      white-space: pre-wrap;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        'Liberation Mono', 'Courier New', monospace;
    "
  ><code>&gt; connection.handle_bytes(now, bytes);

connection.poll_transmit(&amp;mut out);
connection.poll_event();
connection.poll_timeout();</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette petite forme est un grand choix d'architecture.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>handle_bytes permet à un moteur d'injecter les octets du wire dans la machine d'état. poll_transmit draine les frames sortantes. poll_event produit les événements sémantiques auxquels le runtime doit réagir : challenges d'authentification, résultats de lookup, checksum mismatch, signaux de reconnexion ou transitions protocolaire. poll_timeout permet au runtime de savoir quand réveiller la machine d'état.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La machine d'état ne décide pas d'où viennent les octets. Elle ne sait pas si le réseau est un vrai stream TCP, un stream TLS, un pipe d'octets dans un simulateur ou un broker scripté dans un harnais différentiel. Elle ne décide pas non plus ce que "maintenant" veut dire. Le moteur lui passe le temps.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les traits publics de magnetar-proto suivent la même règle. Ce ne sont pas des services runtime cachés derrière des callbacks async. Ce sont de petits contrats protocolaires, placés aux endroits où la machine d'état a besoin d'une décision ou d'une transformation : <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/auth.rs">AuthProvider</a> produit les octets d'authentification, <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/schema/mod.rs">Schema</a> définit l'encodage, le décodage, les données de schéma et les hooks de schéma résolu par le broker, <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/crypto.rs">MessageEncryptor et MessageDecryptor</a> décrivent la crypto de payload sur des octets et de la metadata de message, <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/service_url.rs">ServiceUrlProvider</a> expose l'URL de service courante pour le failover, et <a href="https://github.com/CleverCloud/magnetar/blob/main/crates/magnetar-proto/src/health_probe.rs">HealthProbe</a> utilise un contrat de type poll au lieu d'attacher le crate protocolaire à un runtime async. Le motif est volontaire : le coeur protocolaire peut demander des faits, des octets ou un état de readiness, tandis que l'I/O, le cache, le refresh, les probes réseau et le scheduler restent à l'extérieur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette séparation n'est pas seulement une affaire de propreté. C'est ce qui rend le protocole testable sans broker, sans socket et sans runtime async. Un bug protocolaire peut être réduit à une fixture : injecter ces octets à cet instant, récupérer ces sorties, vérifier cet event stream et rejouer la même séquence.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour un client Apache Pulsar, cela compte parce que le protocole wire ne se limite pas au chemin heureux. Il comprend la création de producers, la subscription de consumers, les acks, nacks, transactions, erreurs broker, redirects, challenges d'authentification, migrations de topics, markers de replicated subscriptions, metadata de schémas, batching, chunking et chemins de fermeture. Chacun de ces éléments porte de l'état. Chaque transition d'état est plus facile à raisonner lorsqu'elle n'est pas mélangée aux lectures de socket, au scheduling de tâches et aux wakeups spécifiques d'un runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">L'interdiction des channels comme contrainte d'architecture</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar fait aussi un choix Rust async peu courant : les primitives de channels sont interdites dans le workspace.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'architecture directe d'un client réseau ressemble souvent à ceci : future producer vers channel, channel vers driver task, driver task vers channel, channel vers future consumer. Cela peut fonctionner, mais cela disperse l'état entre des files et des tâches. La backpressure devient implicite. Les sémantiques de fermeture dépendent de la bibliothèque de channel. Des futures abandonnées peuvent laisser des messages dans des endroits difficiles à inspecter. La question de debug devient : où est passé ce message ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar utilise un autre motif. L'état vit dans la machine d'état protocolaire et dans la connexion partagée détenue par le runtime. Les futures utilisateur enregistrent des wakers dans des slabs indexés par identifiants d'opération. Le driver possède la boucle d'I/O, injecte les octets dans la machine d'état, draine les frames sortantes et réveille les futures correspondantes lorsque les outcomes arrivent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce n'est pas une interdiction esthétique des channels. C'est une manière de garder la propriété de l'état explicite. Lorsque le driver reconstruit des producers après une reconnexion, lorsqu'un consumer attend un message, lorsqu'un ack outcome est livré ou lorsqu'une opération en attente échoue parce qu'une session a disparu, l'état pertinent est dans la machine d'état et peut y être inspecté.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce design a des compromis. Il met plus de pression sur la correction de la machine d'état. Il impose un ordre de locks précis. Il demande aux reviewers de comprendre l'enregistrement des wakers et les chemins de réveil. Mais il rend aussi le comportement beaucoup plus facile à simuler, rejouer et comparer entre runtimes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Deux moteurs, une machine d'état</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar livre deux moteurs qui pilotent le même coeur protocolaire.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le moteur par défaut est <a href="https://github.com/CleverCloud/magnetar/tree/main/crates/magnetar-runtime-tokio">magnetar-runtime-tokio</a>. C'est le chemin d'exécution de production : TCP, TLS via tokio-rustls, tâches driver, temps réel, vraies sockets et surface publique PulsarClient que la plupart des utilisateurs rencontreront en premier.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le second moteur est <a href="https://github.com/CleverCloud/magnetar/tree/main/crates/magnetar-runtime-moonpool">magnetar-runtime-moonpool</a>. Il pilote la même machine d'état magnetar-proto::Connection à travers des providers Moonpool. Au lieu d'inscrire le runtime en dur, Moonpool expose des traits de providers pour le réseau, le temps, le spawning de tâches, l'aléa et le stockage. Avec un bundle de providers proche de la production, le moteur peut exécuter de vraies I/O. Avec des providers de simulation, ces mêmes catégories peuvent être virtualisées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est là que la simulation déterministe devient pratique. Le client peut être piloté dans un monde où le temps avance sous contrôle, où les livraisons réseau peuvent être réordonnées ou interrompues, où les tâches s'exécutent sous un scheduler déterministe, où l'aléa est seedé et où les pannes peuvent être rejouées depuis la même seed.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moonpool n'est pas un mock. Un mock remplace généralement un composant par un comportement simplifié. C'est utile pour beaucoup de tests unitaires, mais ce n'est pas la même chose que d'exercer un vrai client dans des interleavings difficiles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moonpool n'est pas non plus un test end-to-end classique. Un e2e exécute le vrai système, ce qui est indispensable, mais il utilise souvent du temps réel, un vrai réseau et des pannes difficiles à reproduire une fois le timing passé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moonpool occupe un autre espace. Il garde le code proche du chemin réel d'exécution tout en virtualisant les providers qui rendent le comportement distribué difficile à reproduire. Le but n'est pas d'éviter les e2e. Le but est d'ajouter un régime où les pannes ne sont plus des anecdotes. Elles deviennent des seeds.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le moteur Moonpool de Magnetar utilise la même machine d'état protocolaire que le moteur Tokio. Le chemin TLS est lui aussi piloté de façon à préserver la frontière de simulation : au lieu de s'appuyer sur tokio-rustls, le moteur Moonpool pilote directement rustls::ClientConnection au-dessus du pipe d'octets. Cela maintient les handshakes TLS sous le même contrôle déterministe que le reste du réseau simulé.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Tests différentiels : faire converger les moteurs</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Deux moteurs ne sont utiles que s'ils ne deviennent pas silencieusement deux clients différents.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar inclut donc un harnais différentiel. Il exécute une trace, par exemple connect, open producer, send, subscribe, receive, ack, seek et close, contre les moteurs Tokio et Moonpool, puis compare les event streams visibles par l'utilisateur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela compte parce que le moteur Moonpool sert à trouver des bugs difficiles à exposer avec du temps réel et de vraies sockets. Pour que cette recherche ait du sens, le moteur simulé doit rester aligné avec le moteur de production à la frontière utilisateur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si Tokio et Moonpool divergent, le simulateur devient moins fiable. Si le harnais différentiel les maintient alignés, alors une seed rouge dans le monde simulé pointe beaucoup plus probablement vers une propriété réelle du client, et non vers une implémentation séparée réservée aux tests.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est aussi pour cela que la politique de validation de Magnetar est stricte sur la couverture cross-runtime. Les changements comportementaux doivent exercer la couche sans-io, le runtime Tokio, le runtime Moonpool, l'équivalence différentielle et la surface e2e lorsque c'est applicable. C'est plus de travail qu'un seul test unitaire. C'est aussi le coût pour faire de la simulation déterministe un vrai outil d'ingénierie, pas une expérience annexe.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">La parité Java comme contrat de crédibilité</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La simulation ne remplace pas la largeur fonctionnelle. Elle rend cette largeur moins fragile.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Apache Pulsar possède un <a href="https://pulsar.apache.org/docs/">client Java</a> mature, et pour beaucoup d'utilisateurs ce client définit ce que signifie "un client Pulsar". Le produce/consume de base ne suffit pas. Un client crédible doit couvrir les comportements sur lesquels les applications s'appuient : batching, compression, transactions, schémas, topics partitionnés, consumers multi-topics et par pattern, retries, dead-letter flows, providers d'authentification, support proxy, failover, opérations admin et PIPs qui structurent les usages modernes de Pulsar.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar suit la parité avec le client Java comme un contrat public. Le <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">README</a> porte la matrice de parité et le statut moteur par moteur. L'article n'a pas besoin de recopier cette matrice, mais son existence est importante. Elle donne aux utilisateurs un moyen d'évaluer le projet comme client Pulsar, et non comme une expérience étroite autour d'un seul chemin heureux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi la première release publique de Magnetar est plus large qu'une démo minimale. Elle inclut la fondation protocolaire, la façade publique, les moteurs runtime, le support admin, les providers d'authentification, la crypto de messages, le travail CLI, les hooks d'observabilité et une liste croissante de surfaces PIP.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La raison de suivre la parité est simple : les utilisateurs ne choisissent pas une bibliothèque cliente uniquement parce que son architecture interne est élégante. Ils la choisissent parce qu'elle peut représenter le système qu'ils exécutent réellement. L'architecture rend cette surface maintenable. La parité la rend utile.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Au-delà de la production et de la consommation</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'expression "client Pulsar" peut masquer une large surface fonctionnelle. Vus de l'extérieur, les premiers exemples paraissent généralement modestes : construire un client, créer un producer, envoyer un payload, souscrire avec un consumer, recevoir un message, l'acquitter. Ces exemples sont utiles parce qu'ils montrent le point d'entrée. Ils ne suffisent pas à évaluer le client.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les vraies applications Pulsar dépendent de comportements qui n'apparaissent qu'une fois la première démo fonctionnelle. Un producer peut avoir besoin de batching, de compression, de chunking, de modes d'accès, de sequence ids, de timeouts d'envoi, de propriétés par message, de transactions, d'interceptors et de statistiques de latence. Un consumer peut avoir besoin de batch receive, d'acquittements cumulatifs, d'acquittements par index de batch, de nack backoff, de gestion des timeouts d'ack, de retry topics, de dead-letter topics, de seek, de pause/resume, de modes de souscription et de comportements par partition. Les applications avec des schémas stricts ont besoin d'Avro, de JSON, de Protobuf, de Protobuf-native, de KeyValue, de schémas primitifs et de la sémantique de résolution de schéma côté broker. Les déploiements avec des exigences de sécurité ont besoin d'authentification par token, de mTLS, d'OAuth2, de SASL, de Kerberos/GSSAPI, d'Athenz, de choix de provider TLS, et d'un moyen de raisonner sur le comportement de la crypto sans forcer chaque build à embarquer tous les providers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ces fonctionnalités ne sont pas des cases à cocher indépendantes. Elles interagissent. Le batching interagit avec la compression et les timeouts d'envoi. Le chunking interagit avec les sequence ids et la redélivrance. Les transactions interagissent avec les acquittements. La reconnexion interagit avec les producers, les consumers, les lookups, le routage proxy et le failover. L'observabilité doit décrire le comportement sans laisser fuiter de secrets ni noyer les opérateurs en période de churn.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi le travail fonctionnel et le travail d'architecture de Magnetar sont liés. Plus la surface devient complète, plus il est important que l'état protocolaire soit explicite et que la frontière avec le runtime reste étroite. Un client large bâti sur un état accidentel devient plus difficile à maintenir à mesure qu'il devient plus utile. Un client large bâti sur un état rejouable donne aux mainteneurs une meilleure chance d'empêcher la croissance fonctionnelle de se transformer en comportement caché.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">La validation comme architecture</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La stratégie de test de Magnetar est volontairement stratifiée, parce que chaque couche attrape une classe différente de bugs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La couche sans-io permet de tester le comportement protocolaire sans sockets ni tâches async. La <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/testing.md">documentation de test du projet</a> mentionne aujourd'hui plus de 270 tests unitaires dans magnetar-proto. Ces tests exercent directement la machine d'état : octets en entrée, événements en sortie, buffers de transmission en sortie, transitions d'état vérifiées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les tests d'intégration runtime exercent la colle que les tests purement protocolaires ne peuvent pas couvrir. Les moteurs Tokio et Moonpool ont chacun leur surface d'intégration, et le projet impose une parité runtime afin qu'un moteur ne prenne pas silencieusement du retard sur l'autre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le pack de chaos déterministe cible les ordonnancements de panne qui ont motivé l'architecture : reconnect, failover, timers en horloge virtuelle, ordre des handshakes TLS, publishes en vol, migration de broker et comportements réseau adversariaux. La <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">documentation du moteur Moonpool</a> décrit un sweep Moonpool quotidien avec 128 seeds aléatoires fraîchement générées en parallèle. Le chiffre compte moins que ce qu'il représente : le client est poussé dans des ordonnancements qu'un humain n'écrirait pas à la main.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les tests d'équivalence différentielle comparent les deux mondes runtime. Ils posent une question directe : si la même trace est exécutée dans Tokio et Moonpool, l'utilisateur observe-t-il le même comportement ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les tests end-to-end restent nécessaires. Ils gardent Magnetar honnête face à un vrai broker Apache Pulsar. La simulation rend des pannes reproductibles, mais elle ne remplace pas la compatibilité avec le système que les utilisateurs déploient.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ensemble, ces couches ne sont pas une cérémonie. Elles font partie de l'architecture. Le but n'est pas d'accumuler de grands nombres de tests. Le but est d'appliquer la pression de validation exactement là où les clients distribués échouent : état protocolaire, frontières runtime, logique de reconnexion, timing, équivalence et comportement face à un vrai broker.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Ce que la reproductibilité change concrètement</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La valeur pratique de la simulation déterministe n'est pas seulement de rendre les tests plus sophistiqués. Elle change la boucle de debug.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Lorsqu'un test end-to-end traditionnel échoue à cause du timing, la première question est souvent de savoir si l'échec est reproductible. S'il ne l'est pas, on ajoute des sleeps, des logs, des timeouts plus larges ou des boucles de retry. Certaines de ces modifications sont utiles. Beaucoup ne font que déplacer la panne ailleurs. La panne reste une histoire : "on l'a vue une fois en CI".</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avec une simulation déterministe, la panne doit devenir un artefact. Cet artefact est une seed, une trace et une transition d'état rejouable. La question passe de "peut-on la refaire apparaître ?" à "quel invariant cet ordonnancement a-t-il violé ?"</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette différence compte pour une bibliothèque cliente. Les bugs de client se trouvent souvent à la frontière entre le code utilisateur et le broker. Ils sont faciles à attribuer au mauvais endroit. Un publish peut échouer parce que le broker a fermé la connexion, parce que le client a perdu un outcome, parce que le chemin de reconnexion a reconstruit le producer trop tard, parce qu'un ack a réveillé le mauvais waiter, parce qu'un timeout a frappé un état de session périmé, ou parce que la tâche runtime est morte après que le protocole a déjà changé d'état.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si tout ce comportement est dispersé entre des tâches, des channels, des timers et des sockets, un rapport de panne est difficile à réduire. Si la machine d'état protocolaire est explicite, si la frontière runtime est étroite et si la même séquence peut être rejouée avec des providers contrôlés, le rapport devient beaucoup plus petit : cette seed, cette trace, cet ordre d'événements, cet invariant.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est pourquoi Magnetar traite la reproductibilité comme une partie du design du client. Le but n'est pas seulement de trouver plus de bugs. Le but est que les bugs trouvés coûtent moins cher à comprendre et soient plus sûrs à corriger.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela change aussi la revue de code. Un reviewer peut demander si un comportement est couvert à la bonne couche. Est-ce une transition protocolaire pure ? Alors le test sans-io doit injecter des octets et vérifier des événements. Est-ce de la colle runtime ? Alors Tokio et Moonpool doivent avoir une couverture équivalente. Est-ce un comportement observable partagé par les deux moteurs ? Alors le harnais différentiel doit comparer les event streams. Est-ce de la compatibilité broker ? Alors un e2e doit toucher un vrai broker Pulsar.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ces questions sont plus précises que "a-t-on ajouté des tests ?" Elles relient le test au modèle de panne.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Par où commencer la lecture</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour les ingénieurs qui découvrent Magnetar, le meilleur point d'entrée n'est pas un fichier unique. C'est la relation entre les documents et le code.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">README</a> donne la surface publique : ce que le client expose, quelles fonctionnalités sont implémentées, comment la matrice de parité Java est suivie, quels PIPs sont supportés et comment les deux moteurs sont positionnés. C'est le contrat utilisateur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le <a href="https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md">document d'architecture</a> explique la forme située sous ce contrat. Il montre la topologie de crates, le sens des dépendances, la frontière sans-io, la boucle driver, le modèle d'événements, les chemins producer et consumer, les moteurs runtime, les sites TLS, les schémas, la couverture PIP et la stratégie de validation. C'est la carte du système.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La <a href="https://github.com/CleverCloud/magnetar/tree/main/specs/adr">série d'ADR</a> explique pourquoi le système a cette forme. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0004-sans-io-protocol-core.md">ADR-0004</a> documente la séparation sans-io. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0003-no-channels-rule.md">ADR-0003</a> documente l'interdiction des channels. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0011-clock-injection-sans-io.md">ADR-0011</a> documente l'injection d'horloge. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0010-v0-1-full-java-parity.md">ADR-0010</a> documente la décision de parité Java. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0019-engine-scope-and-moonpool-parity.md">ADR-0019</a> documente la relation entre le moteur de production Tokio et le moteur Moonpool par rapport à cet objectif de parité. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0024-cross-runtime-test-and-coverage-policy.md">ADR-0024</a> documente la politique de test cross-runtime.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela compte parce que Magnetar n'est volontairement pas seulement un dépôt de code. C'est un ensemble de décisions d'ingénierie avec une trace publique. Si vous n'êtes pas d'accord avec le design, les ADR donnent la bonne surface de discussion. Si vous voulez contribuer une fonctionnalité, la matrice de parité et la politique de validation indiquent ce que "terminé" veut dire. Si vous voulez évaluer le travail de simulation, la <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">documentation du moteur Moonpool</a> et le harnais différentiel montrent comment le même coeur protocolaire est piloté dans plusieurs mondes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette première release doit donc se lire de deux manières. Comme utilisateur Pulsar, regardez la surface cliente et la matrice de parité. Comme ingénieur infrastructure Rust, regardez la frontière de machine d'état et la stratégie de simulation. Ce qui rend Magnetar intéressant, c'est que ces deux lectures sont censées se renforcer.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Ce que donne la première release publique</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Cette première release publique est un point d'entrée technique. Elle s'adresse aux ingénieurs qui veulent essayer Magnetar, lire l'architecture, inspecter les ADR, comparer le comportement avec les clients Pulsar existants et contribuer à structurer l'écosystème Pulsar Rust.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'API cliente de haut niveau commence par une forme attendue :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div
  style="
    max-width: 780px;
    margin: 1.5rem auto;
    padding: 16px 20px;
    background: #0f172a;
    color: #e5eefc;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
      Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 15px;
    line-height: 1.7;
  "
>
  <pre
    style="
      margin: 0;
      overflow-x: auto;
      white-space: pre-wrap;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        'Liberation Mono', 'Courier New', monospace;
    "
  ><code>let client = PulsarClient::builder()
    .service_url("pulsar://localhost:6650")
    .build()
    .await?;

let producer = client
    .producer("persistent://public/default/orders")
    .create()
    .await?;</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette API est importante, parce que le client doit être utilisable. Mais la release est aussi une invitation à inspecter les couches inférieures. Lire le <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">README</a> pour la matrice fonctionnelle. Lire le <a href="https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md">document d'architecture</a> pour le design sans-io. Lire les <a href="https://github.com/CleverCloud/magnetar/tree/main/specs/adr">ADR</a> pour les décisions derrière l'interdiction des channels, les moteurs remplaçables, l'injection d'horloge, la parité Java, la parité Moonpool, les choix de providers TLS et la validation cross-runtime. Lire la <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">documentation du moteur Moonpool</a> si la simulation déterministe appliquée à un vrai client réseau vous intéresse.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le point important pour cet article est la direction : Magnetar est public pour que les ingénieurs puissent évaluer à la fois la surface cliente et le modèle d'ingénierie qui la porte.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Vous pouvez consulter la première release publique de Magnetar <a href="https://github.com/CleverCloud/magnetar/releases#release-v1.0.0">v1.0.0</a>, ainsi que la dernière release à ce jour, la version <a href="https://github.com/CleverCloud/magnetar/releases#release-v1.2.0">v1.2.0</a>.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pourquoi cela dépasse Magnetar</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magnetar est un client Apache Pulsar. C'est aussi un exemple concret de la manière dont nous voulons construire davantage de logiciel d'infrastructure en Rust.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les systèmes distribués échouent par transitions d'état. Certaines de ces transitions sont évidentes et faciles à tester. Beaucoup ne le sont pas. Elles apparaissent lorsque le temps avance au mauvais endroit, lorsqu'un retry chevauche un chemin de fermeture, lorsqu'un broker coupe une connexion après avoir accepté une partie de la session, lorsqu'un callback est enregistré juste après une notification, ou lorsqu'un chemin de reconnexion reconstruit un handle mais pas un autre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On peut essayer de traquer ces bugs après coup. C'est parfois inévitable. Mais l'architecture peut rendre cette traque plus facile ou plus difficile.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un client avec un coeur protocolaire pur, des événements explicites, du temps injecté, une I/O remplaçable, des seeds déterministes et une comparaison cross-runtime donne de meilleurs outils aux ingénieurs. Il permet de réduire une panne à une trace. Il permet de rejouer cette trace. Il permet de demander si une panne simulée correspond au runtime de production. Il permet d'ajouter un invariant là où une dérive silencieuse de l'état pouvait se cacher.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C'est la direction prise par Magnetar. Rendre le protocole explicite. Rendre le runtime remplaçable. Rendre les pannes reproductibles. Faire de la correction quelque chose que le code doit démontrer en continu.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Merci à Pierre Zemb pour Moonpool et pour cette direction de simulation déterministe en Rust, ainsi qu'aux contributeurs et mainteneurs de l'écosystème Pulsar Rust dont le travail a rendu l'étape suivante possible.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Magnetar est open source. Le code, les notes d'architecture, les ADR et la documentation vivent sur <a href="https://github.com/CleverCloud/magnetar">github.com/CleverCloud/magnetar</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<hr style="border: none; height: 1px; background-color: #ccc; margin: 32px 0;">
<!-- /wp:html -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Références</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Magnetar</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>Dépôt Magnetar</strong>. Dépôt public du client Apache Pulsar Rust. <a href="https://github.com/CleverCloud/magnetar">https://github.com/CleverCloud/magnetar</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>README Magnetar</strong>. Surface publique, matrice de parité Java, PIPs supportés, couverture par moteur et statut. <a href="https://github.com/CleverCloud/magnetar/blob/main/README.md">https://github.com/CleverCloud/magnetar/blob/main/README.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Architecture Magnetar</strong>. Rationale sans-io, topologie de crates, driver loop, machine d'état protocolaire et tests. <a href="https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md">https://github.com/CleverCloud/magnetar/blob/main/ARCHITECTURE.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Index de documentation Magnetar</strong>. Moteur Moonpool, testing, CLI, observabilité, logging, features PIP. <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/README.md">https://github.com/CleverCloud/magnetar/blob/main/docs/README.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Documentation du moteur Moonpool</strong>. Moteur de simulation déterministe, chaos pack, harnais différentiel, modèle de providers. <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md">https://github.com/CleverCloud/magnetar/blob/main/docs/moonpool-engine.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Documentation de test</strong>. Catégories de tests et commandes de validation. <a href="https://github.com/CleverCloud/magnetar/blob/main/docs/testing.md">https://github.com/CleverCloud/magnetar/blob/main/docs/testing.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ADR-0004</strong>. magnetar-proto sans-io et moteurs d'I/O remplaçables. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0004-sans-io-protocol-core.md">https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0004-sans-io-protocol-core.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ADR-0010</strong>. Parité complète avec le client Java. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0010-v0-1-full-java-parity.md">https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0010-v0-1-full-java-parity.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ADR-0024</strong>. Politique de tests et couverture cross-runtime. <a href="https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0024-cross-runtime-test-and-coverage-policy.md">https://github.com/CleverCloud/magnetar/blob/main/specs/adr/0024-cross-runtime-test-and-coverage-policy.md</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Écosystème</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>pulsar-rs</strong>. Client Apache Pulsar Rust existant. <a href="https://github.com/streamnative/pulsar-rs">https://github.com/streamnative/pulsar-rs</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Apache Pulsar</strong>. Plateforme distribuée de messaging et streaming. <a href="https://pulsar.apache.org/">https://pulsar.apache.org/</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Client Java Apache Pulsar</strong>. Surface de référence pour de nombreux utilisateurs Pulsar. <a href="https://pulsar.apache.org/docs/">https://pulsar.apache.org/docs/</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Simulation déterministe</h3>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>FoundationDB testing</strong>. Lignée de la simulation déterministe et de l'injection de fautes. <a href="https://apple.github.io/foundationdb/testing.html">https://apple.github.io/foundationdb/testing.html</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>TigerBeetle TigerStyle</strong>. Style d'ingénierie centré sur les assertions. <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md">https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>TigerBeetle VOPR</strong>. Approche de simulation testing. <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/internals/vopr.md">https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/internals/vopr.md</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Dépôt Moonpool</strong>. Simulation déterministe pour systèmes Rust, développée par Pierre Zemb. <a href="https://github.com/PierreZ/moonpool">https://github.com/PierreZ/moonpool</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>moonpool-sim</strong>. Crate du moteur de simulation Moonpool. <a href="https://crates.io/crates/moonpool-sim">https://crates.io/crates/moonpool-sim</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kubernetes orchestration : à quoi sert l&#8217;orchestration de conteneurs ?</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/07/03/kubernetes-orchestration-conteneurs-a-quoi-ca-sert/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 09:40:47 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[kubernetes]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=24867</guid>

					<description><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.02 Clever Cloud Bannière Blog Kubernetes Orchestration FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr.png 2500w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>C'est une fonction distincte de la conteneurisation elle-même, qui consiste à empaqueter une application avec ses dépendances dans un format standard. Les<a href="https://www.clever.cloud/fr/blog/fonctionnalites/2026/05/22/kubernetes-vs-docker-quelles-differences-et-quand-les-utiliser/"> différences entre Docker et Kubernetes</a> reposent précisément sur cette distinction : Docker fabrique et exécute les conteneurs, Kubernetes les orchestre. Aujourd'hui, Kubernetes est l'orchestrateur de référence, mais l'orchestration en tant que concept existe indépendamment de l'outil qui la met en œuvre.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pourquoi l'orchestration existe ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Faire tourner trois conteneurs sur un serveur ne demande pas d'orchestration. On démarre, on supervise à l'œil, on redémarre à la main si quelque chose plante. Le problème change de nature à partir du moment où une application devient un système distribué : plusieurs services, plusieurs machines, du trafic variable, des déploiements fréquents. Les questions opérationnelles qui apparaissent alors sont concrètes. Sur quelle machine placer ce nouveau conteneur ? Que faire si un nœud tombe la nuit ? Comment passer de la version 1.4 à la 1.5 sans interruption visible ? Comment un service interne en trouve un autre quand les adresses IP changent à chaque redémarrage ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chacune de ces questions a une réponse manuelle possible, scriptable même. L'orchestration consiste à les automatiser de manière cohérente, sous un modèle unique.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Les cinq fonctions principales de l'orchestration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/fr/product/kubernetes/">Kubernetes</a> traite ces questions via un <a href="https://www.clever.cloud/fr/blog/engineering-fr/2026/05/19/k8s-kubernetes-definition-standard/">modèle déclaratif construit sur des boucles de réconciliation</a> : on décrit l'état souhaité du système, et l'orchestrateur compare en permanence cet état désiré à l'état réel pour les rapprocher. Les cinq fonctions qui suivent sont des instanciations de ce mécanisme général.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scheduling : placer les conteneurs sur les bonnes machines</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25321,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scheduling-schema-1024x440.webp" alt="Schéma du scheduling Kubernetes : kube-scheduler filtre puis note les nœuds et assigne le pod A au nœud retenu via l'API server." class="wp-image-25321"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Le scheduling répond à une question : quand un nouveau conteneur doit démarrer, sur quelle machine du cluster doit-il s'exécuter ? Sur un cluster de quelques nœuds aux profils homogènes, la décision est triviale. Sur un cluster réel, elle ne l'est pas : certaines machines ont du GPU, d'autres pas, certaines sont déjà chargées, certaines applications doivent être isolées, d'autres doivent au contraire être co-localisées pour des raisons de latence.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le composant kube-scheduler effectue ce choix en deux étapes : filtering, qui élimine les nœuds qui ne peuvent pas accueillir le pod (capacité insuffisante, contraintes d'affinité, taints et tolerations), et scoring, qui note les nœuds restants selon plusieurs critères. Le pod est ensuite assigné au nœud retenu via une opération de binding auprès de l'API server. La qualité de la décision dépend des informations fournies au scheduler. Ce sont les requests de ressources déclarées sur les pods qui déterminent le placement : le scheduler cherche un nœud dont la capacité disponible couvre ces requests. Les limits, elles, ne servent pas au placement mais plafonnent la consommation d'un conteneur une fois qu'il tourne.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scaling : ajuster la capacité au trafic réel</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25323,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scaling-schema-1024x385.webp" alt="Schéma du scaling Kubernetes : Horizontal Pod Autoscaler, Vertical Pod Autoscaler et Cluster Autoscaler ajustent le nombre de pods, leur taille et les nœuds." class="wp-image-25323"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Le scaling automatise une décision simple à formuler : combien de copies d'un service doivent tourner à un instant donné ? Trop de copies coûte cher. Trop peu provoque des incidents au moindre pic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le scaling est une fonction commune à tous les orchestrateurs ; les mécanismes varient selon l'implémentation. Dans Kubernetes, il repose sur trois briques distinctes. Le Horizontal Pod Autoscaler (HPA), inclus dans le cœur de Kubernetes, ajuste le nombre de pods d'un déploiement en fonction d'une métrique. Il s'appuie pour cela sur le Metrics Server, un composant à installer séparément, car la collecte de métriques n'est pas fournie par défaut. Le Vertical Pod Autoscaler (VPA), livré lui aussi comme projet séparé, ajuste les ressources allouées à chaque pod. Le Cluster Autoscaler, enfin, ajoute ou retire des nœuds entiers selon les besoins agrégés. Ces mécanismes supposent des métriques fiables : un HPA piloté sur le CPU, alors que le service est en réalité contraint par les I/O disque, ne produit pas le résultat attendu.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Self-healing : remplacer ce qui tombe</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25324,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-self-healing-schema-1024x383.webp" alt="Schéma du self-healing Kubernetes : la boucle de réconciliation du contrôleur remplace un pod tombé pour restaurer l'état désiré de trois replicas." class="wp-image-25324"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>À partir d'un certain nombre de machines, les pannes ne sont plus des événements exceptionnels mais une donnée d'arrière-plan. Un disque défaille, un kernel panic survient, un conteneur fuit de la mémoire et finit OOM-killed. Sans orchestration, chaque panne déclenche une intervention humaine, plus ou moins urgente. Avec orchestration, ces événements sont absorbés sans intervention.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Au sein de Kubernetes, le mécanisme repose sur deux éléments. D'abord, des sondes (liveness, readiness, startup) qui lui&nbsp; permettent de savoir si un conteneur fonctionne réellement, et pas seulement s'il a démarré. Ensuite, le principe que tout objet géré par un controller (Deployment, StatefulSet, DaemonSet) est en permanence comparé à l'état désiré : si un pod disparaît, le controller en demande un nouveau. La précision des sondes conditionne la qualité du self-healing : des sondes trop strictes provoquent des redémarrages inutiles, des sondes trop laxistes laissent passer des conteneurs cassés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Service discovery et load balancing interne</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25325,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-service-discovery-schema-1024x303.webp" alt="Schéma du service discovery Kubernetes : CoreDNS résout le nom d'un Service en IP virtuelle et kube-proxy route le trafic vers les pods prêts uniquement." class="wp-image-25325"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Dans un parc de conteneurs en mouvement, où chaque pod a une adresse IP éphémère, deux services qui doivent communiquer ne peuvent pas s'appuyer sur des configurations IP statiques. Le service discovery résout ce problème par une couche d'indirection. Dans Kubernetes, un objet Service regroupe un ensemble de pods (sélectionnés par labels) sous un nom DNS stable et une IP virtuelle. CoreDNS, le serveur DNS interne du cluster, résout ces noms. Le trafic envoyé à l'IP du Service est distribué entre les pods prêts via kube-proxy. Ce principe n'est pas propre à Kubernetes : d'autres orchestrateurs répondent au même besoin autrement. Sur Clever Cloud, par exemple, les services se découvrent via l'injection de configuration entre applications et via les Network Groups, un réseau privé chiffré doté d'une résolution DNS interne.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Plusieurs types de Services existent (ClusterIP pour l'interne, NodePort et LoadBalancer pour l'externe), auxquels s'ajoute la notion d'Ingress pour le routage HTTP au niveau applicatif. Cette couche réseau, simple en apparence, contient une part substantielle de la complexité d'exploitation de Kubernetes : choix du plugin CNI, politiques réseau, observabilité du trafic est-ouest.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Rolling updates et rollbacks</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25326,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-rolling-update-schema-1024x449.webp" alt="Schéma d'un rolling update Kubernetes : pods remplacés un par un de la v1.4 à la v1.5 sans interruption ; en cas d'échec le rollout s'arrête et kubectl rollout undo restaure la version précédente." class="wp-image-25326"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Mettre en production une nouvelle version sans interrompre le service est une opération risquée si elle est faite à la main. Kubernetes la traite comme une transition d'état : on modifie le manifeste du Deployment pour pointer vers la nouvelle version d'image, et le controller applique la stratégie de rollout configurée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La stratégie RollingUpdate (par défaut) remplace progressivement les anciens pods par des nouveaux, en garantissant qu'un nombre minimal reste disponible à tout moment. La stratégie Recreate arrête tout puis redémarre, utile pour des migrations de schéma incompatibles. En cas d'échec, le rollout ne revient pas seul à l'état antérieur : il s'interrompt, les nouveaux pods qui échouent aux sondes ne remplacent pas les anciens, et c'est un opérateur qui déclenche le retour à la version précédente avec kubectl rollout undo. La condition pour que cela fonctionne est que les versions soient compatibles entre elles pendant la transition, ce qui implique une discipline côté contrats d'API et migrations de base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Au-delà des cinq fonctions de base</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'orchestration de Kubernetes ne se limite pas à ces cinq fonctions. En pratique, un cluster Kubernetes en production gère aussi la configuration applicative (ConfigMaps), les secrets (avec ou sans chiffrement au repos), le stockage persistant via les PersistentVolumeClaims, l'autorisation (RBAC), l'isolation réseau (NetworkPolicies), l'observabilité (logs, métriques, traces), et la gestion du cycle de vie des certificats. Chacune de ces fonctions est elle-même une responsabilité opérationnelle qui s'ajoute au socle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Sans orchestrateur vs avec Kubernetes : comparaison fonction par fonction</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Fonction</th>
        <th>Sans orchestrateur</th>
        <th>Avec Kubernetes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Scheduling</td>
        <td>Placement manuel ou scripts d'allocation custom</td>
        <td>kube-scheduler avec contraintes déclaratives</td>
      </tr>
      <tr>
        <td>Scaling</td>
        <td>Provisioning manuel ou règles externes</td>
        <td>HPA, VPA, Cluster Autoscaler</td>
      </tr>
      <tr>
        <td>Self-healing</td>
        <td>Supervision externe et scripts de redémarrage</td>
        <td>Sondes intégrées et controllers</td>
      </tr>
      <tr>
        <td>Service discovery</td>
        <td>Fichiers de configuration, Consul, etcd à part</td>
        <td>Services et DNS interne natifs</td>
      </tr>
      <tr>
        <td>Rolling updates</td>
        <td>Scripts de déploiement custom et bascule manuelle de load balancer</td>
        <td>Deployment controller et stratégies déclaratives</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>Le tableau ne hiérarchise pas les deux colonnes. Il montre que Kubernetes fournit un modèle unifié pour ces cinq fonctions, là où une approche sans orchestrateur les traite séparément avec des outils différents. Pour un système qui n'a pas besoin de cette unification, la colonne de gauche reste pertinente.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pratiques fréquentes à connaître</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Choisir l'outil en fonction du besoin, pas par défaut.</strong> Toutes les applications n'ont pas besoin de scheduling, de scaling automatique ou de service discovery au niveau qu'offre Kubernetes. Un PaaS, un déploiement sur VM, ou un binaire systemd répondent à de nombreux besoins avec un autre modèle d'exploitation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Penser l'observabilité dès le départ.</strong> Un cluster Kubernetes sans logs centralisés, sans métriques agrégées et sans traces devient rapidement difficile à exploiter au-delà de quelques services. L'observabilité fait partie intégrante de l'orchestration, pas d'un ajout optionnel.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Définir </strong><strong>requests</strong><strong> et </strong><strong>limits</strong><strong> avant d'activer l'autoscaling.</strong> Le HPA et le Cluster Autoscaler s'appuient sur les ressources déclarées des pods pour décider du scaling. Sans déclaration, leurs décisions reposent sur des informations partielles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Soigner la configuration des sondes.</strong> Les liveness et readiness probes conditionnent à la fois le self-healing et l'acheminement du trafic. Une configuration approximative dégrade ces deux fonctions simultanément.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Quand l'orchestration Kubernetes devient pertinente</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Aucune des cinq fonctions, prise isolément, ne justifie d'introduire Kubernetes dans un système. Un script de déploiement, un load balancer correctement configuré, un outil de monitoring avec restart automatique peuvent couvrir individuellement chacune d'elles. Ce qui justifie l'adoption d'un orchestrateur, c'est le moment où les cinq fonctions deviennent simultanément nécessaires sur une infrastructure suffisamment distribuée pour rendre les solutions ad hoc coûteuses à maintenir.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Concrètement, cela correspond à des architectures avec une dizaine de services ou plus, déployés sur plusieurs machines, avec des cycles de déploiement fréquents, des variations de charge significatives et des exigences de résilience qui ne tolèrent plus l'intervention manuelle. Pour des contextes plus contraints en ressources (edge, IoT, machines de développement, petits clusters), une <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2026/05/28/k3s-vs-k8s-quelles-differences-et-lequel-choisir-en-2026/">distribution Kubernetes allégée comme K3s peut convenir</a>. <a href="https://www.clever.cloud/fr/blog/engineering-fr/2025/03/05/quest-ce-qu-un-paas-platform-as-a-service/">Un PaaS répond également à ces besoins</a>, comme à bien d'autres profils d'applications (déploiement industrialisé, scaling automatique, résilience, mises à jour), avec un modèle d'exploitation distinct de Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Lorsque Kubernetes devient pertinent, la question suivante porte rarement sur l'installation et plus souvent sur l'exploitation au quotidien : mises à jour du control plane, gestion d'etcd, rotation des certificats, observabilité, sauvegardes. C'est ce constat qui explique l'adoption croissante des services Kubernetes managés. Côté Clever Cloud, <a href="https://www.clever.cloud/fr/clever-kubernetes-engine/">Clever Kubernetes Engine</a> répond à ce besoin avec Materia etcd, une implémentation serverless de l'API etcd bâtie sur FoundationDB qui prend le relais de l'etcd standard, devenu un goulot d'étranglement à grande échelle, sur une infrastructure souveraine répartie sur nos trois datacenters parisiens.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">L'orchestration de conteneurs en synthèse</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'orchestration de conteneurs automatise plusieurs catégories de décisions opérationnelles, dont cinq grandes classes principales : où placer un conteneur, quand en démarrer plus, que faire quand l'un d'eux tombe, comment ils se trouvent entre eux, comment passer d'une version à la suivante sans interruption. Kubernetes regroupe ces fonctions sous un modèle unifié, ce qui en fait l'outil de référence pour les systèmes distribués qui en ont besoin simultanément. La question utile, face à un projet, n'est pas de savoir si on doit faire de l'orchestration, mais lesquelles de ces fonctions sont réellement nécessaires, et à quel niveau d'automatisation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ - Kubernetes orchestration</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Quelle est la différence entre conteneurisation et orchestration ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La conteneurisation empaquette une application et ses dépendances dans un format standardisé exécutable de manière identique sur n'importe quel hôte compatible. L'orchestration automatise la gestion d'un parc de conteneurs en production : placement, scaling, self-healing, service discovery, mises à jour. Docker est l'outil de référence pour la première, Kubernetes pour la seconde.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Faut-il forcément Kubernetes pour orchestrer des conteneurs ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Non. Kubernetes est l'orchestrateur le plus largement adopté, mais d'autres existent : Nomad de HashiCorp, qui orchestre conteneurs, VM et binaires dans un même cluster, ou Docker Swarm, toujours maintenu mais dont l'adoption a reculé. Apache Mesos, longtemps cité comme alternative, a été retiré dans l'Apache Attic en octobre 2025 et n'est plus en développement actif. Par ailleurs, un PaaS comme Clever Cloud assure l'ensemble de ces fonctions d'orchestration (placement, scaling automatique, self-healing, rolling updates, service discovery) avec son propre control plane, indépendant de Kubernetes. C'est ce control plane qui orchestre aussi bien les applications exécutées en VM que les conteneurs du runtime Docker de la plateforme.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">L'orchestration de conteneurs est-elle nécessaire pour CI/CD ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Non, mais elle est souvent utilisée conjointement. Les pipelines CI/CD modernes produisent des images de conteneurs comme artefact final, et l'orchestrateur (Kubernetes ou autre) prend le relais pour déployer et exploiter ces images. CI/CD et orchestration sont deux étapes complémentaires du cycle de vie applicatif.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">K3s permet-il l'orchestration en environnement contraint ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Oui. K3s est une distribution Kubernetes certifiée CNCF, conçue pour les environnements aux ressources limitées (edge, IoT, machines de développement, petits clusters). Elle conserve les API standards de Kubernetes tout en réduisant l'empreinte ressources et la complexité de déploiement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Un Kubernetes managé change-t-il les fonctions d'orchestration disponibles ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Non. Un Kubernetes managé fournit le même ensemble de fonctions d'orchestration qu'un cluster auto-hébergé, puisqu'il s'agit du même Kubernetes. La différence porte sur la répartition des responsabilités opérationnelles : le fournisseur prend en charge la gestion du control plane, les mises à jour, la supervision sous-jacente. Les utilisateurs se concentrent alors sur leurs workloads applicatifs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Quelle est la fonction d'orchestration la plus difficile à maîtriser ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le réseau est fréquemment cité comme la plus complexe. Service discovery, load balancing interne, NetworkPolicies, Ingress, plugin CNI, observabilité du trafic est-ouest : la couche réseau de Kubernetes concentre une part significative des sujets opérationnels avancés et reste une source fréquente d'incidents en production.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026.07.02 Clever Cloud Bannière Blog Kubernetes Orchestration FR" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr.png 2500w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/07/2026-07-02-clever-cloud-banniere-blog-kubernetes-orchestration-fr-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:html -->
<style>
  .cc-table-wrap { overflow-x: auto; }
  .cc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 17px;
    font-family: "Plus Jakarta Sans","PlusJakartaSans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color: #111827;
  }
  .cc-table th,
  .cc-table td {
    text-align: left;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.6;
  }
  .cc-table tbody tr + tr td,
  .cc-table tbody tr:first-child td {
    border-top: 1px solid #deddee;
  }
  .cc-table th + th,
  .cc-table td + td {
    border-left: 1px solid #deddee;
  }
  .cc-table thead th {
    font-weight: 700;
    text-align: center;
  }
  .cc-table th:nth-child(1),
  .cc-table td:nth-child(1) { width: 28%; }
  .cc-table th:nth-child(2),
  .cc-table td:nth-child(2) { width: 36%; }
  .cc-table th:nth-child(3),
  .cc-table td:nth-child(3) { width: 36%; }
</style>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>C'est une fonction distincte de la conteneurisation elle-même, qui consiste à empaqueter une application avec ses dépendances dans un format standard. Les<a href="https://www.clever.cloud/fr/blog/fonctionnalites/2026/05/22/kubernetes-vs-docker-quelles-differences-et-quand-les-utiliser/"> différences entre Docker et Kubernetes</a> reposent précisément sur cette distinction : Docker fabrique et exécute les conteneurs, Kubernetes les orchestre. Aujourd'hui, Kubernetes est l'orchestrateur de référence, mais l'orchestration en tant que concept existe indépendamment de l'outil qui la met en œuvre.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pourquoi l'orchestration existe ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Faire tourner trois conteneurs sur un serveur ne demande pas d'orchestration. On démarre, on supervise à l'œil, on redémarre à la main si quelque chose plante. Le problème change de nature à partir du moment où une application devient un système distribué : plusieurs services, plusieurs machines, du trafic variable, des déploiements fréquents. Les questions opérationnelles qui apparaissent alors sont concrètes. Sur quelle machine placer ce nouveau conteneur ? Que faire si un nœud tombe la nuit ? Comment passer de la version 1.4 à la 1.5 sans interruption visible ? Comment un service interne en trouve un autre quand les adresses IP changent à chaque redémarrage ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chacune de ces questions a une réponse manuelle possible, scriptable même. L'orchestration consiste à les automatiser de manière cohérente, sous un modèle unique.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Les cinq fonctions principales de l'orchestration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/fr/product/kubernetes/">Kubernetes</a> traite ces questions via un <a href="https://www.clever.cloud/fr/blog/engineering-fr/2026/05/19/k8s-kubernetes-definition-standard/">modèle déclaratif construit sur des boucles de réconciliation</a> : on décrit l'état souhaité du système, et l'orchestrateur compare en permanence cet état désiré à l'état réel pour les rapprocher. Les cinq fonctions qui suivent sont des instanciations de ce mécanisme général.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scheduling : placer les conteneurs sur les bonnes machines</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25321,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scheduling-schema-1024x440.webp" alt="Schéma du scheduling Kubernetes : kube-scheduler filtre puis note les nœuds et assigne le pod A au nœud retenu via l'API server." class="wp-image-25321"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Le scheduling répond à une question : quand un nouveau conteneur doit démarrer, sur quelle machine du cluster doit-il s'exécuter ? Sur un cluster de quelques nœuds aux profils homogènes, la décision est triviale. Sur un cluster réel, elle ne l'est pas : certaines machines ont du GPU, d'autres pas, certaines sont déjà chargées, certaines applications doivent être isolées, d'autres doivent au contraire être co-localisées pour des raisons de latence.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le composant kube-scheduler effectue ce choix en deux étapes : filtering, qui élimine les nœuds qui ne peuvent pas accueillir le pod (capacité insuffisante, contraintes d'affinité, taints et tolerations), et scoring, qui note les nœuds restants selon plusieurs critères. Le pod est ensuite assigné au nœud retenu via une opération de binding auprès de l'API server. La qualité de la décision dépend des informations fournies au scheduler. Ce sont les requests de ressources déclarées sur les pods qui déterminent le placement : le scheduler cherche un nœud dont la capacité disponible couvre ces requests. Les limits, elles, ne servent pas au placement mais plafonnent la consommation d'un conteneur une fois qu'il tourne.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Scaling : ajuster la capacité au trafic réel</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25323,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-scaling-schema-1024x385.webp" alt="Schéma du scaling Kubernetes : Horizontal Pod Autoscaler, Vertical Pod Autoscaler et Cluster Autoscaler ajustent le nombre de pods, leur taille et les nœuds." class="wp-image-25323"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Le scaling automatise une décision simple à formuler : combien de copies d'un service doivent tourner à un instant donné ? Trop de copies coûte cher. Trop peu provoque des incidents au moindre pic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le scaling est une fonction commune à tous les orchestrateurs ; les mécanismes varient selon l'implémentation. Dans Kubernetes, il repose sur trois briques distinctes. Le Horizontal Pod Autoscaler (HPA), inclus dans le cœur de Kubernetes, ajuste le nombre de pods d'un déploiement en fonction d'une métrique. Il s'appuie pour cela sur le Metrics Server, un composant à installer séparément, car la collecte de métriques n'est pas fournie par défaut. Le Vertical Pod Autoscaler (VPA), livré lui aussi comme projet séparé, ajuste les ressources allouées à chaque pod. Le Cluster Autoscaler, enfin, ajoute ou retire des nœuds entiers selon les besoins agrégés. Ces mécanismes supposent des métriques fiables : un HPA piloté sur le CPU, alors que le service est en réalité contraint par les I/O disque, ne produit pas le résultat attendu.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Self-healing : remplacer ce qui tombe</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25324,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-self-healing-schema-1024x383.webp" alt="Schéma du self-healing Kubernetes : la boucle de réconciliation du contrôleur remplace un pod tombé pour restaurer l'état désiré de trois replicas." class="wp-image-25324"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>À partir d'un certain nombre de machines, les pannes ne sont plus des événements exceptionnels mais une donnée d'arrière-plan. Un disque défaille, un kernel panic survient, un conteneur fuit de la mémoire et finit OOM-killed. Sans orchestration, chaque panne déclenche une intervention humaine, plus ou moins urgente. Avec orchestration, ces événements sont absorbés sans intervention.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Au sein de Kubernetes, le mécanisme repose sur deux éléments. D'abord, des sondes (liveness, readiness, startup) qui lui&nbsp; permettent de savoir si un conteneur fonctionne réellement, et pas seulement s'il a démarré. Ensuite, le principe que tout objet géré par un controller (Deployment, StatefulSet, DaemonSet) est en permanence comparé à l'état désiré : si un pod disparaît, le controller en demande un nouveau. La précision des sondes conditionne la qualité du self-healing : des sondes trop strictes provoquent des redémarrages inutiles, des sondes trop laxistes laissent passer des conteneurs cassés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Service discovery et load balancing interne</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25325,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-service-discovery-schema-1024x303.webp" alt="Schéma du service discovery Kubernetes : CoreDNS résout le nom d'un Service en IP virtuelle et kube-proxy route le trafic vers les pods prêts uniquement." class="wp-image-25325"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Dans un parc de conteneurs en mouvement, où chaque pod a une adresse IP éphémère, deux services qui doivent communiquer ne peuvent pas s'appuyer sur des configurations IP statiques. Le service discovery résout ce problème par une couche d'indirection. Dans Kubernetes, un objet Service regroupe un ensemble de pods (sélectionnés par labels) sous un nom DNS stable et une IP virtuelle. CoreDNS, le serveur DNS interne du cluster, résout ces noms. Le trafic envoyé à l'IP du Service est distribué entre les pods prêts via kube-proxy. Ce principe n'est pas propre à Kubernetes : d'autres orchestrateurs répondent au même besoin autrement. Sur Clever Cloud, par exemple, les services se découvrent via l'injection de configuration entre applications et via les Network Groups, un réseau privé chiffré doté d'une résolution DNS interne.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Plusieurs types de Services existent (ClusterIP pour l'interne, NodePort et LoadBalancer pour l'externe), auxquels s'ajoute la notion d'Ingress pour le routage HTTP au niveau applicatif. Cette couche réseau, simple en apparence, contient une part substantielle de la complexité d'exploitation de Kubernetes : choix du plugin CNI, politiques réseau, observabilité du trafic est-ouest.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Rolling updates et rollbacks</h3>
<!-- /wp:heading -->

<!-- wp:image {"id":25326,"sizeSlug":"large","linkDestination":"none","align":"wide"} -->
<figure class="wp-block-image alignwide size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/07/kubernetes-orchestration-rolling-update-schema-1024x449.webp" alt="Schéma d'un rolling update Kubernetes : pods remplacés un par un de la v1.4 à la v1.5 sans interruption ; en cas d'échec le rollout s'arrête et kubectl rollout undo restaure la version précédente." class="wp-image-25326"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Mettre en production une nouvelle version sans interrompre le service est une opération risquée si elle est faite à la main. Kubernetes la traite comme une transition d'état : on modifie le manifeste du Deployment pour pointer vers la nouvelle version d'image, et le controller applique la stratégie de rollout configurée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La stratégie RollingUpdate (par défaut) remplace progressivement les anciens pods par des nouveaux, en garantissant qu'un nombre minimal reste disponible à tout moment. La stratégie Recreate arrête tout puis redémarre, utile pour des migrations de schéma incompatibles. En cas d'échec, le rollout ne revient pas seul à l'état antérieur : il s'interrompt, les nouveaux pods qui échouent aux sondes ne remplacent pas les anciens, et c'est un opérateur qui déclenche le retour à la version précédente avec kubectl rollout undo. La condition pour que cela fonctionne est que les versions soient compatibles entre elles pendant la transition, ce qui implique une discipline côté contrats d'API et migrations de base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Au-delà des cinq fonctions de base</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'orchestration de Kubernetes ne se limite pas à ces cinq fonctions. En pratique, un cluster Kubernetes en production gère aussi la configuration applicative (ConfigMaps), les secrets (avec ou sans chiffrement au repos), le stockage persistant via les PersistentVolumeClaims, l'autorisation (RBAC), l'isolation réseau (NetworkPolicies), l'observabilité (logs, métriques, traces), et la gestion du cycle de vie des certificats. Chacune de ces fonctions est elle-même une responsabilité opérationnelle qui s'ajoute au socle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Sans orchestrateur vs avec Kubernetes : comparaison fonction par fonction</h2>
<!-- /wp:heading -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<div class="cc-table-wrap">
  <table class="cc-table">
    <thead>
      <tr>
        <th>Fonction</th>
        <th>Sans orchestrateur</th>
        <th>Avec Kubernetes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Scheduling</td>
        <td>Placement manuel ou scripts d'allocation custom</td>
        <td>kube-scheduler avec contraintes déclaratives</td>
      </tr>
      <tr>
        <td>Scaling</td>
        <td>Provisioning manuel ou règles externes</td>
        <td>HPA, VPA, Cluster Autoscaler</td>
      </tr>
      <tr>
        <td>Self-healing</td>
        <td>Supervision externe et scripts de redémarrage</td>
        <td>Sondes intégrées et controllers</td>
      </tr>
      <tr>
        <td>Service discovery</td>
        <td>Fichiers de configuration, Consul, etcd à part</td>
        <td>Services et DNS interne natifs</td>
      </tr>
      <tr>
        <td>Rolling updates</td>
        <td>Scripts de déploiement custom et bascule manuelle de load balancer</td>
        <td>Deployment controller et stratégies déclaratives</td>
      </tr>
    </tbody>
  </table>
</div>
<!-- /wp:html -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>Le tableau ne hiérarchise pas les deux colonnes. Il montre que Kubernetes fournit un modèle unifié pour ces cinq fonctions, là où une approche sans orchestrateur les traite séparément avec des outils différents. Pour un système qui n'a pas besoin de cette unification, la colonne de gauche reste pertinente.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pratiques fréquentes à connaître</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Choisir l'outil en fonction du besoin, pas par défaut.</strong> Toutes les applications n'ont pas besoin de scheduling, de scaling automatique ou de service discovery au niveau qu'offre Kubernetes. Un PaaS, un déploiement sur VM, ou un binaire systemd répondent à de nombreux besoins avec un autre modèle d'exploitation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Penser l'observabilité dès le départ.</strong> Un cluster Kubernetes sans logs centralisés, sans métriques agrégées et sans traces devient rapidement difficile à exploiter au-delà de quelques services. L'observabilité fait partie intégrante de l'orchestration, pas d'un ajout optionnel.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Définir </strong><strong>requests</strong><strong> et </strong><strong>limits</strong><strong> avant d'activer l'autoscaling.</strong> Le HPA et le Cluster Autoscaler s'appuient sur les ressources déclarées des pods pour décider du scaling. Sans déclaration, leurs décisions reposent sur des informations partielles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Soigner la configuration des sondes.</strong> Les liveness et readiness probes conditionnent à la fois le self-healing et l'acheminement du trafic. Une configuration approximative dégrade ces deux fonctions simultanément.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Quand l'orchestration Kubernetes devient pertinente</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Aucune des cinq fonctions, prise isolément, ne justifie d'introduire Kubernetes dans un système. Un script de déploiement, un load balancer correctement configuré, un outil de monitoring avec restart automatique peuvent couvrir individuellement chacune d'elles. Ce qui justifie l'adoption d'un orchestrateur, c'est le moment où les cinq fonctions deviennent simultanément nécessaires sur une infrastructure suffisamment distribuée pour rendre les solutions ad hoc coûteuses à maintenir.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Concrètement, cela correspond à des architectures avec une dizaine de services ou plus, déployés sur plusieurs machines, avec des cycles de déploiement fréquents, des variations de charge significatives et des exigences de résilience qui ne tolèrent plus l'intervention manuelle. Pour des contextes plus contraints en ressources (edge, IoT, machines de développement, petits clusters), une <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2026/05/28/k3s-vs-k8s-quelles-differences-et-lequel-choisir-en-2026/">distribution Kubernetes allégée comme K3s peut convenir</a>. <a href="https://www.clever.cloud/fr/blog/engineering-fr/2025/03/05/quest-ce-qu-un-paas-platform-as-a-service/">Un PaaS répond également à ces besoins</a>, comme à bien d'autres profils d'applications (déploiement industrialisé, scaling automatique, résilience, mises à jour), avec un modèle d'exploitation distinct de Kubernetes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Lorsque Kubernetes devient pertinent, la question suivante porte rarement sur l'installation et plus souvent sur l'exploitation au quotidien : mises à jour du control plane, gestion d'etcd, rotation des certificats, observabilité, sauvegardes. C'est ce constat qui explique l'adoption croissante des services Kubernetes managés. Côté Clever Cloud, <a href="https://www.clever.cloud/fr/clever-kubernetes-engine/">Clever Kubernetes Engine</a> répond à ce besoin avec Materia etcd, une implémentation serverless de l'API etcd bâtie sur FoundationDB qui prend le relais de l'etcd standard, devenu un goulot d'étranglement à grande échelle, sur une infrastructure souveraine répartie sur nos trois datacenters parisiens.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">L'orchestration de conteneurs en synthèse</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L'orchestration de conteneurs automatise plusieurs catégories de décisions opérationnelles, dont cinq grandes classes principales : où placer un conteneur, quand en démarrer plus, que faire quand l'un d'eux tombe, comment ils se trouvent entre eux, comment passer d'une version à la suivante sans interruption. Kubernetes regroupe ces fonctions sous un modèle unifié, ce qui en fait l'outil de référence pour les systèmes distribués qui en ont besoin simultanément. La question utile, face à un projet, n'est pas de savoir si on doit faire de l'orchestration, mais lesquelles de ces fonctions sont réellement nécessaires, et à quel niveau d'automatisation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">FAQ - Kubernetes orchestration</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Quelle est la différence entre conteneurisation et orchestration ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La conteneurisation empaquette une application et ses dépendances dans un format standardisé exécutable de manière identique sur n'importe quel hôte compatible. L'orchestration automatise la gestion d'un parc de conteneurs en production : placement, scaling, self-healing, service discovery, mises à jour. Docker est l'outil de référence pour la première, Kubernetes pour la seconde.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Faut-il forcément Kubernetes pour orchestrer des conteneurs ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Non. Kubernetes est l'orchestrateur le plus largement adopté, mais d'autres existent : Nomad de HashiCorp, qui orchestre conteneurs, VM et binaires dans un même cluster, ou Docker Swarm, toujours maintenu mais dont l'adoption a reculé. Apache Mesos, longtemps cité comme alternative, a été retiré dans l'Apache Attic en octobre 2025 et n'est plus en développement actif. Par ailleurs, un PaaS comme Clever Cloud assure l'ensemble de ces fonctions d'orchestration (placement, scaling automatique, self-healing, rolling updates, service discovery) avec son propre control plane, indépendant de Kubernetes. C'est ce control plane qui orchestre aussi bien les applications exécutées en VM que les conteneurs du runtime Docker de la plateforme.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">L'orchestration de conteneurs est-elle nécessaire pour CI/CD ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Non, mais elle est souvent utilisée conjointement. Les pipelines CI/CD modernes produisent des images de conteneurs comme artefact final, et l'orchestrateur (Kubernetes ou autre) prend le relais pour déployer et exploiter ces images. CI/CD et orchestration sont deux étapes complémentaires du cycle de vie applicatif.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">K3s permet-il l'orchestration en environnement contraint ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Oui. K3s est une distribution Kubernetes certifiée CNCF, conçue pour les environnements aux ressources limitées (edge, IoT, machines de développement, petits clusters). Elle conserve les API standards de Kubernetes tout en réduisant l'empreinte ressources et la complexité de déploiement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Un Kubernetes managé change-t-il les fonctions d'orchestration disponibles ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Non. Un Kubernetes managé fournit le même ensemble de fonctions d'orchestration qu'un cluster auto-hébergé, puisqu'il s'agit du même Kubernetes. La différence porte sur la répartition des responsabilités opérationnelles : le fournisseur prend en charge la gestion du control plane, les mises à jour, la supervision sous-jacente. Les utilisateurs se concentrent alors sur leurs workloads applicatifs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Quelle est la fonction d'orchestration la plus difficile à maîtriser ?</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le réseau est fréquemment cité comme la plus complexe. Service discovery, load balancing interne, NetworkPolicies, Ingress, plugin CNI, observabilité du trafic est-ouest : la couche réseau de Kubernetes concentre une part significative des sujets opérationnels avancés et reste une source fréquente d'incidents en production.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clever Cloud contrôle l’annonce de ses préfixes IP</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/05/04/clever-cloud-controle-lannonce-de-ses-prefixes-ip/</link>
		
		<dc:creator><![CDATA[Arnaud Lefebvre]]></dc:creator>
		<pubDate>Mon, 04 May 2026 15:00:33 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=23872</guid>

					<description><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 03 17 clever cloud banniere blog clever cloud controle lannonce de ses prefixes ip fr 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1.png 2499w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:paragraph -->
<p>Cela représente une étape importante, issue de trois années de préparation, et s’inscrit dans une stratégie plus large visant à conserver un contrôle complet sur l’infrastructure réseau de notre région Paris.<br></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pourquoi ce changement</h2>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="max-width:780px;margin:1.5rem auto;background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;font-size:15px;line-height:1.7;box-shadow:0 1px 2px rgba(0,0,0,0.08);border:1px solid rgba(255,255,255,0.08);">
  <strong style="color:#e5eefc;">Note :</strong> Clever Cloud opère plusieurs régions dans le monde. Paris est notre région principale — la plus importante — où nous contrôlons l’ensemble de la stack : notre propre matériel, notre propre réseau, et désormais l’annonce de nos préfixes IP. Les autres régions (hébergées chez OVH, Scaleway, Cloud Temple, Ionos, Oracle) reposent sur l’infrastructure du fournisseur sous-jacent, y compris son réseau. Les changements décrits dans cet article concernent spécifiquement notre région Paris.
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Aux débuts de Clever Cloud, nous avons délégué la gestion du réseau à des partenaires. Ce choix était logique : il nous permettait d’accélérer le développement, de nous concentrer sur les services cloud, et d’éviter d’investir immédiatement dans une expertise que nous ne maîtrisions pas encore.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais à mesure que notre infrastructure a grandi, les limites de cette dépendance sont devenues évidentes. Nous n’avions aucun contrôle sur des décisions stratégiques : la manière dont le trafic était routé sur Internet, les chemins empruntés par nos paquets, ou la rapidité avec laquelle nous pouvions réagir aux incidents. Chaque modification, chaque incident nécessitait l’intervention d’un tiers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avons donc décidé de reprendre cette responsabilité. Cela nous a permis d’obtenir plusieurs avantages concrets. Nous optimisons les coûts grâce à la gestion directe de nos relations de transit et de peering. Nous définissons notre propre politique de routage au lieu de subir les contraintes d’un intermédiaire. Nous résolvons les incidents nous-mêmes, sans dépendre de fournisseurs externes. Et nous obtenons un contrôle complet de notre stack réseau — dans la continuité du contrôle que nous avons progressivement acquis sur nos serveurs et nos datacenters au cours des dernières années.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais cette transition ne concerne pas uniquement notre indépendance opérationnelle. Elle apporte des bénéfices immédiats et concrets pour nos utilisateurs. Le plus important est la résilience. Auparavant, l’ensemble du trafic passait par un seul fournisseur. Tout incident de leur côté impactait l’ensemble des services. Nous disposons désormais de quatre fournisseurs upstream répartis sur trois datacenters en région parisienne. Lorsqu’un lien tombe — ce qui s’est produit au cours de l’année passée — le trafic bascule automatiquement vers les alternatives disponibles, sans interruption pour les utilisateurs. Nous pouvons même absorber la perte simultanée de plusieurs liens de transit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Au-delà de la redondance, nous gagnons le contrôle du routage lui-même. Nous décidons désormais comment le trafic atteint sa destination. Cela nous permet d’optimiser les chemins pour réduire la latence et améliorer les performances, et d’ajuster ces décisions en fonction des besoins spécifiques et de la topologie réseau. Nous réagissons en temps réel à la congestion, aux variations du réseau et aux contraintes opérationnelles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Enfin, la responsabilité opérationnelle change. Les incidents réseau ne nécessitent plus d’attendre qu’un fournisseur externe les prenne en charge. Les défaillances du réseau public relèvent directement de notre responsabilité : nous les détectons, les analysons et les corrigeons. Cela réduit directement le temps entre l’apparition d’un problème et sa résolution, ce qui améliore la disponibilité et la fiabilité pour nos utilisateurs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exploiter son propre réseau sur Internet</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour opérer un réseau indépendant sur Internet, une organisation doit travailler avec un registre Internet régional (RIR). Les RIR sont responsables de l’attribution et de la gestion des adresses IP et des numéros d’AS dans des zones géographiques spécifiques.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il existe cinq RIR dans le monde :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>RIPE NCC</strong> — Europe, Asie centrale et Moyen-Orient</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ARIN</strong> — Amérique du Nord (États-Unis, Canada, Caraïbes)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>LACNIC</strong> — Amérique latine et Caraïbes</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>APNIC</strong> — région Asie-Pacifique</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>AFRINIC</strong> — Afrique</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Pour Clever Cloud, dont l’infrastructure est principalement en Europe, nous travaillons avec le RIPE NCC (Réseaux IP Européens).</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Espace d’adressage alloué</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>En tant que membre d’un RIR, une organisation reçoit des allocations d’adresses IPv4 et IPv6. Pour les membres du RIPE NCC, cela correspond généralement à un bloc IPv4 en /24 (<a href="https://www.ripe.net/manage-ips-and-asns/ipv4/ipv4-waiting-list/">selon disponibilité</a>) et un bloc IPv6 en /29. Ces ressources sont associées à l’organisation et peuvent être utilisées pour opérer un réseau à l’échelle globale.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Création de notre système autonome</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les bases de cette transition ont été posées plusieurs années auparavant. En 2019, nous avons créé notre compte RIPE NCC afin de devenir LIR (Local Internet Registry). Cela nous a permis d’obtenir un bloc IPv4 /24 (91.208.207.0/24) et un bloc IPv6 /29 (2a0f:d0c0::/29).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Puis, en 2022, nous avons enregistré notre numéro de système autonome (ASN) auprès du registre régional. Notre numéro d’AS est <a href="https://apps.db.ripe.net/db-web-ui/lookup?source=ripe&amp;key=AS213394&amp;type=aut-num">AS213394</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">&gt; whois AS213394

aut-num:        AS213394
as-name:        CleverCloud
org:            ORG-CCS42-RIPE
import:         from AS29075 accept ANY
import:         from AS3257 accept ANY
import:         from AS3356 accept ANY
import:         from AS43424 accept ANY
export:         to AS29075 announce AS213394:AS-CLVRCLD
export:         to AS3257 announce AS213394:AS-CLVRCLD
export:         to AS3356 announce AS213394:AS-CLVRCLD
export:         to AS43424 announce AS213394:AS-CLVRCLD
admin-c:        QA171-RIPE
tech-c:         QA171-RIPE
status:         ASSIGNED
mnt-by:         RIPE-NCC-END-MNT
mnt-by:         mnt-fr-clvrcldnet-1
created:        2022-11-28T08:24:23Z
last-modified:  2025-02-25T16:36:15Z
source:         RIPE</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Un ASN (Autonomous System Number) est un identifiant unique attribué à un réseau sur Internet. Il est nécessaire pour annoncer des routes via BGP, le protocole qui permet le routage entre réseaux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Maintenant que nous disposons d’un ASN, nous pouvons annoncer nos préfixes aux autres réseaux via le protocole BGP.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Le rôle de la base de données RIPE</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le RIPE NCC maintient une base de données publique d’objets de routage (comme l’objet <em>aut-num</em> présenté précédemment). Parmi ces objets figurent les objets de type <em>route</em>, qui indiquent quel système autonome (AS) est autorisé à annoncer un préfixe IP donné.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En pratique, ces entrées sont principalement utilisées par les opérateurs réseau et les fournisseurs de transit pour construire leurs politiques de routage et leurs mécanismes de filtrage (filtrage basé sur l’IRR). Ces filtres permettent d’accepter ou de rejeter les annonces reçues de leurs pairs. Il s’agit d’un des mécanismes utilisés pour tenter de prévenir les détournements BGP (<em>BGP hijacks</em>).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En appliquant ces filtres aux routes reçues de leurs pairs, les opérateurs peuvent limiter la propagation d’un préfixe annoncé par un ASN non autorisé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Prenons un exemple : imaginons que l’organisation A possède le préfixe 192.0.2.0/24 et l’annonce à un fournisseur de transit X. Le fournisseur X applique un filtre sur les routes reçues de l’organisation A afin de n’accepter que les préfixes IP enregistrés dans la base RIR de cette organisation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans ce cas, si l’organisation A commence à annoncer un préfixe qui ne lui appartient pas (par exemple notre préfixe public 91.208.207.0/24), le fournisseur X est censé rejeter cette annonce. Cela permet d’éviter qu’une route incorrecte soit propagée sur Internet et que le trafic soit redirigé vers une entité non légitime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Le protocole BGP : comment Internet route le trafic</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour comprendre comment nous annonçons nos préfixes sur Internet, il est essentiel de comprendre BGP — le <em>Border Gateway Protocol</em>. BGP est le protocole de routage de référence sur Internet. Il permet aux réseaux (systèmes autonomes) d’échanger des informations sur les préfixes IP qu’ils possèdent et sur la manière de les atteindre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>BGP fonctionne dans les deux sens. Lorsque nous annonçons à nos pairs et à nos fournisseurs de transit « nous possédons 91.208.207.0/24 », cette annonce se propage sur Internet de réseau en réseau. Chaque réseau qui relaie cette annonce ajoute son propre numéro d’AS dans le <em>AS_PATH</em> — une liste qui représente la séquence de réseaux qu’un paquet doit traverser pour nous atteindre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Par exemple, OVHcloud (AS16276) voit le chemin [AS29075, AS213394] : le trafic passe par l’un de nos fournisseurs de transit (AS29075), puis arrive jusqu’à nous (AS213394). Chaque réseau qui relaie l’annonce la met à jour de cette manière, construisant progressivement un chemin complet.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Voici un exemple obtenu via le <a href="https://lg.ovh.net/prefix_detail/lil1/ipv4?q=91.208.207.0/24">service Looking Glass d’OVHcloud</a> :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">&gt; show route for 91.208.207.0/24 all

91.208.207.0/24    via 172.18.16.0 on eno1 [lil1_rbx1_bagg1_8k 2025-12-25] * (100/0) [AS213394i]
    Type: BGP unicast univ
    BGP.origin: IGP
    BGP.as_path: 29075 213394
    BGP.next_hop: 172.18.16.0
    BGP.med: 161
    BGP.local_pref: 40
    BGP.community: (0,0) (29075,18000) (65535,65281)
    BGP.23 [t]: 00 00 b8 6e
                   via 172.18.16.64 on eno1 [lil1_rbx8_bagg1_8k 2025-12-25] (100/0) [AS213394i]</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Dans le même temps, nous recevons des annonces provenant d’autres réseaux concernant leurs propres préfixes et les chemins permettant de les atteindre. Cela construit la vue inverse : lorsque nous devons envoyer du trafic sortant, nous savons quel chemin emprunter pour atteindre une destination donnée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Voici un exemple avec un préfixe d’OVHcloud :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">&gt; /routing/route/print detail where dst-address=5.39.0.0/17 and active

Ab   afi=ip4 contribution=active dst-address=5.39.0.0/17 routing-table=main pref-src=185.133.116.2 gateway=213.242.111.201 immediate-gw=213.242.111.201%sfp28-6 distance=20 scope=40 target-scope=10 belongs-to="bgp-IP-213.242.111.201"

      bgp.as-path="3356,16276" bgp.communities=3356:2,3356:2066,3356:22,16276:40001,3356:100,65002:7018,3356:123,3356:901,65002:701,65000:64990,65000:64995,65000:64996,3356:502 .med=0 .atomic-aggregate=no .origin=igp</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Dans cet exemple, le chemin réseau utilisé par OVHcloud pour nous atteindre est différent de celui que nous utilisons pour les atteindre.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Le processus de migration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>os préfixes IP étaient entièrement gérés par notre fournisseur historique. Bien que nous en soyons propriétaires, nous lui avions délégué leur annonce sur Internet.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela impliquait que son ASN (AS43424) apparaissait comme origine dans les tables de routage, et que l’ensemble du trafic transitait par son infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);border-left:4px solid #3b82f6;max-width:900px;width:100%;">Clever Cloud Services
   |
   | all inbound/outbound traffic
   v
Historical Provider (AS43424)
   |
   | originates: 91.208.207.0/24 (origin AS43424)
   v
Internet</pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Nous voulions que notre ASN devienne l’origine des annonces. Pour cela, nous avons planifié une migration en trois étapes, sans interruption pour les utilisateurs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Migration d’un préfixe entre AS</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour migrer un préfixe d’un AS vers un autre, nous devions modifier son objet <em>route</em> dans la base de données RIPE. La procédure était relativement simple, mais nécessitait un timing précis.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avons d’abord créé un second objet <em>route</em> dans la base RIPE pour notre préfixe 91.208.207.0/24. Désormais, les deux ASN étaient enregistrés comme autorisés à annoncer ce même préfixe — à la fois l’AS de notre fournisseur historique et notre propre AS (213394).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ces objets de routage sont interrogeables publiquement via la commande <em>whois</em> ou via l’interface web du RIPE. Par exemple, la commande suivante permet d’obtenir les deux objets enregistrés :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">❯ whois -h whois.ripe.net -T route 91.208.207.0/24
% Information related to '91.208.207.0/24AS213394'

route:          91.208.207.0/24
mnt-by:         mnt-fr-clvrcldnet-1
descr:          CleverCloud subnet
origin:         AS213394
created:        2025-01-15T10:29:14Z
last-modified:  2025-01-15T10:29:14Z
source:         RIPE

% Information related to '91.208.207.0/24AS43424'

route:          91.208.207.0/24
mnt-by:         mnt-fr-clvrcldnet-1
mnt-by:         MAGICRETAIL-MNT
descr:          CleverCloud subnet
origin:         AS43424
created:        2020-02-13T09:06:33Z
last-modified:  2020-02-13T09:06:48Z
source:         RIPE</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Une fois ce second objet <em>route</em> enregistré et propagé sur Internet (c’est-à-dire une fois que les opérateurs réseau ont récupéré une version à jour de la base RIPE pour construire leurs filtres de routage), nos nouveaux fournisseurs de transit pouvaient constater que notre ASN était autorisé à annoncer ce préfixe. À partir de ce moment-là, nous pouvions commencer à annoncer ce préfixe via notre propre infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si nous n’avions pas créé cet objet <em>route</em>, nos annonces auraient pu être rejetées et nous aurions pu être considérés comme des acteurs malveillants réalisant un détournement BGP (<em>BGP hijack</em>).</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Annonce via notre fournisseur historique</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une fois le second objet <em>route</em> propagé, nous avons réalisé la première étape dans la nuit du 16 janvier 2025 : nous avons commencé à annoncer nous-mêmes le préfixe via BGP à notre fournisseur historique.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le trafic continuait d’emprunter le même chemin de transit, mais cette fois avec Clever Cloud (AS213394) comme origine des annonces, au lieu de notre fournisseur historique. Ce dernier continuait à relayer le préfixe, mais le recevait désormais de notre part au lieu de l’annoncer directement.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);border-left:4px solid #3b82f6;max-width:900px;width:100%;">Clever Cloud Services (AS213394)
   |
   | originates: 91.208.207.0/24 (origin AS213394)
   v
Historical Provider (AS43424)
   |
   | re-announces: 91.208.207.0/24 (origin AS213394)
   v
Internet</pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette première phase a servi de validation : en cas de problème, nous pouvions revenir rapidement en arrière sans impacter les autres chemins de transit.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Annonce via nos propres transits</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quelques jours plus tard, dans la nuit du 21 janvier 2025, nous avons franchi l’étape finale : nous avons commencé à annoncer le préfixe via nos propres connexions de transit dédiées.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);border-left:4px solid #3b82f6;max-width:900px;width:100%;">Clever Cloud Services (AS213394)
   |
   | originates: 91.208.207.0/24 (origin AS213394)
   |
   +---+---+---+
   |   |   |   |
   v   v   v   v
  T1  T2  T3  HP
(Transit providers + historical provider)
   |   |   |   |
   +---+---+---+
   |
   v
Internet</pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Nous annonçons désormais nos préfixes directement à quatre fournisseurs upstream (trois fournisseurs de transit, T1/T2/T3, ainsi que notre fournisseur historique HP). Le trafic circule à travers l’ensemble de ces chemins, et nous disposons d’un contrôle complet sur les décisions de routage ainsi que sur la redondance.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Tout au long de ces deux phases, nous n’avons observé aucune interruption ayant un impact pour les utilisateurs. La redondance intrinsèque du protocole BGP, combinée à la nature progressive de la transition, a permis d’assurer un écoulement du trafic sans interruption, quel que soit le chemin privilégié à un instant donné.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Visibilité complète du routage Internet</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans le cadre de la phase 2, nos trois principaux fournisseurs de transit ont commencé à nous fournir une « full view » de la table de routage Internet. Il s’agit de l’ensemble complet des préfixes IPv4 et IPv6 publiquement annoncés — soit environ 1 million de routes IPv4 et 220 000 routes IPv6.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Disposer d’une full view nous offre une visibilité inédite sur la structure d’Internet et nous permet de prendre des décisions de routage avancées. Au lieu de dépendre de la vision d’un seul fournisseur, nous avons désormais accès à l’ensemble des chemins disponibles pour atteindre n’importe quelle destination.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avec ces informations, nous sommes en mesure de choisir les chemins optimaux pour notre trafic sortant en fonction de notre topologie réseau et de nos préférences, de mettre en œuvre du <em>traffic engineering</em> pour diriger les flux via des fournisseurs de transit spécifiques, de réagir dynamiquement aux conditions réseau et à la congestion, et d’équilibrer la charge entre nos quatre connexions de transit en nous appuyant sur des données de routage en temps réel.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce niveau de contrôle fin sur notre politique de routage est une conséquence directe de l’exploitation de notre propre système autonome et de la gestion de nos propres annonces — exactement le niveau d’indépendance opérationnelle que nous recherchions au début de cette transition.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Un an plus tard</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Près d’un an après le début de l’exploitation de nos propres annonces réseau, la transition s’est révélée concluante. Nous n’avons rencontré aucun incident majeur et notre infrastructure a démontré sa résilience. Lorsque des incidents mineurs se sont produits — comme des pertes de paquets sur un fournisseur de transit spécifique ou la perte temporaire d’un lien — le trafic s’est automatiquement rééquilibré sur les connexions restantes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avons pu détecter et corriger ces problèmes directement, sans dépendre d’un fournisseur tiers. Nos utilisateurs n’ont subi aucune interruption ayant un impact. Cette capacité à assumer la responsabilité de notre réseau et à résoudre rapidement les problèmes est sans doute le principal bénéfice de cette transition.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Et ensuite</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Cette transition est loin d’être terminée. Plusieurs évolutions sont prévues :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>augmentation de la capacité réseau</strong> pour absorber la croissance du trafic</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>mise en place de <strong>peering BGP</strong> avec d’autres réseaux pour optimiser le trafic local sans recourir au transit</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>déploiement de <strong>ROA (Route Origin Authorization)</strong> pour signer cryptographiquement nos annonces et prévenir les détournements de préfixes</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>validation <strong>RPKI (Resource Public Key Infrastructure)</strong> pour vérifier la légitimité des annonces reçues et renforcer la sécurité du routage</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>extension d’IPv6</strong>, en entrée (réception de trafic IPv6) comme en sortie (émission de trafic IPv6), déployée progressivement</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Début 2025, Clever Cloud a finalisé sa transition vers une exploitation entièrement autonome de son réseau. Nous annonçons désormais nos propres préfixes IP via quatre fournisseurs upstream, ce qui nous donne un contrôle complet sur la manière dont le trafic entre et sort de notre infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour nos utilisateurs, cela se traduit par une meilleure fiabilité et des temps de résolution plus courts dans notre région Paris. Lorsqu’un incident réseau survient, nous le traitons directement, et notre redondance multi-fournisseurs garantit la continuité du trafic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette étape marque le début d’une nouvelle phase. Nous travaillons déjà sur le peering BGP pour optimiser le trafic local, sur le déploiement de ROA et la validation RPKI pour renforcer la sécurité du routage, ainsi que sur l’extension d’IPv6 pour généraliser le dual-stack. Nous construisons un réseau aussi robuste et autonome que le reste de notre infrastructure.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2499" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 03 17 clever cloud banniere blog clever cloud controle lannonce de ses prefixes ip fr 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1.png 2499w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-2048x909.png 2048w, https://cdn.clever-cloud.com/uploads/2026/03/2026-03-17-clever-cloud-banniere-blog-clever-cloud-controle-lannonce-de-ses-prefixes-ip-fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2499px) 100vw, 2499px" /></p><!-- wp:paragraph -->
<p>Cela représente une étape importante, issue de trois années de préparation, et s’inscrit dans une stratégie plus large visant à conserver un contrôle complet sur l’infrastructure réseau de notre région Paris.<br></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Pourquoi ce changement</h2>
<!-- /wp:heading -->

<!-- wp:html -->
<div style="max-width:780px;margin:1.5rem auto;background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;font-size:15px;line-height:1.7;box-shadow:0 1px 2px rgba(0,0,0,0.08);border:1px solid rgba(255,255,255,0.08);">
  <strong style="color:#e5eefc;">Note :</strong> Clever Cloud opère plusieurs régions dans le monde. Paris est notre région principale — la plus importante — où nous contrôlons l’ensemble de la stack : notre propre matériel, notre propre réseau, et désormais l’annonce de nos préfixes IP. Les autres régions (hébergées chez OVH, Scaleway, Cloud Temple, Ionos, Oracle) reposent sur l’infrastructure du fournisseur sous-jacent, y compris son réseau. Les changements décrits dans cet article concernent spécifiquement notre région Paris.
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Aux débuts de Clever Cloud, nous avons délégué la gestion du réseau à des partenaires. Ce choix était logique : il nous permettait d’accélérer le développement, de nous concentrer sur les services cloud, et d’éviter d’investir immédiatement dans une expertise que nous ne maîtrisions pas encore.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais à mesure que notre infrastructure a grandi, les limites de cette dépendance sont devenues évidentes. Nous n’avions aucun contrôle sur des décisions stratégiques : la manière dont le trafic était routé sur Internet, les chemins empruntés par nos paquets, ou la rapidité avec laquelle nous pouvions réagir aux incidents. Chaque modification, chaque incident nécessitait l’intervention d’un tiers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avons donc décidé de reprendre cette responsabilité. Cela nous a permis d’obtenir plusieurs avantages concrets. Nous optimisons les coûts grâce à la gestion directe de nos relations de transit et de peering. Nous définissons notre propre politique de routage au lieu de subir les contraintes d’un intermédiaire. Nous résolvons les incidents nous-mêmes, sans dépendre de fournisseurs externes. Et nous obtenons un contrôle complet de notre stack réseau — dans la continuité du contrôle que nous avons progressivement acquis sur nos serveurs et nos datacenters au cours des dernières années.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Mais cette transition ne concerne pas uniquement notre indépendance opérationnelle. Elle apporte des bénéfices immédiats et concrets pour nos utilisateurs. Le plus important est la résilience. Auparavant, l’ensemble du trafic passait par un seul fournisseur. Tout incident de leur côté impactait l’ensemble des services. Nous disposons désormais de quatre fournisseurs upstream répartis sur trois datacenters en région parisienne. Lorsqu’un lien tombe — ce qui s’est produit au cours de l’année passée — le trafic bascule automatiquement vers les alternatives disponibles, sans interruption pour les utilisateurs. Nous pouvons même absorber la perte simultanée de plusieurs liens de transit.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Au-delà de la redondance, nous gagnons le contrôle du routage lui-même. Nous décidons désormais comment le trafic atteint sa destination. Cela nous permet d’optimiser les chemins pour réduire la latence et améliorer les performances, et d’ajuster ces décisions en fonction des besoins spécifiques et de la topologie réseau. Nous réagissons en temps réel à la congestion, aux variations du réseau et aux contraintes opérationnelles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Enfin, la responsabilité opérationnelle change. Les incidents réseau ne nécessitent plus d’attendre qu’un fournisseur externe les prenne en charge. Les défaillances du réseau public relèvent directement de notre responsabilité : nous les détectons, les analysons et les corrigeons. Cela réduit directement le temps entre l’apparition d’un problème et sa résolution, ce qui améliore la disponibilité et la fiabilité pour nos utilisateurs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exploiter son propre réseau sur Internet</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour opérer un réseau indépendant sur Internet, une organisation doit travailler avec un registre Internet régional (RIR). Les RIR sont responsables de l’attribution et de la gestion des adresses IP et des numéros d’AS dans des zones géographiques spécifiques.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il existe cinq RIR dans le monde :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>RIPE NCC</strong> — Europe, Asie centrale et Moyen-Orient</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>ARIN</strong> — Amérique du Nord (États-Unis, Canada, Caraïbes)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>LACNIC</strong> — Amérique latine et Caraïbes</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>APNIC</strong> — région Asie-Pacifique</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>AFRINIC</strong> — Afrique</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Pour Clever Cloud, dont l’infrastructure est principalement en Europe, nous travaillons avec le RIPE NCC (Réseaux IP Européens).</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Espace d’adressage alloué</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>En tant que membre d’un RIR, une organisation reçoit des allocations d’adresses IPv4 et IPv6. Pour les membres du RIPE NCC, cela correspond généralement à un bloc IPv4 en /24 (<a href="https://www.ripe.net/manage-ips-and-asns/ipv4/ipv4-waiting-list/">selon disponibilité</a>) et un bloc IPv6 en /29. Ces ressources sont associées à l’organisation et peuvent être utilisées pour opérer un réseau à l’échelle globale.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Création de notre système autonome</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les bases de cette transition ont été posées plusieurs années auparavant. En 2019, nous avons créé notre compte RIPE NCC afin de devenir LIR (Local Internet Registry). Cela nous a permis d’obtenir un bloc IPv4 /24 (91.208.207.0/24) et un bloc IPv6 /29 (2a0f:d0c0::/29).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Puis, en 2022, nous avons enregistré notre numéro de système autonome (ASN) auprès du registre régional. Notre numéro d’AS est <a href="https://apps.db.ripe.net/db-web-ui/lookup?source=ripe&amp;key=AS213394&amp;type=aut-num">AS213394</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">&gt; whois AS213394

aut-num:        AS213394
as-name:        CleverCloud
org:            ORG-CCS42-RIPE
import:         from AS29075 accept ANY
import:         from AS3257 accept ANY
import:         from AS3356 accept ANY
import:         from AS43424 accept ANY
export:         to AS29075 announce AS213394:AS-CLVRCLD
export:         to AS3257 announce AS213394:AS-CLVRCLD
export:         to AS3356 announce AS213394:AS-CLVRCLD
export:         to AS43424 announce AS213394:AS-CLVRCLD
admin-c:        QA171-RIPE
tech-c:         QA171-RIPE
status:         ASSIGNED
mnt-by:         RIPE-NCC-END-MNT
mnt-by:         mnt-fr-clvrcldnet-1
created:        2022-11-28T08:24:23Z
last-modified:  2025-02-25T16:36:15Z
source:         RIPE</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Un ASN (Autonomous System Number) est un identifiant unique attribué à un réseau sur Internet. Il est nécessaire pour annoncer des routes via BGP, le protocole qui permet le routage entre réseaux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Maintenant que nous disposons d’un ASN, nous pouvons annoncer nos préfixes aux autres réseaux via le protocole BGP.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Le rôle de la base de données RIPE</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le RIPE NCC maintient une base de données publique d’objets de routage (comme l’objet <em>aut-num</em> présenté précédemment). Parmi ces objets figurent les objets de type <em>route</em>, qui indiquent quel système autonome (AS) est autorisé à annoncer un préfixe IP donné.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En pratique, ces entrées sont principalement utilisées par les opérateurs réseau et les fournisseurs de transit pour construire leurs politiques de routage et leurs mécanismes de filtrage (filtrage basé sur l’IRR). Ces filtres permettent d’accepter ou de rejeter les annonces reçues de leurs pairs. Il s’agit d’un des mécanismes utilisés pour tenter de prévenir les détournements BGP (<em>BGP hijacks</em>).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En appliquant ces filtres aux routes reçues de leurs pairs, les opérateurs peuvent limiter la propagation d’un préfixe annoncé par un ASN non autorisé.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Prenons un exemple : imaginons que l’organisation A possède le préfixe 192.0.2.0/24 et l’annonce à un fournisseur de transit X. Le fournisseur X applique un filtre sur les routes reçues de l’organisation A afin de n’accepter que les préfixes IP enregistrés dans la base RIR de cette organisation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans ce cas, si l’organisation A commence à annoncer un préfixe qui ne lui appartient pas (par exemple notre préfixe public 91.208.207.0/24), le fournisseur X est censé rejeter cette annonce. Cela permet d’éviter qu’une route incorrecte soit propagée sur Internet et que le trafic soit redirigé vers une entité non légitime.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Le protocole BGP : comment Internet route le trafic</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour comprendre comment nous annonçons nos préfixes sur Internet, il est essentiel de comprendre BGP — le <em>Border Gateway Protocol</em>. BGP est le protocole de routage de référence sur Internet. Il permet aux réseaux (systèmes autonomes) d’échanger des informations sur les préfixes IP qu’ils possèdent et sur la manière de les atteindre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>BGP fonctionne dans les deux sens. Lorsque nous annonçons à nos pairs et à nos fournisseurs de transit « nous possédons 91.208.207.0/24 », cette annonce se propage sur Internet de réseau en réseau. Chaque réseau qui relaie cette annonce ajoute son propre numéro d’AS dans le <em>AS_PATH</em> — une liste qui représente la séquence de réseaux qu’un paquet doit traverser pour nous atteindre.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Par exemple, OVHcloud (AS16276) voit le chemin [AS29075, AS213394] : le trafic passe par l’un de nos fournisseurs de transit (AS29075), puis arrive jusqu’à nous (AS213394). Chaque réseau qui relaie l’annonce la met à jour de cette manière, construisant progressivement un chemin complet.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Voici un exemple obtenu via le <a href="https://lg.ovh.net/prefix_detail/lil1/ipv4?q=91.208.207.0/24">service Looking Glass d’OVHcloud</a> :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">&gt; show route for 91.208.207.0/24 all

91.208.207.0/24    via 172.18.16.0 on eno1 [lil1_rbx1_bagg1_8k 2025-12-25] * (100/0) [AS213394i]
    Type: BGP unicast univ
    BGP.origin: IGP
    BGP.as_path: 29075 213394
    BGP.next_hop: 172.18.16.0
    BGP.med: 161
    BGP.local_pref: 40
    BGP.community: (0,0) (29075,18000) (65535,65281)
    BGP.23 [t]: 00 00 b8 6e
                   via 172.18.16.64 on eno1 [lil1_rbx8_bagg1_8k 2025-12-25] (100/0) [AS213394i]</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Dans le même temps, nous recevons des annonces provenant d’autres réseaux concernant leurs propres préfixes et les chemins permettant de les atteindre. Cela construit la vue inverse : lorsque nous devons envoyer du trafic sortant, nous savons quel chemin emprunter pour atteindre une destination donnée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Voici un exemple avec un préfixe d’OVHcloud :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">&gt; /routing/route/print detail where dst-address=5.39.0.0/17 and active

Ab   afi=ip4 contribution=active dst-address=5.39.0.0/17 routing-table=main pref-src=185.133.116.2 gateway=213.242.111.201 immediate-gw=213.242.111.201%sfp28-6 distance=20 scope=40 target-scope=10 belongs-to="bgp-IP-213.242.111.201"

      bgp.as-path="3356,16276" bgp.communities=3356:2,3356:2066,3356:22,16276:40001,3356:100,65002:7018,3356:123,3356:901,65002:701,65000:64990,65000:64995,65000:64996,3356:502 .med=0 .atomic-aggregate=no .origin=igp</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Dans cet exemple, le chemin réseau utilisé par OVHcloud pour nous atteindre est différent de celui que nous utilisons pour les atteindre.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Le processus de migration</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>os préfixes IP étaient entièrement gérés par notre fournisseur historique. Bien que nous en soyons propriétaires, nous lui avions délégué leur annonce sur Internet.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela impliquait que son ASN (AS43424) apparaissait comme origine dans les tables de routage, et que l’ensemble du trafic transitait par son infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);border-left:4px solid #3b82f6;max-width:900px;width:100%;">Clever Cloud Services
   |
   | all inbound/outbound traffic
   v
Historical Provider (AS43424)
   |
   | originates: 91.208.207.0/24 (origin AS43424)
   v
Internet</pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Nous voulions que notre ASN devienne l’origine des annonces. Pour cela, nous avons planifié une migration en trois étapes, sans interruption pour les utilisateurs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Migration d’un préfixe entre AS</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour migrer un préfixe d’un AS vers un autre, nous devions modifier son objet <em>route</em> dans la base de données RIPE. La procédure était relativement simple, mais nécessitait un timing précis.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avons d’abord créé un second objet <em>route</em> dans la base RIPE pour notre préfixe 91.208.207.0/24. Désormais, les deux ASN étaient enregistrés comme autorisés à annoncer ce même préfixe — à la fois l’AS de notre fournisseur historique et notre propre AS (213394).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ces objets de routage sont interrogeables publiquement via la commande <em>whois</em> ou via l’interface web du RIPE. Par exemple, la commande suivante permet d’obtenir les deux objets enregistrés :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);max-width:900px;width:100%;"><code style="background:transparent;color:inherit;padding:0;font-size:inherit;font-family:inherit;">❯ whois -h whois.ripe.net -T route 91.208.207.0/24
% Information related to '91.208.207.0/24AS213394'

route:          91.208.207.0/24
mnt-by:         mnt-fr-clvrcldnet-1
descr:          CleverCloud subnet
origin:         AS213394
created:        2025-01-15T10:29:14Z
last-modified:  2025-01-15T10:29:14Z
source:         RIPE

% Information related to '91.208.207.0/24AS43424'

route:          91.208.207.0/24
mnt-by:         mnt-fr-clvrcldnet-1
mnt-by:         MAGICRETAIL-MNT
descr:          CleverCloud subnet
origin:         AS43424
created:        2020-02-13T09:06:33Z
last-modified:  2020-02-13T09:06:48Z
source:         RIPE</code></pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Une fois ce second objet <em>route</em> enregistré et propagé sur Internet (c’est-à-dire une fois que les opérateurs réseau ont récupéré une version à jour de la base RIPE pour construire leurs filtres de routage), nos nouveaux fournisseurs de transit pouvaient constater que notre ASN était autorisé à annoncer ce préfixe. À partir de ce moment-là, nous pouvions commencer à annoncer ce préfixe via notre propre infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Si nous n’avions pas créé cet objet <em>route</em>, nos annonces auraient pu être rejetées et nous aurions pu être considérés comme des acteurs malveillants réalisant un détournement BGP (<em>BGP hijack</em>).</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Annonce via notre fournisseur historique</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une fois le second objet <em>route</em> propagé, nous avons réalisé la première étape dans la nuit du 16 janvier 2025 : nous avons commencé à annoncer nous-mêmes le préfixe via BGP à notre fournisseur historique.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le trafic continuait d’emprunter le même chemin de transit, mais cette fois avec Clever Cloud (AS213394) comme origine des annonces, au lieu de notre fournisseur historique. Ce dernier continuait à relayer le préfixe, mais le recevait désormais de notre part au lieu de l’annoncer directement.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);border-left:4px solid #3b82f6;max-width:900px;width:100%;">Clever Cloud Services (AS213394)
   |
   | originates: 91.208.207.0/24 (origin AS213394)
   v
Historical Provider (AS43424)
   |
   | re-announces: 91.208.207.0/24 (origin AS213394)
   v
Internet</pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette première phase a servi de validation : en cas de problème, nous pouvions revenir rapidement en arrière sans impacter les autres chemins de transit.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Annonce via nos propres transits</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quelques jours plus tard, dans la nuit du 21 janvier 2025, nous avons franchi l’étape finale : nous avons commencé à annoncer le préfixe via nos propres connexions de transit dédiées.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="display:flex;justify-content:center;">
<pre style="background:#0f172a;color:#e5eefc;border-radius:12px;padding:16px 20px;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:14px;line-height:1.6;margin:1.5rem 0;box-shadow:0 1px 2px rgba(0,0,0,0.08);border-left:4px solid #3b82f6;max-width:900px;width:100%;">Clever Cloud Services (AS213394)
   |
   | originates: 91.208.207.0/24 (origin AS213394)
   |
   +---+---+---+
   |   |   |   |
   v   v   v   v
  T1  T2  T3  HP
(Transit providers + historical provider)
   |   |   |   |
   +---+---+---+
   |
   v
Internet</pre>
</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Nous annonçons désormais nos préfixes directement à quatre fournisseurs upstream (trois fournisseurs de transit, T1/T2/T3, ainsi que notre fournisseur historique HP). Le trafic circule à travers l’ensemble de ces chemins, et nous disposons d’un contrôle complet sur les décisions de routage ainsi que sur la redondance.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Tout au long de ces deux phases, nous n’avons observé aucune interruption ayant un impact pour les utilisateurs. La redondance intrinsèque du protocole BGP, combinée à la nature progressive de la transition, a permis d’assurer un écoulement du trafic sans interruption, quel que soit le chemin privilégié à un instant donné.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Visibilité complète du routage Internet</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans le cadre de la phase 2, nos trois principaux fournisseurs de transit ont commencé à nous fournir une « full view » de la table de routage Internet. Il s’agit de l’ensemble complet des préfixes IPv4 et IPv6 publiquement annoncés — soit environ 1 million de routes IPv4 et 220 000 routes IPv6.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Disposer d’une full view nous offre une visibilité inédite sur la structure d’Internet et nous permet de prendre des décisions de routage avancées. Au lieu de dépendre de la vision d’un seul fournisseur, nous avons désormais accès à l’ensemble des chemins disponibles pour atteindre n’importe quelle destination.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Avec ces informations, nous sommes en mesure de choisir les chemins optimaux pour notre trafic sortant en fonction de notre topologie réseau et de nos préférences, de mettre en œuvre du <em>traffic engineering</em> pour diriger les flux via des fournisseurs de transit spécifiques, de réagir dynamiquement aux conditions réseau et à la congestion, et d’équilibrer la charge entre nos quatre connexions de transit en nous appuyant sur des données de routage en temps réel.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce niveau de contrôle fin sur notre politique de routage est une conséquence directe de l’exploitation de notre propre système autonome et de la gestion de nos propres annonces — exactement le niveau d’indépendance opérationnelle que nous recherchions au début de cette transition.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Un an plus tard</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Près d’un an après le début de l’exploitation de nos propres annonces réseau, la transition s’est révélée concluante. Nous n’avons rencontré aucun incident majeur et notre infrastructure a démontré sa résilience. Lorsque des incidents mineurs se sont produits — comme des pertes de paquets sur un fournisseur de transit spécifique ou la perte temporaire d’un lien — le trafic s’est automatiquement rééquilibré sur les connexions restantes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous avons pu détecter et corriger ces problèmes directement, sans dépendre d’un fournisseur tiers. Nos utilisateurs n’ont subi aucune interruption ayant un impact. Cette capacité à assumer la responsabilité de notre réseau et à résoudre rapidement les problèmes est sans doute le principal bénéfice de cette transition.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Et ensuite</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Cette transition est loin d’être terminée. Plusieurs évolutions sont prévues :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><strong>augmentation de la capacité réseau</strong> pour absorber la croissance du trafic</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>mise en place de <strong>peering BGP</strong> avec d’autres réseaux pour optimiser le trafic local sans recourir au transit</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>déploiement de <strong>ROA (Route Origin Authorization)</strong> pour signer cryptographiquement nos annonces et prévenir les détournements de préfixes</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>validation <strong>RPKI (Resource Public Key Infrastructure)</strong> pour vérifier la légitimité des annonces reçues et renforcer la sécurité du routage</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>extension d’IPv6</strong>, en entrée (réception de trafic IPv6) comme en sortie (émission de trafic IPv6), déployée progressivement</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Début 2025, Clever Cloud a finalisé sa transition vers une exploitation entièrement autonome de son réseau. Nous annonçons désormais nos propres préfixes IP via quatre fournisseurs upstream, ce qui nous donne un contrôle complet sur la manière dont le trafic entre et sort de notre infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour nos utilisateurs, cela se traduit par une meilleure fiabilité et des temps de résolution plus courts dans notre région Paris. Lorsqu’un incident réseau survient, nous le traitons directement, et notre redondance multi-fournisseurs garantit la continuité du trafic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette étape marque le début d’une nouvelle phase. Nous travaillons déjà sur le peering BGP pour optimiser le trafic local, sur le déploiement de ROA et la validation RPKI pour renforcer la sécurité du routage, ainsi que sur l’extension d’IPv6 pour généraliser le dual-stack. Nous construisons un réseau aussi robuste et autonome que le reste de notre infrastructure.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nouveauté IAM : ce que permet notre Keycloak managé aujourd’hui</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/02/20/nouveaute-iam-keycloak-manage/</link>
		
		<dc:creator><![CDATA[Carine Guillemet]]></dc:creator>
		<pubDate>Fri, 20 Feb 2026 09:53:08 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[fonctionnalité]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=23419</guid>

					<description><![CDATA[<p><img width="1600" height="710" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 16 clever cloud banniere blog keycloak manage fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr.png 1600w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-1368x607.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>L’Identity and Access Management (IAM) est devenu un composant central de toute architecture moderne. Authentification, gestion des utilisateurs, contrôle des accès, conformité réglementaire : ces briques sont critiques, mais leur mise en œuvre et leur exploitation restent souvent complexes dans la durée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C’est pour répondre à ces enjeux que Clever Cloud a lancé l'IAM&nbsp;<strong><a href="https://www.clever.cloud/product/managed-keycloak-as-a-service/" type="link" id="https://www.clever.cloud/product/managed-keycloak-as-a-service/">Keycloak as a Service</a></strong>&nbsp;au printemps 2025, en&nbsp;<strong>partenariat avec <a href="https://please-open.it" type="link" id="https://please-open.it">Please Open It</a></strong>, société spécialisée dans l’intégration et l’expertise autour de Keycloak. Cette collaboration a permis de concevoir un service managé, aligné à la fois sur les bonnes pratiques de l’open source et sur les contraintes réelles des environnements de production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Depuis son lancement, Keycloak as a Service a connu de nombreuses évolutions pour répondre aux usages concrets des entreprises et aux exigences d’un IAM opéré à grande échelle.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://console.clever-cloud.com">Tester Keycloak</a></div>
<!-- /wp:button -->

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/fr/contact/">En parler avec un commercial</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Un Keycloak managé, pensé pour la production</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Keycloak as a Service repose sur une approche simple : offrir toute la richesse fonctionnelle de Keycloak, sans demander aux équipes de gérer l’infrastructure, la maintenance ou la supervision.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le service est intégré nativement à la Console Clever Cloud. Il devient ainsi une brique à part entière de la plateforme, pilotable depuis un point unique, au même titre que les autres <a href="https://www.clever.cloud/fr/blog/entreprise/2025/03/19/services-manages-de-quoi-sagit-il/">services managés</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Secured Multi Instances : haute disponibilité et montée en charge</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Parmi les évolutions majeures figure le&nbsp;<strong>Secured Multi Instances</strong>. Il permet de déployer Keycloak en mode clusterisé, avec plusieurs nœuds, afin d’assurer la répartition de charge et la haute disponibilité d’un composant critique comme l’IAM.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette architecture renforce la continuité de service et la capacité à absorber la montée en charge, tout en répondant aux exigences attendues en production. La configuration et le pilotage de cette architecture sont accessibles directement depuis la Console Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Un dashboard dédié dans la Console</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un&nbsp;<strong>dashboard Keycloak</strong>&nbsp;est désormais disponible dans la Console Clever Cloud. Il centralise les informations essentielles du service ainsi que les actions d’administration courantes, afin de simplifier le pilotage au quotidien et d’éviter la multiplication des outils.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":23463,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/02/keycloak-dashboard-1-1024x630.webp" alt="" class="wp-image-23463"/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Monitoring intégré et inclus</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le&nbsp;<strong>monitoring est intégré nativement</strong>&nbsp;au service. La visibilité opérationnelle est immédiatement disponible, sans configuration supplémentaire ni déploiement d’outils externes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette approche intégrée permet de simplifier l’exploitation tout en conservant un haut niveau de maîtrise sur le fonctionnement de l’IAM.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Maintenance continue et mises à jour</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Keycloak managé est&nbsp;<strong>maintenu à jour</strong>&nbsp;par les équipes Clever Cloud. Les versions récentes de Keycloak sont mises à disposition au fil des évolutions du produit, sans charge opérationnelle côté client.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela permet de bénéficier des correctifs de sécurité et des évolutions fonctionnelles, sans projets de montée de version lourds ou risqués.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>L’ajout simplifié à vos applications</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Enfin, une évolution plus structurelle concerne <a href="https://www.clever.cloud/developers/doc/develop/request-flow/" type="link" id="https://www.clever.cloud/developers/doc/develop/request-flow/">Request Flow</a>, un socle technique qui facilite l’utilisation d’outils afin de protéger l’accès à vos applications, dont OAuth2-Proxy. <br><br>Ce dernier est compatible avec Keycloak, sa configuration est simplifiée sur Clever Cloud, ce qui permet de mettre en place une identification en amont de l’application, sans modification du code applicatif. Il est particulièrement adapté pour sécuriser des applications existantes, des back-offices, des outils internes ou des services exposés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Pour aller plus loin</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour présenter ces évolutions en détail, partager les choix techniques et répondre aux questions, un&nbsp;<strong>live <a href="https://www.twitch.tv/clevercloud?lang=fr" type="link" id="https://www.twitch.tv/clevercloud?lang=fr">Twitch</a> et <a href="https://youtube.com/live/Jo-Njxsxq-8" type="link" id="https://youtube.com/live/Jo-Njxsxq-8">Youtube</a> est prévu le 26 février à 13h</strong>. Il sera animé par&nbsp;<strong>Horacio Gonzalez (Clever Cloud)</strong>, avec&nbsp;<strong>Mathieu Passenaud (Please Open It)</strong>. L’occasion d’entrer concrètement dans le fonctionnement de notre Keycloak managé et d’échanger autour des usages IAM en production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1600" height="710" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 16 clever cloud banniere blog keycloak manage fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr.png 1600w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-16-clever-cloud-banniere-blog-keycloak-manage-fr-1368x607.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>L’Identity and Access Management (IAM) est devenu un composant central de toute architecture moderne. Authentification, gestion des utilisateurs, contrôle des accès, conformité réglementaire : ces briques sont critiques, mais leur mise en œuvre et leur exploitation restent souvent complexes dans la durée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>C’est pour répondre à ces enjeux que Clever Cloud a lancé l'IAM&nbsp;<strong><a href="https://www.clever.cloud/product/managed-keycloak-as-a-service/" type="link" id="https://www.clever.cloud/product/managed-keycloak-as-a-service/">Keycloak as a Service</a></strong>&nbsp;au printemps 2025, en&nbsp;<strong>partenariat avec <a href="https://please-open.it" type="link" id="https://please-open.it">Please Open It</a></strong>, société spécialisée dans l’intégration et l’expertise autour de Keycloak. Cette collaboration a permis de concevoir un service managé, aligné à la fois sur les bonnes pratiques de l’open source et sur les contraintes réelles des environnements de production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Depuis son lancement, Keycloak as a Service a connu de nombreuses évolutions pour répondre aux usages concrets des entreprises et aux exigences d’un IAM opéré à grande échelle.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://console.clever-cloud.com">Tester Keycloak</a></div>
<!-- /wp:button -->

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/fr/contact/">En parler avec un commercial</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Un Keycloak managé, pensé pour la production</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Keycloak as a Service repose sur une approche simple : offrir toute la richesse fonctionnelle de Keycloak, sans demander aux équipes de gérer l’infrastructure, la maintenance ou la supervision.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le service est intégré nativement à la Console Clever Cloud. Il devient ainsi une brique à part entière de la plateforme, pilotable depuis un point unique, au même titre que les autres <a href="https://www.clever.cloud/fr/blog/entreprise/2025/03/19/services-manages-de-quoi-sagit-il/">services managés</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Secured Multi Instances : haute disponibilité et montée en charge</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Parmi les évolutions majeures figure le&nbsp;<strong>Secured Multi Instances</strong>. Il permet de déployer Keycloak en mode clusterisé, avec plusieurs nœuds, afin d’assurer la répartition de charge et la haute disponibilité d’un composant critique comme l’IAM.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette architecture renforce la continuité de service et la capacité à absorber la montée en charge, tout en répondant aux exigences attendues en production. La configuration et le pilotage de cette architecture sont accessibles directement depuis la Console Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Un dashboard dédié dans la Console</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un&nbsp;<strong>dashboard Keycloak</strong>&nbsp;est désormais disponible dans la Console Clever Cloud. Il centralise les informations essentielles du service ainsi que les actions d’administration courantes, afin de simplifier le pilotage au quotidien et d’éviter la multiplication des outils.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":23463,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2026/02/keycloak-dashboard-1-1024x630.webp" alt="" class="wp-image-23463"/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Monitoring intégré et inclus</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le&nbsp;<strong>monitoring est intégré nativement</strong>&nbsp;au service. La visibilité opérationnelle est immédiatement disponible, sans configuration supplémentaire ni déploiement d’outils externes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette approche intégrée permet de simplifier l’exploitation tout en conservant un haut niveau de maîtrise sur le fonctionnement de l’IAM.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>Maintenance continue et mises à jour</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Keycloak managé est&nbsp;<strong>maintenu à jour</strong>&nbsp;par les équipes Clever Cloud. Les versions récentes de Keycloak sont mises à disposition au fil des évolutions du produit, sans charge opérationnelle côté client.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cela permet de bénéficier des correctifs de sécurité et des évolutions fonctionnelles, sans projets de montée de version lourds ou risqués.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>L’ajout simplifié à vos applications</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Enfin, une évolution plus structurelle concerne <a href="https://www.clever.cloud/developers/doc/develop/request-flow/" type="link" id="https://www.clever.cloud/developers/doc/develop/request-flow/">Request Flow</a>, un socle technique qui facilite l’utilisation d’outils afin de protéger l’accès à vos applications, dont OAuth2-Proxy. <br><br>Ce dernier est compatible avec Keycloak, sa configuration est simplifiée sur Clever Cloud, ce qui permet de mettre en place une identification en amont de l’application, sans modification du code applicatif. Il est particulièrement adapté pour sécuriser des applications existantes, des back-offices, des outils internes ou des services exposés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Pour aller plus loin</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour présenter ces évolutions en détail, partager les choix techniques et répondre aux questions, un&nbsp;<strong>live <a href="https://www.twitch.tv/clevercloud?lang=fr" type="link" id="https://www.twitch.tv/clevercloud?lang=fr">Twitch</a> et <a href="https://youtube.com/live/Jo-Njxsxq-8" type="link" id="https://youtube.com/live/Jo-Njxsxq-8">Youtube</a> est prévu le 26 février à 13h</strong>. Il sera animé par&nbsp;<strong>Horacio Gonzalez (Clever Cloud)</strong>, avec&nbsp;<strong>Mathieu Passenaud (Please Open It)</strong>. L’occasion d’entrer concrètement dans le fonctionnement de notre Keycloak managé et d’échanger autour des usages IAM en production.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ELK Stack : à quoi ça sert et comment l’utiliser pour l’observabilité</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/02/10/elk-stack-a-quoi-ca-sert-et-comment-lutiliser-pour-lobservabilite/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Tue, 10 Feb 2026 15:05:54 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[elasticsearch]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=23421</guid>

					<description><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 10 clever cloud banniere blog elk stack fr 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1.png 2500w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p>C’est dans ce contexte que la stack ELK s’est imposée comme un socle technique pour analyser, rechercher et visualiser des données techniques, en particulier les logs. Dans cet article, nous répondons à trois questions essentielles :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>ELK Stack, c’est quoi exactement ?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>À quoi ça sert aujourd’hui, notamment pour l’observabilité ?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Comment l’utiliser efficacement sans gérer toute l’infrastructure ?</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">ELK Stack : définition claire</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>ELK Stack</strong> est un acronyme qui désigne historiquement trois composants :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://www.clever.cloud/fr/product/elasticsearch/"><strong>Elasticsearch</strong></a> : moteur distribué de recherche et d’analyse ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://www.clever.cloud/developers/guides/kibana/"><strong>Kibana</strong></a> : interface de visualisation et d’exploration des données ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Logstash</strong> : outil de collecte et de transformation de données (selon les contextes).</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>À l’heure actuelle, Elasticsearch et Kibana constituent le cœur fonctionnel de la stack ELK, en particulier pour les usages d’analyse et de visualisation des données techniques, une fois les données ingérées dans Elasticsearch.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On parle parfois d’<a href="https://www.clever.cloud/developers/doc/addons/elastic/">Elastic Stack</a>, un terme plus large qui englobe l’écosystème Elastic dans son ensemble. Dans l’usage courant, notamment en environnement cloud, l’ELK Stack désigne l’association d’un mécanisme de collecte, souvent basé sur des agents, avec Elasticsearch pour le stockage et l’analyse, et Kibana pour la visualisation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">À quoi sert ELK Stack ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>ELK Stack sert à centraliser, analyser et exploiter des données techniques issues de systèmes et d’applications. Elle permet d’indexer de grands volumes de données, d’effectuer des recherches et des analyses sur de larges plages temporelles, en croisant des données issues de multiples sources, services ou environnements.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette capacité d’analyse en fait un outil largement utilisé pour comprendre le comportement d’une application, diagnostiquer des incidents, investiguer des anomalies ou explorer des données opérationnelles. L’intérêt principal réside dans la possibilité de passer rapidement de données brutes à des informations exploitables, sans dépendre d’outils spécialisés pour chaque cas d’usage.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">ELK Stack et observabilité : quel lien ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’<a href="https://www.clever.cloud/fr/observabilite-et-supervision/">observabilité</a> vise à comprendre l’état interne d’un système à partir de ses signaux observables. Parmi ces signaux, les logs jouent un rôle central, car ils décrivent précisément ce que fait une application à un instant donné.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans ce cadre, ELK Stack constitue un socle particulièrement adapté à l’observabilité orientée logs. Elasticsearch permet de rechercher et de corréler des événements à grande échelle, tandis que Kibana offre une lecture visuelle qui facilite l’analyse et l’interprétation. L’ensemble permet d’identifier des comportements anormaux, de reconstituer la chronologie d’un incident ou d’analyser des tendances sur la durée.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Comment utiliser ELK Stack sans gérer l’infrastructure</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’un des principaux freins à l’adoption d’ELK Stack a longtemps été sa complexité opérationnelle. Déployer, maintenir et faire évoluer une telle stack implique de gérer le dimensionnement, les mises à jour, la sécurité ou encore les sauvegardes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En environnement cloud, cette charge peut rapidement détourner les équipes de leur objectif principal, qui est l’analyse des données et non la gestion de l’infrastructure. C’est pour cette raison que de plus en plus d’équipes se tournent vers des approches managées.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Approche managée</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans une approche managée, Elasticsearch et Kibana sont fournis sous forme de services prêts à l’emploi. L’infrastructure sous-jacente et une partie des opérations courantes (mise à disposition du service, maintenance, sauvegardes, contrôle d’accès selon le modèle de la plateforme) sont pris en charge par la plateforme, ce qui permet aux équipes de se concentrer sur les usages.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans ce modèle, la collecte des logs est assurée par les mécanismes de la plateforme. Sur Clever Cloud, les applications et add-ons peuvent exposer leurs logs via des drains, qui permettent de les rediriger vers un Elasticsearch cible, sans déployer d’outil de collecte dans le PaaS.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Sur Clever Cloud, il est par exemple possible de créer un add-on Elastic Stack qui fournit :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>un service <a href="https://www.clever.cloud/fr/product/elasticsearch/">Elasticsearch managé</a> ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>une instance Kibana associée ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>des mécanismes de sécurité et de sauvegarde intégrés ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>une connexion via les informations d’accès fournies par l’add-on.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Cette approche permet d’exploiter ELK Stack sans gérer les aspects bas niveau, tout en conservant la puissance d’analyse d’Elasticsearch.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Cas d’usage concrets en observabilité</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Analyse de logs applicatifs</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Centraliser les logs applicatifs dans Elasticsearch permet de rechercher rapidement des erreurs, d’explorer des événements précis ou de filtrer des données selon différents critères. Cette capacité est essentielle pour comprendre le comportement réel d’une application en production.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Diagnostic d’incidents</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Lorsqu’un incident survient, la corrélation des événements devient un enjeu clé. ELK Stack permet d’analyser la chronologie des faits, d’identifier les composants impliqués et de mieux comprendre les causes sous-jacentes, sans se limiter à une vision fragmentée des logs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Suivi du comportement applicatif</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Sur la durée, l’analyse des données indexées dans Elasticsearch permet de détecter des tendances, des pics anormaux ou des évolutions de comportement. Les tableaux de bord Kibana facilitent cette lecture et offrent une vision synthétique adaptée aux équipes techniques.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>ELK Stack reste aujourd’hui un socle solide pour analyser et exploiter des données techniques, en particulier les logs. Son rôle dans les démarches d’observabilité s’est renforcé avec l’évolution des architectures cloud et distribuées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En s’appuyant sur le cœur fonctionnel de la stack ELK, à savoir Elasticsearch et Kibana, il est possible de construire un environnement d’analyse adapté aux besoins modernes, sans nécessairement gérer l’infrastructure sous-jacente. Les approches managées permettent de réduire la complexité opérationnelle et de se concentrer sur la valeur des données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les usages autour de l’ELK Stack continuent toutefois d’évoluer. Les travaux récents d’Elastic autour de nouveaux modèles de gestion des logs, comme les streams, ouvrent la voie à des approches plus flexibles et mieux adaptées aux volumes actuels. Ces évolutions prolongent les fondations existantes, sans remettre en cause le rôle central d’Elasticsearch dans l’analyse des données d’observabilité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour celles et ceux qui souhaitent explorer ces usages dans un cadre maîtrisé, créer un add-on Elastic Stack sur Clever Cloud constitue une manière pragmatique d’<a href="https://www.clever.cloud/fr/blog/engineering-fr/2026/02/10/elasticsearch-pour-lobservabilite-logs-metriques-et-traces-expliques/">aborder l’observabilité basée sur Elasticsearch</a>, sans transformer l’exploitation en contrainte.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/developers/doc/addons/elastic/"><strong>Créer un add-on Elastic Stack sur Clever Cloud</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->]]></description>
										<content:encoded><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 10 clever cloud banniere blog elk stack fr 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1.png 2500w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elk-stack-fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p>C’est dans ce contexte que la stack ELK s’est imposée comme un socle technique pour analyser, rechercher et visualiser des données techniques, en particulier les logs. Dans cet article, nous répondons à trois questions essentielles :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>ELK Stack, c’est quoi exactement ?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>À quoi ça sert aujourd’hui, notamment pour l’observabilité ?</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Comment l’utiliser efficacement sans gérer toute l’infrastructure ?</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">ELK Stack : définition claire</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>ELK Stack</strong> est un acronyme qui désigne historiquement trois composants :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://www.clever.cloud/fr/product/elasticsearch/"><strong>Elasticsearch</strong></a> : moteur distribué de recherche et d’analyse ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://www.clever.cloud/developers/guides/kibana/"><strong>Kibana</strong></a> : interface de visualisation et d’exploration des données ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Logstash</strong> : outil de collecte et de transformation de données (selon les contextes).</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>À l’heure actuelle, Elasticsearch et Kibana constituent le cœur fonctionnel de la stack ELK, en particulier pour les usages d’analyse et de visualisation des données techniques, une fois les données ingérées dans Elasticsearch.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On parle parfois d’<a href="https://www.clever.cloud/developers/doc/addons/elastic/">Elastic Stack</a>, un terme plus large qui englobe l’écosystème Elastic dans son ensemble. Dans l’usage courant, notamment en environnement cloud, l’ELK Stack désigne l’association d’un mécanisme de collecte, souvent basé sur des agents, avec Elasticsearch pour le stockage et l’analyse, et Kibana pour la visualisation.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">À quoi sert ELK Stack ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>ELK Stack sert à centraliser, analyser et exploiter des données techniques issues de systèmes et d’applications. Elle permet d’indexer de grands volumes de données, d’effectuer des recherches et des analyses sur de larges plages temporelles, en croisant des données issues de multiples sources, services ou environnements.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette capacité d’analyse en fait un outil largement utilisé pour comprendre le comportement d’une application, diagnostiquer des incidents, investiguer des anomalies ou explorer des données opérationnelles. L’intérêt principal réside dans la possibilité de passer rapidement de données brutes à des informations exploitables, sans dépendre d’outils spécialisés pour chaque cas d’usage.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">ELK Stack et observabilité : quel lien ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’<a href="https://www.clever.cloud/fr/observabilite-et-supervision/">observabilité</a> vise à comprendre l’état interne d’un système à partir de ses signaux observables. Parmi ces signaux, les logs jouent un rôle central, car ils décrivent précisément ce que fait une application à un instant donné.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans ce cadre, ELK Stack constitue un socle particulièrement adapté à l’observabilité orientée logs. Elasticsearch permet de rechercher et de corréler des événements à grande échelle, tandis que Kibana offre une lecture visuelle qui facilite l’analyse et l’interprétation. L’ensemble permet d’identifier des comportements anormaux, de reconstituer la chronologie d’un incident ou d’analyser des tendances sur la durée.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Comment utiliser ELK Stack sans gérer l’infrastructure</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’un des principaux freins à l’adoption d’ELK Stack a longtemps été sa complexité opérationnelle. Déployer, maintenir et faire évoluer une telle stack implique de gérer le dimensionnement, les mises à jour, la sécurité ou encore les sauvegardes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En environnement cloud, cette charge peut rapidement détourner les équipes de leur objectif principal, qui est l’analyse des données et non la gestion de l’infrastructure. C’est pour cette raison que de plus en plus d’équipes se tournent vers des approches managées.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Approche managée</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans une approche managée, Elasticsearch et Kibana sont fournis sous forme de services prêts à l’emploi. L’infrastructure sous-jacente et une partie des opérations courantes (mise à disposition du service, maintenance, sauvegardes, contrôle d’accès selon le modèle de la plateforme) sont pris en charge par la plateforme, ce qui permet aux équipes de se concentrer sur les usages.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans ce modèle, la collecte des logs est assurée par les mécanismes de la plateforme. Sur Clever Cloud, les applications et add-ons peuvent exposer leurs logs via des drains, qui permettent de les rediriger vers un Elasticsearch cible, sans déployer d’outil de collecte dans le PaaS.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Sur Clever Cloud, il est par exemple possible de créer un add-on Elastic Stack qui fournit :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>un service <a href="https://www.clever.cloud/fr/product/elasticsearch/">Elasticsearch managé</a> ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>une instance Kibana associée ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>des mécanismes de sécurité et de sauvegarde intégrés ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>une connexion via les informations d’accès fournies par l’add-on.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Cette approche permet d’exploiter ELK Stack sans gérer les aspects bas niveau, tout en conservant la puissance d’analyse d’Elasticsearch.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Cas d’usage concrets en observabilité</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Analyse de logs applicatifs</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Centraliser les logs applicatifs dans Elasticsearch permet de rechercher rapidement des erreurs, d’explorer des événements précis ou de filtrer des données selon différents critères. Cette capacité est essentielle pour comprendre le comportement réel d’une application en production.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Diagnostic d’incidents</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Lorsqu’un incident survient, la corrélation des événements devient un enjeu clé. ELK Stack permet d’analyser la chronologie des faits, d’identifier les composants impliqués et de mieux comprendre les causes sous-jacentes, sans se limiter à une vision fragmentée des logs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Suivi du comportement applicatif</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Sur la durée, l’analyse des données indexées dans Elasticsearch permet de détecter des tendances, des pics anormaux ou des évolutions de comportement. Les tableaux de bord Kibana facilitent cette lecture et offrent une vision synthétique adaptée aux équipes techniques.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>ELK Stack reste aujourd’hui un socle solide pour analyser et exploiter des données techniques, en particulier les logs. Son rôle dans les démarches d’observabilité s’est renforcé avec l’évolution des architectures cloud et distribuées.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En s’appuyant sur le cœur fonctionnel de la stack ELK, à savoir Elasticsearch et Kibana, il est possible de construire un environnement d’analyse adapté aux besoins modernes, sans nécessairement gérer l’infrastructure sous-jacente. Les approches managées permettent de réduire la complexité opérationnelle et de se concentrer sur la valeur des données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Les usages autour de l’ELK Stack continuent toutefois d’évoluer. Les travaux récents d’Elastic autour de nouveaux modèles de gestion des logs, comme les streams, ouvrent la voie à des approches plus flexibles et mieux adaptées aux volumes actuels. Ces évolutions prolongent les fondations existantes, sans remettre en cause le rôle central d’Elasticsearch dans l’analyse des données d’observabilité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour celles et ceux qui souhaitent explorer ces usages dans un cadre maîtrisé, créer un add-on Elastic Stack sur Clever Cloud constitue une manière pragmatique d’<a href="https://www.clever.cloud/fr/blog/engineering-fr/2026/02/10/elasticsearch-pour-lobservabilite-logs-metriques-et-traces-expliques/">aborder l’observabilité basée sur Elasticsearch</a>, sans transformer l’exploitation en contrainte.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/developers/doc/addons/elastic/"><strong>Créer un add-on Elastic Stack sur Clever Cloud</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Elasticsearch pour l’observabilité : logs, métriques et traces expliqués</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2026/02/10/elasticsearch-pour-lobservabilite-logs-metriques-et-traces-expliques/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Tue, 10 Feb 2026 15:05:46 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[elasticsearch]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=23431</guid>

					<description><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 10 clever cloud banniere blog elasticsearch observabilite fr 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1.png 2500w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p>C’est précisément le <a href="https://www.clever.cloud/fr/observabilite-et-supervision/">rôle de l’observabilité</a>. Et c’est aussi la raison pour laquelle Elasticsearch s’est progressivement imposé comme un socle d’analyse pour les logs, les métriques et les traces.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous allons voir comment Elasticsearch s’inscrit dans une démarche d’observabilité, au-delà du simple logging, et comment il permet de corréler les signaux techniques pour mieux comprendre le comportement des applications.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Qu’est-ce que l’observabilité, et pourquoi Elasticsearch est concerné</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’observabilité désigne la capacité à comprendre l’état interne d’un système à partir de ses signaux externes. Contrairement au monitoring traditionnel, elle ne se limite pas à des métriques prédéfinies ou à des seuils fixes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elle repose sur la collecte de données riches et contextuelles, sur leur analyse transversale et sur la possibilité d’explorer des situations non anticipées. Dans ce cadre, Elasticsearch joue un rôle clé. Son moteur d’indexation et de recherche permet d’analyser de grands volumes de données hétérogènes, structurées ou non, en quasi temps réel, ce qui correspond exactement aux besoins d’une approche d’observabilité moderne.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Les trois piliers de l’observabilité : logs, métriques et traces</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une stratégie d’observabilité repose sur trois types de signaux complémentaires. Chacun répond à une problématique différente.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Logs : comprendre ce qui s’est passé</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les <a href="https://www.clever.cloud/developers/doc/administrate/log-management/">logs</a> sont des événements produits par les applications et les composants d’infrastructure. Dans Elasticsearch, ils sont associés à un horodatage, qu’il provienne du contenu du log lui-même ou du moment de son ingestion. Ils fournissent un niveau de détail élevé et permettent de comprendre le contexte précis d’une erreur, d’un comportement inattendu ou d’un incident.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elasticsearch est historiquement très adapté à cet usage :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>ingestion de volumes importants ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>recherche plein texte rapide ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>exploration fine des événements.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les logs apportent beaucoup de contexte, mais deviennent difficiles à exploiter seuls lorsque les architectures se distribuent et que les volumes augmentent fortement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Métriques : mesurer l’état du système</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les <a href="https://www.clever.cloud/developers/doc/metrics/">métriques</a> sont des données numériques agrégées dans le temps. Elles décrivent l’état global d’un système et permettent de suivre son évolution. Latence, taux d’erreur ou consommation de ressources donnent une vision synthétique de la santé d’une application ou d’une infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans Elasticsearch, ces données sont stockées sous forme de séries temporelles. Cela permet de réaliser des agrégations, d’analyser des tendances sur la durée et de détecter des anomalies, tout en conservant la possibilité de relier ces métriques à d’autres signaux techniques.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Traces : suivre une requête de bout en bout</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les traces décrivent le parcours complet d’une requête à travers un système distribué. Elles sont essentielles pour comprendre les dépendances entre services et identifier précisément l’origine d’une latence ou d’une erreur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque trace est composée de plusieurs segments représentant les différentes étapes d’exécution. Une fois indexées dans Elasticsearch, ces traces peuvent être reliées aux logs et aux métriques associées, ce qui facilite l’analyse des comportements complexes dans des environnements microservices.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Comment Elasticsearch corrèle logs, métriques et traces</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La valeur de l’observabilité ne réside pas dans chaque signal pris isolément, mais dans leur corrélation. Elasticsearch la facilite grâce à plusieurs mécanismes structurants :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>un moteur d’indexation commun ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>des schémas partagés comme ECS (Elastic Common Schema), qui fournit une structure commune pour les logs, les métriques et les traces ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>des capacités de recherche transverses.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Concrètement, cette approche permet de naviguer naturellement entre les signaux. Une alerte issue d’une métrique peut conduire à l’analyse des traces concernées, puis à l’exploration des logs associés à une requête précise. <a href="https://www.clever.cloud/developers/guides/kibana/">Kibana</a> joue ici un rôle central en rendant ces corrélations visibles et exploitables, grâce à des visualisations, des tableaux de bord et des outils d’exploration adaptés à l’analyse croisée des signaux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Historiquement, Elasticsearch est surtout connu pour permettre de créer des moteurs de recherche applicatifs, notamment pour indexer et interroger des contenus sur des sites web. Ce même principe de recherche rapide et contextuelle s’applique aux données d’observabilité : logs, métriques et traces sont eux aussi indexés et interrogés comme des ensembles de données, ce qui rend possible leur exploration et leur corrélation à grande échelle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">OpenTelemetry : un standard clé pour l’observabilité avec Elasticsearch</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans les architectures modernes, la collecte des données est un enjeu aussi important que leur analyse. <a href="https://opentelemetry.io/">OpenTelemetry</a> s’est imposé comme un standard ouvert pour l’instrumentation des applications, couvrant à la fois les traces, les métriques et les logs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elasticsearch supporte nativement OpenTelemetry, ce qui permet de standardiser la collecte des signaux sans dépendre d’un format propriétaire. Cette compatibilité facilite l’interopérabilité, <a href="https://www.clever.cloud/fr/engagements/">limite le verrouillage technologique</a> et permet de faire évoluer les outils d’observabilité sans remettre en cause l’instrumentation applicative existante.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Observer ses applications avec Elastic sur Clever Cloud</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Sur Clever Cloud, <a href="https://www.clever.cloud/fr/product/elasticsearch/">Elasticsearch est proposé sous forme d’add-on managé</a>. Les applications peuvent y envoyer leurs logs via des drains Elasticsearch, ce qui permet de centraliser automatiquement les logs applicatifs. Plusieurs briques peuvent ensuite être activées selon les besoins :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>un Elasticsearch administré ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Kibana</strong> pour l’exploration et la visualisation ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Elastic APM</strong> pour l’analyse des performances applicatives.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Cette approche permet de centraliser les logs applicatifs, de collecter des métriques pertinentes et de tracer les requêtes sans avoir à gérer l’infrastructure sous-jacente. L’objectif n’est pas de multiplier les outils, mais de fournir une base d’observabilité cohérente, intégrée au cycle de vie des applications.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/fr/product/elasticsearch/"><strong>Découvrez Elasticsearch pour monitorer vos apps sur Clever Cloud</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’observabilité ne se résume pas à empiler des outils de monitoring. Elle repose sur la capacité à corréler logs, métriques et traces pour comprendre des systèmes de plus en plus complexes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Grâce à ses capacités d’indexation, de recherche et d’analyse, Elasticsearch constitue un socle technique solide pour cette approche. Associé à des standards ouverts et à des interfaces comme Kibana, il permet de passer d’une vision fragmentée à une compréhension globale du comportement applicatif.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans un environnement cloud moderne, cette corrélation n’est plus un luxe. C’est une condition nécessaire pour exploiter la production de manière fiable.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 10 clever cloud banniere blog elasticsearch observabilite fr 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1.png 2500w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-10-clever-cloud-banniere-blog-elasticsearch-observabilite-fr-1-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p>C’est précisément le <a href="https://www.clever.cloud/fr/observabilite-et-supervision/">rôle de l’observabilité</a>. Et c’est aussi la raison pour laquelle Elasticsearch s’est progressivement imposé comme un socle d’analyse pour les logs, les métriques et les traces.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous allons voir comment Elasticsearch s’inscrit dans une démarche d’observabilité, au-delà du simple logging, et comment il permet de corréler les signaux techniques pour mieux comprendre le comportement des applications.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Qu’est-ce que l’observabilité, et pourquoi Elasticsearch est concerné</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’observabilité désigne la capacité à comprendre l’état interne d’un système à partir de ses signaux externes. Contrairement au monitoring traditionnel, elle ne se limite pas à des métriques prédéfinies ou à des seuils fixes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elle repose sur la collecte de données riches et contextuelles, sur leur analyse transversale et sur la possibilité d’explorer des situations non anticipées. Dans ce cadre, Elasticsearch joue un rôle clé. Son moteur d’indexation et de recherche permet d’analyser de grands volumes de données hétérogènes, structurées ou non, en quasi temps réel, ce qui correspond exactement aux besoins d’une approche d’observabilité moderne.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Les trois piliers de l’observabilité : logs, métriques et traces</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une stratégie d’observabilité repose sur trois types de signaux complémentaires. Chacun répond à une problématique différente.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Logs : comprendre ce qui s’est passé</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les <a href="https://www.clever.cloud/developers/doc/administrate/log-management/">logs</a> sont des événements produits par les applications et les composants d’infrastructure. Dans Elasticsearch, ils sont associés à un horodatage, qu’il provienne du contenu du log lui-même ou du moment de son ingestion. Ils fournissent un niveau de détail élevé et permettent de comprendre le contexte précis d’une erreur, d’un comportement inattendu ou d’un incident.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elasticsearch est historiquement très adapté à cet usage :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>ingestion de volumes importants ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>recherche plein texte rapide ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>exploration fine des événements.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les logs apportent beaucoup de contexte, mais deviennent difficiles à exploiter seuls lorsque les architectures se distribuent et que les volumes augmentent fortement.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Métriques : mesurer l’état du système</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les <a href="https://www.clever.cloud/developers/doc/metrics/">métriques</a> sont des données numériques agrégées dans le temps. Elles décrivent l’état global d’un système et permettent de suivre son évolution. Latence, taux d’erreur ou consommation de ressources donnent une vision synthétique de la santé d’une application ou d’une infrastructure.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans Elasticsearch, ces données sont stockées sous forme de séries temporelles. Cela permet de réaliser des agrégations, d’analyser des tendances sur la durée et de détecter des anomalies, tout en conservant la possibilité de relier ces métriques à d’autres signaux techniques.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Traces : suivre une requête de bout en bout</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les traces décrivent le parcours complet d’une requête à travers un système distribué. Elles sont essentielles pour comprendre les dépendances entre services et identifier précisément l’origine d’une latence ou d’une erreur.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque trace est composée de plusieurs segments représentant les différentes étapes d’exécution. Une fois indexées dans Elasticsearch, ces traces peuvent être reliées aux logs et aux métriques associées, ce qui facilite l’analyse des comportements complexes dans des environnements microservices.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Comment Elasticsearch corrèle logs, métriques et traces</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La valeur de l’observabilité ne réside pas dans chaque signal pris isolément, mais dans leur corrélation. Elasticsearch la facilite grâce à plusieurs mécanismes structurants :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>un moteur d’indexation commun ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>des schémas partagés comme ECS (Elastic Common Schema), qui fournit une structure commune pour les logs, les métriques et les traces ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>des capacités de recherche transverses.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Concrètement, cette approche permet de naviguer naturellement entre les signaux. Une alerte issue d’une métrique peut conduire à l’analyse des traces concernées, puis à l’exploration des logs associés à une requête précise. <a href="https://www.clever.cloud/developers/guides/kibana/">Kibana</a> joue ici un rôle central en rendant ces corrélations visibles et exploitables, grâce à des visualisations, des tableaux de bord et des outils d’exploration adaptés à l’analyse croisée des signaux.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Historiquement, Elasticsearch est surtout connu pour permettre de créer des moteurs de recherche applicatifs, notamment pour indexer et interroger des contenus sur des sites web. Ce même principe de recherche rapide et contextuelle s’applique aux données d’observabilité : logs, métriques et traces sont eux aussi indexés et interrogés comme des ensembles de données, ce qui rend possible leur exploration et leur corrélation à grande échelle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">OpenTelemetry : un standard clé pour l’observabilité avec Elasticsearch</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans les architectures modernes, la collecte des données est un enjeu aussi important que leur analyse. <a href="https://opentelemetry.io/">OpenTelemetry</a> s’est imposé comme un standard ouvert pour l’instrumentation des applications, couvrant à la fois les traces, les métriques et les logs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elasticsearch supporte nativement OpenTelemetry, ce qui permet de standardiser la collecte des signaux sans dépendre d’un format propriétaire. Cette compatibilité facilite l’interopérabilité, <a href="https://www.clever.cloud/fr/engagements/">limite le verrouillage technologique</a> et permet de faire évoluer les outils d’observabilité sans remettre en cause l’instrumentation applicative existante.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Observer ses applications avec Elastic sur Clever Cloud</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Sur Clever Cloud, <a href="https://www.clever.cloud/fr/product/elasticsearch/">Elasticsearch est proposé sous forme d’add-on managé</a>. Les applications peuvent y envoyer leurs logs via des drains Elasticsearch, ce qui permet de centraliser automatiquement les logs applicatifs. Plusieurs briques peuvent ensuite être activées selon les besoins :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>un Elasticsearch administré ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Kibana</strong> pour l’exploration et la visualisation ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Elastic APM</strong> pour l’analyse des performances applicatives.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Cette approche permet de centraliser les logs applicatifs, de collecter des métriques pertinentes et de tracer les requêtes sans avoir à gérer l’infrastructure sous-jacente. L’objectif n’est pas de multiplier les outils, mais de fournir une base d’observabilité cohérente, intégrée au cycle de vie des applications.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/fr/product/elasticsearch/"><strong>Découvrez Elasticsearch pour monitorer vos apps sur Clever Cloud</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’observabilité ne se résume pas à empiler des outils de monitoring. Elle repose sur la capacité à corréler logs, métriques et traces pour comprendre des systèmes de plus en plus complexes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Grâce à ses capacités d’indexation, de recherche et d’analyse, Elasticsearch constitue un socle technique solide pour cette approche. Associé à des standards ouverts et à des interfaces comme Kibana, il permet de passer d’une vision fragmentée à une compréhension globale du comportement applicatif.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans un environnement cloud moderne, cette corrélation n’est plus un luxe. C’est une condition nécessaire pour exploiter la production de manière fiable.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Identity Access Management : pilier de la sécurité et conformité</title>
		<link>https://www.clever.cloud/fr/blog/entreprise/2026/02/09/identity-access-management-securite/</link>
		
		<dc:creator><![CDATA[Carine Guillemet]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 14:11:56 +0000</pubDate>
				<category><![CDATA[Entreprise]]></category>
		<category><![CDATA[Engineering]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=23404</guid>

					<description><![CDATA[<p><img width="1600" height="710" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 11 clever cloud banniere blog iam fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr.png 1600w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-1368x607.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>L’Identity Access Management, ou IAM, est aujourd’hui l’un des fondements de la sécurité et de la gouvernance des systèmes d’information. Derrière ce terme se joue une réalité très concrète : la capacité d’une organisation à contrôler précisément qui accède à quoi, à quel moment, et dans quelles conditions.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chez Clever Cloud, ces problématiques sont abordées depuis un angle résolument opérationnel. En tant que fournisseur européen de services cloud managés, Clever Cloud accompagne depuis plus de dix ans des organisations publiques et privées confrontées à des enjeux forts de sécurité, de conformité, de maîtrise des coûts et de gestion des compétences. L’offre <strong>Keycloak as a Service</strong> s’inscrit directement dans cette expérience de terrain.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Identity Access Management : une réalité opérationnelle avant d’être un concept</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un système d’Identity Access Management ne se limite pas à l’authentification des utilisateurs. Il structure l’ensemble des accès aux applications, aux API et aux données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Concrètement, un IAM efficace permet de :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>identifier de manière fiable les utilisateurs et les services ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>appliquer des règles d’accès cohérentes et auditables ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>centraliser l’authentification et les autorisations ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>tracer les accès pour répondre aux exigences de sécurité et de conformité.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Dans les environnements modernes, où coexistent applications internes, services cloud, partenaires et clients, l’IAM devient rapidement un point de passage obligé. Toute faiblesse à ce niveau a des conséquences immédiates, tant sur la sécurité que sur la continuité de service.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Sécurité, conformité, coûts : pourquoi l’IAM est devenu stratégique</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les retours d’expérience sont clairs : une part significative des incidents de sécurité trouve son origine dans des problèmes d’identités ou de droits mal configurés. Comptes dormants, permissions excessives, absence de traçabilité : autant de situations courantes lorsque la gestion des accès est dispersée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Sur le plan réglementaire, les organisations doivent démontrer leur capacité à contrôler et à justifier les accès aux données. RGPD, NIS2 ou encore les futures obligations liées à l’IA imposent une gouvernance rigoureuse des identités.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>À cela s’ajoutent des enjeux très concrets de gestion des compétences et de budget. Exploiter une solution IAM en interne suppose des équipes formées, disponibles et capables de suivre l’évolution rapide des standards de sécurité. À l’inverse, certaines offres propriétaires peuvent entraîner une dépendance forte et des modèles tarifaires difficiles à anticiper.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L’IAM est donc devenu un sujet de direction, autant qu’un sujet technique.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Keycloak : un standard open source éprouvé</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Keycloak s’est imposé comme l’une des solutions open source de référence en matière d’Identity Access Management. Utilisé à grande échelle par des entreprises, des administrations et des éditeurs de logiciels, il repose sur des standards ouverts largement adoptés.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Keycloak couvre notamment :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>le Single Sign-On (SSO) ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la fédération d’identités avec des annuaires existants ou des fournisseurs externes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l’authentification multi-facteurs ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la gestion fine des rôles et des permissions ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l’intégration native avec OAuth2, OpenID Connect et SAML.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Son caractère open source permet une transparence complète sur les mécanismes de sécurité et évite l’enfermement technologique. C’est un point déterminant pour les organisations qui souhaitent garder la maîtrise de leur IAM sur le long terme.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Les limites d’un Keycloak auto‑hébergé</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans la pratique, déployer Keycloak n’est qu’une première étape. Son exploitation dans des conditions professionnelles pose rapidement des questions de fond :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>haute disponibilité et résilience ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>mises à jour régulières et correctifs de sécurité ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>sauvegardes et restauration ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>supervision et gestion des incidents ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>sécurisation de l’infrastructure sous-jacente.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Ces sujets mobilisent des compétences spécifiques et du temps opérationnel. Pour de nombreuses équipes, ils deviennent un frein, voire un risque.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Keycloak as a Service par Clever Cloud : l’expertise mise au service de l’IAM</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Avec <strong><a href="https://www.clever.cloud/product/managed-keycloak-as-a-service/" type="link" id="https://www.clever.cloud/product/managed-keycloak-as-a-service/">Keycloak as a Service</a></strong>, Clever Cloud propose une approche issue de son expérience d’opérateur cloud managé. La solution repose sur Keycloak, sans modification propriétaire, et bénéficie d’un environnement d’hébergement conçu pour des usages critiques.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Clever Cloud assure l’ensemble des aspects opérationnels : hébergement, mises à jour, supervision, sauvegardes et disponibilité. Les équipes clientes gardent la main sur la configuration fonctionnelle, les règles d’accès et les intégrations applicatives.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette répartition claire des responsabilités permet de sécuriser les usages tout en maîtrisant les coûts et les compétences mobilisées.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/developers/doc/addons/keycloak/">Lire la documentation de Keycloak</a></div>
<!-- /wp:button -->

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/fr/contact/">Contactez-nous pour parler de Keycloak</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Hébergement européen et confiance numérique</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les données d’identités font partie des données les plus sensibles d’un système d’information. Leur hébergement et leur traitement ne peuvent être laissés au hasard.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Keycloak as a Service est opéré sur des infrastructures européennes, dans un cadre conforme aux exigences réglementaires applicables. Cette approche garantit une meilleure maîtrise des données, une transparence accrue et une capacité d’audit essentielle pour les organisations soumises à des contraintes fortes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L’open source joue ici un rôle central : il permet de comprendre, de vérifier et de faire évoluer les mécanismes de sécurité, sans dépendre d’une boîte noire technologique.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Une brique IAM adaptée aux architectures modernes</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’offre Keycloak as a Service s’intègre naturellement dans des architectures cloud natives, qu’il s’agisse d’applications web, de microservices ou d’API.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elle permet d’unifier la gestion des accès entre des applications hétérogènes, de simplifier l’expérience utilisateur via le SSO et de renforcer la cohérence globale du système d’information.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour les équipes techniques comme pour les décideurs, cela se traduit par une meilleure lisibilité, une réduction des risques et une gouvernance des accès plus robuste.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une démonstration en live est prévue le 26 février à 13 sur <a href="https://www.twitch.tv/clevercloud?lang=fr" type="link" id="https://www.twitch.tv/clevercloud?lang=fr">Twitch</a> et <a href="https://www.youtube.com/@Clevercloud-platform/streams" type="link" id="https://www.youtube.com/@Clevercloud-platform/streams">Youtube</a>, animée par Horacio Gonzalez et Mathieu Passenaud de <a href="https://please-open.it" type="link" id="https://please-open.it">Please Open It</a>. </p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Questions fréquentes autour de l’Identity Access Management</strong></h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>À quoi sert concrètement une solution d’Identity Access Management ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une solution d’Identity Access Management permet de centraliser et de sécuriser l’accès aux applications, aux services et aux données. Elle garantit que chaque utilisateur ou service dispose uniquement des droits nécessaires, tout en assurant une traçabilité complète des accès. L’IAM est à la fois un outil de sécurité, de conformité et de gouvernance du système d’information.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Quelle est la différence entre IAM et simple authentification ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’authentification ne répond qu’à une partie du problème : vérifier l’identité d’un utilisateur. L’Identity Access Management va plus loin en gérant les autorisations, les rôles, la fédération d’identités, le cycle de vie des comptes et l’audit des accès. C’est cette vision globale qui permet de sécuriser des environnements complexes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Pourquoi choisir une solution IAM open source comme Keycloak ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une solution open source comme Keycloak repose sur des standards ouverts et transparents. Elle permet d’éviter l’enfermement propriétaire, de mieux comprendre les mécanismes de sécurité et de conserver une capacité d’évolution sur le long terme. C’est un choix particulièrement pertinent pour les organisations soucieuses de maîtrise technologique et de conformité.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Keycloak est-il adapté à des environnements d’entreprise complexes ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Oui. Keycloak est largement utilisé dans des contextes d’entreprise, y compris pour des architectures distribuées et multi-applications. Il s’intègre avec les annuaires existants, supporte l’authentification forte et permet une gestion fine des rôles et des permissions.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Pourquoi opter pour un Keycloak managé plutôt qu’auto-hébergé ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un Keycloak managé permet de bénéficier de la solution sans en assumer la complexité opérationnelle. Hébergement, mises à jour, sécurité, disponibilité et sauvegardes sont pris en charge par l’opérateur. Les équipes peuvent ainsi se concentrer sur les usages, la configuration fonctionnelle et les intégrations applicatives.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Où sont hébergées les données d’identités avec Keycloak as a Service ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Avec Keycloak as a Service, les données d’identités sont hébergées sur des infrastructures françaises opérées par Clever Cloud. Cela assure le respect des exigences réglementaires et renforce la maîtrise des données sensibles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1600" height="710" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 11 clever cloud banniere blog iam fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr.png 1600w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-1536x682.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-11-clever-cloud-banniere-blog-iam-fr-1368x607.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>L’Identity Access Management, ou IAM, est aujourd’hui l’un des fondements de la sécurité et de la gouvernance des systèmes d’information. Derrière ce terme se joue une réalité très concrète : la capacité d’une organisation à contrôler précisément qui accède à quoi, à quel moment, et dans quelles conditions.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chez Clever Cloud, ces problématiques sont abordées depuis un angle résolument opérationnel. En tant que fournisseur européen de services cloud managés, Clever Cloud accompagne depuis plus de dix ans des organisations publiques et privées confrontées à des enjeux forts de sécurité, de conformité, de maîtrise des coûts et de gestion des compétences. L’offre <strong>Keycloak as a Service</strong> s’inscrit directement dans cette expérience de terrain.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Identity Access Management : une réalité opérationnelle avant d’être un concept</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un système d’Identity Access Management ne se limite pas à l’authentification des utilisateurs. Il structure l’ensemble des accès aux applications, aux API et aux données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Concrètement, un IAM efficace permet de :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>identifier de manière fiable les utilisateurs et les services ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>appliquer des règles d’accès cohérentes et auditables ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>centraliser l’authentification et les autorisations ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>tracer les accès pour répondre aux exigences de sécurité et de conformité.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Dans les environnements modernes, où coexistent applications internes, services cloud, partenaires et clients, l’IAM devient rapidement un point de passage obligé. Toute faiblesse à ce niveau a des conséquences immédiates, tant sur la sécurité que sur la continuité de service.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Sécurité, conformité, coûts : pourquoi l’IAM est devenu stratégique</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les retours d’expérience sont clairs : une part significative des incidents de sécurité trouve son origine dans des problèmes d’identités ou de droits mal configurés. Comptes dormants, permissions excessives, absence de traçabilité : autant de situations courantes lorsque la gestion des accès est dispersée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Sur le plan réglementaire, les organisations doivent démontrer leur capacité à contrôler et à justifier les accès aux données. RGPD, NIS2 ou encore les futures obligations liées à l’IA imposent une gouvernance rigoureuse des identités.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>À cela s’ajoutent des enjeux très concrets de gestion des compétences et de budget. Exploiter une solution IAM en interne suppose des équipes formées, disponibles et capables de suivre l’évolution rapide des standards de sécurité. À l’inverse, certaines offres propriétaires peuvent entraîner une dépendance forte et des modèles tarifaires difficiles à anticiper.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L’IAM est donc devenu un sujet de direction, autant qu’un sujet technique.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Keycloak : un standard open source éprouvé</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Keycloak s’est imposé comme l’une des solutions open source de référence en matière d’Identity Access Management. Utilisé à grande échelle par des entreprises, des administrations et des éditeurs de logiciels, il repose sur des standards ouverts largement adoptés.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Keycloak couvre notamment :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>le Single Sign-On (SSO) ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la fédération d’identités avec des annuaires existants ou des fournisseurs externes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l’authentification multi-facteurs ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la gestion fine des rôles et des permissions ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l’intégration native avec OAuth2, OpenID Connect et SAML.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Son caractère open source permet une transparence complète sur les mécanismes de sécurité et évite l’enfermement technologique. C’est un point déterminant pour les organisations qui souhaitent garder la maîtrise de leur IAM sur le long terme.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Les limites d’un Keycloak auto‑hébergé</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dans la pratique, déployer Keycloak n’est qu’une première étape. Son exploitation dans des conditions professionnelles pose rapidement des questions de fond :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>haute disponibilité et résilience ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>mises à jour régulières et correctifs de sécurité ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>sauvegardes et restauration ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>supervision et gestion des incidents ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>sécurisation de l’infrastructure sous-jacente.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Ces sujets mobilisent des compétences spécifiques et du temps opérationnel. Pour de nombreuses équipes, ils deviennent un frein, voire un risque.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Keycloak as a Service par Clever Cloud : l’expertise mise au service de l’IAM</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Avec <strong><a href="https://www.clever.cloud/product/managed-keycloak-as-a-service/" type="link" id="https://www.clever.cloud/product/managed-keycloak-as-a-service/">Keycloak as a Service</a></strong>, Clever Cloud propose une approche issue de son expérience d’opérateur cloud managé. La solution repose sur Keycloak, sans modification propriétaire, et bénéficie d’un environnement d’hébergement conçu pour des usages critiques.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Clever Cloud assure l’ensemble des aspects opérationnels : hébergement, mises à jour, supervision, sauvegardes et disponibilité. Les équipes clientes gardent la main sur la configuration fonctionnelle, les règles d’accès et les intégrations applicatives.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Cette répartition claire des responsabilités permet de sécuriser les usages tout en maîtrisant les coûts et les compétences mobilisées.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/developers/doc/addons/keycloak/">Lire la documentation de Keycloak</a></div>
<!-- /wp:button -->

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://www.clever.cloud/fr/contact/">Contactez-nous pour parler de Keycloak</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Hébergement européen et confiance numérique</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Les données d’identités font partie des données les plus sensibles d’un système d’information. Leur hébergement et leur traitement ne peuvent être laissés au hasard.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Keycloak as a Service est opéré sur des infrastructures européennes, dans un cadre conforme aux exigences réglementaires applicables. Cette approche garantit une meilleure maîtrise des données, une transparence accrue et une capacité d’audit essentielle pour les organisations soumises à des contraintes fortes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L’open source joue ici un rôle central : il permet de comprendre, de vérifier et de faire évoluer les mécanismes de sécurité, sans dépendre d’une boîte noire technologique.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Une brique IAM adaptée aux architectures modernes</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’offre Keycloak as a Service s’intègre naturellement dans des architectures cloud natives, qu’il s’agisse d’applications web, de microservices ou d’API.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Elle permet d’unifier la gestion des accès entre des applications hétérogènes, de simplifier l’expérience utilisateur via le SSO et de renforcer la cohérence globale du système d’information.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Pour les équipes techniques comme pour les décideurs, cela se traduit par une meilleure lisibilité, une réduction des risques et une gouvernance des accès plus robuste.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une démonstration en live est prévue le 26 février à 13 sur <a href="https://www.twitch.tv/clevercloud?lang=fr" type="link" id="https://www.twitch.tv/clevercloud?lang=fr">Twitch</a> et <a href="https://www.youtube.com/@Clevercloud-platform/streams" type="link" id="https://www.youtube.com/@Clevercloud-platform/streams">Youtube</a>, animée par Horacio Gonzalez et Mathieu Passenaud de <a href="https://please-open.it" type="link" id="https://please-open.it">Please Open It</a>. </p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>Questions fréquentes autour de l’Identity Access Management</strong></h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>À quoi sert concrètement une solution d’Identity Access Management ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une solution d’Identity Access Management permet de centraliser et de sécuriser l’accès aux applications, aux services et aux données. Elle garantit que chaque utilisateur ou service dispose uniquement des droits nécessaires, tout en assurant une traçabilité complète des accès. L’IAM est à la fois un outil de sécurité, de conformité et de gouvernance du système d’information.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Quelle est la différence entre IAM et simple authentification ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>L’authentification ne répond qu’à une partie du problème : vérifier l’identité d’un utilisateur. L’Identity Access Management va plus loin en gérant les autorisations, les rôles, la fédération d’identités, le cycle de vie des comptes et l’audit des accès. C’est cette vision globale qui permet de sécuriser des environnements complexes.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Pourquoi choisir une solution IAM open source comme Keycloak ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une solution open source comme Keycloak repose sur des standards ouverts et transparents. Elle permet d’éviter l’enfermement propriétaire, de mieux comprendre les mécanismes de sécurité et de conserver une capacité d’évolution sur le long terme. C’est un choix particulièrement pertinent pour les organisations soucieuses de maîtrise technologique et de conformité.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Keycloak est-il adapté à des environnements d’entreprise complexes ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Oui. Keycloak est largement utilisé dans des contextes d’entreprise, y compris pour des architectures distribuées et multi-applications. Il s’intègre avec les annuaires existants, supporte l’authentification forte et permet une gestion fine des rôles et des permissions.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Pourquoi opter pour un Keycloak managé plutôt qu’auto-hébergé ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un Keycloak managé permet de bénéficier de la solution sans en assumer la complexité opérationnelle. Hébergement, mises à jour, sécurité, disponibilité et sauvegardes sont pris en charge par l’opérateur. Les équipes peuvent ainsi se concentrer sur les usages, la configuration fonctionnelle et les intégrations applicatives.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><strong>Où sont hébergées les données d’identités avec Keycloak as a Service ?</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Avec Keycloak as a Service, les données d’identités sont hébergées sur des infrastructures françaises opérées par Clever Cloud. Cela assure le respect des exigences réglementaires et renforce la maîtrise des données sensibles.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>8 solutions IAM open source pour structurer la gestion des accès</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2025/11/19/meilleurs-iam-open-source/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Wed, 19 Nov 2025 12:55:38 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<guid isPermaLink="false">https://www.clever.cloud/?p=23496</guid>

					<description><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 19 clever cloud banniere blog top meilleurs iam open source fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr.png 2500w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p>Dans des architectures distribuées, hybrides ou <a href="https://www.clever.cloud/fr/blog/entreprise/2025/05/29/quest-ce-que-le-cloud-natif/">cloud native</a>, la gestion des accès ne relève plus d’un simple paramétrage applicatif : elle devient un sujet d’architecture et de continuité d’activité. Les solutions IAM open source s’appuient sur des standards ouverts comme OpenID Connect, OAuth 2.0 ou SAML et permettent de conserver une maîtrise technique et une capacité d’audit du fonctionnement interne.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/fr/iam-et-gouvernance/">Choisir un IAM open source</a> ne se limite pas à comparer des fonctionnalités. Plusieurs dimensions structurent réellement la décision : compatibilité avec les standards, capacité à centraliser l’authentification et les autorisations, maturité de l’écosystème, intégration dans des <a href="https://www.clever.cloud/fr/product/kubernetes/">environnements Kubernetes</a> ou hybrides, robustesse du modèle de gestion des rôles. À cela s’ajoute une question souvent sous-estimée : la manière dont la solution sera exploitée dans la durée. Le choix technologique et le modèle d’exploitation sont indissociables.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">IAM open source : rôle architectural et contraintes d’exploitation</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un <a href="https://www.clever.cloud/fr/blog/entreprise/2026/02/09/identity-access-management-securite/">IAM</a> centralise l’authentification, l’autorisation, la fédération d’identités, la gestion des rôles et la traçabilité des accès. Dans une architecture moderne, il devient un point de contrôle unique dont dépendent les applications connectées. Une indisponibilité de l’IAM peut empêcher l’accès à l’ensemble des services qui en dépendent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L’<a href="https://www.clever.cloud/fr/open-source/">open source</a> apporte une transparence du fonctionnement interne et une indépendance vis-à-vis d’un éditeur propriétaire. Il permet de s’appuyer sur des standards éprouvés et largement documentés.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En revanche, lorsqu’une organisation exploite elle-même sa solution IAM, elle assume la gestion des mises à jour de sécurité, la rotation des certificats, la supervision du service, la sauvegarde des données, la mise en place de la haute disponibilité et la gestion des incidents. Cette responsabilité technique est structurelle. Elle découle du rôle critique de l’IAM dans le système d’information.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La question centrale devient donc organisationnelle : qui prend en charge cette exploitation dans la durée ?</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Les 8 meilleures solutions IAM open source</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">1. Keycloak : un standard open source largement adopté</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.keycloak.org/">Keycloak</a> est aujourd’hui l’un des IAM open source les plus déployés. Il repose sur OpenID Connect, OAuth 2.0 et SAML. Il permet de centraliser l’authentification et la gestion des autorisations pour des applications hétérogènes, qu’elles soient on-premises, cloud ou hybrides. Il prend en charge le Single Sign-On (SSO), la fédération avec LDAP ou Active Directory, l’authentification multi-facteurs et des services d’autorisation avancés. Son adoption importante en fait un socle technique de référence pour structurer une politique d’accès cohérente.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Standard open source mature ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Large adoption en entreprise ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration LDAP / Active Directory ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support SSO et MFA ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Fréquemment déployé dans des environnements conteneurisés, notamment Kubernetes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Gestion fine des rôles et des permissions.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Exploitation complexe en production ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Mises à jour sensibles nécessitant une expertise spécifique ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Supervision et haute disponibilité à structurer par l’équipe opérationnelle ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Compétences spécifiques nécessaires.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">2. Authentik : IAM open source orienté modernité et flexibilité</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://goauthentik.io/">Authentik</a> est une solution IAM open source plus récente, orientée simplicité de déploiement et modernité d’interface. Elle propose une approche centrée sur l’expérience administrateur et la flexibilité des politiques d’accès. Elle supporte OIDC et SAML, et peut agir comme reverse proxy d’authentification. Son architecture est adaptée aux environnements conteneurisés et aux déploiements via Docker.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Interface d’administration moderne ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support OIDC et SAML ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Propose un mécanisme de proxy provider permettant de sécuriser l’accès aux applications exposées via reverse proxy ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Déploiement Docker simplifié ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Policies déclaratives.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Écosystème plus récent, avec moins de retours d’expérience en production à grande échelle ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration LDAP / Active Directory moins mature, ce qui peut limiter l'adoption dans des SI d’entreprise existants ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support multi-tenant limité : la gestion de plusieurs organisations clientes isolées dans une même reste parti</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins documenté sur des architectures fortement distribuées.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">3. Authelia : couche d’authentification légère pour environnements contrôlés</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.authelia.com/">Authelia</a> est une solution d’authentification open source principalement utilisée comme couche d’accès sécurisée devant des applications web. Elle s’intègre généralement à des reverse proxies comme Nginx ou Traefik. Elle vise les environnements recherchant une authentification centralisée avec MFA, sans mettre en place un IAM complet. Elle convient particulièrement aux infrastructures internes ou auto-hébergées.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Solution légère ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>MFA intégré ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Configuration déclarative ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration simple avec Nginx / Traefik.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Pas de gestion complète du cycle de vie des identités ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Pas conçu pour des architectures multi-tenant complexes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins adapté aux environnements hybrides étendus.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">4. Gluu / Janssen : standards avancés et conformité renforcée</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://gluu.org/">Gluu</a> et le projet Janssen proposent une solution IAM orientée standards avancés et conformité. Ils sont souvent utilisés dans des environnements nécessitant des protocoles spécifiques ou des exigences fortes en matière d’authentification. L’architecture est modulaire et supporte des mécanismes comme FIDO2 ou UMA. Cette richesse fonctionnelle s’accompagne d’une complexité d’intégration importante.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Support FIDO2 ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Architecture modulaire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Fonctionnalités orientées conformité ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Gestion avancée des autorisations.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Complexité élevée ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Installation lourde ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Courbe d’apprentissage importante.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">5. WSO2 Identity Server : IAM complet dans un écosystème intégré</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://wso2.com/identity-server">WSO2 Identity Server</a> est une solution IAM complète intégrée dans un écosystème plus large de services d’intégration et d’API management. Elle cible principalement des architectures d’entreprise complexes. Elle propose une gestion avancée des politiques d’accès, des workflows d’identité et des mécanismes de fédération étendus.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Gestion avancée des politiques ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support multi-protocoles ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégrations étendues ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Fonctionnalités enterprise.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Stack lourde ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Courbe d’apprentissage élevée ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Configuration importante ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Complexité opérationnelle.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">6. FusionAuth (Community) : intégration rapide et API-first</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://fusionauth.io/">FusionAuth</a> propose une édition Community gratuite distribuée sous licence FusionAuth, contrairement aux autres solutions de cette liste qui sont open source. Le projet adopte un modèle distinct des licences open source classiques de type OSI. Il cible notamment les éditeurs SaaS et les équipes souhaitant intégrer rapidement une brique d’authentification. La version Community permet un déploiement autonome, avec une interface claire et des mécanismes multi-tenant.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Approche API-first ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Interface claire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Multi-tenant ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Installation rapide.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Cœur applicatif propriétaire et source-fermée : pas d'audit possible du code principal ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Le modèle de licence distingue l’édition Community des éditions commerciales, ce qui peut limiter l’accès à certaines fonctionnalités avancées selon le périmètre d’usage ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins répandu dans des environnements réglementés complexes.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">7. Ory : IAM cloud-native modulaire</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.ory.com/">Ory</a> est une suite de composants IAM cloud-native. Elle adopte une architecture microservices, avec des briques distinctes pour l’identité, l’authentification et les autorisations. Cette approche headless s’intègre bien dans des environnements Kubernetes et DevOps avancés, mais nécessite l’assemblage de plusieurs composants.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Architecture modulaire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Compatible Kubernetes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Approche headless ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration DevOps forte.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Assemblage nécessaire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Complexité d’intégration ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Pas de solution monolithique prête à l’emploi.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">8. Zitadel : IAM multi-tenant orienté SaaS</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://zitadel.com/">Zitadel</a> est un IAM cloud-native orienté SaaS et multi-tenant. Il adopte une approche OIDC-first et cible les architectures modernes nécessitant isolation et segmentation des clients. Sa conception est adaptée aux plateformes multi-clients et aux environnements distribués.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>OIDC-first ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Multi-tenant natif ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Interface moderne ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Adapté aux architectures SaaS.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Projet distribué sous licence AGPL v3 depuis la version 3 (mars 2025) : l'usage standard en production sans modification du code n'est pas affecté, mais toute modification du code source (backend Go, schéma de base de données) ou intégration étroite dans un produit tiers oblige à publier le code sous AGPL ou à souscrire une licence commerciale ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Écosystème plus récent que Keycloak ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins répandu que Keycloak en environnements d’entreprise établis.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Quel est le meilleur IAM open source ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le meilleur IAM open source dépend du contexte technique, du niveau de maturité opérationnelle et du modèle d’exploitation retenu. Keycloak reste aujourd’hui la référence open source mature et standardisée. La différenciation porte ensuite sur la manière dont il est exploité. Le choix ne se limite donc pas au logiciel. Il concerne la capacité à maintenir le service dans le temps, à absorber les mises à jour et à garantir la disponibilité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le tableau ci-dessous compare les principales caractéristiques techniques des solutions open source analysées. Il permet d’identifier les différences de standards supportés, d’architecture et de complexité d’exploitation.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<!-- IAM comparison table - Full width -->
<div class="cc-table-full">
  <table class="cc-iam-table">
    <thead>
      <tr>
        <th scope="col">Solution</th>
        <th scope="col">Licence</th>
        <th scope="col">OIDC</th>
        <th scope="col">OAuth2</th>
        <th scope="col">SAML</th>
        <th scope="col">FIDO2</th>
        <th scope="col">Multi-tenant</th>
        <th scope="col">Kubernetes</th>
        <th scope="col">Complexité</th>
        <th scope="col">Managé chez Clever Cloud</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">Keycloak</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Élevée</td><td>✓</td>
      </tr>
      <tr>
        <th scope="row">Authentik</th>
        <td>MIT</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>Partiel</td><td>✓</td>
        <td>Moyenne</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">Authelia</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✗</td><td>✗</td><td>✗</td><td>✓</td>
        <td>Faible</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">Gluu / Janssen</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Très élevée</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">WSO2 IS</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Élevée</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">FusionAuth</th>
        <td>Propriétaire</td><td>✓</td><td>✓</td><td>✗</td><td>✗</td><td>✓</td><td>✓</td>
        <td>Faible</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">Ory</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>Partiel</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Élevée</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">ZITADEL</th>
        <td>AGPL v3</td><td>✓</td><td>✓</td><td>✗</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Moyenne</td><td>✗</td>
      </tr>
    </tbody>
  </table>
</div>

<style>
  .cc-table-full {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 2vw;
  }

  .cc-iam-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
    line-height: 1.3;
  }

  .cc-iam-table th,
  .cc-iam-table td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(0,0,0,.08);
    text-align: center;
  }

  .cc-iam-table th[scope="row"] {
    text-align: left;
    font-weight: 600;
  }

  .cc-iam-table thead th {
    font-weight: 600;
    border-bottom: 1px solid rgba(0,0,0,.18);
    background: #fff;
  }

  .cc-iam-table tbody tr:nth-child(even) {
    background: rgba(0,0,0,.03);
  }

  @media (max-width: 1024px) {
    .cc-table-full {
      overflow-x: auto;
    }
    .cc-iam-table {
      min-width: 920px;
    }
  }
</style>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exploiter un IAM open source : auto-opéré ou managé ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une fois la solution IAM choisie, une question structurante demeure : qui prend en charge son exploitation ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un déploiement auto-opéré implique la gestion des mises à jour, la supervision, la haute disponibilité, la gestion des certificats et la résilience. Un modèle managé transfère cette responsabilité à un opérateur, tout en conservant la gouvernance fonctionnelle côté organisation. Il implique néanmoins une dépendance au fournisseur pour l’exploitation de la plateforme et un coût récurrent associé au service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans le cas de Keycloak, Clever Cloud propose une version managée reposant sur le socle open source. Les mises à jour de sécurité, la supervision et la disponibilité sont prises en charge par la plateforme, tandis que l’organisation conserve l’accès à l’interface d’administration standard.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://clever.cloud/fr/product/keycloak-as-a-service/"><strong>Découvrez le Keycloak as a Service de Clever Cloud</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un IAM open source structure durablement la gestion des accès et renforce la gouvernance des identités. Il constitue une brique critique de sécurité et de conformité.Dans ce paysage, Keycloak offre une base solide et standardisée. Un modèle managé permet d’aligner ouverture technologique, maîtrise des risques et exploitation industrielle. Clever Cloud s’inscrit dans cette approche : maintenir le standard open source, tout en en assurant l’exploitation dans un environnement hébergé en Europe et opéré dans un cadre <a href="https://www.clever.cloud/fr/iso-27001-la-securite-par-defaut-chez-clever-cloud/">certifié ISO 27001</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="2500" height="1109" src="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="2026 02 19 clever cloud banniere blog top meilleurs iam open source fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr.png 2500w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-300x133.png 300w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-1024x454.png 1024w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-768x341.png 768w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-1536x681.png 1536w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-2048x908.png 2048w, https://cdn.clever-cloud.com/uploads/2026/02/2026-02-19-clever-cloud-banniere-blog-top-meilleurs-iam-open-source-fr-1368x607.png 1368w" sizes="auto, (max-width: 2500px) 100vw, 2500px" /></p><!-- wp:paragraph -->
<p>Dans des architectures distribuées, hybrides ou <a href="https://www.clever.cloud/fr/blog/entreprise/2025/05/29/quest-ce-que-le-cloud-natif/">cloud native</a>, la gestion des accès ne relève plus d’un simple paramétrage applicatif : elle devient un sujet d’architecture et de continuité d’activité. Les solutions IAM open source s’appuient sur des standards ouverts comme OpenID Connect, OAuth 2.0 ou SAML et permettent de conserver une maîtrise technique et une capacité d’audit du fonctionnement interne.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://www.clever.cloud/fr/iam-et-gouvernance/">Choisir un IAM open source</a> ne se limite pas à comparer des fonctionnalités. Plusieurs dimensions structurent réellement la décision : compatibilité avec les standards, capacité à centraliser l’authentification et les autorisations, maturité de l’écosystème, intégration dans des <a href="https://www.clever.cloud/fr/product/kubernetes/">environnements Kubernetes</a> ou hybrides, robustesse du modèle de gestion des rôles. À cela s’ajoute une question souvent sous-estimée : la manière dont la solution sera exploitée dans la durée. Le choix technologique et le modèle d’exploitation sont indissociables.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">IAM open source : rôle architectural et contraintes d’exploitation</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un <a href="https://www.clever.cloud/fr/blog/entreprise/2026/02/09/identity-access-management-securite/">IAM</a> centralise l’authentification, l’autorisation, la fédération d’identités, la gestion des rôles et la traçabilité des accès. Dans une architecture moderne, il devient un point de contrôle unique dont dépendent les applications connectées. Une indisponibilité de l’IAM peut empêcher l’accès à l’ensemble des services qui en dépendent.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L’<a href="https://www.clever.cloud/fr/open-source/">open source</a> apporte une transparence du fonctionnement interne et une indépendance vis-à-vis d’un éditeur propriétaire. Il permet de s’appuyer sur des standards éprouvés et largement documentés.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>En revanche, lorsqu’une organisation exploite elle-même sa solution IAM, elle assume la gestion des mises à jour de sécurité, la rotation des certificats, la supervision du service, la sauvegarde des données, la mise en place de la haute disponibilité et la gestion des incidents. Cette responsabilité technique est structurelle. Elle découle du rôle critique de l’IAM dans le système d’information.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La question centrale devient donc organisationnelle : qui prend en charge cette exploitation dans la durée ?</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Les 8 meilleures solutions IAM open source</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">1. Keycloak : un standard open source largement adopté</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.keycloak.org/">Keycloak</a> est aujourd’hui l’un des IAM open source les plus déployés. Il repose sur OpenID Connect, OAuth 2.0 et SAML. Il permet de centraliser l’authentification et la gestion des autorisations pour des applications hétérogènes, qu’elles soient on-premises, cloud ou hybrides. Il prend en charge le Single Sign-On (SSO), la fédération avec LDAP ou Active Directory, l’authentification multi-facteurs et des services d’autorisation avancés. Son adoption importante en fait un socle technique de référence pour structurer une politique d’accès cohérente.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Standard open source mature ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Large adoption en entreprise ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration LDAP / Active Directory ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support SSO et MFA ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Fréquemment déployé dans des environnements conteneurisés, notamment Kubernetes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Gestion fine des rôles et des permissions.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Exploitation complexe en production ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Mises à jour sensibles nécessitant une expertise spécifique ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Supervision et haute disponibilité à structurer par l’équipe opérationnelle ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Compétences spécifiques nécessaires.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">2. Authentik : IAM open source orienté modernité et flexibilité</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://goauthentik.io/">Authentik</a> est une solution IAM open source plus récente, orientée simplicité de déploiement et modernité d’interface. Elle propose une approche centrée sur l’expérience administrateur et la flexibilité des politiques d’accès. Elle supporte OIDC et SAML, et peut agir comme reverse proxy d’authentification. Son architecture est adaptée aux environnements conteneurisés et aux déploiements via Docker.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Interface d’administration moderne ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support OIDC et SAML ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Propose un mécanisme de proxy provider permettant de sécuriser l’accès aux applications exposées via reverse proxy ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Déploiement Docker simplifié ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Policies déclaratives.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Écosystème plus récent, avec moins de retours d’expérience en production à grande échelle ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration LDAP / Active Directory moins mature, ce qui peut limiter l'adoption dans des SI d’entreprise existants ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support multi-tenant limité : la gestion de plusieurs organisations clientes isolées dans une même reste parti</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins documenté sur des architectures fortement distribuées.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">3. Authelia : couche d’authentification légère pour environnements contrôlés</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.authelia.com/">Authelia</a> est une solution d’authentification open source principalement utilisée comme couche d’accès sécurisée devant des applications web. Elle s’intègre généralement à des reverse proxies comme Nginx ou Traefik. Elle vise les environnements recherchant une authentification centralisée avec MFA, sans mettre en place un IAM complet. Elle convient particulièrement aux infrastructures internes ou auto-hébergées.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Solution légère ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>MFA intégré ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Configuration déclarative ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration simple avec Nginx / Traefik.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Pas de gestion complète du cycle de vie des identités ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Pas conçu pour des architectures multi-tenant complexes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins adapté aux environnements hybrides étendus.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">4. Gluu / Janssen : standards avancés et conformité renforcée</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://gluu.org/">Gluu</a> et le projet Janssen proposent une solution IAM orientée standards avancés et conformité. Ils sont souvent utilisés dans des environnements nécessitant des protocoles spécifiques ou des exigences fortes en matière d’authentification. L’architecture est modulaire et supporte des mécanismes comme FIDO2 ou UMA. Cette richesse fonctionnelle s’accompagne d’une complexité d’intégration importante.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Support FIDO2 ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Architecture modulaire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Fonctionnalités orientées conformité ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Gestion avancée des autorisations.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Complexité élevée ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Installation lourde ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Courbe d’apprentissage importante.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">5. WSO2 Identity Server : IAM complet dans un écosystème intégré</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://wso2.com/identity-server">WSO2 Identity Server</a> est une solution IAM complète intégrée dans un écosystème plus large de services d’intégration et d’API management. Elle cible principalement des architectures d’entreprise complexes. Elle propose une gestion avancée des politiques d’accès, des workflows d’identité et des mécanismes de fédération étendus.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Gestion avancée des politiques ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Support multi-protocoles ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégrations étendues ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Fonctionnalités enterprise.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Stack lourde ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Courbe d’apprentissage élevée ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Configuration importante ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Complexité opérationnelle.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">6. FusionAuth (Community) : intégration rapide et API-first</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://fusionauth.io/">FusionAuth</a> propose une édition Community gratuite distribuée sous licence FusionAuth, contrairement aux autres solutions de cette liste qui sont open source. Le projet adopte un modèle distinct des licences open source classiques de type OSI. Il cible notamment les éditeurs SaaS et les équipes souhaitant intégrer rapidement une brique d’authentification. La version Community permet un déploiement autonome, avec une interface claire et des mécanismes multi-tenant.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Approche API-first ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Interface claire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Multi-tenant ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Installation rapide.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Cœur applicatif propriétaire et source-fermée : pas d'audit possible du code principal ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Le modèle de licence distingue l’édition Community des éditions commerciales, ce qui peut limiter l’accès à certaines fonctionnalités avancées selon le périmètre d’usage ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins répandu dans des environnements réglementés complexes.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">7. Ory : IAM cloud-native modulaire</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://www.ory.com/">Ory</a> est une suite de composants IAM cloud-native. Elle adopte une architecture microservices, avec des briques distinctes pour l’identité, l’authentification et les autorisations. Cette approche headless s’intègre bien dans des environnements Kubernetes et DevOps avancés, mais nécessite l’assemblage de plusieurs composants.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Architecture modulaire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Compatible Kubernetes ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Approche headless ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Intégration DevOps forte.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Assemblage nécessaire ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Complexité d’intégration ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Pas de solution monolithique prête à l’emploi.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">8. Zitadel : IAM multi-tenant orienté SaaS</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://zitadel.com/">Zitadel</a> est un IAM cloud-native orienté SaaS et multi-tenant. Il adopte une approche OIDC-first et cible les architectures modernes nécessitant isolation et segmentation des clients. Sa conception est adaptée aux plateformes multi-clients et aux environnements distribués.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Avantages</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>OIDC-first ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Multi-tenant natif ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Interface moderne ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Adapté aux architectures SaaS.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Limites</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Projet distribué sous licence AGPL v3 depuis la version 3 (mars 2025) : l'usage standard en production sans modification du code n'est pas affecté, mais toute modification du code source (backend Go, schéma de base de données) ou intégration étroite dans un produit tiers oblige à publier le code sous AGPL ou à souscrire une licence commerciale ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Écosystème plus récent que Keycloak ;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Moins répandu que Keycloak en environnements d’entreprise établis.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Quel est le meilleur IAM open source ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le meilleur IAM open source dépend du contexte technique, du niveau de maturité opérationnelle et du modèle d’exploitation retenu. Keycloak reste aujourd’hui la référence open source mature et standardisée. La différenciation porte ensuite sur la manière dont il est exploité. Le choix ne se limite donc pas au logiciel. Il concerne la capacité à maintenir le service dans le temps, à absorber les mises à jour et à garantir la disponibilité.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le tableau ci-dessous compare les principales caractéristiques techniques des solutions open source analysées. Il permet d’identifier les différences de standards supportés, d’architecture et de complexité d’exploitation.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:html -->
<!-- IAM comparison table - Full width -->
<div class="cc-table-full">
  <table class="cc-iam-table">
    <thead>
      <tr>
        <th scope="col">Solution</th>
        <th scope="col">Licence</th>
        <th scope="col">OIDC</th>
        <th scope="col">OAuth2</th>
        <th scope="col">SAML</th>
        <th scope="col">FIDO2</th>
        <th scope="col">Multi-tenant</th>
        <th scope="col">Kubernetes</th>
        <th scope="col">Complexité</th>
        <th scope="col">Managé chez Clever Cloud</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">Keycloak</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Élevée</td><td>✓</td>
      </tr>
      <tr>
        <th scope="row">Authentik</th>
        <td>MIT</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>Partiel</td><td>✓</td>
        <td>Moyenne</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">Authelia</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✗</td><td>✗</td><td>✗</td><td>✓</td>
        <td>Faible</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">Gluu / Janssen</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Très élevée</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">WSO2 IS</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Élevée</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">FusionAuth</th>
        <td>Propriétaire</td><td>✓</td><td>✓</td><td>✗</td><td>✗</td><td>✓</td><td>✓</td>
        <td>Faible</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">Ory</th>
        <td>Apache 2.0</td><td>✓</td><td>✓</td><td>Partiel</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Élevée</td><td>✗</td>
      </tr>
      <tr>
        <th scope="row">ZITADEL</th>
        <td>AGPL v3</td><td>✓</td><td>✓</td><td>✗</td><td>✓</td><td>✓</td><td>✓</td>
        <td>Moyenne</td><td>✗</td>
      </tr>
    </tbody>
  </table>
</div>

<style>
  .cc-table-full {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 2vw;
  }

  .cc-iam-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
    line-height: 1.3;
  }

  .cc-iam-table th,
  .cc-iam-table td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(0,0,0,.08);
    text-align: center;
  }

  .cc-iam-table th[scope="row"] {
    text-align: left;
    font-weight: 600;
  }

  .cc-iam-table thead th {
    font-weight: 600;
    border-bottom: 1px solid rgba(0,0,0,.18);
    background: #fff;
  }

  .cc-iam-table tbody tr:nth-child(even) {
    background: rgba(0,0,0,.03);
  }

  @media (max-width: 1024px) {
    .cc-table-full {
      overflow-x: auto;
    }
    .cc-iam-table {
      min-width: 920px;
    }
  }
</style>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exploiter un IAM open source : auto-opéré ou managé ?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Une fois la solution IAM choisie, une question structurante demeure : qui prend en charge son exploitation ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Un déploiement auto-opéré implique la gestion des mises à jour, la supervision, la haute disponibilité, la gestion des certificats et la résilience. Un modèle managé transfère cette responsabilité à un opérateur, tout en conservant la gouvernance fonctionnelle côté organisation. Il implique néanmoins une dépendance au fournisseur pour l’exploitation de la plateforme et un coût récurrent associé au service.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Dans le cas de Keycloak, Clever Cloud propose une version managée reposant sur le socle open source. Les mises à jour de sécurité, la supervision et la disponibilité sont prises en charge par la plateforme, tandis que l’organisation conserve l’accès à l’interface d’administration standard.</p>
<!-- /wp:paragraph -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://clever.cloud/fr/product/keycloak-as-a-service/"><strong>Découvrez le Keycloak as a Service de Clever Cloud</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:spacer {"height":"25px"} -->
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Un IAM open source structure durablement la gestion des accès et renforce la gouvernance des identités. Il constitue une brique critique de sécurité et de conformité.Dans ce paysage, Keycloak offre une base solide et standardisée. Un modèle managé permet d’aligner ouverture technologique, maîtrise des risques et exploitation industrielle. Clever Cloud s’inscrit dans cette approche : maintenir le standard open source, tout en en assurant l’exploitation dans un environnement hébergé en Europe et opéré dans un cadre <a href="https://www.clever.cloud/fr/iso-27001-la-securite-par-defaut-chez-clever-cloud/">certifié ISO 27001</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
