<?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>OVHcloud Blog</title>
	<atom:link href="https://blog.ovhcloud.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ovhcloud.com/</link>
	<description>Innovation for Freedom</description>
	<lastBuildDate>Fri, 22 May 2026 08:19:33 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.ovhcloud.com/wp-content/uploads/2019/07/cropped-cropped-nouveau-logo-ovh-rebranding-32x32.gif</url>
	<title>OVHcloud Blog</title>
	<link>https://blog.ovhcloud.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Les choix de conception qui déterminent la réussite ou l’échec d’une migration cloud : retours d’expérience</title>
		<link>https://blog.ovhcloud.com/choix-conception-reussite-migration-cloud/</link>
		
		<dc:creator><![CDATA[Olivier Javaux,&nbsp;Olivier Picquenot&nbsp;and&nbsp;Amarjit Toor]]></dc:creator>
		<pubDate>Thu, 21 May 2026 08:08:18 +0000</pubDate>
				<category><![CDATA[OVHcloud en Français]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Migration]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31895</guid>

					<description><![CDATA[Migrer vers le cloud est une étape stimulante, mais les décisions prises en amont conditionnent durablement la suite. La véritable pression se fait sentir à mesure que les usages augmentent et que les architectures sont soumises à des charges plus soutenues. Ce qui fonctionne lors de la migration initiale ne tient pas toujours lorsque les [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fchoix-conception-reussite-migration-cloud%2F&amp;action_name=Les%20choix%20de%20conception%20qui%20d%C3%A9terminent%20la%20r%C3%A9ussite%20ou%20l%E2%80%99%C3%A9chec%20d%E2%80%99une%20migration%20cloud%20%3A%20retours%20d%E2%80%99exp%C3%A9rience&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="572" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-1024x572.png" alt="" class="wp-image-31944" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-1024x572.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-300x168.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-768x429.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Migrer vers le cloud est une étape stimulante, mais les décisions prises en amont conditionnent durablement la suite.</p>



<p>La véritable pression se fait sentir à mesure que les usages augmentent et que les architectures sont soumises à des charges plus soutenues. Ce qui fonctionne lors de la migration initiale ne tient pas toujours lorsque les systèmes doivent évoluer à l’échelle de plusieurs régions, équipes et charges de travail.</p>



<p>Les ingénieurs des Professional Services et les Customer Success Managers d’OVHcloud mettent en lumière des décisions souvent sous-estimées, mais déterminantes pour la réussite des migrations et des déploiements dans le cloud public, en posant les bases d’une croissance à la fois évolutive et durable.</p>



<h2 class="wp-block-heading"><strong>Ce qui est négligé au départ, mais qui façonne l’évolutivité par la suite</strong></h2>



<p>Le succès à long terme d’un projet cloud se joue généralement au cours des six à douze premiers mois. C’est durant cette période que les choix d’infrastructure ont le plus d’impact et que la préparation opérationnelle devient critique. Souvent relégués au second plan lors d’une migration, le réseau, l’architecture régionale et les fondations opérationnelles s’imposent rapidement comme des éléments clés à mesure que les environnements se développent.</p>



<p>Les premiers déploiements peuvent fonctionner avec succès en utilisant des interfaces publiques et des configurations par défaut. Mais à mesure que les services se multiplient, le trafic interne augmente entre les API, les bases de données et les couches de traitement en arrière-plan. Sans un modèle de réseau privé, cette couche de communication peut introduire de la latence, exposer des données sensibles et entraîner, à terme, des refontes complexes.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>«&nbsp;La sécurité doit être la priorité. Un simple ’lift and shift’, sans conception préalable d’une landing zone sécurisée et évolutive, ne suffit pas. Il est essentiel de mettre en place dès le départ une infrastructure adaptée aux besoins futurs.&nbsp;» – Olivier Javaux, Professional Services, OVHcloud</em><em></em></p>
</blockquote>



<div class="wp-block-group custom-box is-layout-constrained wp-container-core-group-is-layout-946f663b wp-block-group-is-layout-constrained" style="border-width:1px;min-height:0px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><div class="wp-block-group__inner-container">
<h5 class="wp-block-heading"><strong>Quand une décision de conception réseau permet à la plateforme d’évoluer efficacement</strong></h5>



<p>Une plateforme e-commerce, en transition d’une architecture monolithique vers des microservices, faisait initialement transiter toutes ses communications backend via des adresses IP publiques.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>«&nbsp;Lors d’un pic de trafic de type Black Friday, la latence a été multipliée par trois. Non pas parce que les serveurs étaient lents, mais parce que tous les microservices internes communiquaient via des interfaces publiques.&nbsp;» – Amarjit Toor, Customer Success Manager, OVHcloud</p>
</blockquote>



<p>À la suite d’un atelier dédié à la conception réseau, le trafic backend a été redirigé vers un réseau privé isolé. Ce changement a profondément transformé la capacité de la plateforme à monter en charge. Les communications internes n’étaient plus en concurrence avec le trafic utilisateur. Résultat&nbsp;: des services capables d’évoluer de manière indépendante, une meilleure stabilité des performances, une sécurité renforcée et une résilience accrue du système.</p>
</div></div>



<h2 class="wp-block-heading"><strong>Construire la résilience au-delà du déploiement initial</strong><strong></strong></h2>



<p>La stratégie régionale obéit à la même logique. Le choix entre un déploiement en zone de disponibilité unique ou multiple influence directement la résilience, les mécanismes de bascule et la complexité opérationnelle. Revenir sur ces choix après le déploiement s’avère particulièrement complexe, surtout lorsque des dépendances de données et du trafic en production sont déjà en place. En intégrant dès le départ les perspectives de croissance, les exigences de disponibilité et les besoins de continuité d’activité, les organisations peuvent inscrire l’évolutivité et la durabilité au cœur même de la conception de leurs systèmes, et ainsi éviter des ajustements coûteux par la suite.</p>



<p>Les landing zones et les dispositifs opérationnels sont également trop souvent relégués au second plan, alors qu’ils jouent un rôle clé dans les opérations quotidiennes, la gestion des incidents et la conformité à mesure que les systèmes évoluent. L’un des enseignements majeurs réside dans un changement de posture&nbsp;: les équipes cloud doivent passer d’une logique centrée sur le déploiement de l’infrastructure à une approche intégrant dès le départ la visibilité, la gouvernance et le pilotage opérationnel. Les services managés et les plateformes standardisées accompagnent cette transition en réduisant la charge opérationnelle, tout en améliorant la supervision à mesure que les environnements gagnent en complexité.</p>



<p>La dimension humaine, enfin, ne doit pas être sous-estimée. Une intégration structurée, associée à des formations adaptées et à un alignement clair entre les parties prenantes opérationnelles, permet de limiter les incompréhensions et d’accélérer l’adoption. À l’inverse, lorsque la conduite du changement est négligée dès les premières phases, même des plateformes cloud techniquement solides peuvent être perçues comme risquées, freinant les déploiements et renforçant les résistances internes.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>«&nbsp;Une formation adaptée doit être mise en place afin que les équipes ne perdent pas la maîtrise de leur infrastructure.&nbsp;» – Olivier Picquenot, Customer Success Director, OVHcloud</em><em></em></p>
</blockquote>



<h5 class="wp-block-heading">💡 <strong>Conseil de mise en œuvre :</strong></h5>



<p>Réaliser une évaluation de maturité cloud ou un proof of concept ciblé permet de valider la conception réseau et les mécanismes de résilience, et de poser ainsi les bases nécessaires à une évolutivité durable.</p>



<h2 class="wp-block-heading"><strong>Le travail essentiel qui transforme des objectifs stratégiques en décisions d’architecture</strong><strong></strong></h2>



<p>La migration et le passage à l’échelle s’appuient sur des objectifs bien identifiés&nbsp;: améliorer les performances, maîtriser les coûts et accompagner la croissance. C’est dans la traduction de ces objectifs en décisions d’infrastructure que la complexité se révèle.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>« L’évolutivité doit être étudiée dès le départ, notamment en tenant compte des profils de charge. L’un des principaux avantages du cloud réside dans sa capacité à s’adapter à la hausse ou à la baisse en fonction de la charge. » – <em>Olivier</em></em> <em>Picquenot</em></p>
</blockquote>



<p>Comprendre dès le départ les dépendances applicatives, les pics de charge, les exigences de conformité ou encore les écarts de compétences au sein des équipes est déterminant. Sans cette visibilité, les décisions liées à l’évolutivité deviennent réactives, prises dans l’urgence et sur la base d’informations incomplètes.</p>



<p>Les équipes doivent donc expliciter leurs hypothèses dès le début, en se posant des questions concrètes&nbsp;:</p>



<ul class="wp-block-list">
<li>Comment le trafic interne entre les services se comportera-t-il sous charge&nbsp;?</li>



<li>À quels moments les pics d’activité surviennent-ils et comment les mécanismes d’adaptation permettront-ils d’y répondre&nbsp;?</li>



<li>Quelles contraintes de conformité ou de localisation des données influencent le déploiement des ressources&nbsp;?</li>



<li>Les équipes disposent-elles des compétences nécessaires pour exploiter des plateformes complexes dans la durée&nbsp;?</li>
</ul>



<p>L’automatisation et les services managés apportent une réponse concrète à ces enjeux. L’Infrastructure as Code, les bases de données managées ou encore les services intégrés permettent de réduire la charge opérationnelle, tout en recentrant les équipes sur la création de valeur plutôt que sur la maintenance de l’infrastructure.</p>



<h5 class="wp-block-heading">💡 <strong>Conseil de mise en œuvre :</strong></h5>



<p>Associer les objectifs métier à des indicateurs techniques mesurables permet ensuite, grâce à l’automatisation et aux services managés, de les traduire en une architecture réellement évolutive.</p>



<h2 class="wp-block-heading"><strong>Les risques liés au passage à l’échelle et les fondamentaux opérationnels</strong></h2>



<p>Une croissance rapide introduit des risques opérationnels capables de fragiliser même des environnements bien conçus. Certaines pratiques fondamentales permettent toutefois de limiter ces dérives.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>« La réponse la plus importante est l’automatisation. Avec des outils comme Terraform ou OpenTofu, les organisations sont prêtes à passer à l’échelle. » – <em>Olivier</em></em> <em>Javaux</em></p>
</blockquote>



<p>L’automatisation du provisionnement, de l’adaptation à la charge et du monitoring garantit des déploiements reproductibles et prépare les équipes à évoluer efficacement. En parallèle, la clarification des responsabilités, la standardisation des environnements et la réduction de la dispersion des outils facilitent le diagnostic des incidents, renforcent la conformité et contribuent à une meilleure maîtrise des coûts. À mesure que les équipes et les plateformes se développent, la cohérence devient un véritable levier d’efficacité.</p>



<p>La transition d’applications monolithiques vers des architectures en microservices ou vers Kubernetes reste complexe. Une approche progressive permet toutefois de sécuriser cette transformation. Commencer par un service à faible risque permet de valider les processus de migration, d’ajuster les mécanismes d’adaptation et d’étendre progressivement le périmètre, tout en renforçant la confiance des équipes.</p>



<div class="wp-block-group custom-box is-layout-constrained wp-container-core-group-is-layout-946f663b wp-block-group-is-layout-constrained" style="border-width:1px;min-height:0px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><div class="wp-block-group__inner-container">
<h5 class="wp-block-heading"><strong>Quand une approche «&nbsp;tout en une fois&nbsp;» devient contre-productive</strong></h5>



<p>Une organisation a tenté une migration complète vers des microservices en une seule phase, ce qui a entraîné des erreurs de déploiement et des problèmes de configuration. Les interruptions de service qui en ont résulté ont ralenti l’ensemble du projet.</p>



<p>Le passage à une approche progressive, combinée à un provisionnement automatisé et à un accompagnement managé, a permis de rétablir des opérations stables et prévisibles, tout en accélérant l’adoption.</p>
</div></div>



<h5 class="wp-block-heading">💡 <strong>Conseil de mise en œuvre :</strong></h5>



<p>S’appuyer sur la reproductibilité constitue un levier clé pour accompagner l’évolution des plateformes. L’automatisation, la standardisation et le déploiement progressif permettent d’en assurer la stabilité dans la durée.</p>



<h2 class="wp-block-heading"><strong>Éviter les coûts cachés</strong></h2>



<p>Les hypothèses héritées des systèmes existants, tout comme le surdimensionnement, constituent des pièges fréquents lors des migrations vers le cloud. Sans remise en question des modèles de conception, les équipes risquent de générer des coûts inutiles et d’alourdir la complexité opérationnelle.</p>



<p>Or, les environnements cloud évoluent rapidement. Une révision régulière de l’architecture permet de tirer pleinement parti des nouveaux services et d’adopter des modèles plus efficaces.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>« Un modèle de tarification prédictif et transparent, dans lequel les clients paient uniquement pour les ressources réellement consommées, comme le stockage, la puissance de calcul ou la bande passante, permet de mieux anticiper les projets. » – Amarjit</em> <em>Toor</em></p>
</blockquote>



<h5 class="wp-block-heading"><strong>Conseil de mise en œuvre&nbsp;:</strong></h5>



<p>Éviter de reproduire à l’identique les modèles hérités implique d’évaluer en continu les services utilisés et d’ajuster l’architecture en fonction des usages réels.</p>



<h2 class="wp-block-heading"><strong>Concevoir pour l&#8217;évolutivité</strong></h2>



<p>Réussir le passage à l’échelle des projets cloud suppose de concevoir dès le départ en intégrant la croissance, la sécurité et l’efficacité opérationnelle. Tout commence par les fondamentaux&nbsp;: automatiser de manière systématique et s’appuyer sur des expertises pour construire des bases solides en matière de réseau, d’observabilité, d’automatisation et de préparation opérationnelle.</p>



<p>Des équipes confiantes, concentrées sur la création de valeur plutôt que sur la gestion des incidents d’infrastructure, soutenues par une plateforme résiliente, c’est ce qui fait la différence sur le long terme.</p>



<p>Si vous êtes en phase de croissance et souhaitez que le cloud ne soit plus une source de complexité, découvrez des <a href="https://www.ovhcloud.com/fr/lp/modernise-infra/?at_medium=Organic Social&amp;at_campaign=Other&amp;at_creation=organicsocial_EC_multi_fr_GB_cloud_publiccloud_Blogpost_awrns_traffic&amp;at_variant=dimg_Blogpost4_728x90_Blogpost4" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">solutions cloud évolutives</a> adaptées aux entreprises en développement.</p>
<img decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fchoix-conception-reussite-migration-cloud%2F&amp;action_name=Les%20choix%20de%20conception%20qui%20d%C3%A9terminent%20la%20r%C3%A9ussite%20ou%20l%E2%80%99%C3%A9chec%20d%E2%80%99une%20migration%20cloud%20%3A%20retours%20d%E2%80%99exp%C3%A9rience&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Design decisions that make or break a cloud migration: lessons from the field</title>
		<link>https://blog.ovhcloud.com/design-decisions-make-cloud-migration/</link>
		
		<dc:creator><![CDATA[Olivier Javaux,&nbsp;Olivier Picquenot&nbsp;and&nbsp;Amarjit Toor]]></dc:creator>
		<pubDate>Thu, 21 May 2026 07:59:40 +0000</pubDate>
				<category><![CDATA[Accelerating with OVHcloud]]></category>
		<category><![CDATA[Deploy & Scale]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Migration]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31950</guid>

					<description><![CDATA[Migrating to the cloud is exciting, but early decisions define what follows. Real pressure emerges as usage grows and architectures are tested under sustained load. What worked for initial migration doesn’t always hold up when systems need to scale across regions, teams and workloads. OVHcloud Professional Services Engineers and Customer Success Managers highlight the often-overlooked [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdesign-decisions-make-cloud-migration%2F&amp;action_name=Design%20decisions%20that%20make%20or%20break%20a%20cloud%20migration%3A%20lessons%20from%20the%20field&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="572" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-1024x572.png" alt="" class="wp-image-31944" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-1024x572.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-300x168.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration-768x429.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/design-decisions-cloud-migration.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Migrating to the cloud is exciting, but early decisions define what follows.</p>



<p>Real pressure emerges as usage grows and architectures are tested under sustained load. What worked for initial migration doesn’t always hold up when systems need to scale across regions, teams and workloads.</p>



<p>OVHcloud Professional Services Engineers and Customer Success Managers highlight the often-overlooked decisions that drive successful public cloud migrations and deployments, setting the foundations for scalable, future-ready growth.</p>



<h2 class="wp-block-heading"><strong>What gets overlooked early, but shapes scaling later</strong></h2>



<p>The long-term success of a cloud project is defined in the first six to twelve months, where early infrastructure decisions often have the biggest impact and operational readiness is crucial. Networking, regional design and operational foundations may feel secondary during migration, but they quickly become central as environments grow.</p>



<p>Early deployments may run successfully using public interfaces and default configuration, but as services expand, internal traffic increases between APIs, databases and background processing layers. Without a private network model, that communication layer can introduce latency, expose sensitive traffic, and require disruptive redesign later.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“Security must be the priority. A simple ‘lift &amp; shift’, without first designing a scalable and secure landing zone, isn’t enough. Ensure the correct infrastructure is in place at the beginning to account for future needs.” – Olivier Javaux, Professional Services, OVHcloud</em></p>
</blockquote>



<div class="wp-block-group custom-box is-layout-constrained wp-container-core-group-is-layout-946f663b wp-block-group-is-layout-constrained" style="border-width:2px;min-height:0px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><div class="wp-block-group__inner-container">
<h5 class="wp-block-heading"><strong>When a network design decision enables the platform to scale</strong></h5>



<p>An ecommerce platform migrating from a monolithic architecture to microservices initially ran all backend communication via public IP addresses.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“During a Black Friday-style traffic spike, latency tripled. Not because the servers were slow, but because all internal microservices were talking over public interfaces.” – Amarjit Toor, Customer Success Manager, OVHcloud</p>
</blockquote>



<p>After a dedicated network design workshop, backend traffic moved to an isolated private network. This change fundamentally altered how the platform scaled. Internal communications no longer competed with user traffic allowing services to grow independently, performance stabilised, security improved and the system became more resilient.</p>
</div></div>



<h2 class="wp-block-heading"><strong>Building resilience beyond initial deployment</strong></h2>



<p>Regional strategy follows the same pattern. Choices between single- and multi-availability zone (AZ) deployments influence resilience, failover behaviour and operational complexity. Changing these configurations after deployment is challenging, particularly when data dependencies and production traffic are already in place. By factoring in growth, availability requirements and business continuity early on, organisations can embed scalability and sustainability directly into their system design, alleviating the pressures of having to retrofit later.</p>



<p>Landing zones and operational systems are also common afterthoughts despite being central to day-to-day processes, incident response and compliance as systems scale. The key lesson is a necessary shift in focus: cloud teams need to move from simply deploying infrastructure to establishing visibility, governance and operational control from the outset. Managed services and standardised platforms further support this shift by reducing operational burden while improving oversight as environments expand.</p>



<p>The human dimension cannot be overstated. Proper onboarding, training and alignment across operational stakeholders helps reduce confusion and accelerate adoption. When change management is overlooked in the early stages, even well-architected cloud platforms can feel risky, slowing delivery and increasing resistance.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“The correct training must be in place to ensure teams don’t feel like they’re losing grip on the infrastructure.” – Olivier Picquenot, Customer Success Director, OVHcloud</em></p>
</blockquote>



<h5 class="wp-block-heading">💡 <strong>Implementation tip:</strong></h5>



<p style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0">Conduct a cloud maturity assessment or small proof-of-concept to validate network design and resiliency. These early choices become the difference that scales later.</p>



<h2 class="wp-block-heading"><strong>The vital work turning high-level goals into architecture decisions</strong></h2>



<p>Migration and scaling begin with clear objectives: improve performance, control costs, and support growth. Translating these into infrastructure decisions is where complexity creeps in.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“Scalability must be studied from the start, including load patterns. One of the main advantages of the cloud is the capacity to scale up or down depending on the load.” – Olivier Picquenot</em></p>
</blockquote>



<p>Understanding dependencies, peak load patterns, compliance requirements and team skills gaps early on is essential. Without this visibility, scaling decisions are made reactively using incomplete information.</p>



<p>Teams should clarify assumptions from the start by asking practical questions early:</p>



<ul class="wp-block-list">
<li>How will internal traffic between services behave under load?</li>



<li>What are the peak times, and how will scaling respond?</li>



<li>Which compliance or data residency requirements affect where resources are provisioned?</li>



<li>Does the team have the skills to operate complex platforms long term?</li>
</ul>



<p>Automation and managed services help bridge the gap. Infrastructure-as-code, managed databases and integrated systems reduce operational overhead and frees teams to focus on building value, rather than maintaining infrastructure.</p>



<h5 class="wp-block-heading">💡 <strong>Implementation tip:</strong></h5>



<p>Map business goals to measurable technical outcomes. Automation and managed services turn intent into scalable architecture.</p>



<h2 class="wp-block-heading"><strong>Scaling risks and operational fundamentals</strong></h2>



<p>Rapid growth introduces operational risks that can destabilise even well-designed environments. Foundational practices can prevent these issues.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“The most important answer is automation. Using tools like Terraform or OpenTofu, organisations are ready to scale.” – Olivier Javaux</em></p>
</blockquote>



<p>Automating provisioning, scaling and monitoring ensures repeatable deployments and prepares teams to scale efficiently. Meanwhile, defining ownership, standardising environments and reducing tool sprawl simplify troubleshooting and improve compliance as costs lower. Consistency becomes a force multiplier as teams and platforms grow.</p>



<p>Moving from monolithic applications to microservices or Kubernetes is complex, however, a phased migration approach helps to avoid failure. Starting with a low-risk service allows teams to validate the migration process, tune scaling and gradually expand while building confidence.</p>



<div class="wp-block-group custom-box is-layout-constrained wp-container-core-group-is-layout-946f663b wp-block-group-is-layout-constrained" style="border-width:2px;min-height:0px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><div class="wp-block-group__inner-container">
<h5 class="wp-block-heading"><strong>When “all at once” is too much</strong></h5>



<p>One organisation attempted a full migration to microservices in a single phase, leading to deployment errors and misconfigurations. The resulting downtime across multiple services slowed progress.</p>



<p>Shifting to a phased approach, with automated provisioning and managed support, ensured stable, predictable operations and faster adoption.</p>
</div></div>



<h5 class="wp-block-heading">💡 <strong>Implementation tip:</strong></h5>



<p>Scale through repeatability. Automation, standardisation and phased delivery create stability as platforms grow.</p>



<h2 class="wp-block-heading"><strong>Avoiding hidden costs</strong></h2>



<p>Legacy assumptions and over-provisioning are common traps in cloud migration. Without rethinking design patterns, teams risk creating unnecessary cost and operational complexity.</p>



<p>Cloud environments evolve rapidly. Reviewing architecture regularly ensures teams benefit from improved services and efficient patterns.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“A predictive, transparent pricing model where customers are charged only for the resources they consume, such as storage, compute power or bandwidth, allows for greater confidence in forecasting projects” – Amarjit Toor</em></p>
</blockquote>



<h5 class="wp-block-heading">💡 <strong>Implementation tip:</strong></h5>



<p>Avoid lifting legacy patterns unchanged. Continuously assess services and adjust architecture to match real-world demand.</p>



<h2 class="wp-block-heading"><strong>Designing for scale</strong></h2>



<p>Scaling cloud projects successfully means designing for growth, security and operational efficiency from day one. Start with the fundamentals – automate relentlessly and leverage expertise when building the foundations for networking, observability, automation and operational readiness.</p>



<p>This is the difference that scales, resulting in a resilient platform and a confident team focused on value, rather than troubleshooting infrastructure.</p>



<p>If you’re navigating growth and want cloud to be one less thing to worry about, explore <a href="https://www.ovhcloud.com/en-gb/lp/modernise-infra/?at_medium=Organic%20Social&amp;at_campaign=Other&amp;at_creation=organicsocial_EC_multi_fr_GB_cloud_publiccloud_Blogpost_awrns_traffic&amp;at_variant=dimg_Blogpost4_728x90_Blogpost4" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">scalable cloud solutions</a> for growing businesses.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdesign-decisions-make-cloud-migration%2F&amp;action_name=Design%20decisions%20that%20make%20or%20break%20a%20cloud%20migration%3A%20lessons%20from%20the%20field&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why AI Moves Fast but AI Deployment Still Takes Weeks</title>
		<link>https://blog.ovhcloud.com/ai-deployment-ovhcloud/</link>
		
		<dc:creator><![CDATA[Dvs Shiv Kumar]]></dc:creator>
		<pubDate>Thu, 21 May 2026 06:59:13 +0000</pubDate>
				<category><![CDATA[Accelerating with OVHcloud]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31967</guid>

					<description><![CDATA[Over the past few years, the speed at which teams can build infrastructure has changed dramatically. Models that once took weeks to train can now be iterated in days. Tooling has improved, workflows have matured, and the overall friction in getting from idea to working output has reduced significantly. But this acceleration often stops the [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fai-deployment-ovhcloud%2F&amp;action_name=Why%20AI%20Moves%20Fast%20but%20AI%20Deployment%20Still%20Takes%20Weeks&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-deployment-ovhcloud-facets-migration-1-1024x576.png" alt="AI deployment migration from weeks to days with OVHcloud and Facets" class="wp-image-32080" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-deployment-ovhcloud-facets-migration-1-1024x576.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-deployment-ovhcloud-facets-migration-1-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-deployment-ovhcloud-facets-migration-1-768x432.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-deployment-ovhcloud-facets-migration-1-1536x864.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-deployment-ovhcloud-facets-migration-1.png 1672w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Over the past few years, the speed at which teams can build infrastructure has changed dramatically. Models that once took weeks to train can now be iterated in days. Tooling has improved, workflows have matured, and the overall friction in getting from idea to working output has reduced significantly.</p>



<p>But this acceleration often stops the moment teams try to deploy — and this can make <strong>AI deployment</strong> frustrating. In this blog, you will learn how Facets can help teams accelerate migration to OVHcloud by making deployment more structured, repeatable and predictable.</p>



<p>What first begins as a fast, iterative process slows down when it enters the infrastructure layer. The work is no longer about models or code. It shifts to provisioning environments, configuring pipelines, managing permissions, setting up networking, and ensuring that everything works reliably outside a controlled development setting. This phase is not inherently complex, but it is fragmented, and that introduces delay.</p>



<p>As a result, there is now a visible gap between how quickly teams can build and how slowly they can move to production. The model may be ready in hours, but the surrounding system required to run it still takes days, weeks, or in some cases even months, to put together.</p>



<h2 class="wp-block-heading"><strong><strong>AI deployment is slow because infrastructure is inconsistent, not because AI is limited</strong></strong></h2>



<p>It is tempting to assume that deployment delays are still a technical limitation but, in most cases, that is no longer true. The bottleneck is not the model itself. It is everything around it.</p>



<p>Infrastructure is rarely standardised across teams. Each project tends to define its own setup, its own pipeline, and its own configuration. Even when teams use the same tools, the way those tools are applied differs just enough to create inconsistency.</p>



<p>Over time, these differences accumulate. Environments are recreated, pipelines are reconfigured, dependencies are re-evaluated, and access is managed manually. What should be a repeatable process becomes a fresh effort every time.</p>



<p>This is where deployment slows down. Not because teams cannot build quickly, but because <strong>the systems around deployment are not structured for reuse.</strong></p>



<h2 class="wp-block-heading"><strong>Faster deployment starts with reusable infrastructure</strong></h2>



<p>Teams that deploy faster do not necessarily rely on fundamentally different tools. They change how infrastructure is organised.</p>



<p>Instead of treating infrastructure as something that needs to be set up for every project, they define it once and reuse it. Environments are created from standard definitions rather than being handcrafted. Deployment workflows follow consistent patterns instead of being recreated each time. Access, policies and guardrails are built into the system rather than handled separately.</p>



<p>This does not eliminate complexity, but it contains it. Systems become easier to understand, easier to operate and easier to extend. Most importantly, they become predictable.</p>



<p>Once infrastructure behaves predictably, deployment stops being a recurring source of delay.</p>



<h2 class="wp-block-heading"><strong>AI improves operations only when infrastructure is already structured as a system</strong></h2>



<p>There is growing interest in applying AI to DevOps and infrastructure management, but its role is often misunderstood.</p>



<p>AI does not fix fragmented systems. If the underlying setup is inconsistent, AI will only automate that inconsistency. It may reduce effort in specific tasks, but it does not create structure on its own.</p>



<p>AI becomes valuable when it operates on top of a well-defined system. It can help teams understand system state, identify issues faster, assist with debugging, and reduce manual operational work. But it works best when the infrastructure beneath it is already standardised, reusable and consistent.</p>



<h2 class="wp-block-heading"><strong><strong>Infrastructure needs to shift from project-level setup to a standardised system</strong></strong></h2>



<p>As AI accelerates development, the limitations of infrastructure become more pronounced. Teams are able to build faster than they can deploy, and that imbalance introduces friction.</p>



<p>This is not a temporary phase. As development continues to speed up, deployment will remain the limiting factor unless the underlying structure changes.</p>



<p>A different approach is needed. Instead of treating infrastructure as a series of isolated setups, teams need systems that standardise how infrastructure is created, managed and reused.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-migration-playbook-ovhcloud-facets-1-1024x683.png" alt="AI migration playbook for faster OVHcloud deployment" class="wp-image-32082" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-migration-playbook-ovhcloud-facets-1-1024x683.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-migration-playbook-ovhcloud-facets-1-300x200.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-migration-playbook-ovhcloud-facets-1-768x512.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/ai-migration-playbook-ovhcloud-facets-1.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong><strong>Facets turns infrastructure into a reusable deployment system</strong></strong></h2>



<p>Facets is designed around this model. It brings infrastructure, CI/CD, environments, workflows and guardrails into a single operating system for deployment. It brings infrastructure, CI/CD, environments, workflows and guardrails into a single operating system for deployment. Teams can create environments on demand, follow predefined deployment workflows and retain operational context within the platform instead of relying on scattered documentation or individual knowledge.</p>



<p>This changes how teams interact with infrastructure. The focus shifts from repeatedly setting things up to using a system that is already structured to work.</p>



<h2 class="wp-block-heading"><strong><strong><strong>Choosing the right cloud matters once infrastructure is standardised</strong></strong></strong></h2>



<p>Once infrastructure is structured as a system, the choice of where to run it becomes more important.</p>



<p>For AI workloads, teams need reliable compute, predictable cost structures and control over how environments are configured. OVHcloud provides a strong foundation for this, with access to GPU infrastructure, cost predictability, and flexibility in how environments are managed.</p>



<p>However, infrastructure alone does not remove friction. The real advantage comes when teams can move to that infrastructure quickly and operate it consistently without rebuilding their setup.</p>



<h2 class="wp-block-heading"><strong><strong>OVHcloud + Facets: Accelerating Deployment Through Standardisation</strong></strong></h2>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/reusable-infrastructure-blueprints-ovhcloud-facets-1-1024x576.png" alt="Reusable infrastructure blueprints accelerating AI deployment on OVHcloud" class="wp-image-32085" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/reusable-infrastructure-blueprints-ovhcloud-facets-1-1024x576.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/reusable-infrastructure-blueprints-ovhcloud-facets-1-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/reusable-infrastructure-blueprints-ovhcloud-facets-1-768x432.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/reusable-infrastructure-blueprints-ovhcloud-facets-1-1536x864.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/reusable-infrastructure-blueprints-ovhcloud-facets-1.png 1672w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>OVHcloud provides reliable, on-demand infrastructure for modern workloads. Facets helps teams make that infrastructure deployment-ready.</p>



<p>Together, they address both sides of the problem. <strong>OVHcloud provides the cloud foundation, while Facets defines how environments, workflows, policies and guardrails are created and operated on top of it.</strong></p>



<p>Facets.cloud introduces reusable infrastructure blueprints that can be applied across projects. These blueprints define environments, workflows and operational guardrails in advance, allowing teams to deploy standardised systems instead of assembling infrastructure manually each time.</p>



<p>This shifts deployment from a configuration-heavy process to a repeatable, system-driven approach. Teams can reduce the time spent on setup, avoid recreating the same deployment patterns and move workloads onto OVHcloud with greater consistency.</p>



<p>The result is a faster path from migration planning to production-ready environments — helping teams migrate in days, not weeks.</p>



<h2 class="wp-block-heading"><strong><strong>AI speed is ultimately limited by how fast infrastructure can be deployed and operated</strong></strong></h2>



<p>AI has already compressed the time it takes to build. The next bottleneck is AI deployment.</p>



<p>And that bottleneck is not solved by adding more tools or more people—it is solved by changing how infrastructure is structured. Because in practice, the speed of AI is defined not by how quickly models are built, but by how quickly they can be deployed and run.<br><br>Discover <a href="https://www.facets.cloud/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Facets.</a><a href="https://www.facets.cloud/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">cloud</a></p>



<p></p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fai-deployment-ovhcloud%2F&amp;action_name=Why%20AI%20Moves%20Fast%20but%20AI%20Deployment%20Still%20Takes%20Weeks&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Devoxx France 2026: feedback and highlights</title>
		<link>https://blog.ovhcloud.com/devoxx-france-2026/</link>
		
		<dc:creator><![CDATA[Aurélie Vache]]></dc:creator>
		<pubDate>Tue, 19 May 2026 05:45:45 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Tranches de Tech & co]]></category>
		<category><![CDATA[Devoxx France]]></category>
		<category><![CDATA[OVHcloud Events]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31573</guid>

					<description><![CDATA[From April 22 to 24, 2026, the Devoxx France conference took place at the Palais des Congrès in Paris. Aurélie Vache and Stéphane Philippart attended as dit 19 other OVHcloud employees. In this blog post, they share their thoughts and feedback from this 14th edition of Devoxx France. Devoxx France 2026: The AI Edition Devoxx [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdevoxx-france-2026%2F&amp;action_name=Devoxx%20France%202026%3A%20feedback%20and%20highlights&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p>From April 22 to 24, 2026, the <a href="https://www.devoxx.fr/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Devoxx France</a> conference took place at the Palais des Congrès in Paris.</p>



<p>Aurélie Vache and Stéphane Philippart attended as dit 19 other OVHcloud employees. In this blog post, they share their thoughts and feedback from this 14th edition of Devoxx France.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="818" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1024x818.png" alt="Devoxx France 2026" class="wp-image-31605" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1024x818.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-300x240.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-768x614.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image.png 1274w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/HGv79kIXcAAJ2DT-768x1024.jpg" alt="Devoxx France 2026" class="wp-image-31637" style="aspect-ratio:0.7500000262479178;width:271px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/HGv79kIXcAAJ2DT-768x1024.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/HGv79kIXcAAJ2DT-225x300.jpg 225w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/HGv79kIXcAAJ2DT-1152x1536.jpg 1152w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/HGv79kIXcAAJ2DT.jpg 1536w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>
</div>
</div>



<h3 class="wp-block-heading"><strong>Devoxx France 2026: The AI Edition</strong></h3>



<p><strong>Devoxx France 2026</strong> is one of Europe’s biggest independent developer conferences. Formerly focused centrally on Java, over the past few years, the conference has also focused on Architecture, Data &amp; Analytics, Development practices, Front-end &amp; UX, Java/JVM, Security &amp; Privacy, Cloud and non-technical talks about people and culture.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777014717443-1024x576.jpg" alt="Devoxx France 2026" class="wp-image-31600" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777014717443-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777014717443-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777014717443-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777014717443-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777014717443.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Key figures from the 2026 edition:</p>



<ul class="wp-block-list">
<li>4,980 attendees (The largest attendance on record)</li>



<li>307 speakers</li>



<li>259 talks</li>



<li>70+ sponsors</li>
</ul>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777046754791-1024x576.jpg" alt="Devoxx France 2026" class="wp-image-31610" style="aspect-ratio:1.7777426704463952;width:642px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777046754791-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777046754791-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777046754791-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777046754791-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1777046754791.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>As might be expected, AI was the central theme of this edition, with a large number of the talks focused on AI topics. Indeed, there were 65 sessions out of 259 about AI and Agentic Systems, the most discussed topic!</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="843" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/Capture-decran-2026-05-06-a-11.26.15-1024x843.png" alt="The AI talks at Devoxx France 2026" class="wp-image-31621" style="aspect-ratio:1.2147060091174124;width:630px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/Capture-decran-2026-05-06-a-11.26.15-1024x843.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Capture-decran-2026-05-06-a-11.26.15-300x247.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Capture-decran-2026-05-06-a-11.26.15-768x632.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Capture-decran-2026-05-06-a-11.26.15-1536x1265.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Capture-decran-2026-05-06-a-11.26.15.png 1858w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Notably this year, and perhaps even more than in previous years, we could clearly see attendees arriving early to secure seats for their favorite talks. Even so, there ended up being a lot of disappointment – especially on the first day – as several sessions were already at full capacity minutes before they even started.</p>



<p>This was particularly true for sessions featuring multiple OVHcloud speakers 💪.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260422_083446173-768x1024.jpg" alt="Full room at Devoxx France 2026" class="wp-image-31596" style="width:335px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260422_083446173-768x1024.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260422_083446173-225x300.jpg 225w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260422_083446173-1152x1536.jpg 1152w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260422_083446173-1536x2048.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260422_083446173-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<h3 class="wp-block-heading">Keynotes</h3>



<p>The keynote sessions (“plenary sessions”) were also heavily centered on <strong>Artificial Intelligence</strong>, but with a notably broader lens beyond pure technology. Rather than focusing only on tools or LLM implementation, the talks explored AI through the intersecting dimensions of <strong>power, governance, cybersecurity, human transformation, and geopolitics</strong>.</p>



<p>Some highlights from the keynotes:</p>



<ul class="wp-block-list">
<li><em>“In 50 years, AI has multiplied its power, along with the challenges of governance and cybersecurity”</em> &#8211; Laurence Devillers (<a href="https://x.com/lau_devil" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">@lau_devil</a>)</li>
</ul>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-3-1024x576.png" alt="Laurence Devillers at Devoxx France 2026" class="wp-image-31644" style="aspect-ratio:1.7777426704463952;width:527px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-3-1024x576.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-3-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-3-768x432.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-3.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>Jean-Gabriel Ganascia (<a href="https://x.com/Quecalcoatle" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">@Quecalcoatle</a>) questioned the promise of AI as a force that could free humans from effort, raising deeper reflections on what this means for our relationship with work and meaning.</li>
</ul>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1-1024x768.png" alt="Jean-Gabriel Ganascia at Devoxx France 2026" class="wp-image-31640" style="width:536px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1-1024x768.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1-300x225.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1-768x576.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1-1536x1152.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-1.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>Loup Cellard (<a href="https://x.com/CellardLoup" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">@CellardLoup</a>) examined the implications of foreign investments in AI infrastructure, shedding light on the geopolitical and strategic stakes behind these technologies.</li>
</ul>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-2-768x1024.png" alt="Loup Cellard at Devoxx France 2026" class="wp-image-31641" style="aspect-ratio:0.7500000158067569;width:258px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-2-768x1024.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-2-225x300.png 225w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-2-1152x1536.png 1152w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-2.png 1536w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<h3 class="wp-block-heading"><strong>Meet &amp; Greet</strong></h3>



<p>Devoxx France consists of three days of conferences, sponsor booths to discover, and Thursday evening’s unmissable annual tradition: the Meet &amp; Greet.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1776962145782-1024x576.jpg" alt="Meet and Greet at Devoxx France 2026" class="wp-image-31607" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1776962145782-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1776962145782-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1776962145782-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1776962145782-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1776962145782.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Thursday night’s <strong>Meet &amp; Greet</strong> is a major community event built around networking and social sessions like <strong>BOFs (Birds of a Feather)</strong> and seed networking. It’s one of the signature traditions of the conference, beyond talks and sponsor booths.</p>



<p>This evening event is free, open to the public with pre-registration, and offers a genuine moment for connection, sharing, and conversation over a drink and a plate of charcuterie and cheese 😇.</p>



<p>It’s also the opportunity to discover the fun of “Voxx Jam”, the community-party, music-oriented side of Devoxx/Voxxed culture 🎸.</p>



<h3 class="wp-block-heading">OVHcloud Presence</h3>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-08-23-06-896-41-768x1024.jpg" alt="OVHcloud booth at Devoxx France 2026" class="wp-image-31574" style="aspect-ratio:0.7499999738121478;width:360px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-08-23-06-896-41-768x1024.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-08-23-06-896-41-225x300.jpg 225w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-08-23-06-896-41-1152x1536.jpg 1152w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-08-23-06-896-41.jpg 1536w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>At the OVHcloud booth, we were a team of 8 speakers and 11 colleagues from Tech, HR, and Sales, and their dynamic presence really made a difference. Engaging in topics like AI, Public Cloud, Domain Names, Observability, Quantum technologies, and more, we had many insightful conversations throughout the event.</p>



<p>We also discussed AI topics at the booth, which was of course the main theme of the conference, but not the only one.</p>



<p>A lot of conversations also focused on sovereignty. Three years ago, people were saying: <em>“I don’t care about sovereignty, I’ll just choose the cheapest option.”</em> This year, the tone has clearly changed, <em>“How can we use your sovereign products?”</em></p>



<p><strong>There is a real shift happening,</strong> and once again, being present at events like this is essential to witness and take part in these evolving discussions.</p>



<p>It was truly a top-tier booth experience for all of us💪.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-24-12-34-31-442-768x1024.jpg" alt="OVHcloud booth at Devoxx France 2026" class="wp-image-31666" style="width:305px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-24-12-34-31-442-768x1024.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-24-12-34-31-442-225x300.jpg 225w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-24-12-34-31-442-1152x1536.jpg 1152w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-24-12-34-31-442.jpg 1536w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_075255077.MP1_-1024x768.jpg" alt="OVHcloud booth at Devoxx France 2026" class="wp-image-31576" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_075255077.MP1_-1024x768.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_075255077.MP1_-300x225.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_075255077.MP1_-768x576.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_075255077.MP1_-1536x1152.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_075255077.MP1_-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<p>Of course, the goal of our booth was so attendees could discuss with our teams, but also so we could engage them through our very own video game, “Gaming Camp: Beat Cloud Villains!”. The specially designed video game’s description: <em>“Join the fight against the villains of the cloud. Take on Hidden Cost, Jailor Stack, and Autonomous Zero, and prove yourself as a true Guardian of the Cloud.”</em></p>



<p>Players were welcomed to step into a two-player fighting game inspired by the style of <em>Street Fighter</em>, where strategy and skill are your best weapons. Game on!</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-10-15-34-094-1024x768.jpg" alt="Gaming Camp cloud villains game at the OVHcloud booth" class="wp-image-31575" style="width:644px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-10-15-34-094-1024x768.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-10-15-34-094-300x225.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-10-15-34-094-768x576.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-10-15-34-094-1536x1152.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-10-15-34-094.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>We also wanted to say a word about the success of our Schrödinger cat (Quantum) swag – socks, keychains, badges – they were a huge hit, and often sparked great conversations throughout the event.</p>



<h3 class="wp-block-heading"><strong>OVHcloud Speakers &amp; Talks</strong></h3>



<p>Getting accepted to Devoxx France is not easy, so we were proud to be included with 8 speakers and 11 talks! <strong>We were the most represented company</strong> <strong>in terms of talks at Devoxx France 2026,</strong> and ranked in the top 3 by number of speakers 💪.</p>



<p>Congratulations to Benoit Masson, Fanny Bouton, Mathieu Busquet, Sébastien Ferrer, Théo Bougé, and Héla Ben Khalfallah, Stéphane Philippart &amp; Aurélie Vache for their talks 👏. A large number of attendees joined, and the sessions were all very high quality.</p>



<p>Find here the topics of their talks:</p>



<h4 class="wp-block-heading">&#8220;Question pour un cluster Kubernetes : Quiz sur Kubernetes &amp; ses concepts&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 &#8220;The Ultimate Kubernetes Challenge: An Interactive Trivia Game on concepts, components, usage&#8230;&#8221;</em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-12-1024x768.png" alt="Aurélie Vache speaking at Devoxx France 2026" class="wp-image-31824" style="width:565px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-12-1024x768.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-12-300x225.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-12-768x576.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-12.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speaker: Aurélie Vache</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Kubernetes est devenu le standard de facto pour déployer et exploiter des applications conteneurisées. Nous l&#8217;utilisons, ainsi que son ecosystème, au quotidien, mais le connaît-on si bien ?<br><br>Tout au long de ce talk, avec un mix de quiz et de démos en live, vous découvrirez (ou redécouvrirez) les concepts clés de Kubernetes (pods, secrets, services, namespaces&#8230;), les composants interne mais aussi les bonnes pratiques d&#8217;utilisation.<br><br>Un format original avec un quiz, du fun et des démos, qui conviendra aussi bien aux débutants qu’aux confirmés, afin d&#8217;apprendre, réviser et challenger vos connaissances du merveilleux monde de Kubernetes et de son écosystème, tout en s&#8217;amusant.<br><br>Soyez là ou le plus rapide pour tenter de gagner des cadeaux !&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 Kubernetes has become the de facto standard for deploying and operating containerized applications. We use it, as well as its ecosystem, on a daily basis, but do we know them as well as we think we do?<br><br>With a mix of quiz and live demos, come learn and/or improve your knowledge. You will discover (or rediscover) the key concepts of Kubernetes (pods, secrets, services&#8230;), internal components but also best practices.<br><br>In this fun and dynamic talk, come compete throughout the quiz and explore the wonderful world of Kubernetes.<br>Icing on the cake: the first will win some swags.</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=mS_Nz44cXlM" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;QR Codes : suivez les points sans vous perdre !&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 &#8220;QR codes: follow the dots without getting lost!</em>&#8220;</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="717" height="690" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-11.png" alt="Benoit Masson speaking at Devoxx France 2026" class="wp-image-31822" style="width:389px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-11.png 717w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-11-300x289.png 300w" sizes="auto, (max-width: 717px) 100vw, 717px" /></figure>



<p>🎤 Speaker: Benoît Masson &amp; Sébastien Chedor (OnePoint)</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Les QR Codes, tout le monde connaît et les utilise régulièrement. Mais savez-vous vraiment comment ils fonctionnent, pourquoi c&#8217;est aussi rapide et fiable, même avec une caméra de faible qualité ou un code en partie caché ou détérioré ?<br><br>Nous vous proposons de coder ensemble un lecteur de QR Codes, avec un minimum d&#8217;outils :<br>* capture et analyse de la vidéo issue de la webcam pour détecter la position du code, à l&#8217;aide d&#8217;OpenCV<br>* extraction et décodage du contenu, avec correction d&#8217;erreur grâce à l&#8217;algorithme de Reed-Solomon.<br><br>À la fin de cette session, vous devriez être capables de décoder un QR Code à l&#8217;oeil nu 🕵️ (et un brouillon…)&#8221;.</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 <em>“Everyone knows QR codes and uses them regularly. But do you really know how they work, and why they are so fast and reliable, even with a low-quality camera or a partially hidden or damaged code?</em></em><br><br><em>We propose coding a QR code reader together, using a minimum number of tools:</em><br>* <em>capturing and analysing webcam video to detect the position of the code, using OpenCV</em><br>* <em>extracting and decoding the content, with error correction using the Reed-Solomon algorithm</em><br><br><em>By the end of this session, you should be able to decode a QR code with the naked eye 🕵️— and a rough sheet of paper…”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=iSebbzNcojU" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;Noms de domaines : la grande histoire des petites extensions&#8221;</h4>



<p>🏴󠁧󠁢󠁥󠁮󠁧󠁿 <em><em>“Domain names: the big story behind small extensions”</em></em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="626" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/Devoxx-2026-Benoit-Theo-1024x626.jpg" alt="Benoit Masson and Theo Bougé speaking at Devoxx France 2026" class="wp-image-31799" style="aspect-ratio:1.6357688113413305;width:548px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/Devoxx-2026-Benoit-Theo-1024x626.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Devoxx-2026-Benoit-Theo-300x183.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Devoxx-2026-Benoit-Theo-768x469.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Devoxx-2026-Benoit-Theo-1536x939.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Devoxx-2026-Benoit-Theo.jpg 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speakers: Benoît Masson &amp; Theo Bougé</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Derrière les quelques lettres qui suivent un point (.com, .fr, .ai…) se cache un univers riche de stratégies techniques, d’enjeux géopolitiques et de batailles commerciales.<br><br>À l’approche du nouveau round de l’ICANN prévu en 2026 qui va autoriser de nouvelles extensions, il est temps de revenir sur les fondations techniques du DNS, ainsi que sur les grands épisodes de cette aventure méconnue. Des TLD historiques aux extensions détournées, des dramas autour du .web aux ambitions du Web3, nous explorerons l’évolution d’un système devenu central dans les logiques de souveraineté numérique et d’innovation commerciale.<br><br>Une plongée dans les coulisses d’un Internet en perpétuelle transformation.&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Behind the few letters that follow a dot — .com, .fr, .ai and others — lies a rich world of technical strategies, geopolitical issues and commercial battles.</em><br><br><em>As the new ICANN round planned for 2026 approaches, which will authorise new extensions, it is time to revisit the technical foundations of DNS, as well as the major episodes in this little-known story. From historic TLDs to repurposed extensions, from the drama around .web to the ambitions of Web3, we will explore the evolution of a system that has become central to digital sovereignty and commercial innovation.</em><br><br><em>A deep dive behind the scenes of an Internet in constant transformation.”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=FZj6VEnxsRI" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;Informatique quantique, ce coup-ci on vous dit tout !&#8221;</h4>



<p>🏴󠁧󠁢󠁥󠁮󠁧󠁿 <em><em>“Quantum computing: this time, we tell you everything!”</em></em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-23-13-35-06-078-1024x768.jpg" alt="Fanny Bouton speaking at Devoxx France 2026" class="wp-image-31802" style="width:496px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-23-13-35-06-078-1024x768.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-23-13-35-06-078-300x225.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-23-13-35-06-078-768x576.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-23-13-35-06-078-1536x1152.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-23-13-35-06-078.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speaker: Fanny Bouton, Olivier Ezrati (Quantum Energy Initiative) &amp; Guillaume Schurck (Alice &amp; Bob)</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;<strong>Informatique quantique pour développeurs : comprendre, coder, passer à l’échelle</strong><br><br>L’informatique quantique sort du laboratoire et devient progressivement accessible aux développeurs via des SDK open source, des notebooks, des simulateurs et des QPU disponibles dans le cloud. En 2026, la question n’est plus <em>« qu’est-ce que le quantique ? »</em> mais <em>« comment un développeur peut-il s’en emparer concrètement ? »</em><br><br>Nous commencerons par poser les bases essentielles pour comprendre le modèle de calcul quantique : qubit, superposition, intrication, et ce que ces concepts impliquent pour un développeur.<br>Nous passerons ensuite au <strong>code</strong> : écrire et exécuter des circuits quantiques, utiliser des SDK modernes, travailler dans des notebooks, tester sur simulateur puis sur de vrais QPU. Vous verrez à quoi ressemble un workflow quantique aujourd’hui.<br><br>Enfin, nous aborderons les <strong>cas d’usage concrets</strong>, illustrés par le retour d’expérience d’un grand compte : ce qui fonctionne déjà, les limites actuelles, et comment les équipes tech expérimentent le quantique de manière réaliste et industrielle.<br><br>Une session technique pensée pour les développeurs qui veulent anticiper la prochaine évolution majeure du calcul.&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Quantum computing for developers: understand, code and scale up.</em><br><em>Quantum computing is moving out of the laboratory and becoming progressively accessible to developers through open source SDKs, notebooks, simulators and QPUs available in the cloud. In 2026, the question is no longer ‘What is quantum?’ but ‘How can developers make practical use of it?’</em><br><br><em>We will begin by laying out the essential foundations needed to understand the quantum computing model: qubits, superposition, entanglement, and what these concepts mean for developers.</em><br><br><em>We will then move on to code: writing and running quantum circuits, using modern SDKs, working in notebooks, testing on simulators and then on real QPUs. You will see what a quantum workflow looks like today.</em><br><br><em>Finally, we will address concrete use cases, illustrated by the experience of a large account: what already works, the current limitations, and how tech teams are experimenting with quantum computing in a realistic and industrial way.</em><br><br><em>A technical session designed for developers who want to anticipate the next major evolution in computing.”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=zyB2a3rwhYw" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;Développer avec l&#8217;IA : et si c&#8217;était aussi simple qu&#8217;ajouter une librairie ?&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Developing with AI: what if it were as simple as adding a library?”</em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-13-37-09-682-1024x576.jpg" alt="Stéphane Philippart and Mathieu Busquet speaking at Devoxx France 2026" class="wp-image-31807" style="aspect-ratio:1.7777426704463952;width:600px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-13-37-09-682-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-13-37-09-682-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-13-37-09-682-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-13-37-09-682-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/signal-2026-04-22-13-37-09-682.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speakers: Mathieu Busquet &amp; Stéphane Philippart</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Intégrer de l&#8217;intelligence artificielle (IA) dans nos développements peut nous paraître plus complexe que de les utiliser dans notre quotidien.<br><br>Dois-je apprendre un nouveau langage ou une nouvelle stack ?<br>Durant ce workshop nous vous proposons de vous donner tous les éléments pour intégrer l&#8217;IA sans quitter votre langage de prédilection : Java 😍. Ce sera l&#8217;occasion de découvrir les Frameworks du moments : LangChain4j, Quarkus, …<br><br>Nous vous invitons à découvrir toutes les facettes d&#8217;un chatbot avec l&#8217;IA générative (customiser un prompt, rajouter vos données (RAG), appeler des outils locaux ou distants (MCP) et créer des agents) mais aussi parce que l’IA ne se limite pas aux chatbots : faire de la transcription, créer de l&#8217;audio ou même faire un traducteur.<br><br>Et, toujours pour vous simplifier la vie, venez juste avec votre ordinateur et un navigateur Internet, on se charge du reste pour vous construire un environnement de développement aux petits oignons grâce aux CDE.<br><br>À la suite de ce talk vous repartirez avec une boîte à outils vous permettant d&#8217;intégrer simplement la puissance des modèles d&#8217;IA au sein de vos développements de tous les jours.&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Integrating artificial intelligence into our developments can seem more complex than using it in our daily lives.</em><br><br><em>Do I need to learn a new language or a new stack?</em><br><br><em>During this workshop, we will give you all the tools you need to integrate AI without leaving your favourite language: Java 😍. It will be an opportunity to discover some of today’s key frameworks, including LangChain4j and Quarkus.</em><br><br><em>We invite you to explore all the facets of a chatbot with generative AI — customising a prompt, adding your own data with RAG, calling local or remote tools with MCP, and creating agents — but also to see that AI is not limited to chatbots: it can also be used for transcription, audio creation and even translation.</em><br><br><em>And to make your life even easier, just bring your computer and an internet browser. We will take care of the rest, building a polished development environment for you thanks to CDEs.</em><br><br><em>After this talk, you will leave with a toolkit that will allow you to integrate the power of AI models into your everyday development work.”</em></p>
</blockquote>



<h4 class="wp-block-heading">&#8220;Détectives de la prod : résoudre l’enquête avant le crash&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Production detectives: solve the case before the crash”</em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-7-1024x768.png" alt="Sébastien Ferrer speaking at Devoxx France 2026" class="wp-image-31809" style="width:590px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-7-1024x768.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-7-300x225.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-7-768x576.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-7-1536x1152.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-7.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speaker: Sébastien Ferrer</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Saviez-vous que, derrière les coulisses de vos outils de travail, se cachent des équipes prêtes à intervenir à tout moment ?<br><br>Ces équipes, souvent discrètes mais essentielles, gèrent des dizaines de projets avec des effectifs réduits. Mais quand une alerte survient, elles doivent réagir vite. Très vite. Comment réussir à diagnostiquer et résoudre un incident en pleine production, sans perdre une précieuse seconde ?<br><br>Dans ce talk je vous emmène au cœur de l’action, où je partage notre méthodologie pour transformer chaque crise en une enquête méthodique et efficace. Nous explorerons comment des outils bien pensés, une organisation affûtée, et un soupçon d’intuition transforment la gestion d’incidents en une véritable enquête… parfois aussi palpitante qu’une partie de Cluedo.<br><br>Au programme : bonnes pratiques de troubleshooting, logging et monitoring, pour que vous repartiez avec des clés concrètes pour dompter les incidents dans vos propres projets.<br><br>Vous verrez qu’en production, chaque problème cache une histoire… à résoudre en équipe !&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Did you know that behind the scenes of your work tools, there are teams ready to intervene at any moment?</em><br><br><em>These teams, often discreet but essential, manage dozens of projects with limited staff. But when an alert occurs, they need to react quickly. Very quickly. How can they diagnose and resolve a production incident without losing precious seconds?</em><br><br><em>In this talk, I will take you into the heart of the action, where I share our methodology for turning every crisis into a structured and efficient investigation. We will explore how well-designed tools, a well-honed organisation and a touch of intuition can transform incident management into a real investigation — sometimes as thrilling as a game of Cluedo.</em><br><br><em>On the agenda: troubleshooting best practices, logging and monitoring, so you leave with concrete keys to taming incidents in your own projects.</em><br><br><em>You will see that in production, every problem hides a story… one to solve as a team!”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=sOQ6oCv0mOU" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;Et si écrire du SQL redevenait cool ?&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “What if writing SQL became cool again?”</em></p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="800" height="600" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-10.png" alt="Sébastien Ferrer speaking at Devoxx France 2026" class="wp-image-31820" style="width:482px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-10.png 800w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-10-300x225.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-10-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>🎤 Speaker: Sébastien Ferrer</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;On nous l’a répété maintes fois : “écrire du SQL dans du code source, c’est dépassé”.<br><br>Les ORMs sont partout. Ils ont facilité notre quotidien en nous permettant de manipuler nos bases de données sans nous soucier du SQL. Mais parfois, on aimerait un peu plus de contrôle, un peu plus de performance… sans pour autant revenir aux longues heures de mapping manuel et de requêtes préparées à la main.<br><br>SQLC offre une autre approche. Initialement conçu pour du Go, langage dans lequel cette technologie sera présentée dans ce talk, il permet d’écrire des requêtes SQL tout en générant du code type-safe et performant, sans ajouter de lourdeur ni de dépendances. Pas question ici de rejeter les ORMs, mais plutôt d’explorer un nouvel outil qui vient enrichir notre palette de solutions.<br><br>Dans ce talk, nous verrons comment SQLC fonctionne, dans quels cas il brille, et comment il s’intègre parfaitement dans un stack moderne. Vous aimez le SQL ? Vous voulez juste un peu plus de maîtrise sur vos requêtes ? Venez, vous risquez d’être agréablement surpris.&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “We have been told many times: ‘Writing SQL in source code is outdated.’</em><br><br><em>ORMs are everywhere. They have made our daily lives easier by allowing us to manipulate databases without worrying about SQL. But sometimes, we would like a little more control, a little more performance — without going back to long hours of manual mapping and hand-written prepared queries.</em><br><br><em>SQLC offers another approach. Initially designed for Go, the language in which this technology will be presented during the talk, it allows you to write SQL queries while generating type-safe and high-performance code, without adding heaviness or dependencies. The goal here is not to reject ORMs, but rather to explore a new tool that enriches our range of solutions.</em><br><br><em>In this talk, we will see how SQLC works, where it shines, and how it integrates perfectly into a modern stack. Do you like SQL? Do you simply want more control over your queries? Come along — you may be pleasantly surprised.”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=H_macw0wqJ0" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;🤖 Apprendre à notre IA à &#8230; apprendre 🧠&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “🤖 Teaching our AI to… learn 🧠”</em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="769" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/42793-1024x769.jpg" alt="Stéphane Philippart speaking at Devoxx France 2026" class="wp-image-31816" style="aspect-ratio:1.3315973153489673;width:584px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/42793-1024x769.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/42793-300x225.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/42793-768x576.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/42793-1536x1153.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/42793.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speaker: Stéphane Philippart</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;RAG, MCP, tooling, function calling, agents, fine tuning, training, …<br>Que de termes barbares mais qui ont tous le même objectif : faire en sorte que le modèle d&#8217;intelligence artificielle que vous utilisez réponde correctement à vos questions et attentes 😅.<br>Et pour ça il va falloir ajouter de la connaissance, des données (privée ou publiques, …).<br><br>Durant ce talk je vous propose d&#8217;y voir un peu plus clair dans cette jungle des acronymes puis, fort de connaître les différences, vous proposer comment l&#8217;implémenter en tant que développeuses et développeurs.<br><br>Chaque approche a ses spécificités, ses avantages et ses inconvénients.<br>A la fin de ce talk, non seulement vous saurez choisir la bonne approche, mais aussi ajouter dans vos développements quotidiens la dose d&#8217;IA utile.&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 <em>“RAG, MCP, tooling, function calling, agents, fine tuning, training…</em></em><br><br><em>So many intimidating terms, but they all have the same goal: ensuring that the artificial intelligence model you use responds correctly to your questions and expectations 😅.</em><br><br><em>And to do that, you need to add knowledge and data — private, public or otherwise.</em><br><br><em>During this talk, I will help you see more clearly through this jungle of acronyms, and once you understand the differences, I will show you how to implement them as developers.</em><br><br><em>Each approach has its own specificities, advantages and disadvantages.</em><br><br><em>By the end of this talk, you will not only know how to choose the right approach, but also how to add the right dose of useful AI into your daily development work.”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=N3NzgO6M-Ss" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<h4 class="wp-block-heading">&#8220;Refactorer sans tout casser: anatomie des patterns de modernisation incrémentale&#8221;</h4>



<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 “Refactoring without breaking everything: anatomy of incremental modernisation patterns”</em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-9-1024x576.png" alt="Héla Ben Khalfallah speaking at Devoxx France 2026" class="wp-image-31818" style="aspect-ratio:1.7777426704463952;width:560px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-9-1024x576.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-9-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-9-768x432.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-9-1536x864.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/image-9.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>🎤 Speaker: Héla Ben Khalfallah</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Cette session répond à un problème extrêmement courant mais rarement traité de façon structurée : comment moderniser un système legacy sans big bang, sans freeze de la prod, et sans multiplier les régressions. Plutôt que de parler “microservices” ou “rewrite from scratch” de manière abstraite, la session propose un playbook de modernisation incrémentale, articulé autour de patterns éprouvés : Strangler Fig, Parallel Change (Expand/Contract), Branch by Abstraction, décomposition par capacités métier / sous-domaines / transactions, et les patterns de conception (Facade, Adapter, Proxy, Mediator) utilisés comme briques concrètes de migration.<br><br>Le contenu est ancré dans la pratique : il synthétise à la fois des retours d’expérience industriels (Netflix, Khan Academy, etc.) et des travaux de recherche / rédaction. L’objectif n’est pas de présenter un catalogue de patterns, mais de montrer comment les combiner pour construire une trajectoire de migration observable, réversible et livrable en continu.<br><br>Vous repartirez avec une grille de lecture concrète pour garder des migrations observables, réversibles et compatibles avec le rythme produit.&#8221;</p>
</blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>🏴󠁧󠁢󠁥󠁮󠁧󠁿 <em><em>“This session addresses an extremely common problem that is rarely handled in a structured way: how to modernise a legacy system without a big bang, without a production freeze, and without multiplying regressions. Rather than talking abstractly about microservices or rewriting from scratch, the session offers an incremental modernisation playbook built around proven patterns: Strangler Fig, Parallel Change — Expand/Contract — Branch by Abstraction, decomposition by business capabilities, subdomains and transactions, as well as design patterns such as Facade, Adapter, Proxy and Mediator used as concrete building blocks for migration.</em></em></em><br><br><em>The content is rooted in practice: it brings together both industrial feedback from companies such as Netflix and Khan Academy, and research and written work. The goal is not to present a catalogue of patterns, but to show how they can be combined to build a migration path that is observable, reversible and continuously deliverable.</em><br><br><em>You will leave with a concrete framework for keeping migrations observable, reversible and compatible with the pace of product development.”</em></p>
</blockquote>



<p>🎥 <a href="https://www.youtube.com/watch?v=X2YyWAh336Y" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Replay</a>.</p>



<p>📺 Devoxx France published the 232 videos (keynotes, conferences, tools in action, lunch talks &amp; deep dives) on the <a href="https://www.youtube.com/@devoxxfrvideos" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Devoxx France YouTube channel</a>.</p>



<h3 class="wp-block-heading">Podcast</h3>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_091521008-1024x768.jpg" alt="Podcast recording at Devoxx France 2026" class="wp-image-31598" style="width:428px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_091521008-1024x768.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_091521008-300x225.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_091521008-768x576.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_091521008-1536x1152.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/PXL_20260423_091521008-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Devoxx France was also an opportunity for OVHcloud’s Aurélie Vache, Stéphane Philippart, and Magali De Labareyre to be interviewed in the Press space for the “Tech en Pratique” podcast.</p>



<p>The episodes will be available on <a href="https://www.youtube.com/@ekit3" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">YouTube</a> starting in September! 🙂</p>



<h3 class="wp-block-heading">Key Trends</h3>



<ul class="wp-block-list">
<li><strong>AI moved from hype to production</strong><br>The focus shifted toward agentic systems, RAG, observability, governance, and enterprise integration, with more emphasis on shipping useful AI than experimenting.</li>
</ul>



<ul class="wp-block-list">
<li><strong><strong>Java evolved for modern AI and cloud workloads</strong><br></strong>LangChain4j, GraalVM, native image, and JDK modernization reinforced Java’s role as a serious platform for AI-enabled enterprise systems.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Platform engineering became a core priority</strong><br>CI/CD maturity, OpenRewrite, modernization, and developer productivity all reflected one goal: faster delivery without losing control.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Security moved deeper into developer workflows</strong><br>Shift-left security, AppSec, authorization, Software Supply Chain Security and secure-by-design approaches gained importance, especially with AI-generated code increasing governance needs.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Cloud &amp; architecture focused on operational resilience</strong><br>Kubernetes, containers, observability, and scalable systems remained central, with a stronger focus on practical engineering over hype.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Front-end discussions matured</strong><br>Accessibility, performance, reactivity, and maintainability took priority over framework wars.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Open source and European digital sovereignty gained traction</strong><br>Open models, self-hosted tooling, privacy, and vendor independence became increasingly important themes.</li>
</ul>



<ul class="wp-block-list">
<li><strong>Developer experience (DX) became strategic</strong><br>Tooling, automation, terminal workflows, and reducing cognitive load were seen as key drivers of productivity and competitiveness.</li>
</ul>



<h3 class="wp-block-heading">Conclusion</h3>



<p>This Devoxx France edition was a raging success for the speakers, sponsors, and attendees alike ♥️.</p>



<h3 class="wp-block-heading">💬 Stay in Touch</h3>



<p>Want to chat with us, share your thoughts, or just say hi? Here’s how to get in touch with us:</p>



<ul class="wp-block-list">
<li>🟣&nbsp;<strong>Discord</strong>:&nbsp;<a href="https://discord.gg/ovhcloud" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">OVHcloud Discord server</a></li>



<li>🐦&nbsp;<strong>X / Twitter</strong>:&nbsp;<a href="https://twitter.com/OVHcloud" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">@OVHcloud</a></li>



<li>💼&nbsp;<strong>LinkedIn</strong>:&nbsp;<a href="https://www.linkedin.com/company/ovhgroup" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">OVHcloud LinkedIn</a></li>



<li>🐙&nbsp;<strong>GitHub</strong>:&nbsp;<a href="https://github.com/ovh" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">github.com/ovh</a></li>
</ul>



<p></p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdevoxx-france-2026%2F&amp;action_name=Devoxx%20France%202026%3A%20feedback%20and%20highlights&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Développement à distance #3 &#8211; Industrialisation et automatisation</title>
		<link>https://blog.ovhcloud.com/developpement-distance-3-industrialisation-automatisation/</link>
		
		<dc:creator><![CDATA[Rémy Vandepoel]]></dc:creator>
		<pubDate>Wed, 13 May 2026 08:06:26 +0000</pubDate>
				<category><![CDATA[OVHcloud en Français]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31558</guid>

					<description><![CDATA[Après avoir configuré votre serveur manuellement, pas à pas, il est temps d’automatiser tout le processus. L’idée est simple&#160;: décrire votre infrastructure dans des fichiers de configuration et laisser Terraform s’occuper de commander les ressources chez OVHcloud. Voici un guide d’introduction à Terraform, avec de nombreuses informations utiles&#160;: https://support.us.ovhcloud.com/hc/en-us/articles/22648864003219-Using-Terraform-with-OVHcloud.Ainsi que le lien vers le fournisseur [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdeveloppement-distance-3-industrialisation-automatisation%2F&amp;action_name=D%C3%A9veloppement%20%C3%A0%20distance%20%233%20%26%238211%3B%20Industrialisation%20et%20automatisation&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1536" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-1024x683.jpg" alt="" class="wp-image-31559" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-1024x683.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-300x200.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-768x512.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/3.jpg 1536w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>



<p>Après avoir <a href="https://blog.ovhcloud.com/developpement-distance-2-securisation-performance/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">configuré votre serveur manuellement</a>, pas à pas, il est temps d’automatiser tout le processus.</p>



<p>L’idée est simple&nbsp;: décrire votre infrastructure dans des fichiers de configuration et laisser <strong>Terraform</strong> s’occuper de commander les ressources chez <strong>OVHcloud</strong>.<br><br>Voici un guide d’introduction à Terraform, avec de nombreuses informations utiles&nbsp;: <a href="https://support.us.ovhcloud.com/hc/en-us/articles/22648864003219-Using-Terraform-with-OVHcloud" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://support.us.ovhcloud.com/hc/en-us/articles/22648864003219-Using-Terraform-with-OVHcloud</a>.<br>Ainsi que le lien vers le fournisseur officiel Terraform d’OVHcloud&nbsp;: <a href="https://registry.terraform.io/providers/ovh/ovh/latest" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://registry.terraform.io/providers/ovh/ovh/latest</a><br><br>Il existe deux étapes à l’automatisation du déploiement&nbsp;:</p>



<ul class="wp-block-list">
<li>déploiement de l’instance Public Cloud&nbsp;;</li>



<li>déploiement de la partie applicative (vscode-server) et sa configuration.</li>
</ul>



<h2 class="wp-block-heading">1. Le cœur de l’automatisation&nbsp;: le script Cloud-init</h2>



<p>Avant de parler de Terraform, il est nécessaire de comprendre comment le serveur s’auto-configure lors de son initialisation.<br>Pour cela, utilisez <code>cloud-init</code>, un standard qui permet d’exécuter des scripts dès le premier démarrage de l’instance.</p>



<p><strong>Ce que vous allez automatiser dans ce script&nbsp;:</strong></p>



<ul class="wp-block-list">
<li>la mise à jour du système (<code>apt update/upgrade</code>)&nbsp;;</li>



<li>l’installation de <code>code-server</code> via le script officiel&nbsp;;</li>



<li>l’installation et la configuration de <strong>Caddy</strong> (pour le SSL automatique)&nbsp;;</li>



<li>la configuration du pare-feu <strong>UFW</strong>.</li>
</ul>



<p>Ce type de fichier possède une syntaxe bien particulière, le cloud-config.yaml sera à disposition plus bas.</p>



<p>Toutefois, l’important à retenir est&nbsp;: pourquoi utiliser ce format&nbsp;?</p>



<ul class="wp-block-list">
<li><strong>Idempotence&nbsp;:</strong> le <code>cloud-init</code> s’assure que tout est prêt dès le premier boot.</li>



<li><strong>Sécurité dès la naissance&nbsp;:</strong> le pare-feu <code>ufw</code> est activé immédiatement, réduisant la fenêtre d’exposition.</li>



<li><strong>Intégration Terraform&nbsp;:</strong> une seule ligne est nécessaire pour l’inclure&nbsp;: <code>user_data = file("cloud-config.yaml")</code></li>
</ul>



<h2 class="wp-block-heading">2. Utilisation de Terraform pour le déploiement</h2>



<p>Terraform permet d’obtenir un démarrage de l’instance bien plus aisé et rapide.<br>Sa configuration, quant à elle, comporte plusieurs avantages&nbsp;:</p>



<ul class="wp-block-list">
<li><strong>persistance des données.</strong> Un <code>terraform destroy</code> de l’instance pourra conserver le volume de données (but fixé dans le chapitre 2)&nbsp;;</li>



<li><strong>évolutivité.</strong> Si le projet grossit, la taille du volume et/ou la flavor peuvent être modulées&nbsp;;</li>



<li><strong>portabilité.</strong> Le volume de données peut être démonté et remonté sur une autre machine.</li>
</ul>



<p>Pour garder ce billet court, pas de copier-coller de code, mais un lien vers un repository GitHub avec tout le nécessaire pour déployer ceci en quelques minutes&nbsp;:<br><a href="https://github.com/RemyAtOVH/blogpost-dev-server" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://github.com/RemyAtOVH/blogpost-dev-server</a></p>



<p>Son utilisation&nbsp;:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>ubuntu@vscode-server:~$ source openrc.production.sh<br>ubuntu@vscode-server:~$ terraform init<br>ubuntu@vscode-server:~$ terraform plan<br>ubuntu@vscode-server:~$ terraform apply<br>[…]<br>Apply complete! Resources: 4 added, 0 changed, 0 destroyed.<br>Outputs:instance_ip = &#8220;XXX.XXX.XXX.XXX&#8221;</strong></td></tr></tbody></table></figure>



<p>Avant l’application du cloud-init (ou sans), on constate bien un volume secondaire <strong>/dev/sdb</strong>, de taille correspondant aux spécifications de Terraform&nbsp;:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong><strong>ubuntu@vscode-server-automated:~$ lsblk</strong></strong><br><strong><strong>NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS<br>[&#8230;]<br>sda       8:0    0   25G  0 disk <br>[&#8230;]<br>sdb       8:16   0   10G  0 disk </strong></strong></td></tr></tbody></table></figure>



<p>C’est lui qui assurera la persistance des données.</p>



<p>Vous pourriez tout à fait effectuer manuellement la suppression de l’instance et des autres composants, sans toutefois le supprimer lui.<br>Pour éviter toute suppression en cas de «&nbsp;terraform destroy&nbsp;», un paramètre a été ajouté&nbsp;:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>lifecycle { prevent_destroy = true }</strong><strong></strong></td></tr></tbody></table></figure>



<p>Lors du premier démarrage, les différents scripts d’installation pouvant prendre du temps, vous pouvez en vérifier les étapes d’un simple <em>tail&nbsp;</em>:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>ubuntu@vscode-server-automated:<strong>~</strong>$ tail -f /var/log/cloud-init-output.log</strong></td></tr></tbody></table></figure>



<p>Une fois le cloud-init exécuté automatiquement, tout ce qui a pu être mis en place manuellement dans les chapitres précédents a été fait. Et ce, de façon automatique et reproductible&nbsp;!</p>



<p>Il sera donc possible, sous réserve de quelques minutes d’exécution, de déployer cet environnement de développement distant personnalisé si besoin et potentiellement le supprimer après quelques heures ou jours d’utilisation.</p>



<p>Dans cette série de chapitres, nous avons transformé une simple idée, disposer de son VS Code partout, en une infrastructure de niveau professionnel, automatisée et résiliente.<br>Retrouvez ci-dessous les étapes et le chemin parcouru.</p>



<ul class="wp-block-list">
<li><strong><a href="https://blog.ovhcloud.com/developpement-distance-1-premier-deploiement/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Chapitre 1</a>&nbsp;:</strong> premiers pas en installation manuelle pour comprendre la mécanique de&nbsp;<code>code-server</code>.</li>



<li><strong><a href="https://blog.ovhcloud.com/developpement-distance-2-securisation-performance/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Chapitre 2</a>&nbsp;:</strong> sécurisation, avec utilisation d’un Reverse Proxy (Caddy) et d’un pare-feu (UFW) pour naviguer sereinement en HTTPS.</li>



<li><strong>Chapitre 3&nbsp;:</strong> cet article, utilisant Terraform et OpenStack, pour une meilleure reproductibilité.</li>
</ul>



<p>L’automatisation que nous avons mise en place avec un déploiement chez OVHcloud en utilisant Public Cloud reposant sur OpenStack, constitue une base solide.</p>



<p>À partir d’ici, il est possible d’aller encore plus loin&nbsp;: ajouter une sauvegarde automatique de vos volumes (snapshotting), coupler cela à un pipeline CI/CD ou même explorer le déploiement de cet environnement via docker-compose, ou même Kubernetes.</p>



<p>Retrouvez prochainement une version vidéo de ces billets de blog, étape par étape, sur notre <a href="https://www.youtube.com/@ovhgroup" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">chaîne YouTube</a>. Restez à l’écoute&nbsp;!</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdeveloppement-distance-3-industrialisation-automatisation%2F&amp;action_name=D%C3%A9veloppement%20%C3%A0%20distance%20%233%20%26%238211%3B%20Industrialisation%20et%20automatisation&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Remote development #3 &#8211; Industrialisation and Automation</title>
		<link>https://blog.ovhcloud.com/remote-development-3-industrialisation-automation/</link>
		
		<dc:creator><![CDATA[Rémy Vandepoel]]></dc:creator>
		<pubDate>Wed, 13 May 2026 08:05:05 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31565</guid>

					<description><![CDATA[After manually configuring your server step by step, it’s time to automate the entire process. The idea is simple: describe your infrastructure in configuration files and let Terraform take care of managing the resources at OVHcloud. Here is an introductory guide to Terraform, with plenty of useful information: https://support.us.ovhcloud.com/hc/en-us/articles/22648864003219-Using-Terraform-with-OVHcloud.As well as the link to OVHcloud’s [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fremote-development-3-industrialisation-automation%2F&amp;action_name=Remote%20development%20%233%20%26%238211%3B%20Industrialisation%20and%20Automation&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1536" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-1024x683.jpg" alt="" class="wp-image-31559" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-1024x683.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-300x200.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/3-768x512.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/3.jpg 1536w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>



<p>After <a href="https://blog.ovhcloud.com/remote-development-2-security-performance/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">manually configuring your server</a> step by step, it’s time to automate the entire process.</p>



<p>The idea is simple: describe your infrastructure in configuration files and let <strong>Terraform</strong> take care of managing the resources at <strong>OVHcloud</strong>.<br><br>Here is an introductory guide to Terraform, with plenty of useful information: <a href="https://support.us.ovhcloud.com/hc/en-us/articles/22648864003219-Using-Terraform-with-OVHcloud" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://support.us.ovhcloud.com/hc/en-us/articles/22648864003219-Using-Terraform-with-OVHcloud</a>.<br>As well as the link to OVHcloud’s official Terraform provider: <a href="https://registry.terraform.io/providers/ovh/ovh/latest" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://registry.terraform.io/providers/ovh/ovh/latest</a><br><br>There are two steps to automating the deployment:</p>



<ul class="wp-block-list">
<li>Deployment of the Public Cloud instance</li>



<li>Deployment of the application part (vscode-server) and its configuration</li>
</ul>



<h2 class="wp-block-heading">1. The heart of the automation: the Cloud-init script</h2>



<p>Before we move onto Terraform, we need to understand how the server self-configures during its initialisation.<br>To do this, use <code>cloud-init</code>, a standard that allows scripts to be executed from the first boot of the instance.</p>



<p><strong>What you will automate in this script:</strong></p>



<ul class="wp-block-list">
<li>The system update (<code>apt update/upgrade</code>)</li>



<li>The installation of <code>code-server</code> via the official script</li>



<li>The installation and configuration of <strong>Caddy</strong> (for automatic SSL)</li>



<li>The configuration of the Uncomplicated Firewall (<strong>UFW</strong>)</li>
</ul>



<p>This type of file has a very particular syntax; the cloud-config.yaml will be available further down.</p>



<p>However, the important point to remember is: why use this format?</p>



<ul class="wp-block-list">
<li><strong>Idempotence:</strong> <code>cloud-init</code> ensures that everything is ready from the first boot.</li>



<li><strong>Security from the outset:</strong> the <code>UFW</code> is activated immediately, reducing the exposure window.</li>



<li><strong>Terraform Integration:</strong> a single line is required to include this: <code>user_data = file("cloud-config.yaml")</code></li>
</ul>



<h2 class="wp-block-heading">2. Using Terraform for deployment</h2>



<p>Terraform allows for a much easier and quicker instance startup.<br>Its configuration also has several advantages:</p>



<ul class="wp-block-list">
<li><strong>Persistent data:</strong> a <code>terraform destroy</code> of the instance can retain the data volume (goal set in chapter 2)</li>



<li><strong>Scalability:</strong> if the project grows, the size of the volume and/or the flavour can be adjusted</li>



<li><strong>Portability:</strong> the data volume can be unmounted and remounted on another machine.</li>
</ul>



<p>To keep this post brief we won’t copy-paste the code here, but this link to a GitHub repository contains everything needed to deploy this in a few minutes:<br><a href="https://github.com/RemyAtOVH/blogpost-dev-server" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://github.com/RemyAtOVH/blogpost-dev-server</a></p>



<p>Its usage:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>u</strong><code><strong>ubuntu@vscode-server:~$ source openrc.production.sh<br>ubuntu@vscode-server:~$ terraform init<br>ubuntu@vscode-server:~$ terraform plan<br>ubuntu@vscode-server:~$ terraform apply<br>[...]<br>Apply complete! Resources: 4 added, 0 changed, 0 destroyed.</strong></code></td></tr></tbody></table></figure>



<p>Before applying cloud-init (or without it), there is a secondary volume <strong>/dev/sdb</strong>, sized according to Terraform specifications:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>ubuntu@vscode-server-automated:~$ lsblk</strong><br><strong>NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS<br>[&#8230;]<br>sda       8:0    0   25G  0 disk <br>[&#8230;]<br>sdb       8:16   0   10G  0 disk </strong></td></tr></tbody></table></figure>



<p>This is what will ensure data persistence.</p>



<p>You could manually delete the instance and other components, without deleting it.<br>To prevent any deletion in the event of “terraform destroy”, a parameter has been added:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>lifecycle { prevent_destroy = true }</strong><strong></strong></td></tr></tbody></table></figure>



<p>During the first startup, the various installation scripts may take time. You can check their steps with a simple tail:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong><strong>ubuntu@vscode-server-automated:<strong>~</strong>$ tail -f /var/log/cloud-init-output.log</strong></strong></td></tr></tbody></table></figure>



<p>Once cloud-init has been executed automatically, everything that could have been set up manually in the previous chapters has been done automatically, in a way that can be reproduced!</p>



<p>It will therefore be possible to deploy this customised remote development environment if needed (with a few minutes of execution) and potentially delete it after a few hours or days of use.</p>



<p>In this series of chapters, we have transformed a simple idea – having access to VS Code wherever you are – into a professional-grade, automated and resilient infrastructure.<br>Below are the steps involved and the progress so far.</p>



<ul class="wp-block-list">
<li><strong><a href="https://blog.ovhcloud.com/remote-development-1-first-deployment/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Chapter 1</a>:</strong> first steps in manual installation to understand the mechanics of <code>code-server</code>.</li>



<li><strong><a href="https://blog.ovhcloud.com/remote-development-2-security-performance/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Chapter 2</a>:</strong> making it secure, using a Reverse Proxy (Caddy) and a firewall (UFW) to navigate smoothly in HTTPS.</li>



<li><strong>Chapter 3:</strong> this article, in which we’ll use Terraform and OpenStack for better reproducibility.</li>
</ul>



<p>The automation we have implemented with an OVHcloud deployment using an OpenStack-based Public Cloud provides a solid foundation.</p>



<p>From here, you can go even further: add automatic backups of your volumes (snapshotting), couple this with a CI/CD pipeline, or even explore deploying this environment via docker-compose or even Kubernetes.</p>



<p>A step-by-step video version of these blog posts will soon be available on our <a href="https://youtube.com/@ovhgroup" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">YouTube channel</a>. Stay tuned!</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fremote-development-3-industrialisation-automation%2F&amp;action_name=Remote%20development%20%233%20%26%238211%3B%20Industrialisation%20and%20Automation&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Remote development #2 &#8211; Security and Performance</title>
		<link>https://blog.ovhcloud.com/remote-development-2-security-performance/</link>
		
		<dc:creator><![CDATA[Rémy Vandepoel]]></dc:creator>
		<pubDate>Mon, 11 May 2026 16:00:02 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31546</guid>

					<description><![CDATA[In the previous chapter, we started the VSCode Server on a remote instance. That’s a win. However, as it stands, your installation is vulnerable, or at least not optimally secured. Traffic is being sent in clear (HTTP) and port 8080 is exposed to anyone scanning our IP address. To transform this prototype into a daily [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fremote-development-2-security-performance%2F&amp;action_name=Remote%20development%20%232%20%26%238211%3B%20Security%20and%20Performance&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1-1024x683.jpg" alt="" class="wp-image-31555" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1-1024x683.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1-300x200.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1-768x512.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1.jpg 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>In the <a href="https://blog.ovhcloud.com/remote-development-1-first-deployment/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">previous chapter</a>, we started the VSCode Server on a remote instance.</p>



<p>That’s a win. However, as it stands, your installation is vulnerable, or at least not optimally secured. Traffic is being sent in clear (HTTP) and port 8080 is exposed to anyone scanning our IP address.</p>



<p>To transform this prototype into a daily working tool, we need to set up a Reverse Proxy.<br>Its role is simple: to intercept secure connections (HTTPS) on the standard port 443 and redirect them locally to our service.</p>



<h2 class="wp-block-heading">1. Prerequisites: securing the network part</h2>



<p>First and foremost, we need to instruct code-server to no longer listen for connections from outside, but only to those coming from the machine itself (the proxy).</p>



<p>Modify your configuration file: nano ~/.config/code-server/config.yaml</p>



<p>Change the line &#8220;bind-addr&#8221; as follows:&nbsp;</p>



<p><code>bind-addr: 127.0.0.1:8080</code></p>



<p>Then restart the service.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo systemctl restart code-server@$USER</strong></code></td></tr></tbody></table></figure>



<p>This will ensure that vscode-server will indeed only “listen” locally and cannot be contacted directly from outside.</p>



<h2 class="wp-block-heading">2. Implement the reverse proxy</h2>



<p>Here, you have two choices:</p>



<ul class="wp-block-list">
<li>NGINX, which has been the standard choice for many years</li>



<li>Caddy, which has a more simplistic (but comprehensive) and newer approach.</li>
</ul>



<p>For this blog post, we have selected Caddy for the example and to familiarise ourselves if we have not already!</p>



<p>Caddy natively manages SSL certificate renewal – which can be done through OVHcloud!</p>



<p><strong>Installation (Debian/Ubuntu)</strong></p>



<p>You will find more comprehensive documentation for other systems or installation methods in the official documentation: <a href="https://caddyserver.com/docs/install" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://caddyserver.com/docs/install</a>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https</strong></code><br><code><strong>ubuntu@vscode-server:~$ curl -1sLf </strong></code><strong>&#8216;https://dl.cloudsmith.io/public/caddy/stable/gpg.key&#8217;</strong><code><strong>| sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg</strong></code><br><code><strong>ubuntu@vscode-server:~$ curl -1sLf </strong></code><strong>&#8216;https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt&#8217;</strong><code><strong>| sudo tee /etc/apt/sources.list.d/caddy-stable.list</strong></code><br><code><strong>ubuntu@vscode-server:~$ sudo apt update &amp;&amp; sudo apt install caddy -y</strong></code></td></tr></tbody></table></figure>



<p><strong>Configuration: </strong>modify the file <code>/etc/caddy/Caddyfile</code> (clear it and replace it with this):</p>



<p><em>Replace “<strong>dev.your-domain.uk</strong>” with your own domain name, with the subdomain of your choice pointing to the IP of the instance.</em></p>



<ul class="wp-block-list">
<li>Simple configuration only on HTTP port (80)</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong><strong>dev.your-domain.uk {<br>    reverse_proxy 127.0.0.1:8080<br>}</strong></strong></td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li>Recommended configuration on HTTPS port (443), using a domain hosted with OVHcloud.</li>
</ul>



<p>For creating OVHcloud API tokens, you can refer to this page: <a href="https://eu.api.ovh.com/createToken/" target="_blank" rel="noreferrer noopener" data-wpel-link="exclude">https://eu.api.ovh.com/createToken/</a>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>dev.your-domain.uk </strong></code><strong>{<br>&nbsp; &nbsp; tls {<br>&nbsp; &nbsp; &nbsp; &nbsp; dns ovh {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; endpoint &#8220;ovh-eu&#8221;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; application_key {$OVH_APPLICATION_KEY}<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; application_secret {$OVH_APPLICATION_SECRET}<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer_key {$OVH_CONSUMER_KEY}<br>&nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp; reverse_proxy&nbsp;<code>127.0.0.1:8080</code><br>}</strong></td></tr></tbody></table></figure>



<p><em>For further details regarding SSL certificate management, consult the official Caddy documentation.<br>Application:</em></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo systemctl reload caddy</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>If you have opted for the recommended configuration in HTTPS, your environment is now protected by robust SSL encryption.</p>



<p>You are no longer at risk of having your password intercepted on public Wi-Fi, which is a considerable step towards our goal.</p>



<h2 class="wp-block-heading">3. Network and firewall</h2>



<p>Now that the access point is unique via the HTTPS URL configured just above, the rest of the ports, except for SSH, can be closed.</p>



<p>Now, implement the basic rules in the firewall. On Ubuntu, the standard tool is <strong>UFW</strong> (Uncomplicated Firewall).</p>



<p>Start by opening the ports related to the functional services.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw allow ssh<br>ubuntu@vscode-server:~$ sudo ufw allow http<br>ubuntu@vscode-server:~$ sudo ufw allow https</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Activate the firewall:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw enable</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Check the implementation of the rules.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw status<br>Status: active</strong></code><br><code><strong>To &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Action &nbsp; &nbsp; &nbsp;From<br>-- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ------ &nbsp; &nbsp; &nbsp;----<br>22/tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>80/tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>443 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>45876 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>22/tcp (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)<br>80/tcp (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)<br>443 (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)<br>45876 (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)</strong></code></td></tr></tbody></table></figure>



<p>You can also add stricter rules to explicitly reject anything unauthorised in incoming traffic while generally authorising outgoing traffic.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw default deny incoming<br>ubuntu@vscode-server:~$ sudo ufw default allow outgoing</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>From now on, if someone attempts to access the IP on port <code>8080</code>, the connection will be outright rejected.</p>



<p>Only the domain name in HTTPS is the legitimate entry point.<br>This handy little development server now feels more like a fortress.&nbsp;<br><br>But what happens if you decide to delete this instance to move to a more powerful one and/or stop it for an indefinite period, as your project is on hold?</p>



<p>This is what you will find out in the next part: how to <strong>isolate your data and configurations</strong> on a persistent storage volume to make your environment completely interchangeable, but also how to <strong>automate the deploymen</strong> of this development environment!</p>



<p>The ultimate goal is for a simple <code>terraform apply</code> command to to be enough to generate a development environment that’s ready to use in under two minutes.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fremote-development-2-security-performance%2F&amp;action_name=Remote%20development%20%232%20%26%238211%3B%20Security%20and%20Performance&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Développement à distance #2 &#8211; Sécurisation et performance</title>
		<link>https://blog.ovhcloud.com/developpement-distance-2-securisation-performance/</link>
		
		<dc:creator><![CDATA[Rémy Vandepoel]]></dc:creator>
		<pubDate>Mon, 11 May 2026 15:58:04 +0000</pubDate>
				<category><![CDATA[OVHcloud en Français]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31371</guid>

					<description><![CDATA[Dans le chapitre précédent, nous avons démarré VSCode Server sur une instance distante. C’est une victoire. Mais en l’état, votre installation est vulnérable, ou du moins non sécurisée de façon optimale. Le trafic circule donc en clair (HTTP) et le port 8080 est exposé à quiconque scanne notre adresse IP. Pour transformer ce prototype en [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdeveloppement-distance-2-securisation-performance%2F&amp;action_name=D%C3%A9veloppement%20%C3%A0%20distance%20%232%20%26%238211%3B%20S%C3%A9curisation%20et%20performance&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1024x683.jpg" alt="" class="wp-image-31554" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-1024x683.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-300x200.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/2-768x512.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/2.jpg 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dans le <a href="https://blog.ovhcloud.com/developpement-distance-1-premier-deploiement/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">chapitre précédent</a>, nous avons démarré VSCode Server sur une instance distante.</p>



<p>C’est une victoire. Mais en l’état, votre installation est vulnérable, ou du moins non sécurisée de façon optimale. Le trafic circule donc en clair (HTTP) et le port 8080 est exposé à quiconque scanne notre adresse IP.</p>



<p>Pour transformer ce prototype en un outil de travail quotidien, il est indispensable de mettre en place un Reverse Proxy.</p>



<p>Son rôle est simple : intercepter les connexions sécurisées (HTTPS) sur le port standard 443 et les rediriger localement vers notre service.</p>



<h2 class="wp-block-heading">1. Prérequis&nbsp;: verrouiller la partie réseau</h2>



<p>Avant toute chose, il est nécessaire de demander à code-server de ne plus écouter les connexions venant de l’extérieur, mais uniquement celles venant de la machine elle-même (le proxy).</p>



<p>Modifiez votre fichier de configuration : nano ~/.config/code-server/config.yaml</p>



<p>Modifiez la ligne « bind-addr » comme suit :</p>



<p><code>bind-addr: 127.0.0.1:8080</code></p>



<p>Puis redémarrez le service.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo systemctl restart code-server@$USER</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Ceci aura pour effet d’avoir la certitude que vscode-server «&nbsp;écoutera&nbsp;» bien uniquement en local et ne pourra pas être contacté directement de l’extérieur</p>



<h2 class="wp-block-heading">2. Implémenter le reverse proxy</h2>



<p>Ici, vous avez deux choix&nbsp;:</p>



<ul class="wp-block-list">
<li>nginx constitue le choix standard depuis de nombreuses années&nbsp;;</li>



<li>Caddy, avec une approche plus simpliste (mais complète) et récente.</li>
</ul>



<p>Pour ce billet de blog, nous avons sélectionné Caddy pour l’exemple et se familiariser si ce n’est pas déjà le cas !</p>



<p>Caddy sait nativement gérer l’implémentation du renouvellement de certificats SSL. Le tout, avec OVHcloud !</p>



<p><strong>Installation (Debian/Ubuntu</strong></p>



<p>Vous pourrez trouver une documentation plus complète pour d’autres systèmes, ou méthodes d’installation dans la documentation officielle : <a href="https://caddyserver.com/docs/install" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://caddyserver.com/docs/install</a>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https</strong></code><br><code><strong>ubuntu@vscode-server:~$ curl -1sLf </strong></code><strong>&#8216;https://dl.cloudsmith.io/public/caddy/stable/gpg.key&#8217;</strong><code><strong>| sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg</strong></code><br><code><strong>ubuntu@vscode-server:~$ curl -1sLf </strong></code><strong>&#8216;https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt&#8217;</strong><code><strong>| sudo tee /etc/apt/sources.list.d/caddy-stable.list</strong></code><br><code><strong>ubuntu@vscode-server:~$ sudo apt update &amp;&amp; sudo apt install caddy -y</strong></code></td></tr></tbody></table></figure>



<p><strong>Configuration :</strong> modifiez le fichier <code>/etc/caddy/Caddyfile</code> (videz-le et remplacez par ceci)&nbsp;:</p>



<p><em>Remplacez «&nbsp;<strong>dev.votre-domaine.fr</strong>&nbsp;» par votre propre nom de domaine avec le sous-domaine de votre choix pointant vers l’IP de l’instance.</em></p>



<ul class="wp-block-list">
<li>Configuration simple uniquement sur le port HTTP (80)</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>dev.your-domain.uk {</strong></code><code><strong>&nbsp;&nbsp;&nbsp; reverse_proxy 127.0.0.1:8080</strong></code><code><strong>}</strong></code><strong></strong></td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li>Configuration recommandée sur le port HTTPS (443), en utilisant un domaine hébergé chez OVHcloud.</li>
</ul>



<p>Pour la création des tokens API OVHcloud, vous pouvez vous référer à cette page : <a href="https://eu.api.ovh.com/createToken/" target="_blank" rel="noreferrer noopener" data-wpel-link="exclude">https://eu.api.ovh.com/createToken/</a>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong><code><strong>dev.your-domain.fr </strong></code><strong>{<br>&nbsp; &nbsp; tls {<br>&nbsp; &nbsp; &nbsp; &nbsp; dns ovh {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; endpoint "ovh-eu"<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; application_key {$OVH_APPLICATION_KEY}<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; application_secret {$OVH_APPLICATION_SECRET}<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer_key {$OVH_CONSUMER_KEY}<br>&nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp; reverse_proxy&nbsp;<code>127.0.0.1:8080</code><br>}</strong></strong></code></td></tr></tbody></table></figure>



<p><em>Pour davantage de détails concernant la gestion des certificats SSL, vous pouvez consulter la documentation officielle de Caddy.<br>Application</em>:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo systemctl reload caddy</strong></code></td></tr></tbody></table></figure>



<p>Désormais, si vous avez opté pour la configuration recommandée en HTTPS, votre environnement est protégé par un chiffrement SSL robuste.</p>



<p>Vous ne risquez plus de voir votre mot de passe intercepté sur un Wi-Fi public, ce qui est un pas en avant non négligeable vers notre but.</p>



<h2 class="wp-block-heading">3. Réseau et pare-feu</h2>



<p>Maintenant que le point d’accès est unique via l’URL en HTTPS configuré juste au-dessus, le reste des ports, sauf le SSH, évidemment, peut être coupé.</p>



<p>Implémentez maintenant les règles basiques, dans le pare-feu. Sur Ubuntu, l’outil standard est <strong>UFW </strong>(Uncomplicated Firewall).</p>



<p>Commencez par ouvrir les ports relatifs aux services fonctionnels.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw allow ssh<br>ubuntu@vscode-server:~$ sudo ufw allow http<br>ubuntu@vscode-server:~$ sudo ufw allow https</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Activez le firewall&nbsp;:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw enable</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Vérification de la prise en compte des règles.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw status<br>Status: active</strong></code><br><code><strong>To &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Action &nbsp; &nbsp; &nbsp;From<br>-- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ------ &nbsp; &nbsp; &nbsp;----<br>22/tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>80/tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>443 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>45876 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere<br>22/tcp (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)<br>80/tcp (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)<br>443 (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)<br>45876 (v6) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLOW &nbsp; &nbsp; &nbsp; Anywhere (v6)</strong></code></td></tr></tbody></table></figure>



<p>Vous pouvez également ajouter des règles plus strictes pour rejeter explicitement tout ce qui n’est pas autorisé en entrée et laisser la sortie globalement autorisée.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo ufw default deny incoming<br>ubuntu@vscode-server:~$ sudo ufw default allow outgoing</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Désormais, si quelqu’un tente d’accéder à l’IP sur le port&nbsp;<code>8080</code>, la connexion sera purement et simplement rejetée.</p>



<p>Seul le nom de domaine en HTTPS constitue la porte d’entrée légitime.<br>Ce petit serveur de développement, bien pratique, ressemble désormais davantage à une forteresse.&nbsp;</p>



<p>Mais que se passe-t-il si vous décidez de supprimer cette instance pour en prendre une plus puissante et/ou la stopper pour une durée indéterminée, car votre projet est en pause&nbsp;?</p>



<p>C’est ce que vous découvrirez dans la prochaine partie&nbsp;: comment <strong>isoler vos données et vos configurations</strong> sur un volume de stockage persistant pour rendre votre environnement totalement interchangeable, mais également comment <strong>automatiser le déploiement</strong> de cet environnement de développement&nbsp;!</p>



<p>L’objectif final&nbsp;: qu’une simple commande <code>terraform apply</code> suffise à faire surgir un environnement de développement, prêt à l’emploi en moins de deux minutes.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdeveloppement-distance-2-securisation-performance%2F&amp;action_name=D%C3%A9veloppement%20%C3%A0%20distance%20%232%20%26%238211%3B%20S%C3%A9curisation%20et%20performance&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Développement à distance #1 &#8211; Premier déploiement</title>
		<link>https://blog.ovhcloud.com/developpement-distance-1-premier-deploiement/</link>
		
		<dc:creator><![CDATA[Rémy Vandepoel]]></dc:creator>
		<pubDate>Mon, 11 May 2026 15:24:02 +0000</pubDate>
				<category><![CDATA[OVHcloud en Français]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31679</guid>

					<description><![CDATA[Un environnement de développement est indispensable au quotidien, mais il peut vite devenir complexe à gérer. Nous allons voir ensemble, dans un billet de blog en 3 parties, comment améliorer son confort et sa productivité ! Réunions incessantes, environnements Docker différant légèrement sur chaque machine, mises à jour système intempestives : garder un poste de [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdeveloppement-distance-1-premier-deploiement%2F&amp;action_name=D%C3%A9veloppement%20%C3%A0%20distance%20%231%20%26%238211%3B%20Premier%20d%C3%A9ploiement&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1-1024x683.jpg" alt="" class="wp-image-31613" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/1-1024x683.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1-300x200.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1-768x512.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/1.jpg 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Un environnement de développement est indispensable au quotidien, mais il peut vite devenir complexe à gérer. Nous allons voir ensemble, dans un billet de blog en 3 parties, comment améliorer son confort et sa productivité !</p>



<p>Réunions incessantes, environnements Docker différant légèrement sur chaque machine, mises à jour système intempestives : garder un poste de développement fiable et cohérent devient vite un combat quotidien.</p>



<p>À chaque nouveau projet, il faut ré-installer les mêmes outils, les mêmes CLI, reconfigurer les mêmes SDK ou frameworks. Et surtout, espérer que la machine locale tienne la charge quand les tests, le linter et la base de données fonctionnent en même temps. Le tout, avec des situations de télétravail ou de mobilité dans lesquelles les personnes se retrouvent à développer depuis un ordinateur portable parfois proche de l’obsolescence, derrière un VPN capricieux.</p>



<p>Dans cette série d’articles, l’objectif est de transformer cette réalité en s’appuyant sur un environnement de développement complet hébergé dans le cloud et accessible depuis n’importe quel navigateur grâce à VS Code Server.</p>



<p>L’idée est de disposer d’une « station de travail » distante, puissante et, si besoin, reproductible et indépendante.</p>



<p>Ce premier chapitre montre comment déployer simplement et manuellement une instance Public Cloud et y installer VS Code Server. Les chapitres suivants traiteront de sa sécurisation et de son automatisation. &nbsp;</p>



<h2 class="wp-block-heading"><strong>1. Déploiement de l’instance</strong></h2>



<p>Pour les premiers tests, afin de prendre en main l’environnement et de le tester, il peut s’avérer judicieux d’opter pour une instance assez modeste, de type Discovery. Une instance d2-2 sera ici utilisée. 1vCPU et 2&nbsp;Go de RAM peuvent être suffisants.</p>



<h2 class="wp-block-heading"><strong>2. Installation de la partie applicative</strong></h2>



<p>La source de vérité pour les étapes suivantes est le GitHub du projet vscode-server : <a href="https://github.com/coder/code-server" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://github.com/coder/code-server</a></p>



<p>Plusieurs possibilités existent pour l’installation. Dans ce chapitre, pour simplifier le déploiement et pour les personnes peu habituées à Docker, l’installation se fera via le script d’installation «&nbsp;natif&nbsp;», sans utiliser de conteneurs.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo apt update &amp;&amp; sudo apt upgrade<br>ubuntu@vscode-server:~$ curl -fsSL&nbsp;</strong></code><a href="https://code-server.dev/install.sh" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><strong>https://code-server.dev/install.sh</strong></a><code><strong> | sh</strong></code></td></tr></tbody></table></figure>



<p>Cette étape suffit à installer le nécessaire. Activez maintenant le service et vérifiez son bon fonctionnement.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ sudo systemctl enable --now code-server@$USER<br>ubuntu@vscode-server:~$ sudo systemctl status code-server@$USER<br></strong>● </code><strong>code-server@ubuntu.servic</strong><code><strong>e</strong> -<strong> code-server<br>&nbsp; &nbsp; &nbsp;Loaded: loaded (/usr/lib/systemd/system/code-server@.service; enabled; preset: enabled)<br>&nbsp; &nbsp; &nbsp;Active: active (running) since Wed 2025-12-03 14:55:37 UTC; 15min ago<br>&nbsp;Invocation: 1b393d84bebe415cbb770a17a0c8d399<br>&nbsp; &nbsp;Main PID: 893 (node)<br>&nbsp; &nbsp; &nbsp; Tasks: 22 (limit: 4532)<br>&nbsp; &nbsp; &nbsp;Memory: 95.1M (peak: 112.1M)<br>&nbsp; &nbsp; &nbsp; &nbsp; CPU: 1.868s<br>&nbsp; &nbsp; &nbsp;CGroup: /system.slice/system-code\x2dserver.slice/code-server@ubuntu.service<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;├─ 893 /usr/lib/code-server/lib/node /usr/lib/code-server<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;└─1130 /usr/lib/code-server/lib/node /usr/lib/code-server/out/node/entry</strong></code></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>3. Validation de la configuration</strong></h2>



<p>À ce stade, le service est opérationnel, il reste à en finaliser la configuration, notamment la création du dossier qui contiendra le code ainsi que l’authentification.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ mkdir workspace </strong></code><strong><br></strong><code><strong>ubuntu@vscode-server:~$&nbsp;cat ~/.config/code-server/config.yaml<br>bind-addr: 127.0.0.1:8080<br>auth: password<br>password:&lt;secure_password&gt;<br>cert: false</strong></code><strong></strong></td></tr></tbody></table></figure>



<p>Il est ici nécessaire de placer un mot de passe sécurisé et de vérifier que la <code>bind-addr</code> correspond à la configuration souhaitée.</p>



<p>Si vous souhaitez tester directement le service en l’état, utilisez <code>0.0.0.0:8080</code>. Relancez ensuite le service et accédez à l’interface via <code>http://&lt;IP_PUBLIQUE&gt;:8080</code>.</p>



<p>Après avoir fourni dans la fenêtre d’authentification le mot de passe présent dans le <code>config.yaml</code>,&nbsp;vous accédez directement à VS Code dans le navigateur.</p>



<p>Partant de ce déploiement, vous pouvez donc ici répondre, partiellement en l’état, à la problématique d’un environnement de développement stable.</p>



<p>À ce stade, il est possible de cloner directement vos repositories GitHub ou d’utiliser le dossier <code>workspace</code> pour les cloner.</p>



<p>C’est d’ailleurs ce qui est recommandé pour davantage de pérennité, comme vous pourrez le voir dans le second chapitre.</p>



<p>Pour réaliser un commit de test via l’interface vscode-server, vous devez configurer git en local (juste une fois) pour que l’authentification du remote repository s’effectue correctement.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><code><strong>ubuntu@vscode-server:~$ git config user.email </strong></code><strong>&#8220;mail@foo.bar&#8221;</strong><br><code><strong>ubuntu@vscode-server:~$ git config --global </strong></code><strong>user.name</strong><code><strong>"John Doe"</strong></code></td></tr></tbody></table></figure>



<p>Dès cette étape, vous pouvez utiliser l’environnement de développement distant avec vscode-server. Et ce, en profitant de quasiment toutes les fonctionnalités dont vous pourriez disposer en local, mais avec les avantages d’un environnement dédié à cet usage.</p>



<p>⚠️ Rappel&nbsp;: en l’état, le déploiement fait ici n’est pas en statut «&nbsp;production ready&nbsp;»&nbsp;!</p>



<p>Le but de ce premier chapitre est de découvrir le service, les manipulations vous étant proposées pour vous permettre de vous familiariser avec l’environnement. Ainsi, veillez à ne pas opérer le service tel que déployé ici plus que quelques heures&nbsp;!</p>



<p>Il sera nécessaire de sécuriser l’environnement, puisqu’il est exposé directement sur Internet. C’est l’objet des <a href="https://blog.ovhcloud.com/developpement-distance-2-securisation-performance/" type="link" id="https://blog.ovhcloud.com/chapter-2-security-and-performance" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">chapitres suivants</a>.</p>



<p>Ce premier chapitre se termine avec un environnement de développement opérationnel, déjà capable de supporter un vrai projet applicatif&nbsp;!</p>



<p>L’instance est en ligne, VS Code Server répond dans le navigateur, l’espace de travail est prêt et le premier dépôt a été cloné et ouvert comme sur un poste local. Cette base montre qu’il est possible de s’abstraire du matériel pour gagner en portabilité et partager plus facilement une configuration commune au sein d’une équipe ou d’un poste de développement nomade.</p>



<p>Dans les prochains chapitres, cet environnement au minimum viable sera progressivement renforcé avec du stockage persistant, des mécanismes de sauvegarde ainsi qu’un accès sécurisé en HTTPS. Il sera ensuite entièrement automatisé via de l’Infrastructure as Code, afin de passer d’un simple test technique à une véritable plateforme de développement prête pour la production interne.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fdeveloppement-distance-1-premier-deploiement%2F&amp;action_name=D%C3%A9veloppement%20%C3%A0%20distance%20%231%20%26%238211%3B%20Premier%20d%C3%A9ploiement&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Navigating OVHcloud Enterprise File Storage (EFS) with Trident CSI On Kubernetes clusters (MKS)</title>
		<link>https://blog.ovhcloud.com/navigating-ovhcloud-enterprise-file-storage-efs-with-trident-csi-on-kubernetes-clusters-mks/</link>
		
		<dc:creator><![CDATA[Aurélie Vache]]></dc:creator>
		<pubDate>Mon, 11 May 2026 12:18:46 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Tranches de Tech & co]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[OVHcloud]]></category>
		<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[Storage]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31391</guid>

					<description><![CDATA[If you find yourself in need of shared persistent storage for applications running on OVHcloud Managed Kubernetes Service (MKS), then OVHcloud Enterprise File Storage (EFS) with Trident CSI offers you a practical way to provision and manage it. This blog post explains how to create and connect OVHcloud EFS to your MKS cluster using Trident [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fnavigating-ovhcloud-enterprise-file-storage-efs-with-trident-csi-on-kubernetes-clusters-mks%2F&amp;action_name=Navigating%20OVHcloud%20Enterprise%20File%20Storage%20%28EFS%29%20with%20Trident%20CSI%20On%20Kubernetes%20clusters%20%28MKS%29&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="1020" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587-1024x1020.png" alt="" class="wp-image-31461" style="aspect-ratio:1.0039264898357345;width:426px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587-1024x1020.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587-300x300.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587-150x150.png 150w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587-768x765.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587-70x70.png 70w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/IMG_1587.png 1253w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If you find yourself in need of shared persistent storage for applications running on OVHcloud Managed Kubernetes Service (MKS), then OVHcloud Enterprise File Storage (EFS) with Trident CSI offers you a practical way to provision and manage it.</p>



<p>This blog post explains how to create and connect OVHcloud EFS to your MKS cluster using Trident CSI, so you can dynamically provision persistent storage for Kubernetes workloads.</p>



<h3 class="wp-block-heading">OVHcloud Enterprise File System (EFS)</h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="100" height="100" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Enterprise-File-Storage@2x.png" alt="" class="wp-image-31410" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Enterprise-File-Storage@2x.png 100w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Enterprise-File-Storage@2x-70x70.png 70w" sizes="auto, (max-width: 100px) 100vw, 100px" /></figure>



<p><a href="https://www.ovhcloud.com/fr/storage-solutions/enterprise-file-storage/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">EFS</a> is a high-performance, fully managed file storage solution powered by NetApp ONTAP in an active-active architecture. It is designed for enterprise workloads requiring high availability, predictable performance, and seamless integration with cloud-native environments.</p>



<p>The service is available in multiple regions, including Roubaix, Gravelines, Strasbourg, Limbourg, and Beauharnois, with a strong SLA of 99.99% uptime. Storage capacity ranges from 50 GB up to 29 TB.</p>



<p>EFS delivers guaranteed performance with 4,000 IOPS and 64 MB/s throughput per TiB, scaling linearly with volume size thanks to NVMe SSD infrastructure.</p>



<p>Built for modern infrastructures, <a href="https://help.ovhcloud.com/csm/en-gb-public-cloud-storage-netapp-trident-csi?id=kb_article_view&amp;sysparm_article=KB0074862" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">EFS integrates natively with Kubernetes via Trident CSI</a> (compatible with MKS) and supports ReadWriteMany (RWX) access. It operates within a single availability zone (1AZ) and provides low-latency NFS storage over OVHcloud’s secure vRack network, ensuring strong security and compliance.</p>



<h3 class="wp-block-heading">NetApp Trident CSI</h3>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="350" height="387" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-9.png" alt="" class="wp-image-31406" style="width:201px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-9.png 350w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-9-271x300.png 271w" sizes="auto, (max-width: 350px) 100vw, 350px" /></figure>



<p><a href="https://github.com/netApp/trident" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Trident</a> is an open-source, fully supported storage orchestration project maintained by <a href="https://www.netapp.com/fr/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">NetApp</a>. It is designed to help Kubernetes applications consume persistent storage using standard interfaces such as the Container Storage Interface (<a href="https://github.com/container-storage-interface/spec/blob/master/spec.md" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">CSI</a>).</p>



<p>Trident runs directly inside Kubernetes clusters as a set of <strong>Pods</strong> and enables dynamic provisioning and management of storage for containerized workloads. It allows applications to easily access persistent storage from NetApp’s ecosystem, including ONTAP systems (like the OVHcloud EFS).</p>



<h3 class="wp-block-heading">Let&#8217;s do it!</h3>



<h4 class="wp-block-heading">EFS creation</h4>



<p>We already have a MKS cluster, in GRA11 region, running inside a private network and a subnet, with a gateway.<br>We also already have a vRack and our Public Cloud Project attached to this vRack.<br>So in this blog post we will only create a new EFS in <strong>eu-west-rbx</strong> region, attached to a vRackServices, inside the same subnet that our existing MKS cluster.</p>



<p>Here you can see the architecture of all the services:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="554" src="https://blog.ovhcloud.com/wp-content/uploads/2026/05/Untitled-2026-05-04-11371-1024x554.png" alt="" class="wp-image-31538" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/05/Untitled-2026-05-04-11371-1024x554.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Untitled-2026-05-04-11371-300x162.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Untitled-2026-05-04-11371-768x415.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Untitled-2026-05-04-11371-1536x831.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/05/Untitled-2026-05-04-11371-2048x1107.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>⚠️ EFS and MKS regions may differ; be aware that latency between different regions may impact your storage workloads performance. <strong>It&#8217;s highly recommended to keep your storage and compute as close as possible.</strong></p>



<p>We will deploy the EFS in <strong>eu-west-rbx</strong> instead of in <strong>eu-west-gra</strong> region to show you that it is possible.</p>



<p>To deploy the EFS, we will use the <a href="https://registry.terraform.io/modules/ovh/efs/ovh/latest" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Terraform OVHcloud EFS module</a>.</p>



<p>The module we will use can deploy all the components necessary to use EFS with a MKS cluster (like you can see in the schema).</p>



<p>But in this blog post we will assume that we already deployed:</p>



<ul class="wp-block-list">
<li>a vRack</li>



<li>a Private Network</li>



<li>a Private Subnet</li>



<li>a Gateway</li>



<li>a MKS cluster</li>
</ul>



<p>So using the Terraform module we will fill the existing resources information and ask Terraform to create:</p>



<ul class="wp-block-list">
<li>an OAuth2 credential</li>



<li>an IAM policy</li>



<li>an EFS</li>



<li>a vRack Services</li>
</ul>



<p>Let&#8217;s deploy our components with Terraform!</p>



<p>Create a <strong>provider.tf </strong>file and fill it with the information:</p>



<pre class="wp-block-code"><code class="">terraform {<br>  required_providers {<br>    ovh = {<br>      source  = "ovh/ovh"<br>      version = "&gt;= 2.12.0"<br>    }<br>    null = {<br>      source  = "hashicorp/null"<br>      version = "&gt;= 3.0.0"<br>    }<br>  }<br><br>  required_version = "&gt;= 1.7.0"<br>}<br><br>provider "ovh" {<br>}</code></pre>



<p>If you don&#8217;t define the provider information inside this file, as was shown in this example, you can instead set the environment variables with your credentials:</p>



<pre class="wp-block-code"><code class=""># OVHcloud provider needed keys<br>export OVH_ENDPOINT="ovh-eu"<br>export OVH_APPLICATION_KEY="xxx"<br>export OVH_APPLICATION_SECRET="xxx"<br>export OVH_CONSUMER_KEY="xxx"<br>export OVH_CLOUD_PROJECT_SERVICE="xxx"</code></pre>



<p>Create a <strong>variable.tf.template</strong> file and fill it with these information:</p>



<pre class="wp-block-code"><code class=""># Existing services<br>variable "service_name" {<br>  default = "$OVH_CLOUD_PROJECT_SERVICE"<br>}<br><br>variable "vrack_id" {<br>  default = "pn-1234567" #ID of your existing vRack<br>}<br><br>variable "vlan_id" {<br>  default = "666" #ID of your VLAN<br>}<br><br>variable "private_network_id" {<br>  default = "d111cb65-1234-5678-9012-dac2e93b8944" #ID of your private network<br>}<br><br>variable "private_subnet_id" {<br>  default = "d8dc2469-1234-5678-9012-1f86551d3466" #ID of your subnet<br>}<br><br>variable "vrackservices_subnet_service_range_cidr" {<br>  default = "192.168.168.248/29" #CIDR of your private network<br>}<br><br>variable "private_subnet_cidr" {<br>  default = "192.168.168.0/24" #CIDR of your subnet<br>} <br><br>variable "mks_region" {<br>  default = "GRA11" #Region of your existing MKS cluster<br>}<br><br>variable "mks_cluster_id" {<br>  default = "7c3e1e6e-1234-5678-9012-4fb5a5b145e7" #ID of your existing MKS cluster<br>}<br><br># Services to create<br><br>variable "oauth2_client_name" {<br>  default = "efs-trident-client-example"<br>}<br><br>variable "oauth2_client_description" {<br>  default = "OAuth2 client for EFS Trident integration"<br>}<br><br>variable "iam_policy_name" {<br>  default = "efs-trident-policy-example"<br>}<br><br>variable "iam_policy_description" {<br>  default = "IAM policy for EFS Trident access"<br>}<br><br>variable "vrackservices_attach_to_efs" {<br>  description = "Whether to attach the EFS service endpoint to vRack Services. Set to false before destroying."<br>  type        = bool<br>  default     = true<br>}<br><br>variable "efs_region" {<br>  default = "eu-west-rbx"<br>}<br><br>variable "efs_name" {<br>  default = "my-efs-storage"<br>}<br><br>variable "efs_plan" {<br>  default = "enterprise-file-storage-premium-1tb"<br>}</code></pre>



<p>⚠️ In the file, replace the IDs, CIDR &amp; MKS region with your existing resources information.</p>



<p>Replace the value of the <strong>OVH_CLOUD_PROJECT_SERVICE</strong> environment variable in the <strong>variables.tf</strong> file: </p>



<pre class="wp-block-code"><code class="">envsubst &lt; variables.tf.template &gt; variables.tf</code></pre>



<p>Create a <strong>efs.tf</strong> file and fill it with the information:</p>



<pre class="wp-block-code"><code class="">module "ovh_efs_trident" {<br>  source = "ovh/efs/ovh//modules/efs-trident"<br><br>  # OVH region for EFS and vRack Services<br>  region = var.efs_region<br><br>  # Public Cloud region for MKS and private network<br>  public_cloud_region = var.mks_region<br><br>  # VLAN ID must be the same for vRack Services and Public Cloud private network<br>  vlan_id = var.vlan_id<br><br>  # Set to false before destroying to detach endpoint first<br>  vrackservices_attach_to_efs = var.vrackservices_attach_to_efs<br><br>  # EFS creation<br>  storage_efs_name      = var.efs_name<br>  storage_efs_plan_code = var.efs_plan<br><br>  # --- vRack ---<br>  create_vrack       = false<br>  vrack_service_name = var.vrack_id<br><br>  # --- Cloud Project ---<br>  create_cloud_project        = false<br>  cloud_project_id            = var.service_name<br>  bind_vrack_to_cloud_project = false # Set to false if already bound<br><br>  # --- Private Network ---<br>  create_private_network      = false<br>  private_network_id = var.private_network_id<br><br>  # --- Private Subnet ---<br>  create_private_subnet      = false<br>  private_subnet_id = var.private_subnet_id<br><br>  # --- Gateway ---<br>  create_gateway = false  # Set to false only if existing network has gateway<br><br>  # --- MKS Cluster ---<br>  create_mks_cluster = false<br>  mks_cluster_id     = var.mks_cluster_id # mks-priv-gra11<br>  create_node_pool   = false # Set to false if using existing node pool<br><br>  # OAuth2 and IAM<br>  oauth2_client_name        = var.oauth2_client_name<br>  oauth2_client_description = var.oauth2_client_description<br>  iam_policy_name           = var.iam_policy_name<br>  iam_policy_description    = var.iam_policy_description<br><br>  # Network (shared between vRack Services and Public Cloud)<br>  private_network_subnet_cidr             = var.private_subnet_cidr<br>  vrackservices_subnet_service_range_cidr = var.vrackservices_subnet_service_range_cidr # EFS gets IPs here<br>}</code></pre>



<p>Create an <strong>output.tf</strong> file with the following content:</p>



<pre class="wp-block-code"><code class="">output "client_id" {<br>    value = module.ovh_efs_trident.client_id<br>}<br><br>output "client_secret" {<br>    value = module.ovh_efs_trident.client_secret<br>    sensitive = true<br>}<br><br>output "efs_id" {<br>  value       = module.ovh_efs_trident.efs_id<br>}</code></pre>



<p>The Terraform configuration is ready. Let&#8217;s init it:</p>



<pre class="wp-block-code"><code class="">terraform init</code></pre>



<p>The output should be like this:</p>



<pre class="wp-block-code"><code class="">$ terraform init<br><br>Initializing the backend...<br>Initializing modules...<br>Initializing provider plugins...<br>- Reusing previous version of hashicorp/null from the dependency lock file<br>- Reusing previous version of ovh/ovh from the dependency lock file<br>- Using previously-installed hashicorp/null v3.2.4<br>- Using previously-installed ovh/ovh v2.13.1<br><br>Terraform has been successfully initialized!<br><br>You may now begin working with Terraform. Try running "terraform plan" to see<br>any changes that are required for your infrastructure. All Terraform commands<br>should now work.<br><br>If you ever set or change modules or backend configuration for Terraform,<br>rerun this command to reinitialize your working directory. If you forget, other<br>commands will detect it and remind you to do so if necessary.</code></pre>



<p>Apply it:</p>



<pre class="wp-block-code"><code class="">terraform apply</code></pre>



<p>The output should be like this:</p>



<pre class="wp-block-code"><code class="">$ terraform apply<br><br>module.ovh_efs_trident.data.ovh_me.my_account: Reading...<br>module.ovh_efs_trident.data.ovh_cloud_project_kube.existing[0]: Reading...<br>module.ovh_efs_trident.data.ovh_cloud_project.existing[0]: Reading...<br>module.ovh_efs_trident.data.ovh_me.my_account: Read complete after 1s [id=xx12345-ovh]<br>module.ovh_efs_trident.data.ovh_cloud_project.existing[0]: Read complete after 0s<br>module.ovh_efs_trident.data.ovh_order_cart.cart: Reading...<br>module.ovh_efs_trident.data.ovh_order_cart.cart: Read complete after 0s [id=d582ab7c-1234-5678-9012-4a6e702ea4c5]<br>module.ovh_efs_trident.data.ovh_cloud_project_kube.existing[0]: Read complete after 5s [id=7c3e1e6e-1234-5678-9012-4fb5a5b145e7]<br><br>Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:<br>  + create<br><br>Terraform will perform the following actions:<br><br>  # module.ovh_efs_trident.null_resource.config_validation will be created<br>  + resource "null_resource" "config_validation" {<br>      + id = (known after apply)<br>    }<br><br>  # module.ovh_efs_trident.ovh_iam_policy.iam_policy will be created<br>  + resource "ovh_iam_policy" "iam_policy" {<br>      + allow       = [<br>          + "storageNetApp:apiovh:get",<br>          + "storageNetApp:apiovh:serviceInfos/get",<br>          + "storageNetApp:apiovh:share/accessPath/get",<br>          + "storageNetApp:apiovh:share/acl/create",<br>          + "storageNetApp:apiovh:share/acl/delete",<br>          + "storageNetApp:apiovh:share/acl/get",<br>          + "storageNetApp:apiovh:share/create",<br>          + "storageNetApp:apiovh:share/delete",<br>          + "storageNetApp:apiovh:share/edit",<br>          + "storageNetApp:apiovh:share/extend",<br>          + "storageNetApp:apiovh:share/get",<br>          + "storageNetApp:apiovh:share/revertToSnapshot",<br>          + "storageNetApp:apiovh:share/snapshot/create",<br>          + "storageNetApp:apiovh:share/snapshot/delete",<br>          + "storageNetApp:apiovh:share/snapshot/edit",<br>          + "storageNetApp:apiovh:share/snapshot/get",<br>        ]<br>      + created_at  = (known after apply)<br>      + description = "IAM policy for EFS Trident access"<br>      + id          = (known after apply)<br>      + identities  = (known after apply)<br>      + name        = "efs-trident-policy-example"<br>      + owner       = (known after apply)<br>      + read_only   = (known after apply)<br>      + resources   = (known after apply)<br>      + updated_at  = (known after apply)<br>    }<br><br>  # module.ovh_efs_trident.ovh_me_api_oauth2_client.api_oauth2_client will be created<br>  + resource "ovh_me_api_oauth2_client" "api_oauth2_client" {<br>      + client_id     = (known after apply)<br>      + client_secret = (sensitive value)<br>      + description   = "OAuth2 client for EFS Trident integration"<br>      + flow          = "CLIENT_CREDENTIALS"<br>      + id            = (known after apply)<br>      + identity      = (known after apply)<br>      + name          = "efs-trident-client-example"<br>    }<br><br>  # module.ovh_efs_trident.ovh_storage_efs.efs[0] will be created<br>  + resource "ovh_storage_efs" "efs" {<br>      + created_at        = (known after apply)<br>      + iam               = (known after apply)<br>      + id                = (known after apply)<br>      + name              = "my-efs-storage"<br>      + order             = (known after apply)<br>      + ovh_subsidiary    = "FR"<br>      + performance_level = (known after apply)<br>      + plan              = [<br>          + {<br>              + configuration = [<br>                  + {<br>                      + label = "region"<br>                      + value = "eu-west-rbx"<br>                    },<br>                  + {<br>                      + label = "network"<br>                      + value = "vrack"<br>                    },<br>                ]<br>              + duration      = "P1M"<br>              + plan_code     = "enterprise-file-storage-premium-1tb"<br>              + pricing_mode  = "default"<br>            },<br>        ]<br>      + product           = (known after apply)<br>      + quota             = (known after apply)<br>      + region            = (known after apply)<br>      + service_name      = (known after apply)<br>      + status            = (known after apply)<br>    }<br><br>  # module.ovh_efs_trident.ovh_vrack_vrackservices.vrack-vrackservices-binding[0] will be created<br>  + resource "ovh_vrack_vrackservices" "vrack-vrackservices-binding" {<br>      + id             = (known after apply)<br>      + service_name   = "pn-1234567"<br>      + vrack_services = (known after apply)<br>    }<br><br>  # module.ovh_efs_trident.ovh_vrackservices.vrackservices[0] will be created<br>  + resource "ovh_vrackservices" "vrackservices" {<br>      + checksum        = (known after apply)<br>      + created_at      = (known after apply)<br>      + current_state   = (known after apply)<br>      + current_tasks   = (known after apply)<br>      + iam             = (known after apply)<br>      + id              = (known after apply)<br>      + order           = (known after apply)<br>      + ovh_subsidiary  = "FR"<br>      + plan            = [<br>          + {<br>              + configuration = [<br>                  + {<br>                      + label = "region_name"<br>                      + value = "eu-west-rbx"<br>                    },<br>                ]<br>              + duration      = "P1M"<br>              + plan_code     = "vrack-services"<br>              + pricing_mode  = "default"<br>            },<br>        ]<br>      + resource_status = (known after apply)<br>      + target_spec     = {<br>          + subnets = [<br>              + {<br>                  + cidr              = "192.168.168.0/24"<br>                  + service_endpoints = [<br>                      + {<br>                          + managed_service_urn = (known after apply)<br>                        },<br>                    ]<br>                  + service_range     = {<br>                      + cidr = "192.168.168.248/29"<br>                    }<br>                  + vlan              = 666<br>                    # (1 unchanged attribute hidden)<br>                },<br>            ]<br>        }<br>      + updated_at      = (known after apply)<br>    }<br><br>Plan: 6 to add, 0 to change, 0 to destroy.<br><br>Changes to Outputs:<br>  + client_id     = (known after apply)<br>  + client_secret = (sensitive value)<br>  + efs_id        = (known after apply)<br><br>Do you want to perform these actions?<br>  Terraform will perform the actions described above.<br>  Only 'yes' will be accepted to approve.<br><br>  Enter a value: yes<br><br>module.ovh_efs_trident.null_resource.config_validation: Creating...<br>module.ovh_efs_trident.null_resource.config_validation: Creation complete after 0s [id=8553589333890826101]<br>module.ovh_efs_trident.ovh_me_api_oauth2_client.api_oauth2_client: Creating...<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Creating...<br>module.ovh_efs_trident.ovh_me_api_oauth2_client.api_oauth2_client: Creation complete after 0s [id=EU.xxxxxxxxxxxxx]<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Still creating... [00m10s elapsed]<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Still creating... [00m20s elapsed]<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Still creating... [00m30s elapsed]<br>...<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Still creating... [03m40s elapsed]<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Still creating... [03m50s elapsed]<br>module.ovh_efs_trident.ovh_storage_efs.efs[0]: Creation complete after 3m52s [id=c2d759de-cd63-4e28-aaab-a7599aad2ca8]<br>module.ovh_efs_trident.ovh_vrackservices.vrackservices[0]: Creating...<br>module.ovh_efs_trident.ovh_iam_policy.iam_policy: Creating...<br>module.ovh_efs_trident.ovh_iam_policy.iam_policy: Creation complete after 0s [id=a434d1a4-1234-5678-9012-cf54251eee52]<br>module.ovh_efs_trident.ovh_vrackservices.vrackservices[0]: Still creating... [00m10s elapsed]<br>module.ovh_efs_trident.ovh_vrackservices.vrackservices[0]: Still creating... [00m20s elapsed]<br>...<br>module.ovh_efs_trident.ovh_vrackservices.vrackservices[0]: Still creating... [01m20s elapsed]<br>module.ovh_efs_trident.ovh_vrackservices.vrackservices[0]: Creation complete after 1m30s [id=vrs-a00-b11-c22-d33]<br>module.ovh_efs_trident.ovh_vrack_vrackservices.vrack-vrackservices-binding[0]: Creating...<br>module.ovh_efs_trident.ovh_vrack_vrackservices.vrack-vrackservices-binding[0]: Still creating... [00m10s elapsed]<br>module.ovh_efs_trident.ovh_vrack_vrackservices.vrack-vrackservices-binding[0]: Still creating... [00m20s elapsed]<br>...<br>module.ovh_efs_trident.ovh_vrack_vrackservices.vrack-vrackservices-binding[0]: Still creating... [01m40s elapsed]<br>module.ovh_efs_trident.ovh_vrack_vrackservices.vrack-vrackservices-binding[0]: Creation complete after 1m43s [id=vrack_pn-1234567-vrackServices_vrs-a00-b11-c22-d33]<br><br>Apply complete! Resources: 6 added, 0 changed, 0 destroyed.<br><br>Outputs:<br><br>client_id = "EU.xxxxxxxxxxxxx"<br>client_secret = &lt;sensitive&gt;<br>efs_id = "c2d759de-cd63-4e28-aaab-a7599aad2ca8"</code></pre>



<p>Save the OAuth2 credentials in environment variables:</p>



<pre class="wp-block-code"><code class="">export EFS_CLIENT_ID=$(terraform output -raw client_id)<br>export EFS_CLIENT_SECRET=$(terraform output -raw client_secret)</code></pre>



<h4 class="wp-block-heading">Trident CSI Installation</h4>



<p>Install the Trident operator in your MKS cluster:</p>



<pre class="wp-block-code"><code class="">helm repo add netapp-trident https://netapp.github.io/trident-helm-chart<br><br>helm install trident-operator netapp-trident/trident-operator \<br>  --version 100.2502.1 \<br>  --create-namespace \<br>  --namespace trident \<br>  --set tridentSilenceAutosupport=true \<br>  --set operatorImage="ovhcom/trident-operator:25.02.1-linux-amd64" \<br>  --set tridentImage="ovhcom/trident:25.02.1-linux-amd64"</code></pre>



<p>You should have a result like this:</p>



<pre class="wp-block-code"><code class="">$ helm install trident-operator netapp-trident/trident-operator \<br>  --version 100.2502.1 \<br>  --create-namespace \<br>  --namespace trident \<br>  --set tridentSilenceAutosupport=true \<br>  --set operatorImage="ovhcom/trident-operator:25.02.1-linux-amd64" \<br>  --set tridentImage="ovhcom/trident:25.02.1-linux-amd64"<br><br>NAME: trident-operator<br>LAST DEPLOYED: Tue Apr 28 14:01:19 2026<br>NAMESPACE: trident<br>STATUS: deployed<br>REVISION: 1<br>TEST SUITE: None<br>NOTES:<br>Thank you for installing trident-operator, which will deploy and manage NetApp's Trident CSI<br>storage provisioner for Kubernetes.<br><br>Your release is named 'trident-operator' and is installed into the 'trident' namespace.<br>Please note that there must be only one instance of Trident (and trident-operator) in a Kubernetes cluster.<br><br>To configure Trident to manage storage resources, you will need a copy of tridentctl, which is<br>available in pre-packaged Trident releases.  You may find all Trident releases and source code<br>online at https://github.com/NetApp/trident.<br><br>To learn more about the release, try:<br><br>  $ helm status trident-operator<br>  $ helm get all trident-operator</code></pre>



<p>Once the installation is complete, verify that all Trident <strong>pods</strong> are in <code><strong>Running</strong></code> state in the trident <strong>namespace</strong> before proceeding:</p>



<pre class="wp-block-code"><code class="">$ kubectl get pods -n trident<br><br>NAME                                  READY   STATUS    RESTARTS      AGE<br>trident-controller-5bf6c8d6f6-g95jq   6/6     Running   0             119s<br>trident-node-linux-4xtjr              2/2     Running   1 (82s ago)   119s<br>trident-node-linux-6w5ff              2/2     Running   1 (82s ago)   119s<br>trident-node-linux-r7hxp              2/2     Running   0             119s<br>trident-operator-859f59c58b-2z2ts     1/1     Running   0             2m31s</code></pre>



<h4 class="wp-block-heading">Trident Backend Creation</h4>



<p>The Trident backend connects NetApp Trident to the OVHcloud EFS service using the IAM credentials previously created.</p>



<h5 class="wp-block-heading" id="1-secret-creation">1. Secret Creation</h5>



<p>Create a Kubernetes <strong>Secret</strong> containing the connection information that allows Trident to access the OVHcloud API. Create a <strong>trident-secret.yaml.template</strong> file with the following content:</p>



<pre class="wp-block-code"><code class="">apiVersion: v1<br>kind: Secret<br>metadata:<br>  name: ovh-efs-secret<br>type: Opaque<br>stringData:<br>  clientID: "$EFS_CLIENT_ID"         # your clientId<br>  clientSecret: "$EFS_CLIENT_SECRET" # your clientSecret</code></pre>



<p>Replace the <code>clientID</code> and <code>clientSecret</code> values by the OAuth2 client we created with Terraform:</p>



<pre class="wp-block-code"><code class="">envsubst &lt; trident-secret.yaml.template &gt; trident-secret.yaml</code></pre>



<p>Apply the secret in your cluster:</p>



<pre class="wp-block-code"><code class="">kubectl apply -f trident-secret.yaml -n trident</code></pre>



<p>Check that the secret has been correctly created:</p>



<pre class="wp-block-code"><code class="">$ kubectl get secret ovh-efs-secret -n trident<br><br>NAME             TYPE     DATA   AGE<br>ovh-efs-secret   Opaque   2      3s</code></pre>



<h5 class="wp-block-heading" id="2-trident-backend-creation">2. Trident Backend Creation</h5>



<p>Create your backend with the command below:</p>



<pre class="wp-block-code"><code class="">cat &lt;&lt;EOF | kubectl create -n trident -f -<br>apiVersion: trident.netapp.io/v1<br>kind: TridentBackendConfig<br>metadata:<br>  name: ovh-efs-rbx<br>spec:<br>  version: 1<br>  backendName: backend-ovh-efs<br>  defaults:<br>    exportRule: "192.168.168.0/24"    # CIDR of your network for NFS ACLs<br>  storageDriverName: ovh-efs<br>  clientLocation: ovh-eu<br>  location: eu-west-rbx         # Location of your EFS service<br>  serviceLevel: premium<br>  nfsMountOptions: rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp<br>  credentials:<br>    name: ovh-efs-secret<br>  volumeCreateTimeout: "60" <br>EOF</code></pre>



<p>⚠️ The <code>ovh-efs</code> storage driver must be used. Replace <code><strong>exportRule</strong></code>, <code><strong>location</strong></code>, and other parameters with values matching your environment.</p>



<p>Verify that the backend has been created correctly with the command below:</p>



<pre class="wp-block-code"><code class="">$ kubectl get TridentBackendConfig -n trident<br><br>NAME          BACKEND NAME      BACKEND UUID                           PHASE   STATUS<br>ovh-efs-rbx   backend-ovh-efs   ace12d67-70ea-44e1-abd8-20d016f7f030   Bound   Success</code></pre>



<h4 class="wp-block-heading" id="storageclass-and-usage">Use EFS in your MKS cluster</h4>



<p>This section describes how to expose Enterprise File Storage to Kubernetes workloads using Trident.</p>



<h5 class="wp-block-heading" id="1-storageclass">1. StorageClass</h5>



<p>In a <strong>sc_efs.yaml</strong> file, define a <code>StorageClass</code> to enable dynamic provisioning via the Trident CSI driver:</p>



<pre class="wp-block-code"><code class="">apiVersion: storage.k8s.io/v1<br>kind: StorageClass<br>metadata:<br>  name: ovh-efs-premium<br>provisioner: csi.trident.netapp.io<br>parameters:<br>  backendType: "ovh-efs"<br>  fsType: "nfs"<br>allowVolumeExpansion: true</code></pre>



<p>Apply the StorageClass:</p>



<pre class="wp-block-code"><code class="">kubectl apply -f sc_efs.yaml</code></pre>



<p>Check that the StorageClass has been created:</p>



<pre class="wp-block-code"><code class="">$ kubectl get sc ovh-efs-premium<br><br>NAME              PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE<br>ovh-efs-premium   csi.trident.netapp.io   Delete          Immediate           true                   3h13m</code></pre>



<p>This <strong>StorageClass</strong> allows volumes to be provisioned on demand and expanded dynamically.</p>



<h4 class="wp-block-heading" id="2-volume-creation-pvc">2. Volume Creation (PVC)</h4>



<p>Create a <code>PersistentVolumeClaim</code> with <code>ReadWriteMany</code> (RWX) access mode. Create a <strong>pvc_efs.yaml</strong> file with this content:</p>



<pre class="wp-block-code"><code class="">apiVersion: v1<br>kind: PersistentVolumeClaim<br>metadata:<br>  name: premium-pvc-efs<br>spec:<br>  accessModes:<br>    - ReadWriteMany<br>  resources:<br>    requests:<br>      storage: 100Gi<br>  storageClassName: ovh-efs-premium</code></pre>



<p>Apply it:</p>



<pre class="wp-block-code"><code class="">kubectl apply -f pvc_efs.yaml</code></pre>



<p>Verify that the <code><strong>PVC</strong></code> has been created with the command below:</p>



<pre class="wp-block-code"><code class="">kubectl get pvc premium-pvc-efs</code></pre>



<p>At this point, the <strong>EFS</strong> is creating a volume, attach the correct ACL to it and mount it in the PVC</p>



<p>After a little time, the output should show the PVC in <code>Bound</code> state:</p>



<pre class="wp-block-code"><code class="">$ kubectl get pvc<br><br>NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS   AGE<br>premium-pvc-efs   Bound    pvc-faca364d-ad76-44ec-9bc9-959c0d33c515   100Gi      RWX            ovh-efs-premium   &lt;unset&gt;                 3m43s</code></pre>



<p>The volume has been created through the <strong>PVC</strong> and you can now mount it in a <strong>Pod</strong> 🎉.</p>



<h3 class="wp-block-heading">Conclusion</h3>



<p>In this blog, we’ve explained how to create an EFS and use it in a MKS cluster through Trident CSI. This will give you a flexible, production-ready approach to persistent shared storage in Kubernetes.</p>



<p>We recommend you also take a look at our <a href="https://github.com/orgs/ovh/projects/16" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Cloud Roadmap &amp; Changelog</a> for an overview of all the coming features for OVHcloud Public Cloud products.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fnavigating-ovhcloud-enterprise-file-storage-efs-with-trident-csi-on-kubernetes-clusters-mks%2F&amp;action_name=Navigating%20OVHcloud%20Enterprise%20File%20Storage%20%28EFS%29%20with%20Trident%20CSI%20On%20Kubernetes%20clusters%20%28MKS%29&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
