<?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>Tue, 14 Apr 2026 07:03:14 +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>Discover the External Secret Operator (ESO) OVHcloud Provider to manage your Kubernetes secrets  🎉</title>
		<link>https://blog.ovhcloud.com/discover-the-external-secret-operator-eso-ovhcloud-provider-to-manage-your-kubernetes-secrets-%f0%9f%8e%89/</link>
		
		<dc:creator><![CDATA[Aurélie Vache]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 07:02:22 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Tranches de Tech & co]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31032</guid>

					<description><![CDATA[Several months ago, we released the Beta version of the OVHcloud Secret Manager and we guided you how to manage your secrets thanks to the existing External Secret Operator (ESO) Hashicorp Vault provider. As our Secret Manager is now in General Availability, our teams worked on the development of an OVHcloud ESO Provider now available [&#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%2Fdiscover-the-external-secret-operator-eso-ovhcloud-provider-to-manage-your-kubernetes-secrets-%25f0%259f%258e%2589%2F&amp;action_name=Discover%20the%20External%20Secret%20Operator%20%28ESO%29%20OVHcloud%20Provider%20to%20manage%20your%20Kubernetes%20secrets%20%20%F0%9F%8E%89&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 fetchpriority="high" decoding="async" width="1024" height="681" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-10-15.57.01.910-1024x681.png" alt="" class="wp-image-31204" style="aspect-ratio:1.503658927864753;width:524px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-10-15.57.01.910-1024x681.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-10-15.57.01.910-300x200.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-10-15.57.01.910-768x511.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-10-15.57.01.910.png 1532w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Several months ago, we released the Beta version of the OVHcloud Secret Manager and we guided you <a href="https://blog.ovhcloud.com/manage-your-secrets-through-ovhcloud-secret-manager-thanks-to-external-secrets-operator-eso-on-ovhcloud-managed-kubernetes-service-mks/" data-wpel-link="internal">how to manage your secrets thanks to the existing External Secret Operator (ESO) Hashicorp Vault provider</a>.</p>



<p>As our Secret Manager is now in General Availability, our teams worked on the development of an OVHcloud ESO Provider now available in the <a href="https://github.com/external-secrets/external-secrets/releases/tag/v2.3.0" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">ESO v2.3.0 new release</a> 🎉.</p>



<p>In this blog post, you will learn how to create a new secret in the OVHcloud Secret Manager and how to manage it within your Kubernetes clusters through the <a href="https://external-secrets.io/latest/provider/ovhcloud/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud ESO provider</a>.</p>



<h3 class="wp-block-heading">External Secrets Operator (ESO)</h3>



<figure class="wp-block-image size-full"><img decoding="async" width="225" height="225" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image.png" alt="" class="wp-image-31088" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image.png 225w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-150x150.png 150w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-70x70.png 70w" sizes="(max-width: 225px) 100vw, 225px" /></figure>



<p>The <strong>External Secrets Operator</strong> (ESO), a CNCF sanbox project since 2022, is a Kubernetes operator that integrates external secret management systems.</p>



<p>The operator reads the information from an external APIs and automatically injects the values into a <a href="https://kubernetes.io/docs/concepts/configuration/secret/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Kubernetes Secret</a>. If the secret changes in the external API, the operator updates the secret in the Kubernetes cluster.</p>



<p>The ESO connects to an external Secret Manager, such as <a href="https://external-secrets.io/latest/provider/ovhcloud/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a>, Vault, AWS, or GCP, via a provider configured in a <strong>(Cluster)SecretStore.</strong> An <strong>ExternalSecret</strong> resource then specifies which secrets to retrieve. ESO fetches those values and creates a corresponding Kubernetes Secret within the cluster.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img decoding="async" width="1024" height="943" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-09-14.55.33.553-1024x943.png" alt="" class="wp-image-31170" style="aspect-ratio:1.0859073039196323;width:484px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-09-14.55.33.553-1024x943.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-09-14.55.33.553-300x276.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-09-14.55.33.553-768x707.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Gribouillis-2026-04-09-14.55.33.553.png 1097w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>For more details, read the <a href="https://external-secrets.io/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">ESO official documentation</a>.</p>



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



<p>To be able to use the ESO OVHcloud provider, you need to follow some prerequisites:</p>



<ul class="wp-block-list">
<li>Have an OVHcloud account</li>



<li>Created an <a href="https://www.ovhcloud.com/en/identity-security-operations/key-management-service/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OKMS</a> domain (&#8220;<em>305db938-331f-454d-83a7-3a0a29291661</em>&#8221; for example in this blog post)</li>



<li><a href="https://github.com/ovh/public-cloud-examples/tree/main/iam/create-user-and-generate-pat-token-with-cli" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Created an IAM local user</a> (&#8220;<em>secretmanager-305db938-331f-454d-83a7-3a0a29291661</em>&#8221; for example in this blog post)</li>



<li>Installed the <a href="https://github.com/ovh/ovhcloud-cli/?tab=readme-ov-file#installation" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud CLI</a></li>



<li>Have a Kubernetes cluster</li>
</ul>



<p>The ESO OVH provider supports both <code><em>token</em></code> and <code><em>mTLS</em></code> authentication. In this blog post, we will use the token authentication mode. Please follow the <a href="https://external-secrets.io/latest/provider/ovhcloud/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud ESO provider</a> guide if you wish to use mTLS authentication mode.</p>



<h4 class="wp-block-heading">Generate a PAT token (For token authentication only)</h4>



<p>The ESO (<strong>Cluster)SecretStore</strong> needs the permission to fetch secrets from Secret Manager.</p>



<p>If you want to use token autentication, you’ll need a token (PAT). You can use the ovhcloud CLI to do that:</p>



<pre class="wp-block-code"><code class="">PAT_TOKEN=$(ovhcloud iam user token create &lt;iam-local-user-name&gt; --name pat-&lt;iam-local-user-name&gt; --description "PAT secret manager for domain &lt;okms-id&gt;" -o json  | jq .details.token |  tr -d '"')<br><br>echo $PAT_TOKEN<br>&lt;your-token&gt;</code></pre>



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



<pre class="wp-block-code"><code class="">$ PAT_TOKEN=$(ovhcloud iam user token create secretmanager-305db938-331f-454d-83a7-3a0a29291661 --name pat-secretmanager-305db938-331f-454d-83a7-3a0a29291661 --description "PAT secret manager for domain 305db938-331f-454d-83a7-3a0a29291661" -o json  | jq .details.token |  tr -d '"')<br>2026/04/07 14:07:45 Final parameters:<br>{<br> "description": "PAT secret manager for domain 305db938-331f-454d-83a7-3a0a29291661",<br> "name": "pat-secretmanager-305db938-331f-454d-83a7-3a0a29291661"<br>}<br><br>$ echo $PAT_TOKEN<br>eyJhbGciOiJFZERTQSIsImtpZCI6IjgzMkFGNUE5ODg3MzFCMDNGM0EzMTRFMDJFRUJFRjBGNDE5MUY0Q0YiLCJraW5kIjoicGF0IiwidHlwIjoiSldUIn0.eyJ0b2tlbiI6InBBSFh1WE5JdVNHYVpmV3F2OUFzVmJrU3UwR2UySTJrdFU0OGdTZkwyZ1k9In0.-VDbiUf4vNm1KB9qSv7i4sGMCvxs_EuZFAETB-eaOFf3IX8-9m7akN800--ASgXy55_DDFHdy4Z5uSq8lww-Bw</code></pre>



<p>Encode the PAT token in base 64 and save it in an environment variable:</p>



<pre class="wp-block-code"><code class="">export PAT_TOKEN_B64=$(echo -n $PAT_TOKEN | base64)<br>echo $PAT_TOKEN_B64</code></pre>



<h4 class="wp-block-heading">Retrieve and save the KMS information</h4>



<p>List the OKMS domains:</p>



<pre class="wp-block-code"><code class="">$ ovhcloud okms list<br>┌──────────────────────────────────────┬─────────────┐<br>│                  id                  │   region    │<br>├──────────────────────────────────────┼─────────────┤<br>│ 305db938-331f-454d-83a7-3a0a29291661 │ eu-west-par │<br>│ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx │ eu-west-par │<br>└──────────────────────────────────────┴─────────────┘</code></pre>



<p>Save the KMS endpoint and the OKMS ID in two environment variables. For example:</p>



<pre class="wp-block-code"><code class="">export OKMS_ID="305db938-331f-454d-83a7-3a0a29291661"<br>export KMS_ENDPOINT=$(ovhcloud okms get 305db938-331f-454d-83a7-3a0a29291661 -o json | jq .restEndpoint | xargs)</code></pre>



<h4 class="wp-block-heading">Create a secret in the Secret Manager</h4>



<p>In the<a href="https://www.ovh.com/manager" data-wpel-link="exclude"> OVHcloud Control Panel</a> (UI), go to ‘Secret Manager’ section and click on the <strong>Create a secret</strong> button.</p>



<p>Then in order to create a secret ‘prod/eu-west-par/dockerconfigjson’, in the Europe region (France – Paris) eu-west-par, choose this region:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="695" height="674" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.25.png" alt="" class="wp-image-31231" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.25.png 695w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.25-300x291.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></figure>



<p>Then, choose the OKMS domain and create&#8221;prod/eu-west-par/dockerconfigjson&#8221; in the path and fill the content:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="704" height="718" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.15.png" alt="" class="wp-image-31232" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.15.png 704w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.15-294x300.png 294w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Capture-decran-2026-04-13-a-14.13.15-70x70.png 70w" sizes="auto, (max-width: 704px) 100vw, 704px" /></figure>



<p>Finally, click on the <strong>Create</strong> button to finalise the creation of the new secret.</p>



<h4 class="wp-block-heading">Install or update the ESO</h4>



<p>If you&#8217;d never installed ESO in your Kubernetes cluster, you can install it via Helm:</p>



<pre class="wp-block-code"><code class="">helm repo add external-secrets https://charts.external-secrets.io<br>helm repo update<br><br>helm install external-secrets \<br>   external-secrets/external-secrets \<br>    -n external-secrets \<br>    --create-namespace \<br>    --set installCRDs=true</code></pre>



<p>If you already installed it, now you should update it in order to use this new provider:</p>



<pre class="wp-block-code"><code class="">helm upgrade external-secrets external-secrets/external-secrets -n external-secrets</code></pre>



<p>⚠️ In order to use the OVHcloud provider, you need to have a running instance of ESO equals to version <strong>2.3.0</strong> or more.</p>



<pre class="wp-block-code"><code class="">$ helm list -n external-secrets<br><br>NAME            	NAMESPACE       	REVISION	UPDATED                              	STATUS  	CHART                 	APP VERSION<br>external-secrets	external-secrets	1       	2026-04-13 13:56:29.071329 +0200 CEST	deployed	external-secrets-2.3.0	v2.3.0</code></pre>



<h3 class="wp-block-heading">Let&#8217;s deploy a Secret in Kubernetes using the ESO provider!</h3>



<h4 class="wp-block-heading">Deploy a ClusterSecretStore to connect ESO to Secret Manager</h4>



<p>Set up a <strong>ClusterSecretStore</strong> to manage synchronization with Secret Manager.<br>It will use the OVHcloud provider with token authorization mode, and the OKMS endpoint as the backend.</p>



<p>Create a <strong>clustersecretstore.yaml.template</strong> file with the content below:</p>



<pre class="wp-block-code"><code class="">apiVersion: external-secrets.io/v1<br>kind: ClusterSecretStore<br>metadata:<br>  name: secret-store-ovh<br>spec:<br>  provider:<br>    ovh:<br>      server: "$KMS_ENDPOINT" # for example: "https://eu-west-rbx.okms.ovh.net"<br>      okmsid: "$OKMS_ID" # for example: "734b9b45-8b1a-469c-b140-b10bd6540017"<br>      auth:<br>        token:<br>          tokenSecretRef:<br>            name: ovh-token<br>            namespace: external-secrets<br>            key: token<br>---<br>apiVersion: v1<br>kind: Secret<br>metadata:<br>  name: ovh-token<br>  namespace: external-secrets<br>data:<br>  token: $PAT_TOKEN_B64</code></pre>



<p>Generate the <strong>clustersecretstore.yaml</strong> file from the environment variables you defined:</p>



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



<p>You should obtain a file filled with the OVHcloud KMS information:</p>



<pre class="wp-block-code"><code class="">apiVersion: external-secrets.io/v1<br>kind: ClusterSecretStore<br>metadata:<br>  name: secret-store-ovh<br>spec:<br>  provider:<br>    ovh:<br>      server: "https://eu-west-par.okms.ovh.net" # for example: "https://eu-west-rbx.okms.ovh.net"<br>      okmsid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # for example: "734b9b45-8b1a-469c-b140-b10bd6540017"<br>      auth:<br>        token:<br>          tokenSecretRef:<br>            name: ovh-token<br>            namespace: external-secrets<br>            key: token<br>---<br>apiVersion: v1<br>kind: Secret<br>metadata:<br>  name: ovh-token<br>  namespace: external-secrets<br>data:<br>  token: ZXlK...UJ3</code></pre>



<p>Apply it in your Kubernetes cluster:</p>



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



<p>Check:</p>



<pre class="wp-block-code"><code class="">$ kubectl get clustersecretstore.external-secrets.io/secret-store-ovh<br><br>NAME               AGE   STATUS   CAPABILITIES   READY<br>secret-store-ovh   7s    Valid    ReadWrite      True</code></pre>



<h3 class="wp-block-heading">Create an ExternalSecret</h3>



<p>Create an <strong>externalsecret.yaml</strong> file with the content below:</p>



<pre class="wp-block-code"><code class="">apiVersion: external-secrets.io/v1<br>kind: ExternalSecret<br>metadata:<br>  name: docker-config-secret<br>  namespace: external-secrets<br>spec:<br>  refreshInterval: 30m<br>  secretStoreRef:<br>    name: secret-store-ovh<br>    kind: ClusterSecretStore<br>  target:<br>    template:<br>      type: kubernetes.io/dockerconfigjson<br>      data:<br>        .dockerconfigjson: "{{ .mysecret | toString }}"<br>    name: ovhregistrycred<br>    creationPolicy: Owner<br>  data:<br>  - secretKey: ovhregistrycred<br>    remoteRef:<br>      key: prod/eu-west-par/dockerconfigjson</code></pre>



<p>Apply it:</p>



<pre class="wp-block-code"><code class="">$ kubectl apply -f externalsecret.yaml<br><br>externalsecret.external-secrets.io/docker-config-secret created</code></pre>



<p>Check:</p>



<pre class="wp-block-code"><code class="">$ kubectl get externalsecret.external-secrets.io/docker-config-secret -n external-secrets <br><br>NAME                   STORETYPE            STORE              REFRESH INTERVAL   STATUS         READY   LAST SYNC<br>docker-config-secret   ClusterSecretStore   secret-store-ovh   30m                SecretSynced   True    4s</code></pre>



<p>After applying this command, it will create a Kubernetes Secret object.</p>



<pre class="wp-block-code"><code class="">$ kubectl get secret ovhregistrycred -n external-secrets<br><br>NAME              TYPE                             DATA   AGE<br>ovhregistrycred   kubernetes.io/dockerconfigjson   1      49s</code></pre>



<p>The Kubernetes <strong>Secret</strong> have been created 🎉</p>



<p>We created a Secret directly from the key, but the OVHcloud ESO provider allows you to fetch the original secret from different parameters (fetch the whole secret, fetch nested values, fetch multiple secrets…), according to your needs.</p>



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



<p>In this blog, we’ve explained how to create secrets in the OVHcloud Secret Manager and then integrate them directly in your Kubernetes clusters using the new ESO OVHcloud provider.</p>



<p>With this brand new OVHcloud provider, you will have a smoother integration between the Secret Manager and your Kubernetes clusters with ESO.</p>



<p>Our team are working on several other integrations, so stay tuned, and please share your thoughts with us!</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%2Fdiscover-the-external-secret-operator-eso-ovhcloud-provider-to-manage-your-kubernetes-secrets-%25f0%259f%258e%2589%2F&amp;action_name=Discover%20the%20External%20Secret%20Operator%20%28ESO%29%20OVHcloud%20Provider%20to%20manage%20your%20Kubernetes%20secrets%20%20%F0%9F%8E%89&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>Wrappers on Linux Workstations</title>
		<link>https://blog.ovhcloud.com/wrappers-on-linux-workstations/</link>
		
		<dc:creator><![CDATA[Isabelle Bauer]]></dc:creator>
		<pubDate>Mon, 13 Apr 2026 14:26:16 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31132</guid>

					<description><![CDATA[As Linux Sys Admins, we are sometimes faced with dilemmas regarding what we can or cannot allow on machines. Some functionalities are very important to users for their daily tasks and overall better use of their devices, but they sometimes also come with security concerns.We came up with a way to still allow most of [&#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%2Fwrappers-on-linux-workstations%2F&amp;action_name=Wrappers%20on%20Linux%20Workstations&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-full"><img loading="lazy" decoding="async" width="648" height="419" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-5.png" alt="" class="wp-image-31146" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-5.png 648w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-5-300x194.png 300w" sizes="auto, (max-width: 648px) 100vw, 648px" /></figure>



<p>As Linux Sys Admins, we are sometimes faced with dilemmas regarding what we can or cannot allow on machines.<br><br>Some functionalities are very important to users for their daily tasks and overall better use of their devices, but they sometimes also come with security concerns.<br>We came up with a way to still allow most of these functionalities, while having more control over them, but also their outcome.<br><br>While the Linux user community is technical, their missions are still quite heterogeneous. They can range from developers, sysadmins, network engineers and more&#8230;<br>And they all work with very different workflows (from front-end web to the low-level driver). Sometimes on the laptop, on a docker, on a local VM or remotely on a development VM. Some may even need to hook up via a specific hardware.<br><br>Which leaves us users who are very much used to having access to every aspect of their personal computers rather frustrated when they are too limited.</p>



<p></p>



<h3 class="wp-block-heading"><br>Combining Usability and Security</h3>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="568" height="371" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-4.png" alt="" class="wp-image-31145" style="width:734px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-4.png 568w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-4-300x196.png 300w" sizes="auto, (max-width: 568px) 100vw, 568px" /></figure>



<p>Wrappers are usually used for abstraction and convenience; they often are relied on to simplify command-line workflows, enforce consistent parameters, or adapt legacy tools to modern environments.<br>In the case at hand, they are used a bit more like &#8220;guardrails.&#8221;</p>



<p>Take, as example, package management. Tools like apt are powerful but inherently risky when misused (or maliciously used), and capable of altering a system’s status by removing critical dependencies, etc&#8230;<br>Instead of exposing these tools directly (or completely removing access to them), our team provides a wrapped version that preserves essential functionality, while explicitly blocking operations that could compromise the system’s integrity.</p>



<h3 class="wp-block-heading">Why would our user base need access to apt? Why not just completely remove that option?</h3>



<p>Since our user base is rather technical, and knows their operating system rather well in general, they should be able to install authorized packages, or to update or remove them whenever they like (even though we also have a daily, automatic updates running too).<br>Plus, if they encounter any basic dpkg/apt issue, it makes sense for them to be able to resolve them autonomously.</p>



<p>Here is the list of options we made available:</p>



<pre class="wp-block-code"><code class="">Usage:<br>ovh-apt &lt;install|reinstall|remove|purge&gt; [OPTIONS] &lt;package|package=version&gt; [package...]<br>ovh-apt &lt;update|autoclean|clean&gt;<br>ovh-apt &lt;fix&gt; (this executes apt-get install -f)<br>ovh-apt &lt;fix-dpkg&gt; (this executes dpkg --configure -a)<br>Examples:<br>ovh-apt update<br>ovh-apt install vim<br>ovh-apt install vim=2:8.1.2269-1ubuntu5.17<br>ovh-apt install --only-upgrade bash<br>ovh-apt fix</code></pre>



<p></p>



<p>We also have a list of protected packages, to avoid having very useful ones deleted; firewall configuration, systemd, sudo, etc…<br>Basically, this includes everything that could have an impact on security or system integrity. As well, this wrapper in specific is non-interactive – in order to make sure a root shell is never offered – as can be the case natively with dpkg.</p>



<h3 class="wp-block-heading">How to prevent specific packages from being uninstalled?</h3>



<p>We have a .txt file containing a bunch of package names (one per line).<br>In our ovh-apt script, we look into that file, and if we find a corresponding package, we exit the script.</p>



<pre class="wp-block-code"><code class="">re="^(Purg|Remv) ([^ ]+) "<br>IFS="<br>"<br>protected="$(cat /etc/ovh/ovh-apt/protected.txt)"<br>apt_output=$(cat nohup.out)<br>for line in $apt_output ; do<br>if [[ "$line" =~ $re ]]; then<br>package="${BASH_REMATCH[2]}"<br>if [[ " ${protected[*]} " =~ [[:space:]]${package}[[:space:]] ]]; then<br>echo "Error: Package $package is protected, won't do."<br>cancel=1<br>fi<br>fi<br>done<br>unset IFS</code></pre>



<p></p>



<p></p>



<h3 class="wp-block-heading">There is more</h3>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="453" height="309" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-3.png" alt="" class="wp-image-31144" style="width:737px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-3.png 453w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/image-3-300x205.png 300w" sizes="auto, (max-width: 453px) 100vw, 453px" /></figure>



<p>By default, you would need root access on unix systems to be able to change the keyboard layout. We decided to make a wrapper to allow for some users to set the layout of their choice.<br>This implementation was also heavily requested by Linux users, and very understandably so.</p>



<p>Here&#8217;s how it works:</p>



<pre class="wp-block-code"><code class="">Usage: ovh-keyboard &lt;command&gt; [options]<br>Commands:<br>show -&gt; Show current keyboard configuration.<br>set &lt;layout&gt; -&gt; Update keyboard configuration.<br>Valid options: fr, us, gb, ca, es, it, de, pt</code></pre>



<p>Just for funsies, here is the list of other wrappers we use:<br><br><strong>ovh_backlightctl</strong> Allows user to control the backlight options of their monitors.<br><strong>ovh_snap </strong>Allows users to manage a list of snap packages on their device protected<br><strong>ovh_swapclean</strong> Obviously.<br><strong>ovh-systemctl</strong> Allows specific and unharmful systemctl commands.<br><strong>nmcli_wrapper</strong> Blocks the –show-secrets options with nmcli. ‘Cause we don’t want secrets to be seen (that’s why they’re secret).</p>



<p>We definitely will keep on using wrappers, whether it is for user or security needs, when the use case allows it. We find this way of handling the accessibility / security compromise fits quite well with how we manage the Linux parc so far.</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%2Fwrappers-on-linux-workstations%2F&amp;action_name=Wrappers%20on%20Linux%20Workstations&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>Evolution of our Web Hosting plans: What is changing and why</title>
		<link>https://blog.ovhcloud.com/en-webhosting-2026/</link>
		
		<dc:creator><![CDATA[Sébastien Cavaillé]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 17:00:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[OVHcloud]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=30639</guid>

					<description><![CDATA[From May 1st, 2026, OVHcloud’s Web Hosting plans will evolve in format and execution. Concretely, this means: a new offering structure adapted to your needs, changes in the resources included in your plan, improvements in the way you can access our support, and adjustments to the pricing structure. In this article, you will find information [&#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%2Fen-webhosting-2026%2F&amp;action_name=Evolution%20of%20our%20Web%20Hosting%20plans%3A%20What%20is%20changing%20and%20why&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><strong>From May 1st, 2026, OVHcloud’s Web Hosting plans will evolve in format and execution. Concretely, this means: a new offering structure adapted to your needs, changes in the resources included in your plan, improvements in the way you can access our support, and adjustments to the pricing structure. In this article, you will find information on what is changing, why we are making these decisions, and how it might impact you.</strong></p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="321" src="https://blog.ovhcloud.com/wp-content/uploads/2026/02/image-13-1024x321.png" alt="" class="wp-image-30643" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/02/image-13-1024x321.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/02/image-13-300x94.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/02/image-13-768x240.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/02/image-13-1536x481.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/02/image-13-2048x641.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h2 class="wp-block-heading" id="offers"><strong>1) We are introducing three new Web Hosting ranges</strong></h2>



<p>Our offers will be organized into <strong>three distinct ranges</strong>, each designed to match different needs and usage profiles. Whether you are launching a simple website, running a growing business, or managing multiple client projects, you can now more easily <strong>find the plan that fits your situation</strong>.</p>



<h3 class="wp-block-heading"><strong>Eco range: affordable and straightforward hosting</strong></h3>



<p>This range is designed for professionals looking for a <strong>cost-effective solution</strong>. It focuses on essential features to get a website online quickly and easily, without unnecessary complexity. <strong>All plans include the core services</strong>: disk space, email accounts, a domain name, and built-in security.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="380" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_eco-1-1024x380.png" alt="" class="wp-image-31190" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_eco-1-1024x380.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_eco-1-300x111.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_eco-1-768x285.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_eco-1.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>It is ideal for simple websites, first projects, portfolios, or small business sites that need to be reliable and easy to manage from day one. You get <strong>everything you need to launch and run your site</strong>, at a price that stays accessible over time.</p>



<p>In short, we provide a straightforward, dependable hosting solution that covers the essentials, so you can focus on your project, not on technical setup.</p>



<p>If you already own a domain name with OVHcloud, you can activate your free hosting right away. <strong>Every domain includes 100 MB of hosting</strong>, so you can get your first web pages online at no additional cost. This free plan comes with one <strong>email account</strong>, the <strong>performance</strong> of our infrastructure, and the same <strong>high level of security</strong> as all our other products.</p>



<h3 class="wp-block-heading"><strong>Business range: performance and flexibility</strong></h3>



<p>The Business range is built for professionals who need more <strong>performance</strong>, <strong>flexibility</strong>, and <strong>resources</strong> to support their growth.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="528" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_business-1024x528.png" alt="" class="wp-image-31181" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_business-1024x528.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_business-300x155.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_business-768x396.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_business.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>As your website evolves, so do your requirements: more traffic, more content, more integrations. This range provides <strong>faster loading times, more generous resources</strong> (databases, storage, email accounts), and additional technical capabilities to adapt your environment to your needs.</p>



<p>Whether you are running a business website, an e-commerce platform, or multiple projects, you benefit from a hosting solution <strong>designed to keep up with your growth while giving you more control</strong>.</p>



<p>For more demanding use cases, our Pro and Performance plans provide higher CPU and RAM allocations designed to handle traffic spikes smoothly, ensuring your websites remain responsive even during peak activity.</p>



<p>In short, this is the right balance between performance, flexibility, and cost-efficiency for growing projects.</p>



<h3 class="wp-block-heading"><strong>Agencies range: built for managing multiple clients efficiently</strong></h3>



<p>The Agencies range is designed for <strong>professionals managing several websites</strong> across multiple clients.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="532" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_agencies-1024x532.png" alt="" class="wp-image-31182" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_agencies-1024x532.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_agencies-300x156.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_agencies-768x399.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/EN_agencies.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>When you operate multiple projects, efficiency becomes key. This range allows you to host, manage, and scale multiple websites <strong>within a single environment</strong>, helping you <strong>centralize</strong> operations and <strong>reduce costs</strong>.</p>



<p>It is particularly suited for agencies, freelancers, and service providers who need to <strong>deploy, maintain, and monitor many sites</strong> while keeping their workflow simple and scalable.</p>



<p>In short: a solution built to help you manage more projects and clients, more efficiently, while saving both time and costs, without multiplying hosting plans.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="ressources"><strong>2) More capacity to grow your projects</strong></h2>



<p>After a full renewal of our <a href="https://blog.ovhcloud.com/en-webhosting-new-compute/" type="link" id="https://blog.ovhcloud.com/en-webhosting-new-compute/" data-wpel-link="internal">compute infrastructure in 2025</a>, our Web Hosting plans are now <strong>up to 3x faster</strong>, with 2x more compute power allocated.</p>



<p>In 2026, <strong>we are upgrading our storage technology</strong>. All our Web Hosting plans are progressively moving to <strong>SSD storage</strong> to ensure faster access times and better resilience during incidents or maintenance operations. The result: improved service quality and higher availability for your websites.</p>



<p>In addition, we are <strong>increasing both the number of databases and the storage capacity</strong> per database included in our Web Hosting plans.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/speed.png" alt="" class="wp-image-31195" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/speed.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/speed-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<h3 class="wp-block-heading"><strong>What’s changing</strong></h3>



<p>Many customers begin with a single website, then expand to additional projects such as blogs, landing pages, test environments, or client websites. Because our Web Hosting plans are designed to be multi-site, <strong>you can host multiple projects within a single plan</strong>. As your projects grow, database requirements naturally increase due to additional content, users, plugins, and data.</p>



<p>Our goal is simple: instead of requiring an immediate upgrade to a higher plan, we are including <strong>additional resources directly in your existing plan</strong>. This allows you to group multiple websites under the same hosting account, each with its own database. In practice, <strong>this reduces costs, simplifies management, and gives you the flexibility to scale</strong> your projects without unnecessary complexity.</p>



<h3 class="wp-block-heading"><strong>What this means for you</strong></h3>



<p><strong>Run multiple websites without additional hosting plans</strong><br>You can create and manage several websites under the same account, each with its own database, without needing to upgrade immediately.</p>



<p><strong>Install multiple CMS environments easily</strong><br>Whether you use WordPress, Joomla!, PrestaShop, or another CMS, you can deploy separate projects independently, without database limitations.</p>



<p><strong>Create staging and test environments</strong><br>You can duplicate websites to safely test updates, themes, or plugins before deploying them to production.</p>



<p><strong>Support long-term website growth</strong><br>As your traffic and content increase, larger databases provide additional capacity without the risk of quickly reaching storage limits.</p>



<p>By expanding both database capacity and quantity, we are providing more room for your projects to grow without requiring an immediate plan upgrade.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>3) Pricing update: lower entry price and long-term savings</strong></h2>



<p>As part of this evolution, our pricing structure is also changing. It has been designed with two clear objectives: <strong>maintain a very accessible entry price</strong> for new projects and <strong>deliver stronger overall value for customers choosing longer subscription durations.</strong></p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/serenity.png" alt="" class="wp-image-31194" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/serenity.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/serenity-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<h3 class="wp-block-heading"><strong>A highly competitive first year for new subscriptions</strong></h3>



<p>For any new subscription, the first-year price is intentionally kept very low.</p>



<p>For example, <strong>the Pro plan now starts at €1.99/month for the first year.</strong></p>



<p>This approach makes it easier to launch a new idea, test a concept, or start a business without significant upfront costs. Customers launching new projects benefit from one of the most competitive entry prices available.</p>



<p><strong>All core hosting features remain included</strong>: generous email accounts, a domain name included during the first year, multi-site capability, expanded database resources, and enhanced support services. In short, you keep everything that makes your hosting complete, with additional resources and improved assistance.</p>



<h3 class="wp-block-heading"><strong>Better pricing with longer durations</strong></h3>



<p><strong>We are introducing 24- and 48-month durations to help you secure the best possible rate!</strong>&nbsp;Most websites are long-term projects that grow in visibility, traffic, and business value, and we want your hosting plan to support that long-term development.</p>



<p>By selecting a longer duration, you can benefit from significant savings:</p>



<ul class="wp-block-list">
<li><strong>Choosing 24 months can represent savings equivalent to 5 to 6 months</strong> compared to annual renewals.</li>



<li><strong>Choosing 48 months can represent savings equivalent to 16 to 18 months</strong> compared to annual renewals.</li>
</ul>



<p>This approach is simple: the longer your duration, the lower your monthly price and the more predictable your hosting budget becomes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>4) Renew now and keep your current price</strong></h2>



<p>If you are already a customer, we want to ensure your <strong>loyalty continues to be rewarded.</strong> Many of you have trusted us to host your projects for years, and we want to give you the opportunity to maintain your current pricing conditions.</p>



<p><strong>If you wish to retain your existing pricing, you can renew your hosting plan before <strong>1st</strong></strong> <strong>June 2026</strong>. This allows you to secure your current rate while continuing to benefit from all plan improvements. Renewal can be completed in just a few clicks from your Control Panel.</p>



<p>By renewing in advance, you can:</p>



<ul class="wp-block-list">
<li><strong>Lock in your current rate</strong> for the duration you choose</li>



<li>Extend your subscription for <strong>up to 4 additional years</strong></li>



<li>Continue benefiting from <strong>upgraded features</strong>, including additional databases and improved support</li>
</ul>



<p>For long-term projects, renewing now provides cost stability and better visibility on future hosting expenses.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="support"><strong>5) A redesigned and strengthened support experience</strong></h2>



<p>For many of you, <strong>running a website is more than a hobby.</strong> It can generate revenue, support clients, or represent your business online. When an issue occurs, you do not want to simply open a ticket. You expect <strong>clear guidance and fast resolution</strong>. We have listened to this feedback and are strengthening our support services to be easier to reach, faster to respond, and more helpful when you need expert advice.</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/support.png" alt="" class="wp-image-31192" style="width:707px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/support.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/support-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<p>Here is how your day-to-day support experience will evolve:</p>



<p><strong>Support whenever you need it</strong><br>We are progressively rolling out 24/7 availability, with expanded contact channels so you can reach us at any time, whether you are launching a new site, managing an urgent issue, or looking for guidance.</p>



<p><strong>Faster responses</strong><br>An improved live chat experience will allow you to connect quickly with our teams and receive clear answers with reduced waiting times.</p>



<p><strong>Simplified human interaction</strong><br>You will be able to call us directly from your browser and request a callback from one of our agents, allowing you to receive assistance in the way that suits you best.</p>



<p><strong>Stronger guidance and follow-up</strong><br>We are adopting a more proactive support approach, focused not only on resolving issues but also on advising you and helping you move your projects forward with confidence.</p>



<p>Our objective is straightforward: make it easier and faster for you to get help when you need it. Whether you are launching a new website, managing updates, or troubleshooting an issue, we are continuously investing to deliver a smoother customer experience.</p>



<p>These improvements reflect our commitment to supporting both beginners and advanced users with reliable and accessible assistance. They are currently being prepared and will be progressively deployed to ensure quality and stability.</p>



<h2 class="wp-block-heading" id="partners"><strong>6) Dedicated offers for Partners and Agencies (coming soon)</strong></h2>



<p>Some customers go beyond managing their own websites. They design, deploy, and resell complete web environments for their clients, including hosting, domain names, email services, and other solutions, sometimes under their own brand. Resellers and agencies often operate across the entire OVHcloud ecosystem and <strong>require solutions adapted to multi-client and multi-service environments</strong>.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/partners.png" alt="" class="wp-image-31198" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/partners.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/partners-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<p>Managing a Web Cloud portfolio typically involves:</p>



<ul class="wp-block-list">
<li><strong>Coordinating updates</strong> across multiple customer environments</li>



<li><strong>Ensuring availability and performance</strong> across all hosted projects</li>



<li><strong>Responding quickly </strong>when customer services are impacted</li>



<li><strong>Optimizing costs</strong> and margins across service portfolios</li>
</ul>



<p>We are preparing a dedicated offer designed specifically for these use cases.<br>This upcoming partner offering will include:</p>



<ul class="wp-block-list">
<li><strong>Premium and prioritized support</strong> with clearer escalation paths for business-critical situations</li>



<li><strong>Preferential pricing </strong>tailored to multi-product portfolios</li>



<li><strong>Management tools designed for agencies </strong>to simplify deployment, monitoring, and maintenance across multiple services for your multiple customers.&nbsp;</li>
</ul>



<p>More details will be shared soon. We look forward to developing this offer in collaboration with our partner ecosystem.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="roadmap"><strong>7) New features </strong></h2>



<p>We are continuously improving our Web Hosting platform, and several major enhancements are already underway.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/features.png" alt="" class="wp-image-31199" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/features.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/features-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<p><strong>We have recently completed a full renewal of our compute infrastructure to deliver improved performance and reliability across all hosted websites</strong>. <a href="https://blog.ovhcloud.com/en-webhosting-new-compute/" data-wpel-link="internal">Read more about it on our dedicated blog article</a>.</p>



<p>We are also <strong>currently replacing our storage infrastructure </strong>with the same objective: delivering improved performance, resilience, and long-term data reliability.</p>



<p>These infrastructure upgrades are part of a broader and transparent product roadmap. We openly share our development priorities so you can track ongoing and upcoming improvements.</p>



<p>Beyond infrastructure, upcoming enhancements include:</p>



<ul class="wp-block-list">
<li>Simplified WordPress management through <strong>Managed Hosting for WordPress </strong>(<a href="https://labs.ovhcloud.com/en/managed-wp" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">currently available in beta</a>), providing increased automation and easier daily administration.</li>



<li>Our new <strong>video hosting solution</strong> designed to deliver media content without relying on third-party platforms. <a href="https://labs.ovhcloud.com/en/video-webhosting/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Discover the Video Center!</a></li>



<li><strong>New AI-powered features</strong> to help manage, optimize, and secure your websites</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>Our commitment to you</strong></h2>



<p>Whether you are running a personal website, launching a business, or managing multiple projects, our objective remains unchanged: deliver a powerful, reliable, and cost-efficient platform that supports your growth over time and continuously improve your hosting experience with practical features that simplify daily management while strengthening performance and reliability.&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%2Fen-webhosting-2026%2F&amp;action_name=Evolution%20of%20our%20Web%20Hosting%20plans%3A%20What%20is%20changing%20and%20why&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>Évolution de nos hébergements web : ce qui change et pourquoi</title>
		<link>https://blog.ovhcloud.com/fr-webhosting-2026/</link>
		
		<dc:creator><![CDATA[Sébastien Cavaillé]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 17:00:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31155</guid>

					<description><![CDATA[À partir du 1er mai 2026, nos hébergement web évoluent dans leur structure et leur fonctionnement. Concrètement, cela signifie : une organisation des offres mieux adaptée à la diversité de vos projets, des ressources enrichies, un accès au support amélioré, ainsi que des évolutions tarifaires. Dans cet article, nous vous présentons en détail ces changements, [&#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%2Ffr-webhosting-2026%2F&amp;action_name=%C3%89volution%20de%20nos%20h%C3%A9bergements%20web%20%3A%20ce%20qui%20change%20et%20pourquoi&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><strong><strong>À partir du 1er mai 2026, nos hébergement web évoluent dans leur structure et leur fonctionnement. Concrètement, cela signifie : une organisation des offres mieux adaptée à la diversité de vos projets, des ressources enrichies, un accès au support amélioré, ainsi que des évolutions tarifaires. Dans cet article, nous vous présentons en détail ces changements, les raisons qui les motivent et leur impact pour vous.</strong></strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="321" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/banner-webhosting2026-1024x321.png" alt="" class="wp-image-31202" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/banner-webhosting2026-1024x321.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/banner-webhosting2026-300x94.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/banner-webhosting2026-768x241.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/banner-webhosting2026-1536x482.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/banner-webhosting2026.png 1837w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Nos offres seront désormais organisées en <strong>trois gammes distinctes</strong>, chacune conçue pour répondre à des besoins et usages différents. Que vous lanciez un site simple, développiez un business ou gériez plusieurs projets clients, vous pouvez désormais <strong>trouver plus facilement l’offre adaptée à votre situation</strong>.</p>



<h3 class="wp-block-heading"><strong><strong>Gamme Eco : pour un hébergement accessible et simple</strong></strong></h3>



<p>Cette gamme s’adresse aux professionnels à la recherche d’une <strong>solution économique</strong>. Elle se concentre sur l’essentiel pour mettre un site en ligne rapidement et facilement, sans complexité. <strong>Toutes les offres incluent les services de base</strong>&nbsp;dont vous avez besoin : espace disque, comptes email, nom de domaine et sécurité intégrée.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="383" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_eco-v2-1024x383.png" alt="" class="wp-image-31188" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_eco-v2-1024x383.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_eco-v2-300x112.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_eco-v2-768x287.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_eco-v2.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Elle est idéale pour les sites simples, les premiers projets, les portfolios ou les petits sites professionnels qui doivent être fiables et faciles à gérer dès le départ. Vous bénéficiez de <strong>tout le nécessaire pour lancer et faire fonctionner votre site</strong>, à un prix accessible dans la durée.</p>



<p>Vous possédez déjà un nom de domaine chez OVHcloud ? Vous pouvez activer votre hébergement gratuit immédiatement. <strong>Chaque domaine inclut 100 Mo d’hébergement</strong>, vous permettant de mettre en ligne vos premières pages web sans coût supplémentaire. Cette offre inclut également un <strong>compte email</strong>, s’appuie sur la <strong>performance de notre infrastructure</strong>, et bénéficie du même <strong>haut niveau de sécurité</strong> que l’ensemble de nos produits.</p>



<h3 class="wp-block-heading"><strong><strong>Gamme Business : performance et flexibilité</strong></strong></h3>



<p>La gamme Business est conçue pour les professionnels ayant besoin de plus de <strong>performance</strong>, de <strong>flexibilité</strong> et de <strong>ressources</strong> pour accompagner leur croissance.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="550" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_business-1024x550.png" alt="" class="wp-image-31185" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_business-1024x550.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_business-300x161.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_business-768x413.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_business.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>À mesure que votre site évolue, vos besoins augmentent : plus de trafic, plus de contenu, plus d’intégrations. Cette gamme permet&nbsp;<strong>des temps de chargement plus rapides, inclut des ressources plus généreuses</strong> (bases de données, stockage, emails), ainsi que des fonctionnalités techniques avancées pour adapter votre environnement à vos besoins.</p>



<p>Que vous gériez un site vitrine, un site e-commerce ou plusieurs projets, vous bénéficiez d’une solution d’hébergement <strong>conçue pour accompagner votre croissance tout en vous offrant davantage de contrôle</strong>.</p>



<p>Pour les besoins les plus exigeants, nos offres Pro et Performance proposent davantage de CPU et de RAM, permettant de gérer efficacement des pics de trafic importants et d&#8217;assurer la réactivité de vos sites, même en période de forte activité.</p>



<p>En résumé, cette gamme offre un <strong>excellent équilibre entre performance, flexibilité et maîtrise des coûts</strong>, idéal pour soutenir vos projets professionnels en croissance.</p>



<h3 class="wp-block-heading"><strong><strong>Gamme Agencies : conçue pour gérer plusieurs clients efficacement</strong></strong></h3>



<p>La gamme Agencies est conçue pour les <strong>professionnels qui gèrent plusieurs sites pour plusieurs clients</strong>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="541" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_agencies-1024x541.png" alt="" class="wp-image-31186" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_agencies-1024x541.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_agencies-300x159.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_agencies-768x406.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/FR_agencies.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Lorsque vous pilotez plusieurs projets, l’efficacité devient essentielle. Cette gamme vous permet d’héberger, gérer et faire évoluer plusieurs sites <strong>au sein d’un même environnement</strong>, afin de <strong>centraliser vos opérations</strong> et de <strong>réduire vos coûts</strong>.</p>



<p>Elle est particulièrement adaptée aux agences, freelances et prestataires qui doivent <strong>déployer, maintenir et superviser de nombreux sites</strong> tout en conservant un workflow simple et scalable.</p>



<p>Les offres de cette gamme offrent des ressources encore plus généreuses pour accompagner vos projets les plus exigeants : jusqu’à <strong>1 To d’espace disque</strong>, <strong>14 vCores</strong> et <strong>16 Go de RAM</strong>. Elles incluent également toutes notre <strong>CDN</strong> ainsi qu’une <strong>instance Web Cloud Databases</strong>, pour assurer performance, scalabilité et simplicité de gestion au quotidien.</p>



<p>Vous travaillez en équipe ? Gérez finement les accès utilisateurs afin de collaborer efficacement à plusieurs : <strong>attribuez des rôles et des permissions</strong> adaptés à chaque profil, contrôlez qui peut accéder à quelles ressources, et organisez le travail entre membres de votre équipe en toute sécurité et simplicité.</p>



<p>Cette gamme est ainsi pensée pour vous permettre de gérer davantage de projets et de clients, plus efficacement, tout en gagnant du temps et en optimisant vos coûts, sans multiplier les hébergements.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="ressources"><strong><strong>2) Plus de capacité pour accompagner vos projets</strong></strong></h2>



<p>Après le <a href="https://blog.ovhcloud.com/fr-webhosting-new-compute/" data-wpel-link="internal">renouvellement complet de notre infrastructure de calcul en 2025</a>, nos hébergements web sont désormais <strong>jusqu’à 3 fois plus rapides</strong>, avec 2 fois plus de puissance de calcul allouée.</p>



<p>En 2026, <strong>nous faisons évoluer notre technologie de stockage</strong> afin d’offrir encore plus de performance et de fiabilité. Tous nos hébergements passent progressivement sur du stockage <strong>SSD</strong>, pour assurer des temps d’accès plus rapides et une meilleure résilience en cas d&#8217;incident ou de maintenance. Résultat : une <strong>qualité de service renforcée</strong> et une disponibilité accrue de vos sites.</p>



<p>Nous augmentons également <strong>le nombre de bases de données et leur capacité de stockage</strong> inclus dans nos offres.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/speed.png" alt="" class="wp-image-31195" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/speed.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/speed-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<h3 class="wp-block-heading"><strong><strong>Ce qui change</strong></strong></h3>



<p>Nombre d&#8217;entre vous commencent avec un seul site, puis développent d’autres projets : blogs, landing pages, environnements de test ou sites clients. Nos hébergements étant multi-sites, <strong>vous pouvez héberger plusieurs projets sur un même plan</strong>. À mesure que vos projets évoluent, les besoins en bases de données augmentent naturellement.</p>



<p>Notre objectif est simple : plutôt que de vous obliger à changer d’offre, nous intégrons <strong>plus de ressources directement dans votre plan actuel</strong>. Cela vous permet de regrouper plusieurs sites sous un même hébergement, chacun avec sa propre base de données.</p>



<p>En pratique, cela permet de <strong>réduire les coûts, simplifier la gestion et offrir plus de flexibilité</strong> pour faire évoluer vos projets.</p>



<h3 class="wp-block-heading"><strong><strong>Quelques cas d&#8217;usage</strong></strong></h3>



<p><strong>Hébergez plusieurs sites sans multiplier les offres</strong><br>Vous pouvez gérer plusieurs sites depuis un même compte, chacun avec sa propre base de données.</p>



<p><strong>Installez facilement plusieurs CMS</strong><br>WordPress, Joomla!, PrestaShop… déployez plusieurs projets indépendants sans contrainte.</p>



<p><strong>Créez des environnements de test (staging)</strong><br>Testez vos mises à jour en toute sécurité avant mise en production.</p>



<p><strong>Accompagnez la croissance de vos sites</strong><br>Des bases plus grandes permettent d’absorber plus de trafic et de contenu sans limite immédiate.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong><strong>3) Évolution des prix : un prix d’entrée plus bas et des économies sur la durée</strong></strong></h2>



<p>Dans le cadre de cette évolution, notre structure tarifaire évolue avec deux objectifs : <strong>maintenir un prix d’entrée très accessible</strong> et <strong>offrir plus de valeur sur les engagements longue durée</strong>.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/serenity.png" alt="" class="wp-image-31194" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/serenity.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/serenity-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<h3 class="wp-block-heading"><strong><strong>Un prix très compétitif la première année</strong></strong></h3>



<p>Pour toute nouvelle souscription, le prix de la première année est volontairement très bas.</p>



<p>Par exemple, <strong>l’offre Pro démarre désormais à 1,99 € HT/mois la première année.</strong></p>



<p>Cette approche facilite le lancement d’une nouvelle idée, le test d’un concept ou la création d’une activité, sans coûts initiaux importants. Les clients qui lancent de nouveaux projets bénéficient ainsi de <strong>l’un des prix d’entrée les plus compétitifs du marché</strong>.</p>



<p><strong>Toutes les fonctionnalités essentielles de l’hébergement restent incluses</strong> : des comptes email généreux, un nom de domaine inclus la première année, le multi-site, des ressources de bases de données étendues et un support amélioré. En résumé, vous conservez tout ce qui fait la richesse de votre hébergement, avec davantage de ressources et un accompagnement renforcé.</p>



<h3 class="wp-block-heading"><strong><strong>Des économies à long terme</strong></strong></h3>



<p>Nous introduisons des durées de <strong>24 et 48 mois</strong> afin de vous permettre de bénéficier du meilleur tarif possible. La plupart des sites web s’inscrivent dans la durée : ils gagnent en visibilité, en trafic et en valeur. Nous voulons que votre hébergement accompagne cette évolution sur le long terme.</p>



<p>En choisissant une durée plus longue, vous pouvez réaliser des économies significatives :</p>



<ul class="wp-block-list">
<li><strong>24 mois = 5 à 6 mois économisés</strong> par rapport à des renouvellements annuels</li>



<li><strong>48 mois = 16 à 18 mois économisés</strong> par rapport à des renouvellements annuels</li>
</ul>



<p>Le principe est simple : plus la durée est longue, plus votre prix mensuel est avantageux et plus votre budget d’hébergement devient prévisible.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong><strong>4) Renouvelez maintenant pour conserver votre prix actuel</strong></strong></h2>



<p>Nombre d’entre vous nous font confiance depuis des années pour héberger leurs projets, et nous souhaitons <strong>continuer à récompenser votre fidélité</strong>&nbsp;en vous permettant de conserver vos conditions tarifaires actuelles le plus longtemps possible.</p>



<p>Si vous souhaitez maintenir vos tarifs actuels, vous pouvez <strong>anticiper le renouvellement</strong> votre hébergement <strong>avant le</strong> <strong>1er Juin 2026</strong>. Cela vous permet de sécuriser votre prix tout en continuant à bénéficier des améliorations de votre offre. Le renouvellement peut être effectué en quelques clics depuis votre espace client.</p>



<p>En renouvelant dès maintenant, vous pouvez <strong>conserver votre tarif actuel</strong> <strong>jusqu’à 4 années</strong> supplémentaires, <strong>tout en bénéficiant des améliorations</strong>&nbsp;apportées à nos hébergements, notamment des bases de données supplémentaires et d’un support renforcé.</p>



<p>Pour les projets de long terme, renouveler dès aujourd’hui vous permet de gagner en stabilité budgétaire et en visibilité sur vos dépenses d’hébergement.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="support"><strong><strong>5) Un support repensé et renforcé</strong></strong></h2>



<p>Pour beaucoup d’entre vous, <strong>un site web est bien plus qu’un simple projet personnel</strong>. Il peut générer du chiffre d’affaires, servir vos clients ou présenter votre activité en ligne. Lorsqu’un problème survient, vous ne souhaitez pas simplement ouvrir un ticket : vous attendez <strong>des réponses claires et une résolution rapide</strong>. Nous avons pris en compte ces attentes et renforçons notre support pour le rendre plus accessible, plus réactif et plus pertinent lorsque vous avez besoin d’être accompagné.</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/support.png" alt="" class="wp-image-31192" style="width:707px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/support.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/support-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<p>Voici comment votre expérience de support va évoluer :</p>



<h3 class="wp-block-heading"><strong>Un support disponible quand vous en avez besoin</strong></h3>



<p>Nous <strong>déployons</strong> <strong>progressivement</strong> une disponibilité <strong>24 h/24, 7 j/7</strong>, avec davantage de canaux de contact pour vous permettre de nous joindre à tout moment, que vous lanciez un nouveau site, gériez une urgence ou ayez besoin de conseils.</p>



<h3 class="wp-block-heading"><strong>Des réponses plus rapides</strong></h3>



<p>Une expérience de chat améliorée vous permettra d’entrer rapidement en contact avec nos équipes et d’obtenir des réponses claires avec <strong>des temps d’attente réduits</strong>.</p>



<h3 class="wp-block-heading"><strong>Une interaction humaine simplifiée</strong></h3>



<p>Vous pourrez nous appeler directement depuis votre navigateur ou demander à être rappelé par l’un de nos conseillers, afin d’obtenir de l’aide <strong>selon le mode de contact qui vous convient le mieux</strong>.</p>



<h3 class="wp-block-heading"><strong>Un accompagnement et un suivi renforcés</strong></h3>



<p>Nous adoptons une approche plus proactive du support, qui ne se limite pas à résoudre les incidents, mais vise aussi à <strong>vous conseiller et à vous aider</strong> à faire avancer vos projets.</p>



<p>Notre objectif est simple : vous permettre d’obtenir de l’aide plus facilement et plus rapidement, quand vous en avez besoin. Que vous lanciez un site, gériez des mises à jour ou résolviez un problème, nous continuons d’investir pour offrir une expérience client toujours plus fluide.</p>



<p>Ces améliorations reflètent notre engagement à accompagner aussi bien les débutants que les utilisateurs avancés, avec un support fiable et accessible. <strong>Elles sont en cours de déploiement progressif</strong> afin de garantir qualité et stabilité.</p>



<h2 class="wp-block-heading" id="partners"><strong><strong>6) Offres dédiées pour partenaires et agences (à venir)</strong></strong></h2>



<p>Certains clients vont au-delà de la gestion de leurs propres sites. Ils conçoivent, déploient et revendent des environnements web complets pour leurs clients, incluant l’hébergement, les noms de domaine, les services email et d’autres solutions, parfois sous leur propre marque. Les revendeurs et les agences opèrent souvent sur l’ensemble de l’écosystème OVHcloud et ont besoin de solutions adaptées à des environnements multi-clients et multi-services.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/partners.png" alt="" class="wp-image-31198" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/partners.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/partners-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<p>Cela implique généralement de :</p>



<ul class="wp-block-list">
<li><strong>Coordonner les mises à jour</strong> sur plusieurs environnements clients</li>



<li><strong>Garantir la disponibilité et la performance</strong> de l’ensemble des projets hébergés</li>



<li><strong>Réagir rapidement</strong> en cas d’impact sur les services clients</li>



<li><strong>Optimiser les coûts et les marges</strong> à l’échelle du portefeuille de services</li>
</ul>



<p>C&#8217;est la raison pour laquelle nous préparons une offre spécifiquement conçue pour ces usages. Cette future offre partenaires inclura notammant :</p>



<ul class="wp-block-list">
<li><strong>Un support premium et prioritaire</strong>, avec des parcours d’escalade plus clairs pour les situations critiques</li>



<li><strong>Une tarification préférentielle</strong>, adaptée aux portefeuilles multi-produits</li>



<li><strong>Des outils de gestion dédiés aux agences</strong>, pour simplifier le déploiement, le suivi et la maintenance de multiples services pour vos clients</li>
</ul>



<p>Plus de détails seront partagés prochainement. Nous avons hâte de développer cette offre en collaboration avec notre écosystème de partenaires.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="roadmap"><strong>7) <strong>Nouvelles fonctionnalités</strong></strong></h2>



<p>Nous continuons à améliorer notre plateforme d’hébergement web, avec plusieurs évolutions majeures déjà en cours.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="707" height="463" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/features.png" alt="" class="wp-image-31199" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/features.png 707w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/features-300x196.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" /></figure>



<p>Nous avons récemment finalisé un renouvellement complet de notre infrastructure de calcul, afin d’offrir de meilleures performances et une fiabilité accrue pour l’ensemble de vos sites. <a href="https://blog.ovhcloud.com/fr-webhosting-new-compute/" type="link" id="https://blog.ovhcloud.com/fr-webhosting-new-compute/" data-wpel-link="internal">Vous pouvez en savoir plus dans notre article dédié</a>.</p>



<p>Nous sommes également en train de moderniser notre infrastructure de stockage, avec le même objectif : <strong>renforcer les performances, la résilience et la fiabilité</strong> de notre infrastructure sur le long terme.</p>



<p>Ces évolutions s’inscrivent dans une feuille de route produit plus large et transparente. Nous partageons régulièrement nos priorités afin que vous puissiez suivre les améliorations en cours et à venir.</p>



<p>Au-delà de l’infrastructure, plusieurs nouveautés sont en préparation :</p>



<ul class="wp-block-list">
<li><strong>Une gestion simplifiée de WordPress</strong> avec <a href="https://www.ovhcloud.com/fr/managed-hosting-wordpress/" type="link" id="https://www.ovhcloud.com/fr/managed-hosting-wordpress/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Managed Hosting for WordPress</a>, pour plus d’automatisation et une administration facilitée au quotidien</li>



<li>Une nouvelle solution d’<a href="https://www.ovhcloud.com/fr/video-center/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">hébergement vidéo</a>, conçue pour <strong>diffuser vos contenus sans dépendre de plateformes tierces</strong></li>



<li>De nouvelles fonctionnalités basées sur l’<strong>intelligence artificielle</strong> pour vous aider à gérer, optimiser et sécuriser vos sites</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong><strong>Notre engagement</strong></strong></h2>



<p>Notre objectif reste simple : vous offrir une plateforme performante, fiable et accessible, capable d’accompagner votre croissance dans la durée, tout en améliorant en continu votre expérience grâce à des fonctionnalités qui simplifient votre gestion au quotidien.</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%2Ffr-webhosting-2026%2F&amp;action_name=%C3%89volution%20de%20nos%20h%C3%A9bergements%20web%20%3A%20ce%20qui%20change%20et%20pourquoi&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>Reference Architecture: Deploying a vision-language model with vLLM on OVHcloud MKS for high performance inference and full observability</title>
		<link>https://blog.ovhcloud.com/reference-architecture-deploying-a-vision-language-model-with-vllm-on-ovhcloud-mks-for-high-performance-inference-and-full-observability/</link>
		
		<dc:creator><![CDATA[Eléa Petton]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 07:48:53 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OVHcloud]]></category>
		<category><![CDATA[prometheus]]></category>
		<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[vLLM]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=30455</guid>

					<description><![CDATA[Ensure complete&#160;digital sovereignty&#160;of your AI models with end-to-end control through open-source solutions on OVHcloud’s&#160;Managed Kubernetes Service. This reference architecture demonstrates how to deploy a Large Language Model (LLM) inference system using vLLM on&#160;OVHcloud Managed Kubernetes Service&#160;(MKS). The solution leverages NVIDIA L40S GPUs to serve the&#160;Qwen3-VL-8B-Instruct&#160;multimodal model (vision + text) with OpenAI-compatible API endpoints. This comprehensive [&#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%2Freference-architecture-deploying-a-vision-language-model-with-vllm-on-ovhcloud-mks-for-high-performance-inference-and-full-observability%2F&amp;action_name=Reference%20Architecture%3A%20Deploying%20a%20vision-language%20model%20with%20vLLM%20on%20OVHcloud%20MKS%20for%20high%20performance%20inference%20and%20full%20observability&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><em><em>Ensure complete&nbsp;<strong>digital sovereignty</strong>&nbsp;of your AI models with end-to-end control through open-source solutions on OVHcloud’s&nbsp;<strong>Managed Kubernetes Service</strong>.</em></em></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="703" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/ref-archi-mks-vllm-703x1024.jpg" alt="vLLM on OVHcloud MKS for high availability and full observability" class="wp-image-31153" style="width:710px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/ref-archi-mks-vllm-703x1024.jpg 703w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/ref-archi-mks-vllm-206x300.jpg 206w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/ref-archi-mks-vllm-768x1118.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/ref-archi-mks-vllm-1055x1536.jpg 1055w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/ref-archi-mks-vllm.jpg 1260w" sizes="auto, (max-width: 703px) 100vw, 703px" /><figcaption class="wp-element-caption"><em><em>vLLM on OVHcloud MKS for high availability and full observability</em></em></figcaption></figure>



<p>This reference architecture demonstrates how to deploy a Large Language Model (LLM) inference system using vLLM on&nbsp;<a href="https://www.ovhcloud.com/fr/public-cloud/kubernetes/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud Managed Kubernetes Service</a>&nbsp;(MKS). The solution leverages NVIDIA L40S GPUs to serve the&nbsp;<a href="https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Qwen3-VL-8B-Instruct</a>&nbsp;multimodal model (vision + text) with OpenAI-compatible API endpoints.</p>



<p>This comprehensive guide shows you how to deploy, to scale automatically, and how to monitor vLLM-based LLM workloads on the OVHcloud infrastructure.</p>



<p><strong>What are the key benefits?</strong></p>



<ul class="wp-block-list">
<li><strong>Cost-effectiveness:</strong>&nbsp;Leverage managed services to minimise operational overhead</li>



<li><strong>Real-time observability:</strong>&nbsp;Track Time-to-First-Token (TTFT), throughput, and resource utilisation</li>



<li><strong>Sovereign infrastructure:</strong>&nbsp;Keep all metrics and data within European datacentres</li>



<li><strong>Scalable by design:</strong>&nbsp;Automatically scale GPU inference replicas based on real workload demand</li>
</ul>



<h2 class="wp-block-heading">Context</h2>



<h3 class="wp-block-heading">Managed Kubernetes Service</h3>



<p><strong>OVHcloud MKS</strong>&nbsp;is a fully managed Kubernetes platform designed to help you deploy, operate, and scale containerised applications in production. It provides a secure and reliable Kubernetes environment without the operational overhead of managing the control plane.</p>



<p><strong>How does this benefit you?</strong></p>



<ul class="wp-block-list">
<li><strong>Cost-efficient</strong>: Pay only for worker nodes and consumed resources, with no additional charge for the Kubernetes control plane</li>



<li><strong>Fully managed Kubernetes</strong>: Certified upstream Kubernetes with automated control plane management, provided upgrades and high availability</li>



<li><strong>Production-ready by design</strong>: Built-in integrations with OVHcloud Load Balancers, networking, and persistent storage</li>



<li><strong>Scalable and flexible</strong>: Scale workloads easily, node pools to match application demand</li>



<li><strong>Open and portable</strong>: Based on standard Kubernetes APIs, enable seamless integration with open-source ecosystems and avoid vendor lock-in</li>
</ul>



<p>In the following guide, all services are deployed within the&nbsp;<strong>OVHcloud Public Cloud</strong>.</p>



<h2 class="wp-block-heading">Architecture overview</h2>



<p>This reference architecture demonstrates a basic deployment of vLLM for vision-language model inference on OVHcloud Managed Kubernetes Service, featuring:</p>



<ul class="wp-block-list">
<li><strong>High-availability deployment</strong>&nbsp;with 2 GPU nodes (NVIDIA L40S)</li>



<li><strong>Optimised GPU utilisation</strong>&nbsp;with proper driver configuration</li>



<li><strong>Scalable infrastructure</strong>&nbsp;supporting vision-language models</li>



<li><strong>Comprehensive monitoring</strong>&nbsp;using Prometheus, Grafana, and DCGM</li>



<li><strong>Full observability</strong>&nbsp;for both application and hardware metrics</li>
</ul>



<p><strong>Data flow</strong>:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-3-1-1024x538.jpg" alt="" class="wp-image-30985" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-3-1-1024x538.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-3-1-300x158.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-3-1-768x403.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-3-1-1536x806.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-3-1-2048x1075.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><em>Data Flow</em></figcaption></figure>



<ol class="wp-block-list">
<li><strong>Inference request:</strong>
<ul class="wp-block-list">
<li>User → LoadBalancer → Gateway → NGINX Ingress → &#8220;Qwen3 VL&#8221; Service → vLLM Pod → GPU</li>



<li>Response follows reverse path with streaming support</li>
</ul>
</li>



<li><strong>Metrics collection:</strong>
<ul class="wp-block-list">
<li>vLLM Pods expose <code>/metrics</code> endpoint (port <code><strong><mark class="has-inline-color has-ast-global-color-0-color">8000</mark></strong></code>)</li>



<li>DCGM Exporters expose GPU metrics (port <code><strong><mark class="has-inline-color has-ast-global-color-0-color">9400</mark></strong></code>)</li>



<li>Prometheus scrapes both endpoints every 30 seconds</li>



<li>Grafana queries Prometheus for visualization</li>
</ul>
</li>



<li><strong>Load distribution</strong>
<ul class="wp-block-list">
<li>NGINX Ingress uses cookie-based session affinity</li>



<li>vLLM Service uses ClientIP session affinity</li>



<li>Anti-affinity ensures 1 pod per GPU node</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">Prerequisites</h2>



<p>Before you begin, ensure you have:</p>



<ul class="wp-block-list">
<li>An&nbsp;<strong>OVHcloud Public Cloud</strong>&nbsp;account</li>



<li>An&nbsp;<strong>OpenStack user</strong>&nbsp;with the<a href="https://help.ovhcloud.com/csm/en-gb-public-cloud-ai-users?id=kb_article_view&amp;sysparm_article=KB0048170" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">&nbsp;</a><strong><code>Administrator</code></strong>&nbsp;role</li>



<li><strong>Hugging Face access</strong>&nbsp;–&nbsp;<em>create a&nbsp;<a href="https://huggingface.co/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Hugging Face account</a>&nbsp;and generate an&nbsp;<a href="https://huggingface.co/settings/tokens" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">access token</a></em></li>



<li><code><strong>kubectl</strong></code>&nbsp;already installed and&nbsp;<code><strong>helm</strong></code>&nbsp;installed (at least version 3.x)</li>
</ul>



<p><strong>🚀 Now you have all the ingredients, it’s time to deploy the recipe for&nbsp;<a href="https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Qwen/Qwen3-VL-8B-Instruct</a>&nbsp;using vLLM and MKS!</strong></p>



<h2 class="wp-block-heading">Architecture guide: Native GPU deployment of vLLM on MKS with full stack observability</h2>



<p>This reference architecture describes a<strong>&nbsp;Large Language Model</strong>&nbsp;deployment using&nbsp;<strong>vLLM inference server&nbsp;</strong>and&nbsp;<strong>Kubernetes</strong>, to enjoy the&nbsp;benefits of a service that&#8217;s both highly available and monitorable in real time.</p>



<h3 class="wp-block-heading">Step 1 &#8211; Create MKS cluster and Node pools</h3>



<p>From&nbsp;<a href="https://www.ovh.com/manager/" target="_blank" rel="noreferrer noopener" data-wpel-link="exclude">OVHcloud Control Panel</a>, create a Kubernetes cluster using the&nbsp;<strong>MKS</strong>. </p>



<p>Navigate to: <code>Public Cloud</code> → <code>Managed Kubernetes Service</code> → <code>Create a cluster</code></p>



<h4 class="wp-block-heading">1. Configure cluster</h4>



<p>Consider using the following configuration for the current use case:</p>



<ul class="wp-block-list">
<li><strong>Name:</strong> <code><strong><mark class="has-inline-color has-ast-global-color-0-color">vllm-deployment-l40s-qwen3-8b</mark></strong></code></li>



<li><strong>Location</strong>: 1-AZ Region &#8211; Gravelines (<code><strong><mark class="has-inline-color has-ast-global-color-0-color">GRA11</mark></strong></code>)</li>



<li><strong>Plan:</strong> Free (or Standard)</li>



<li><strong>Network</strong>: attach a <strong>Private network </strong>(e.g. <code><strong><mark class="has-inline-color has-ast-global-color-0-color">0000 - AI Private Network</mark></strong></code>)</li>



<li><strong>Version:</strong> Latest stable (e.g. <code><strong><mark class="has-inline-color has-ast-global-color-0-color">1.34</mark></strong></code>)</li>
</ul>



<h4 class="wp-block-heading">2. Create GPU Node pool</h4>



<p>During the cluster creation, configure the vLLM Node pool for GPUs:</p>



<ul class="wp-block-list">
<li><strong>Node pool name:</strong> <code><mark class="has-inline-color has-ast-global-color-0-color">vllm</mark></code></li>



<li><strong>Flavor:</strong> <code><mark class="has-inline-color has-ast-global-color-0-color">L40S-90</mark></code></li>



<li><strong>Number of nodes:</strong> <code><mark class="has-inline-color has-ast-global-color-0-color">2</mark></code></li>



<li><strong>Autoscaling:</strong> Disabled (OFF)</li>
</ul>



<p><strong>Why L40S-90?</strong></p>



<ul class="wp-block-list">
<li>Cost-effective for single-model deployment (1 GPU per node)</li>



<li>Sufficient RAM (90GB) for <strong><code><mark class="has-inline-color has-ast-global-color-0-color">Qwen3-VL-8B</mark></code></strong> model</li>
</ul>



<p>You should see your cluster (e.g.&nbsp;<code><strong><mark class="has-inline-color has-ast-global-color-0-color">vllm-deployment-l40s-qwen3-8b</mark></strong></code>) in the list, along with the following information:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="930" height="588" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-1.png" alt="" class="wp-image-30745" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-1.png 930w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-1-300x190.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-1-768x486.png 768w" sizes="auto, (max-width: 930px) 100vw, 930px" /></figure>



<p>You can now set up the node pool dedicated to monitoring.</p>



<h4 class="wp-block-heading">3. Create CPU Node pool</h4>



<p>From your cluster, click on <code><strong><mark class="has-inline-color has-ast-global-color-0-color">Add a node pool</mark></strong></code> and configure it as follow:</p>



<ul class="wp-block-list">
<li><strong>Node pool name:</strong> <mark class="has-inline-color has-ast-global-color-0-color"><code>monitoring</code></mark></li>



<li><strong>Flavor:</strong> <code><mark class="has-inline-color has-ast-global-color-0-color">B2-15</mark></code></li>



<li><strong>Number of nodes:</strong> <code><mark class="has-inline-color has-ast-global-color-0-color">1</mark></code></li>



<li><strong>Autoscaling:</strong> Disabled (OFF)</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>✅ <strong>Note</strong></p>



<p><strong><em>Monitoring stack can run on GPU nodes if cost is a concern. Dedicated CPU node provides better isolation and resource management.</em></strong></p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="365" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-node-pool-creation-1024x365.png" alt="" class="wp-image-30743" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-node-pool-creation-1024x365.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-node-pool-creation-300x107.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-node-pool-creation-768x274.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-node-pool-creation.png 1283w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If the status is green with the&nbsp;<strong><code><mark class="has-inline-color has-ast-global-color-0-color">OK</mark></code></strong>&nbsp;label, you can proceed to the next step.</p>



<h4 class="wp-block-heading">4. Configure Kubernetes access</h4>



<p>Once your nodes have been provisioned, you can download the <strong>Kubeconfig file</strong> and configure kubectl with your MKS cluster.</p>



<pre class="wp-block-code"><code class=""># configure kubectl with your MKS cluster<br>export KUBECONFIG=/path/to/your/kubeconfig-xxxxxx.yml<br><br># verify cluster connectivity<br>kubectl cluster-info<br>kubectl get nodes</code></pre>



<p>Returning:</p>



<p><code>NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; STATUS &nbsp; ROLES&nbsp; &nbsp; AGE &nbsp; VERSION<br>monitoring-node-xxxxxx &nbsp; Ready&nbsp; &nbsp; &lt;none&gt; &nbsp; 1d &nbsp; v1.34.2<br>vllm-node-yyyyyy &nbsp; &nbsp; &nbsp; &nbsp; Ready&nbsp; &nbsp; &lt;none&gt; &nbsp; 1d &nbsp; v1.34.2<br>vllm-node-zzzzzz &nbsp; &nbsp; &nbsp; &nbsp; Ready&nbsp; &nbsp; &lt;none&gt; &nbsp; 1d &nbsp; v1.34.2</code></p>



<p>Before going further, add a label to the CPU node for monitoring workloads.</p>



<pre class="wp-block-code"><code class="">CPU_NODE=$(kubectl get nodes -o json | \<br>  jq -r '.items[] | select(.status.allocatable."nvidia.com/gpu" == null) | .metadata.name')<br>kubectl label node $CPU_NODE node-role=monitoring</code></pre>



<p>Finally, check with the following command:</p>



<pre class="wp-block-code"><code class="">NAME                     GPU      ROLE<br>monitoring-node-xxxxxx   &lt;none&gt;   monitoring<br>vllm-node-yyyyyy         1        &lt;none&gt;<br>vllm-node-zzzzzz         1        &lt;none&gt;</code></pre>



<p>Once both nodes are in <strong>Ready</strong> status, you can proceed to the next step.</p>



<h3 class="wp-block-heading">Step 2 &#8211; Install GPU operator</h3>



<p>To start, consider setting up the GPU operator.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>✅ Note</strong></p>



<p><em><strong>This step is based on this OVHcloud documentation: <a href="https://help.ovhcloud.com/csm/en-gb-public-cloud-kubernetes-deploy-gpu-application?id=kb_article_view&amp;sysparm_article=KB0049707" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Deploying a GPU application on OVHcloud Managed Kubernetes Service</a></strong></em></p>
</blockquote>



<h4 class="wp-block-heading">1. Add NVIDIA helm repository and create namespace</h4>



<p>Add NVIDIA helm repo:</p>



<pre class="wp-block-code"><code class="">helm repo add nvidia https://helm.ngc.nvidia.com/nvidia<br>helm repo update</code></pre>



<p>And create Namespace as follow.</p>



<pre class="wp-block-code"><code class="">kubectl create namespace gpu-operator</code></pre>



<h4 class="wp-block-heading">2. Install GPU operator with correct configuration</h4>



<p>The GPU Operator must be configured with specific driver versions to ensure compatibility with vLLM containers.</p>



<p>However, the default installation uses recent drivers (<code><strong><mark class="has-inline-color has-ast-global-color-0-color">580.x</mark></strong></code> with <strong><code><mark class="has-inline-color has-ast-global-color-0-color">CUDA 13.x</mark></code></strong>) which are incompatible with vLLM containers (<strong><code><mark class="has-inline-color has-ast-global-color-0-color">CUDA 12.x</mark></code></strong>).</p>



<p><strong>Solution:</strong> Force driver version <strong><code><mark class="has-inline-color has-ast-global-color-0-color">535.183.01</mark></code></strong> (<code><strong><mark class="has-inline-color has-ast-global-color-0-color">CUDA 12.2</mark></strong></code>).</p>



<pre class="wp-block-code"><code class="">helm install gpu-operator nvidia/gpu-operator \<br>  -n gpu-operator \<br>  --set driver.enabled=true \<br>  --set driver.version="535.183.01" \<br>  --set toolkit.enabled=true \<br>  --set operator.defaultRuntime=containerd \<br>  --set devicePlugin.enabled=true \<br>  --set dcgmExporter.enabled=true \<br>  --set dcgmExporter.image="dcgm-exporter" \<br>  --set dcgmExporter.version="3.1.7-3.1.4-ubuntu20.04" \<br>  --set gfd.enabled=true \<br>  --set migManager.enabled=false \<br>  --set nodeStatusExporter.enabled=true \<br>  --set validator.driver.enable=false \<br>  --set validator.toolkit.enable=false \<br>  --set validator.plugin.enable=false \<br>  --timeout 20m</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>✅ <strong>Note </strong></p>



<p><em><strong>Specifying the DCGM version may only be necessary if you encounter problems with the default image (e.g. <code><mark class="has-inline-color has-ast-global-color-0-color">‘ImagePullBackOff’</mark></code>). If this is the case, add the following parameters:<br><code><mark class="has-inline-color has-ast-global-color-0-color">--set dcgmExporter.repository="nvcr.io/nvidia/k8s"<br>--set dcgmExporter.image="dcgm-exporter"<br>--set dcgmExporter.version="3.1.7-3.1.4-ubuntu20.04"</mark></code></strong></em></p>
</blockquote>



<pre class="wp-block-code"><code class="">kubectl get pods -n gpu-operator</code></pre>



<p>Note that all pods should reach <strong>Running</strong> state in 5-10 minutes.</p>



<p>You can also check the GPU availability:</p>



<pre class="wp-block-code"><code class="">kubectl get nodes -o json | jq -r '.items[] | select(.status.allocatable."nvidia.com/gpu" != null) | "\(.metadata.name): \(.status.allocatable."nvidia.com/gpu") GPU(s)"'</code></pre>



<p>Returning:</p>



<p><code>vllm-node-<code>yyyyyy</code>: 1 GPU(s)<br>vllm-node-zzzzzz: 1 GPU(s)</code></p>



<p>And you can test to run <code><strong><mark class="has-inline-color has-ast-global-color-0-color">nvidia-smi</mark></strong></code>:</p>



<pre class="wp-block-code"><code class="">DRIVER_POD=$(kubectl get pods -n gpu-operator -l app=nvidia-driver-daemonset -o name | head -1)<br>kubectl exec -n gpu-operator $DRIVER_POD -- nvidia-smi</code></pre>



<p>If GPU tests are working properly, you can move on DCGM service configuration.</p>



<h4 class="wp-block-heading">3. Configure DCGM service</h4>



<p><strong>Why is DCGM Exporter required?</strong></p>



<p>DCGM (Data Centre GPU Manager) is NVIDIA&#8217;s official tool for monitoring GPUs in production. The goal is to be able to collect and display metrics from both GPU nodes.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="571" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-1-1024x571.jpg" alt="" class="wp-image-30746" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-1-1024x571.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-1-300x167.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-1-768x428.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-1-1536x856.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/data_ia_archi-1.jpg 1733w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><em>GPU monitoring with DCGM</em></figcaption></figure>



<p>The metrics provided are:</p>



<ul class="wp-block-list">
<li><code><strong><mark class="has-inline-color has-ast-global-color-0-color">DCGM_FI_DEV_GPU_UTIL</mark></strong></code> &#8211; GPU utilisation (%)</li>



<li><strong><code><mark class="has-inline-color has-ast-global-color-0-color">DCGM_FI_DEV_GPU_TEMP</mark></code></strong> &#8211; GPU temperature (°C)</li>



<li><strong><code><mark class="has-inline-color has-ast-global-color-0-color">DCGM_FI_DEV_FB_USED</mark></code></strong> &#8211; VRAM used (MB)</li>



<li><strong><code><mark class="has-inline-color has-ast-global-color-0-color">DCGM_FI_DEV_FB_FREE</mark></code></strong> &#8211; Free VRAM (MB)</li>



<li><strong><code><mark class="has-inline-color has-ast-global-color-0-color">DCGM_FI_DEV_POWER_USAGE</mark></code></strong> &#8211; Power consumption (W)</li>



<li>And 50+ other GPU metrics</li>
</ul>



<p>Next, ensure DCGM service has the correct labels and port configuration:</p>



<pre class="wp-block-code"><code class="">kubectl patch svc nvidia-dcgm-exporter -n gpu-operator --type merge -p '{<br>  "metadata": {<br>    "labels": {<br>      "app": "nvidia-dcgm-exporter"<br>    }<br>  },<br>  "spec": {<br>    "ports": [<br>      {<br>        "name": "metrics",<br>        "port": 9400,<br>        "targetPort": 9400,<br>        "protocol": "TCP"<br>      }<br>    ]<br>  }<br>}'</code></pre>



<p>Verify the endpoints (should show 2 IPs, one per GPU node).</p>



<pre class="wp-block-code"><code class="">kubectl get endpoints nvidia-dcgm-exporter -n gpu-operator</code></pre>



<p><code>NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ENDPOINTS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AGE<br>nvidia-dcgm-exporter &nbsp; x.x.x.x:9400,x.x.x.x:9400 &nbsp; 17d</code></p>



<h3 class="wp-block-heading">Step 3 &#8211; Deploy Qwen3 VL 8B with vLLM inference server</h3>



<p>The deployment of the <strong>Qwen 3 VL 8B</strong> model on two L40S GPU nodes is carried out in several stages.</p>



<h4 class="wp-block-heading">1. Create namespace and Hugging Face secret</h4>



<p>Start by creating Namespace:</p>



<pre class="wp-block-code"><code class="">kubectl create namespace vllm</code></pre>



<p>Next, you must retrieve your Hugging Face token and replace the&nbsp;<code><strong><mark class="has-inline-color has-ast-global-color-0-color">HF_TOKEN</mark></strong></code>&nbsp;value by your own:</p>



<pre class="wp-block-code"><code class="">export HF_TOKEN="hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</code></pre>



<p>Create your secret as follow:</p>



<pre class="wp-block-code"><code class="">kubectl create secret generic huggingface-secret \<br>  --from-literal=token=$HF_TOKEN \<br>  --namespace=vllm</code></pre>



<p>Verify you obtain the following output by launching:</p>



<pre class="wp-block-code"><code class="">kubectl get secret huggingface-secret -n vllm</code></pre>



<p><code>NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TYPE &nbsp; &nbsp; DATA &nbsp; AGE<br>huggingface-secret &nbsp; Opaque &nbsp; 1&nbsp; &nbsp; &nbsp; 14d</code></p>



<h4 class="wp-block-heading">2. Create vLLM deployment configuration</h4>



<p>First, you can create <code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/vllm/vllm-deployment-2nodes.yaml" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">vllm-deployment-2nodes.yaml</a></strong></code> file.</p>



<p>Deploy vLLM:</p>



<pre class="wp-block-code"><code class="">kubectl apply -f vllm-deployment-2nodes.yaml</code></pre>



<p>You can monitor the deployment (it should take 8-10 minutes for model download and loading).</p>



<pre class="wp-block-code"><code class="">kubectl get pods -n vllm -o wide -w</code></pre>



<p>Expected output after 10 minutes:</p>



<pre class="wp-block-code"><code class="">NAME               READY  STATUS   RESTARTS  AGE  IP       NODE  <br>qwen3-vl-xxxx-yyy  1/1    Running  0         1d   X.X.X.X  vllm-node-yyyyyy<br>qwen3-vl-xxxx-zzz  1/1    Running  0         1d   X.X.X.X  vllm-node-zzzzzz</code></pre>



<p>You can also check the container logs:</p>



<pre class="wp-block-code"><code class="">kubectl logs -f -n vllm &lt;pod-name&gt;</code></pre>



<p>You should find in the logs: &#8220;<code>Uvicorn running on http://0.0.0.0:8000</code>&#8220;</p>



<p>Is everything installed correctly? Then let&#8217;s move on to the next step.</p>



<h4 class="wp-block-heading">3. Add service label</h4>



<p>Ensure service has the correct label for <strong><code><mark class="has-inline-color has-ast-global-color-0-color">ServiceMonitor</mark></code></strong> discovery.</p>



<pre class="wp-block-code"><code class="">kubectl label svc qwen3-vl-service -n vllm app=qwen3-vl --overwrite</code></pre>



<p>You can now verify by launching the following command.</p>



<pre class="wp-block-code"><code class="">kubectl get svc qwen3-vl-service -n vllm --show-labels | grep "app=qwen3-vl"</code></pre>



<p>Returning:</p>



<p><code>qwen3-vl-service&nbsp; ClusterIP&nbsp; X.X.X.X &nbsp;&lt;none&gt;  8000/TCP  1d &nbsp;app=qwen3-vl</code></p>



<h3 class="wp-block-heading">Step 4 &#8211; Install NGINX ingress controller</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><mark style="color:#cf2e2e" class="has-inline-color">⚠️ <strong>Moving beyond Ingress</strong></mark></p>



<p><strong><em><mark style="color:#cf2e2e" class="has-inline-color">Follow this <a href="https://blog.ovhcloud.com/moving-beyond-ingress-why-should-ovhcloud-managed-kubernetes-service-mks-users-start-looking-at-the-gateway-api/" data-wpel-link="internal">tutorial</a> if you want to use Gateway instead of Ingress.</mark></em></strong></p>
</blockquote>



<h4 class="wp-block-heading">1. Add helm repository and configure Ingress</h4>



<p>First of all, add helm repository:</p>



<pre class="wp-block-code"><code class="">helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx<br>helm repo update</code></pre>



<p>Create configuration file with <code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/ingress/ingress-nginx-values.yaml" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">ingress-nginx-values.yaml</a></strong></code>.</p>



<p>Then, install NGINX Ingress:</p>



<pre class="wp-block-code"><code class="">helm install ingress-nginx ingress-nginx/ingress-nginx \<br>  --namespace ingress-nginx \<br>  --create-namespace \<br>  -f ingress-nginx-values.yaml \<br>  --wait</code></pre>



<p>Wait for LoadBalancer IP. The external IP assignment should take 1-2 minutes.</p>



<pre class="wp-block-code"><code class="">kubectl get svc -n ingress-nginx ingress-nginx-controller -w</code></pre>



<p>Once <code><strong><mark class="has-inline-color has-ast-global-color-0-color">&lt;EXTERNAL-IP&gt;</mark></strong></code> is no longer , Ctrl+C and export it:</p>



<pre class="wp-block-code"><code class="">export EXTERNAL_IP=&lt;EXTERNAL-IP&gt;<br>echo "API URL: http://$EXTERNAL_IP"</code></pre>



<h4 class="wp-block-heading">2. Create vLLM Ingress resource</h4>



<p>Next, create vLLM Ingress using <strong><code><a href="https://github.com/ovh/public-cloud-examples/blob/ep-vllm-deployment-observability-mks/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/vllm/vllm-ingress.yaml" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">vllm-ingress.yaml</a></code></strong>.</p>



<p>Apply it as follow:</p>



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



<p>You can now test different API calls to verify that your deployment is functional.</p>



<h4 class="wp-block-heading">3. Test API</h4>



<p>Firstly, check if the model is available:</p>



<pre class="wp-block-code"><code class="">curl http://$EXTERNAL_IP/v1/models | jq</code></pre>



<pre class="wp-block-preformatted"><code>{<br>  "object": "list",<br>  "data": [<br>    {<br>      "id": "qwen3-vl-8b",<br>      "object": "model",<br>      "created": 1772472143,<br>      "owned_by": "vllm",<br>      "root": "Qwen/Qwen3-VL-8B-Instruct",<br>      "parent": null,<br>      "max_model_len": 8192,<br>      "permission": [<br>        {<br>          "id": "modelperm-8fb35cdd3208b068",<br>          "object": "model_permission",<br>          "created": 1772472143,<br>          "allow_create_engine": false,<br>          "allow_sampling": true,<br>          "allow_logprobs": true,<br>          "allow_search_indices": false,<br>          "allow_view": true,<br>          "allow_fine_tuning": false,<br>          "organization": "*",<br>          "group": null,<br>          "is_blocking": false<br>        }<br>      ]<br>    }<br>  ]<br>}</code></pre>



<p>Next, test inference using the following request:</p>



<pre class="wp-block-code"><code class="">curl http://$EXTERNAL_IP/v1/chat/completions \<br>  -H "Content-Type: application/json" \<br>  -d '{<br>    "model": "qwen3-vl-8b",<br>    "messages": [{"role": "user", "content": "Count from 1 to 10."}],<br>    "max_tokens": 100<br>  }' | jq '.choices[0].message.content'</code></pre>



<p><code>"1, 2, 3, 4, 5, 6, 7, 8, 9, 10"</code></p>



<p>Great! You&#8217;re almost there…</p>



<h3 class="wp-block-heading">Step 5 &#8211; Install Prometheus stack</h3>



<p>Now, set up the monitoring stack that provides complete observability for&nbsp;<strong>application-level&nbsp;</strong>(vLLM) and&nbsp;<strong>hardware-level</strong>&nbsp;(GPU) metrics:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="763" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-architecture-1024x763.jpg" alt="" class="wp-image-30871" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-architecture-1024x763.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-architecture-300x223.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-architecture-768x572.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-architecture-1536x1144.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/monitoring-architecture.jpg 1673w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><em>Monitoring architecture</em></figcaption></figure>



<h4 class="wp-block-heading">1. Add helm repository and create namespace</h4>



<p>Add Prometheus helm repo:</p>



<pre class="wp-block-code"><code class="">helm repo add prometheus-community https://prometheus-community.github.io/helm-charts<br>helm repo update</code></pre>



<p>Then, create the <code><strong><mark class="has-inline-color has-ast-global-color-0-color">monitoring</mark></strong></code> Namespace.</p>



<pre class="wp-block-code"><code class="">kubectl create namespace monitoring</code></pre>



<h4 class="wp-block-heading">2. Create Prometheus deployment configuration and installation</h4>



<p>First, create <code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/monitoring/prometheus.yaml" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">prometheus.yaml</a></strong></code> file.</p>



<p>Install Prometheus stack:</p>



<pre class="wp-block-code"><code class="">helm install prometheus prometheus-community/kube-prometheus-stack \<br>  -n monitoring \<br>  -f prometheus.yaml \<br>  --timeout 10m \<br>  --wait</code></pre>



<p>Now,&nbsp;monitor its installation and wait until the pods are ready:</p>



<pre class="wp-block-code"><code class="">kubectl get pods -n monitoring -w</code></pre>



<p>If all pods are running successfully, you can proceed to the next step.</p>



<h4 class="wp-block-heading">3. Check that the installation is operational</h4>



<p>First access Grafana in background:</p>



<pre class="wp-block-code"><code class="">kubectl port-forward -n monitoring svc/prometheus-grafana 3000:80 &amp;</code></pre>



<p>Test Grafana health:</p>



<pre class="wp-block-code"><code class="">curl -s http://localhost:3000/api/health | jq</code></pre>



<pre class="wp-block-preformatted"><code>{<br>  "database": "ok",<br>  "version": "12.3.3",<br>  "commit": "2a14494b2d6ab60f860d8b27603d0ccb264336f6"<br>}</code></pre>



<p>You can now access to Grafana locally via <strong><a href="http://localhost:3000" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><code>http://localhost:3000</code></a></strong>. You will have to use:</p>



<ul class="wp-block-list">
<li>Login: <code><strong><mark style="color:#cf2e2e" class="has-inline-color">admin</mark></strong></code></li>



<li>Password: <code><strong><mark style="color:#cf2e2e" class="has-inline-color">Admin123!vLLM</mark></strong></code></li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-2-1024x518.png" alt="" class="wp-image-30804" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-2-1024x518.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-2-300x152.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-2-768x389.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-2.png 1322w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Well done! You can now proceed to the configuration step.</p>



<h3 class="wp-block-heading">Step 6 &#8211; Configure ServiceMonitors</h3>



<p>The ServiceMonitors is used to tell Prometheus which endpoints to scrape for metrics.</p>



<h4 class="wp-block-heading">1. Create vLLM ServiceMonitor</h4>



<p>Retrieve the file from the GitHub repository: <code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/monitoring/vllm-servicemonitor.yaml" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">vllm-servicemonitor.yaml</a></strong></code>.</p>



<p>Next, apply and check that the ServiceMonitor <code><strong><mark class="has-inline-color has-ast-global-color-0-color">vllm-metrics</mark></strong></code> exists:</p>



<pre class="wp-block-code"><code class="">kubectl apply -f vllm-servicemonitor.yaml<br>kubectl get servicemonitor -n vllm</code></pre>



<h4 class="wp-block-heading">2. Create DCGM ServiceMonitor</h4>



<p>First, create the <code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/monitoring/dcgm-servicemonitor.yaml" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">dcgm-servicemonitor.yaml</a></strong></code> file.</p>



<p>Once again, apply and verify:</p>



<pre class="wp-block-code"><code class="">kubectl apply -f dcgm-servicemonitor.yaml<br>kubectl get servicemonitor -n gpu-operator</code></pre>



<pre class="wp-block-preformatted"><code>gpu-operator                  1d<br>nvidia-dcgm-exporter          1d<br>nvidia-node-status-exporter   1d</code></pre>



<h4 class="wp-block-heading">3. Configure Prometheus for Cross-Namespace discovery</h4>



<p>Apply a patch to allow Prometheus to discover ServiceMonitors in all namespaces.</p>



<pre class="wp-block-code"><code class="">kubectl patch prometheus prometheus-kube-prometheus-prometheus -n monitoring --type merge -p '{<br>  "spec": {<br>    "serviceMonitorNamespaceSelector": {},<br>    "podMonitorNamespaceSelector": {}<br>  }<br>}'</code></pre>



<p>Now you have to restart Prometheus.</p>



<ol class="wp-block-list">
<li>Delete Prometheus pod to force configuration reload</li>



<li>Wait for Prometheus to restart</li>
</ol>



<pre class="wp-block-code"><code class="">kubectl delete pod prometheus-prometheus-kube-prometheus-prometheus-0 -n monitoring<br><br>kubectl wait --for=condition=Ready \<br>  pod/prometheus-prometheus-kube-prometheus-prometheus-0 \<br>  -n monitoring \<br>  --timeout=180s</code></pre>



<p>Wait about 2 minutes for discovery and finally, verify targets:</p>



<pre class="wp-block-code"><code class="">kubectl port-forward -n monitoring \<br>  prometheus-prometheus-kube-prometheus-prometheus-0 9090:9090 &amp;</code></pre>



<p>You can open in browser: <a href="http://localhost:9090/targets" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><code><strong><mark class="has-inline-color has-ast-global-color-0-color">http://localhost:9090/targets</mark></strong></code></a> and search for:</p>



<ul class="wp-block-list">
<li><code><strong><mark class="has-inline-color has-ast-global-color-0-color">vllm</mark></strong></code></li>



<li><strong><code><mark class="has-inline-color has-ast-global-color-0-color">dcgm</mark></code></strong></li>
</ul>



<p>Note that the expected targets are: </p>



<ul class="wp-block-list">
<li>serviceMonitor/vllm/vllm-metrics/0   (2/2 UP)</li>



<li>serviceMonitor/gpu-operator/nvidia-dcgm-exporter/0 (2/2 UP)</li>
</ul>



<h3 class="wp-block-heading">Step 7 &#8211; Create Grafana dashboards</h3>



<p>In this final step, the goal is to create two Grafana dashboards to track both the software side with vLLM metrics and the hardware metrics that will monitor the GPU consumption and system.</p>



<h4 class="wp-block-heading">1. vLLM application metrics</h4>



<p>The dashboard provides insights into vLLM application performance, request handling, and resource utilization based on the following metrics:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Metric</th><th>Type</th><th>Description</th><th>Unit</th><th>Dashboard Usage</th></tr></thead><tbody><tr><td><code>vllm:request_success_total</code></td><td>Counter</td><td>Total successful requests</td><td>count</td><td>Request Rate, Total Requests</td></tr><tr><td><code>vllm:num_requests_running</code></td><td>Gauge</td><td>Requests currently being processed</td><td>count</td><td>Queue Depth, Active Requests</td></tr><tr><td><code>vllm:num_requests_waiting</code></td><td>Gauge</td><td>Requests waiting in queue</td><td>count</td><td>Queue Depth, Queued Requests</td></tr><tr><td><code>vllm:time_to_first_token_seconds</code></td><td>Histogram</td><td>Latency until first token generated</td><td>seconds</td><td>TTFT P50/P95/P99</td></tr><tr><td><code>vllm:e2e_request_latency_seconds</code></td><td>Histogram</td><td>Total end-to-end latency</td><td>seconds</td><td>E2E Latency P50/P95/P99</td></tr><tr><td><code>vllm:generation_tokens_total</code></td><td>Counter</td><td>Total tokens generated (output)</td><td>count</td><td>Token Generation Rate, Throughput</td></tr><tr><td><code>vllm:prompt_tokens_total</code></td><td>Counter</td><td>Total prompt tokens (input)</td><td>count</td><td>Token Generation Rate, Avg Tokens</td></tr><tr><td><code>vllm:kv_cache_usage_perc</code></td><td>Gauge</td><td>GPU KV cache utilization</td><td>0-1 (0-100%)</td><td>KV Cache Usage</td></tr><tr><td><code>vllm:prefix_cache_hits_total</code></td><td>Counter</td><td>Number of prefix cache hits</td><td>count</td><td>Cache Hit Rate</td></tr><tr><td><code>vllm:prefix_cache_queries_total</code></td><td>Counter</td><td>Number of prefix cache queries</td><td>count</td><td>Cache Hit Rate</td></tr><tr><td><code>vllm:request_queue_time_seconds</code></td><td>Histogram</td><td>Time spent waiting in queue</td><td>seconds</td><td>Request Queue Time</td></tr><tr><td><code>vllm:request_prefill_time_seconds</code></td><td>Histogram</td><td>Prefill phase time</td><td>seconds</td><td>Prefill Time</td></tr><tr><td><code>vllm:request_decode_time_seconds</code></td><td>Histogram</td><td>Decode phase time</td><td>seconds</td><td>Decode Time</td></tr><tr><td><code>vllm:inter_token_latency_seconds</code></td><td>Histogram</td><td>Latency between each token</td><td>seconds</td><td>Inter-Token Latency</td></tr><tr><td><code>vllm:num_preemptions_total</code></td><td>Counter</td><td>Number of preemptions (OOM)</td><td>count</td><td>Preemptions</td></tr><tr><td><code>vllm:prompt_tokens_cached_total</code></td><td>Counter</td><td>Prompt tokens cached</td><td>count</td><td>Cached Tokens</td></tr><tr><td><code>vllm:request_prompt_tokens</code></td><td>Histogram</td><td>Prompt size distribution</td><td>count</td><td>(Table)</td></tr><tr><td><code>vllm:request_generation_tokens</code></td><td>Histogram</td><td>Generated tokens distribution</td><td>count</td><td>(Table)</td></tr><tr><td><code>vllm:iteration_tokens_total</code></td><td>Histogram</td><td>Tokens per iteration</td><td>count</td><td>(Advanced analysis)</td></tr></tbody></table></figure>



<p>This <strong>vLLM Grafana dashboard</strong> is composed of 23 panels:</p>



<p>The dashboard provides insights into LLM application performance, request handling, and resource utilisation based on the previous metrics.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Type</th><th>Nombre</th><th>Panels</th></tr></thead><tbody><tr><td><strong>Timeseries</strong></td><td>12</td><td>Request Rate, Queue Depth, TTFT, E2E Latency, Token Gen, Cache Usage, Cache Hit, Queue Time, Prefill/Decode, Inter-Token, Preemptions, Avg Tokens</td></tr><tr><td><strong>Stat</strong></td><td>10</td><td>Throughput, TTFT P95, Active Req, Queued Req, Cache Hit Rate, Cache Usage, Total Req, Total Tokens, Cached Tokens, Preemptions</td></tr><tr><td><strong>Table</strong></td><td>1</td><td>Pod Performance</td></tr></tbody></table></figure>



<p>Now create the dashboard using <a href="https://github.com/ovh/public-cloud-examples/blob/ep-vllm-deployment-observability-mks/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/grafana-dashboards/vllm-app-dashboard.json" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"></a><code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/grafana-dashboards/vllm-app-dashboard.json" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">vllm-app-dashboard.json</a></strong></code>. Then, launch:</p>



<pre class="wp-block-code"><code class="">echo "Importing vLLM application dashboard..."<br>curl -X POST \<br>  'http://localhost:3000/api/dashboards/db' \<br>  -H 'Content-Type: application/json' \<br>  -u 'admin:Admin123!vLLM' \<br>  -d @vllm-app-dashboard.json | jq '.status, .url'</code></pre>



<p>Next, you an access the vLLM dashboard and follow metrics in real time:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="686" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-3-1024x686.png" alt="" class="wp-image-30858" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-3-1024x686.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-3-300x201.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-3-768x514.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-3.png 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>This dashboard is also essential to track hardware consumption for comprehensive monitoring.</p>



<h4 class="wp-block-heading">2. GPU hardware metrics</h4>



<p>Take advantage of the most useful DCGM metrics to check both the functioning and consumption of your hardware resources:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Metric</th><th>Type</th><th>Description</th><th>Unit</th><th>Normal Thresholds</th><th>Dashboard Usage</th></tr></thead><tbody><tr><td><code>DCGM_FI_DEV_GPU_UTIL</code></td><td>Gauge</td><td>GPU utilization (compute)</td><td>% (0-100)</td><td>70-95% optimal</td><td>GPU Utilization</td></tr><tr><td><code>DCGM_FI_DEV_GPU_TEMP</code></td><td>Gauge</td><td>GPU temperature</td><td>°C</td><td>&lt; 85°C normal</td><td>GPU Temperature</td></tr><tr><td><code>DCGM_FI_DEV_FB_USED</code></td><td>Gauge</td><td>VRAM used</td><td>MB</td><td>Variable by model</td><td>GPU Memory Used</td></tr><tr><td><code>DCGM_FI_DEV_FB_FREE</code></td><td>Gauge</td><td>VRAM free</td><td>MB</td><td>&gt; 2GB recommended</td><td>GPU Memory Free</td></tr><tr><td><code>DCGM_FI_DEV_POWER_USAGE</code></td><td>Gauge</td><td>Power consumption</td><td>Watts</td><td>&lt; 300W (L40S)</td><td>GPU Power Usage</td></tr><tr><td><code>DCGM_FI_DEV_SM_CLOCK</code></td><td>Gauge</td><td>GPU clock speed (compute)</td><td>MHz</td><td>Variable</td><td>GPU Clock Speed</td></tr><tr><td><code>DCGM_FI_DEV_MEM_CLOCK</code></td><td>Gauge</td><td>Memory clock speed</td><td>MHz</td><td>Variable</td><td>Memory Clock Speed</td></tr><tr><td><code>DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL</code></td><td>Counter</td><td>Total NVLink bandwidth</td><td>bytes/s</td><td>(If multi-GPU)</td><td>NVLink Bandwidth</td></tr><tr><td><code>DCGM_FI_DEV_PCIE_TX_BYTES</code></td><td>Counter</td><td>PCIe data transmitted</td><td>bytes</td><td>(I/O monitoring)</td><td>PCIe TX</td></tr><tr><td><code>DCGM_FI_DEV_PCIE_RX_BYTES</code></td><td>Counter</td><td>PCIe data received</td><td>bytes</td><td>(I/O monitoring)</td><td>PCIe RX</td></tr><tr><td><code>DCGM_FI_DEV_ECC_DBE_VOL_TOTAL</code></td><td>Counter</td><td>ECC double-bit errors</td><td>count</td><td>0 ideal</td><td>(Health check)</td></tr><tr><td><code>DCGM_FI_DEV_ECC_SBE_VOL_TOTAL</code></td><td>Counter</td><td>ECC single-bit errors</td><td>count</td><td>&lt; 10/day acceptable</td><td>(Health check)</td></tr></tbody></table></figure>



<p>This&nbsp;<strong>hardware Grafana dashboard</strong>&nbsp;is composed of 13 panels with GPU hardware and system metrics. A detailed view is also available GPU util (%), temperature (°C), vRAM (GB) and power (Watt).</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Type</th><th>Count</th><th>Panels</th></tr></thead><tbody><tr><td><strong>Timeseries</strong></td><td>8</td><td>GPU Util, GPU Mem, GPU Temp, GPU Power, CPU Usage, RAM Usage, Network I/O, Disk I/O</td></tr><tr><td><strong>Stat</strong></td><td>4</td><td>Avg GPU Util, Avg GPU Temp, Total GPU Mem, Total GPU Power</td></tr><tr><td><strong>Table</strong></td><td>1</td><td>Hardware Status</td></tr></tbody></table></figure>



<p>Please refer to <code><strong><a href="https://github.com/ovh/public-cloud-examples/blob/main/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/grafana-dashboards/hardware-dashboard.json" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">hardware-dashboard.json</a></strong></code> by loading it as follows:</p>



<pre class="wp-block-code"><code class="">echo "Importing hardware dashboard..."<br>curl -X POST \<br>  'http://localhost:3000/api/dashboards/db' \<br>  -H 'Content-Type: application/json' \<br>  -u 'admin:Admin123!vLLM' \<br>  -d @hardware-dashboard.json | jq '.status, .url'</code></pre>



<p>Finally, track resource consumption using this hardware dashboard:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="686" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-4-1024x686.png" alt="" class="wp-image-30859" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-4-1024x686.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-4-300x201.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-4-768x514.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/image-4.png 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Congratulations! Everything is working. You can now test your model and track the various metrics in real time.</p>



<h3 class="wp-block-heading">Step 8 &#8211; LLM testing and performance tracking</h3>



<p>Start by installing Python dependencies:</p>



<pre class="wp-block-code"><code class="">pip3 install openai tqdm</code></pre>



<p>Replace the <strong><mark class="has-inline-color has-ast-global-color-0-color">&lt;EXTERNAL_IP&gt;</mark></strong> by the vLLM service external IP and launch the performance test thanks to the following <a href="https://github.com/ovh/public-cloud-examples/blob/ep-vllm-deployment-observability-mks/containers-orchestration/managed-kubernetes/gpu-cluster-for-vllm-deployment-and-observability/llm-inference-performance-test.py" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><code><strong>Python code</strong></code></a>:</p>



<pre class="wp-block-code"><code class="">import time<br>import threading<br>import random<br>from statistics import mean<br>from openai import OpenAI<br>from tqdm import tqdm<br><br>APP_URL = "http://94.23.185.22/v1"<br>MODEL = "qwen3-vl-8b"<br><br>CONCURRENT_WORKERS = 500          # concurrency<br>REQUESTS_PER_WORKER = 10<br>MAX_TOKENS = 200                  # generation pressure<br><br># some random prompts<br>SHORT_PROMPTS = [<br>    "Summarize the theory of relativity.",<br>    "Explain what a transformer model is.",<br>    "What is Kubernetes autoscaling?"<br>]<br><br>MEDIUM_PROMPTS = [<br>    "Explain how attention mechanisms work in transformer-based models, including self-attention and multi-head attention.",<br>    "Describe how vLLM manages KV cache and why it impacts inference performance."<br>]<br><br>LONG_PROMPTS = [<br>    "Write a very detailed technical explanation of how large language models perform inference, "<br>    "including tokenization, embedding lookup, transformer layers, attention computation, KV cache usage, "<br>    "GPU memory management, and how batching affects latency and throughput. Use examples.",<br>]<br><br>PROMPT_POOL = (<br>    SHORT_PROMPTS * 2 +<br>    MEDIUM_PROMPTS * 4 +<br>    LONG_PROMPTS * 6    # bias toward long prompts<br>)<br><br># openai compliance<br>client = OpenAI(<br>    base_url=APP_URL,<br>    api_key="foo"<br>)<br><br># basic metrics<br>latencies = []<br>errors = 0<br>lock = threading.Lock()<br><br># worker<br>def worker(worker_id):<br>    global errors<br>    for _ in range(REQUESTS_PER_WORKER):<br>        prompt = random.choice(PROMPT_POOL)<br><br>        start = time.time()<br>        try:<br>            client.chat.completions.create(<br>                model=MODEL,<br>                messages=[{"role": "user", "content": prompt}],<br>                max_tokens=MAX_TOKENS,<br>                temperature=0.7,<br>            )<br>            elapsed = time.time() - start<br><br>            with lock:<br>                latencies.append(elapsed)<br><br>        except Exception as e:<br>            with lock:<br>                errors += 1<br><br># run<br>threads = []<br>start_time = time.time()<br><br>print("\n-&gt; STARTING PERFORMANCE TEST:")<br>print(f"Concurrency: {CONCURRENT_WORKERS}")<br>print(f"Total requests: {CONCURRENT_WORKERS * REQUESTS_PER_WORKER}")<br><br>for i in range(CONCURRENT_WORKERS):<br>    t = threading.Thread(target=worker, args=(i,))<br>    t.start()<br>    threads.append(t)<br><br>for t in threads:<br>    t.join()<br><br>total_time = time.time() - start_time<br><br># results<br>print("\n-&gt; BENCH RESULTS:")<br>print(f"Total requests sent: {len(latencies) + errors}")<br>print(f"Successful requests: {len(latencies)}")<br>print(f"Errors: {errors}")<br>print(f"Total wall time: {total_time:.2f}s")<br><br>if latencies:<br>    print(f"Avg latency: {mean(latencies):.2f}s")<br>    print(f"Min latency: {min(latencies):.2f}s")<br>    print(f"Max latency: {max(latencies):.2f}s")<br>    print(f"Throughput: {len(latencies)/total_time:.2f} req/s")</code></pre>



<p>Returning:</p>



<pre class="wp-block-preformatted"><code>-&gt; STARTING PERFORMANCE TEST:</code><br><code>Concurrency: 500<br>Total requests: 5000</code><br><code><br>-&gt; BENCH RESULTS:<br>Total requests sent: 5000<br>Successful requests: 5000<br>Errors: 0<br>Total wall time: 225.54s<br>Avg latency: 21.45s<br>Min latency: 6.06s<br>Max latency: 25.19s<br>Throughput: 22.17 req/s</code></pre>



<p>Don&#8217;t forget to track GPU and vLLM metrics in your Grafana dashboards!</p>



<h2 class="wp-block-heading">Conslusion</h2>



<p>This reference architecture demonstrates a<strong>&nbsp;vLLM deployment on OVHcloud Managed Kubernetes Service (MKS)</strong>&nbsp;with comprehensive GPU monitoring. Benefits include:</p>



<ul class="wp-block-list">
<li><strong>High Performance</strong>: GPU-accelerated inference with L40S</li>



<li><strong>Scalability</strong>: Kubernetes-native, horizontal scaling-ready</li>



<li><strong>Reliability</strong>: Health checks, auto-restart, monitoring</li>



<li><strong>API Compatibility</strong>: OpenAI-compatible endpoints</li>



<li><strong>Multimodality</strong>: Vision &amp; text capabilities</li>



<li><strong>Full stack monitoring</strong>: Complete vLLM application and hardware dashboards</li>
</ul>



<h2 class="wp-block-heading">Going Further</h2>



<p>Your current architecture is&nbsp;<strong>functional.&nbsp;</strong>However, if desired,&nbsp;<strong>it could be improved into a full production-ready&nbsp;solution.</strong></p>



<p><strong>Wish to take production hardening a step further?</strong></p>



<p>Go further with the following enhancements:</p>



<ol class="wp-block-list">
<li><strong>Authentication &amp; authorization</strong>
<ul class="wp-block-list">
<li>vLLM API authentication</li>



<li>Grafana authentication</li>



<li>Prometheus security</li>
</ul>
</li>



<li><strong>High availability &amp; load balancing</strong>
<ul class="wp-block-list">
<li>Grafana high availability with multiple replicas and shared storage</li>



<li>Prometheus high availability</li>



<li>vLLM Horizontal Pod Autoscaling (HPA) based on custom metrics</li>
</ul>
</li>



<li><strong>Data persistence &amp; backup</strong>
<ul class="wp-block-list">
<li>Prometheus long-term storage with persistent storage</li>



<li>Grafana Dashboard Backup</li>
</ul>
</li>



<li><strong>Observability enhancements</strong>
<ul class="wp-block-list">
<li>Distributed tracing by adding OpenTelemetry for request tracing</li>



<li>Alerting rules with production-ready alert rules</li>
</ul>
</li>
</ol>



<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%2Freference-architecture-deploying-a-vision-language-model-with-vllm-on-ovhcloud-mks-for-high-performance-inference-and-full-observability%2F&amp;action_name=Reference%20Architecture%3A%20Deploying%20a%20vision-language%20model%20with%20vLLM%20on%20OVHcloud%20MKS%20for%20high%20performance%20inference%20and%20full%20observability&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>Simply Put: Understanding Blockchain via Norway and Narnia</title>
		<link>https://blog.ovhcloud.com/understanding-blockchain-via-norway-narnia/</link>
		
		<dc:creator><![CDATA[Christian Sharp&nbsp;and&nbsp;Adnan Patka]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 07:18:48 +0000</pubDate>
				<category><![CDATA[Accelerating with OVHcloud]]></category>
		<category><![CDATA[Deploy & Scale]]></category>
		<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[Public Cloud]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31011</guid>

					<description><![CDATA[Blockchain is a decentralized database technology that tries to approach very important questions in a different way to traditional (centralized) databases. Ultimately, these questions boil down to: • What is the truth?• Who gets the last word on what the truth is? In information management circles, we’ve tried to find a way to the ‘single [&#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%2Funderstanding-blockchain-via-norway-narnia%2F&amp;action_name=Simply%20Put%3A%20Understanding%20Blockchain%20via%20Norway%20and%20Narnia&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-full"><img loading="lazy" decoding="async" width="600" height="600" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Blockchain-Blog-2.png" alt="" class="wp-image-31013" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Blockchain-Blog-2.png 600w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Blockchain-Blog-2-300x300.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Blockchain-Blog-2-150x150.png 150w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Blockchain-Blog-2-70x70.png 70w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>



<p></p>



<p>Blockchain is a decentralized database technology that tries to approach very important questions in a different way to traditional (centralized) databases. Ultimately, these questions boil down to:</p>



<p>• What is the truth?<br>• Who gets the last word on what the truth is?</p>



<p>In information management circles, we’ve tried to find a way to the ‘single source of truth’ for decades. Information sprawls. Being able to have a definitive answer on any one matter – whether that’s the last version of a memo or the real-time stock in a retail store – is incredibly valuable.</p>



<p>After all, if you’ve worked in an office for any length of time, you’ve probably renamed a file to something like ‘version 2.5 final final THIS ONE’ – and inevitably, it’s not ‘final’. This analogy doesn’t quite work because blockchain isn’t a file storage technology, but we’ll come back to that later.</p>



<p>Blockchain’s answer to defining truth is democratic. As its name suggests, information is stored in blocks, and these blocks are linked together in a chain. The order of this chain is documented, so once a change is made, it becomes an indelible part of ‘history.’ This establishes ‘truth’ by tying historical facts (or transactions) together so that one is linked to the next – and altering one event means altering the entire chain of events, rather like needing to rewrite an entire history book from the change of one small detail.</p>



<p>Let’s look at an example in practice.</p>



<p>When a change occurs in a blockchain network (like buying a cup of coffee with cryptocurrency) the information is sent to the network and preliminary checks are done – for example, checking that you have enough money to buy the coffee.</p>



<p>If there are any blockchain experts reading this, let’s assume it was a very expensive and significant coffee, because smaller transactions are often handled slightly differently in blockchain, in what we call Layer 2 Networks. We’ll come back to these later in the series.</p>



<p>Once the transaction has been verified, it’s then packaged up with other transactions to form a block and linked to the previous block in turn.</p>



<p>Next, the network has to make sure that the block is valid. This is done through a process called consensus, or validation, and is handled slightly differently depending on the network. Bitcoin uses a system called ‘Proof of Work,’ where different users work to verify complex equations that prove that the block’s contents haven’t been altered and that it does really link to the previous block. If anything has changed in the block since it was submitted, the equation doesn’t work and the block is rejected.</p>



<p>This is a computationally intensive process and requires a lot of electricity, particularly at scale. At one point, <strong>Bitcoin used as much electricity as all of Norway</strong>, so there are many other alternatives. For example, Solana uses ‘Proof of Stake,’ where the parties involved in verifying the block put forward assets (in this case, actual cryptocurrency). Then, the lead validator builds the block and adds a digital signature to it so as to say that they checked it, and that they have a real stake in the matter (i.e. money). This data is then re-checked by other validators, who vote on the validity. If there are enough ‘yes’ votes, then the block is agreed upon.</p>



<p>Of course, this does rely on trust, but there are usually big penalties for validators who ‘cheat.’ For example, they can have their stake removed, and/or they can be restricted from contributing to validation in future.</p>



<p>Solana also uses a system called ‘Proof of History’ to help it process a large number of transactions, which is a bit different to other systems.</p>



<p>But once approved, the block is then officially part of the chain, and the transaction can be completed – and you can get your Americano.</p>



<p>To define blockchain in another way: it creates a system of establishing trust and control without one single authority. Trust is distributed between all the different parties involved in the network. In fact, almost anyone can become a blockchain validator, although each network has its own requirements to do so.</p>



<p>As we’ve seen, blockchain is much bigger than just Bitcoin; the distributed database structure can be applied to all kinds of settings. We’ve seen organizations using blockchain to verify where tuna fish were caught, to ensure that they were ethically fished, and that the handling of said tuna could be traced from supermarket to distributor, and back to the person who caught them in the ocean.</p>



<p>Another major application for blockchain is in identity verification. Blockchain systems can help to check the validity of something without violating its privacy.</p>



<p>For example, <strong>imagine that you’ve discovered the famous Narnia wardrobe</strong>. You’ve decided to try to prevent people from sneaking in and causing chaos, so you’ve created a password-protected way to get in. You’re trying to qualify for state support to redevelop your house into a tourist attraction, so you need to prove that the wardrobe is the real deal. On the other hand, you don’t want to just give out the password because you’ll have government officials popping in and out all the time, conjuring infinite amounts of Turkish Delight and smuggling talking badgers out under their coats.</p>



<p>Blockchain’s answer to this is simple: you pop inside and take a selfie with Aslan and Mr. Tumnus, showing conclusively that you have access. This is how Self-sovereign identity works, which requires blockchain to link the wardrobe with the selfie. The two need to be linked – after all, you could have just popped into your friend’s magical wardrobe and taken a photo of some other lion and faun!</p>



<p>Many age-verification systems work in similar ways. For example, in many countries it’s illegal to give credit to someone under 18, so having a credit card is proof that you’re older than this, without having to show your passport or driving license. And in this case, it’s vital to show that the credit card is linked to the person using it, or the system doesn’t work.</p>



<p>Finally, it’s worth knowing that there are a number of different ecosystems within blockchain. Although they’re not strictly specialized, we can generalize that Bitcoin is focused on currency, Solana tends to being more of a platform for decentralized apps, and Ethereum is known for facilitating transactions quickly and making use of smart contracts – an ecosystem similar to Avalanche, but Avalanche has a modular approach focused on speed.</p>



<p>This picture is further muddied by the fact that there are public and private blockchains, which are also subdivided, but which essentially dictate who can see the blockchain and who has permission to be on it.</p>



<p>In our next blog post, we’ll go into a bit more detail about the blockchain world, focusing on the truths that IT leaders need to know. In the meantime, if you want a clearer, more practical view of how blockchain fits into real-world infrastructure, you can explore our <a href="https://www.ovhcloud.com/en-ie/lp/powering-blockchain-ethos/" type="link" id="https://www.ovhcloud.com/en-ie/lp/powering-blockchain-ethos/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">resources and customer success stories on our website</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%2Funderstanding-blockchain-via-norway-narnia%2F&amp;action_name=Simply%20Put%3A%20Understanding%20Blockchain%20via%20Norway%20and%20Narnia&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>🎙️ Tranches de Tech #27 &#8211; Poppy au service des autres</title>
		<link>https://blog.ovhcloud.com/%f0%9f%8e%99%ef%b8%8f-tranches-de-tech-27-poppy-au-service-des-autres/</link>
		
		<dc:creator><![CDATA[Stéphane Philippart]]></dc:creator>
		<pubDate>Tue, 07 Apr 2026 10:11:07 +0000</pubDate>
				<category><![CDATA[Tranches de Tech & co]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Tranches de Tech]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=31035</guid>

					<description><![CDATA[👤 Présentation d’Annabelle &#8211; ⏱️ 1&#8243;07s https://www.linkedin.com/posts/annabelle-koster_devfestnantes-hbcnantes-benevolat-activity-7440291032937955328-B5Lf 📰 News Techs&#160; 🤖 Intelligence Artificielle&#160;&#8211; ⏱️ 51&#8243;30s Vibe coder quand on est pas tech ! Claude Code Security https://claude.com/fr-fr/solutions/claude-code-security LLM Stats https://llm-stats.com 👩‍💻 Développement &#8211; ⏱️ 1h02&#8243;26s JDK 26 est disponible https://javaalmanac.io/jdk/26 🎤 Conférences / meetup &#8211; ⏱️ 1h03&#8243;52s https://developers.events/ Le prochain DevFest Nantes https://devfest.gdgnantes.com/en Les conférences [&#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%2F%25f0%259f%258e%2599%25ef%25b8%258f-tranches-de-tech-27-poppy-au-service-des-autres%2F&amp;action_name=%F0%9F%8E%99%EF%B8%8F%20Tranches%20de%20Tech%20%2327%20%26%238211%3B%20Poppy%20au%20service%20des%20autres&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-full is-resized"><img loading="lazy" decoding="async" width="759" height="757" src="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Tranches-de-Tech-visuel-rond.png" alt="" class="wp-image-31036" style="width:400px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/04/Tranches-de-Tech-visuel-rond.png 759w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Tranches-de-Tech-visuel-rond-300x300.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Tranches-de-Tech-visuel-rond-150x150.png 150w, https://blog.ovhcloud.com/wp-content/uploads/2026/04/Tranches-de-Tech-visuel-rond-70x70.png 70w" sizes="auto, (max-width: 759px) 100vw, 759px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<ul class="wp-block-list">
<li>👤 Invitée&nbsp;: Annabelle KOSTER
<ul class="wp-block-list">
<li>X : @AnnabelleKoster</li>



<li>LinkedIn : <a href="https://www.linkedin.com/in/annabelle-koster/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"></a><a href="https://www.linkedin.com/in/annabelle-koster/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://www.linkedin.com/in/annabelle-koster/</a></li>
</ul>
</li>



<li>🗓️ Date d&#8217;enregistrement : 20 mars 2026</li>



<li>🎧 <a href="https://smartlink.ausha.co/tranches-de-tech/tranches-de-tech-26-poppy-au-service-des-autres" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Lien vers l&#8217;épisode</a></li>
</ul>



<h3 class="wp-block-heading">👤 Présentation d’Annabelle &#8211; ⏱️ 1&#8243;07s</h3>



<p><a href="https://www.linkedin.com/posts/annabelle-koster_devfestnantes-hbcnantes-benevolat-activity-7440291032937955328-B5Lf" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://www.linkedin.com/posts/annabelle-koster_devfestnantes-hbcnantes-benevolat-activity-7440291032937955328-B5Lf</a></p>



<h3 class="wp-block-heading">📰 News Techs&nbsp;</h3>



<h4 class="wp-block-heading">🤖 Intelligence Artificielle&nbsp;&#8211; ⏱️ 51&#8243;30s</h4>



<h5 class="wp-block-heading">Vibe coder quand on est pas tech !</h5>



<h5 class="wp-block-heading">Claude Code Security</h5>



<p><a href="https://claude.com/fr-fr/solutions/claude-code-security" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://claude.com/fr-fr/solutions/claude-code-security</a></p>



<h5 class="wp-block-heading">LLM Stats</h5>



<p><a href="https://llm-stats.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://llm-stats.com</a></p>



<h4 class="wp-block-heading">👩‍💻 Développement &#8211; ⏱️ 1h02&#8243;26s</h4>



<h5 class="wp-block-heading">JDK 26 est disponible</h5>



<p><a href="https://javaalmanac.io/jdk/26" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://javaalmanac.io/jdk/26</a></p>



<h4 class="wp-block-heading">🎤 Conférences / meetup &#8211; ⏱️ 1h03&#8243;52s</h4>



<p><a href="https://developers.events/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://developers.events/</a></p>



<h5 class="wp-block-heading">Le prochain DevFest Nantes</h5>



<p><a href="https://devfest.gdgnantes.com/en" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://devfest.gdgnantes.com/en</a></p>



<h5 class="wp-block-heading">Les conférences tech à l&#8217;ère de l’IA?</h5>



<h5 class="wp-block-heading">Les conférences où on peut voir Annabelle ?</h5>



<h5 class="wp-block-heading">25 ans de communauté PHP en France. Et pour la première fois, notre avenir nous inquiète vraiment</h5>



<p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7439675466615013376" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://www.linkedin.com/feed/update/urn:li:activity:7439675466615013376</a></p>



<h5 class="wp-block-heading">Tremplin DevFest Toulouse organisé par Tech Speak’Her</h5>



<p><a href="https://lnkd.in/eskPByuW" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://lnkd.in/eskPByuW</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="has-text-align-center">💡 Retrouvez l’ensemble des autres épisodes ici : <a href="https://smartlink.ausha.co/tranches-de-tech" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://smartlink.ausha.co/tranches-de-tech</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%2F%25f0%259f%258e%2599%25ef%25b8%258f-tranches-de-tech-27-poppy-au-service-des-autres%2F&amp;action_name=%F0%9F%8E%99%EF%B8%8F%20Tranches%20de%20Tech%20%2327%20%26%238211%3B%20Poppy%20au%20service%20des%20autres&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>Extract Text from Images with OCR using Python and OVHcloud AI Endpoints</title>
		<link>https://blog.ovhcloud.com/extract-text-from-images-with-ocr-using-python-and-ovhcloud-ai-endpoints/</link>
		
		<dc:creator><![CDATA[Stéphane Philippart]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 12:55:19 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI Endpoints]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=30992</guid>

					<description><![CDATA[If you want to have more information on&#160;AI Endpoints, please read the&#160;following blog post.&#160;You can, also, have a look at our&#160;previous blog posts&#160;on how use AI Endpoints. You can find the full code example in the GitHub repository. In this article,&#160;we will explore how to perform OCR&#160;(Optical Character Recognition)&#160;on images using a vision-capable LLM,&#160;the&#160;OpenAI Python library,&#160;and [&#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%2Fextract-text-from-images-with-ocr-using-python-and-ovhcloud-ai-endpoints%2F&amp;action_name=Extract%20Text%20from%20Images%20with%20OCR%20using%20Python%20and%20OVHcloud%20AI%20Endpoints&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><em>If you want to have more information on&nbsp;<a href="https://endpoints.ai.cloud.ovh.net/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints</a>, please read the&nbsp;<a href="https://blog.ovhcloud.com/enhance-your-applications-with-ai-endpoints/" data-wpel-link="internal">following blog post</a>.</em>&nbsp;<em>You can, also, have a look at our&nbsp;<a href="https://blog.ovhcloud.com/tag/ai-endpoints/" data-wpel-link="internal">previous blog posts</a>&nbsp;on how use AI Endpoints.</em></p>



<p><em>You can find the full code example in the <a href="https://github.com/ovh/public-cloud-examples/tree/main/ai/ai-endpoints/python-ocr" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">GitHub repository</a>.</em></p>



<p>In this article,&nbsp;we will explore how to perform OCR&nbsp;(Optical Character Recognition)&nbsp;on images using a vision-capable LLM,&nbsp;the&nbsp;<a href="https://github.com/openai/openai-python" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OpenAI Python library</a>,&nbsp;and OVHcloud&nbsp;<a href="https://endpoints.ai.cloud.ovh.net/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints</a>.</p>



<h3 class="wp-block-heading">Introduction to OCR with Vision Models</h3>



<p>Optical Character Recognition has been around for decades,&nbsp;but traditional OCR engines often struggle with complex layouts,&nbsp;handwritten text,&nbsp;or noisy images.&nbsp;Vision-capable Large Language Models bring a new approach:&nbsp;instead of relying on specialized OCR pipelines,&nbsp;you can simply send an image to a model that understands both visual and textual content.</p>



<p>In this example,&nbsp;we use the&nbsp;<a href="https://github.com/openai/openai-python" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OpenAI Python library</a>&nbsp;to create a simple OCR script powered by a vision model hosted on OVHcloud&nbsp;<a href="https://endpoints.ai.cloud.ovh.net/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints</a>.</p>



<p>The whole application is a single Python file:  no complex setup, just <code><strong>pip install openai</strong></code> and you&#8217;re ready to go.</p>



<h3 class="wp-block-heading">Setting up the Environment Variables</h3>



<p>Before running the script, you need to set the following environment variables:</p>



<pre title="Environment variablesexport OVH_AI_ENDPOINTS_ACCESS_TOKEN=&quot;your-access-token&quot; export OVH_AI_ENDPOINTS_MODEL_URL=&quot;https://your-model-url&quot; export OVH_AI_ENDPOINTS_VLLM_MODEL=&quot;your-vision-model-name&quot;" class="wp-block-code"><code lang="" class=" line-numbers">export OVH_AI_ENDPOINTS_ACCESS_TOKEN="your-access-token"<br>export OVH_AI_ENDPOINTS_MODEL_URL="https://your-model-url"<br>export OVH_AI_ENDPOINTS_VLLM_MODEL="your-vision-model-name"</code></pre>



<p>You can find how to create your access token, model URL, and model name in the <a href="https://endpoints.ai.cloud.ovh.net/catalog" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints catalog</a>. Make sure to choose a <strong>vision-capable model</strong> from the <a href="https://endpoints.ai.cloud.ovh.net/catalog" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints catalog</a>.</p>



<h3 class="wp-block-heading">Installing Dependencies</h3>



<p>The only dependency is the OpenAI Python library:</p>



<pre title="OpenAI dependency" class="wp-block-code"><code lang="bash" class="language-bash">pip install openai</code></pre>



<h3 class="wp-block-heading">Define the System Prompt</h3>



<p>The first step is to define a system prompt that describes what our OCR service does.&nbsp;This prompt tells the model how to behave:</p>



<pre title="System prompt" class="wp-block-code"><code lang="" class=" line-numbers">SYSTEM_PROMPT = """You are an expert OCR engine.<br>Extract every piece of text visible in the provided image.<br>Preserve the original layout as faithfully as possible (line breaks, columns, tables).<br>Do NOT interpret, summarise, or translate the content.<br>Use markdown formatting to represent the layout (e.g. tables, lists).<br>If the image contains no text, reply with: "No text found."<br>"""</code></pre>



<p>We tell it to behave as an expert OCR engine, to preserve the original layout, and to use markdown formatting for structured content like tables or lists.<br></p>



<h3 class="wp-block-heading">Load the Image</h3>



<p>Before sending the image to the model,&nbsp;we need to encode it as a base64 string.&nbsp;Here is a simple helper function that reads a local PNG file and returns a base64-encoded string:</p>



<pre title="Image loading" class="wp-block-code"><code lang="" class=" line-numbers">import base64<br>from pathlib import Path<br><br>def load_image_as_base64(path: Path) -&gt; str:<br>    """Load a local image and encode it as base64."""<br>    with open(path, "rb") as f:<br>        return base64.b64encode(f.read()).decode("utf-8")</code></pre>



<p>The base64-encoded data is what gets sent to the vision model as part of the prompt.</p>



<p></p>



<h3 class="wp-block-heading">Extract Text from the Image</h3>



<p>The <code><strong>extract_text</strong></code> function sends the image to the vision model and returns the extracted text:</p>



<pre title="Extract text from image" class="wp-block-code"><code lang="" class=" line-numbers">def extract_text(client: OpenAI, image_base64: str, model: str) -&gt; str:<br>    """Extract text from an image using the vision model."""<br>    response = client.chat.completions.create(<br>        model=model,<br>        temperature=0.0,<br>        messages=[<br>            {"role": "system", "content": SYSTEM_PROMPT},<br>            {<br>                "role": "user",<br>                "content": [<br>                    {<br>                        "type": "image_url",<br>                        "image_url": {<br>                            "url": f"data:image/png;base64,{image_base64}"<br>                        }<br>                    }<br>                ]<br>            }<br>        ]<br>    )<br>    return response.choices[0].message.content</code></pre>



<p>The image is passed as a data URL inside the <code><strong>image_url</strong></code> field, following the OpenAI Vision API format. The temperature is set to <code>0.0</code> because we want deterministic, faithful text extraction and not creative output.</p>



<h3 class="wp-block-heading">Configure the Client</h3>



<p>This example uses a vision-capable model hosted on OVHcloud <a href="https://endpoints.ai.cloud.ovh.net/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints</a>. Since AI Endpoints exposes an OpenAI-compatible API, we use the <code>OpenAI</code> client and just point it to the OVHcloud endpoint:</p>



<pre title="Open AI client configuration" class="wp-block-code"><code lang="" class=" line-numbers">import os<br>from openai import OpenAI<br><br>client = OpenAI(<br>    api_key=os.getenv("OVH_AI_ENDPOINTS_ACCESS_TOKEN"),<br>    base_url=os.getenv("OVH_AI_ENDPOINTS_MODEL_URL"),<br>)<br><br>model_name = os.getenv("OVH_AI_ENDPOINTS_VLLM_MODEL")</code></pre>



<p>A few things to note:</p>



<ul class="wp-block-list">
<li>The <strong>API key</strong>, <strong>base URL</strong>, and <strong>model name</strong> are read from environment variables. </li>



<li>The OpenAI library is compatible with any OpenAI compatible API, making it perfect for use with AI Endpoints.</li>
</ul>



<h3 class="wp-block-heading">Assemble and Run</h3>



<p>With the client configured, extracting text from an image is straightforward:</p>



<pre title="Run the OCR" class="wp-block-code"><code lang="" class=" line-numbers">image_base64 = load_image_as_base64(Path("./doc.png"))<br>result = extract_text(client, image_base64, model_name)<br>print(result)</code></pre>



<p>And that&#8217;s it!</p>



<p>Here is the image used for this example:</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="946" height="693" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/doc-1.png" alt="Used image for OCR example" class="wp-image-31002" style="width:600px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/doc-1.png 946w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/doc-1-300x220.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/doc-1-768x563.png 768w" sizes="auto, (max-width: 946px) 100vw, 946px" /></figure>



<p>And the result:</p>



<pre title="Run the OCR" class="wp-block-code"><code lang="" class=" line-numbers">$ python ocr_demo.py<br>📄 Loading image: doc.png<br>🔍 Running OCR with Qwen2.5-VL-72B-Instruct via OVHcloud AI Endpoints...<br><br>📝 Extracted text 📝<br>Every month, the OVHcloud Developer Advocate team creates content, shares knowledge, and connects with the tech community. Here’s a look at what we did in March 2026. 🚀<br><br>🎙️ “Tranches de Tech” – Our monthly podcast<br><br>A new episode of our French-language podcast Tranches de Tech🥑 just dropped!<br><br>🎧 Episode 102: Tranches de Tech #26 – Architecte, c’est une bonne situation ça ?<br><br>This month we sat down with Alexandre Touret, Architect at Worldline to discuss the evolving role of software architects and the growing impact of AI on development practices. From Spotify’s claim that their devs no longer code, to agentic tools like OpenClaw and Claude Code reshaping workflows. We also cover ANSSI’s revised open-source policy, IBM tripling junior hires, and the critical responsibility of mentoring the next generation of developers in an AI-driven world.<br><br>📺 Live on Twitch<br><br>We streamed live on Twitch this month! Here’s what we covered:<br><br>🎥 Rémy Vandepoel discussed with Hugo Allabert and François Loiseau about our Public VCFaaS. Catch the replay on YouTube ▶️.<br><br>🎤 Conference Talks<br><br>The team hit the road (and the stage) at several conferences this month:<br><br>🇳🇱 KubeCon Amsterdam – Amsterdam, Netherlands 🇳🇱<br><br>Aurélie Vache gave a talk: The Ultimate Kubernetes Challenge: An Interactive Trivia Game</code></pre>



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



<p>In this article,&nbsp;we have seen how to use a vision-capable LLM to perform OCR on images using the&nbsp;<a href="https://github.com/openai/openai-python" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OpenAI Python library</a>&nbsp;and OVHcloud&nbsp;<a href="https://endpoints.ai.cloud.ovh.net/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">AI Endpoints</a>.&nbsp;The OpenAI library makes it very easy to send images to a vision model and extract text,&nbsp;and Python allows us to run the whole thing as a simple script.</p>



<p>You have a dedicated Discord channel&nbsp;(#<em>ai-endpoints</em>)&nbsp;on our Discord server&nbsp;(<em><a href="https://discord.gg/ovhcloud" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://discord.gg/ovhcloud</a></em>),&nbsp;see you there!</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%2Fextract-text-from-images-with-ocr-using-python-and-ovhcloud-ai-endpoints%2F&amp;action_name=Extract%20Text%20from%20Images%20with%20OCR%20using%20Python%20and%20OVHcloud%20AI%20Endpoints&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>What’s new with the OVHcloud Developer Advocate team &#8211; March 2026</title>
		<link>https://blog.ovhcloud.com/whats-new-with-the-ovhcloud-developer-advocate-team-march-2026/</link>
		
		<dc:creator><![CDATA[Stéphane Philippart]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 09:42:06 +0000</pubDate>
				<category><![CDATA[Tranches de Tech & co]]></category>
		<category><![CDATA[Developer Advocate]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=30933</guid>

					<description><![CDATA[Every month, the OVHcloud Developer Advocate team creates content, shares knowledge, and connects with the tech community. Here’s a look at what we did in March 2026. 🚀 🎙️ “Tranches de Tech” – Our monthly podcast A new episode of our French-language podcast Tranches de Tech 🥑 just dropped! 🎧 Episode 26:&#160;Tranches de Tech #26 [&#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%2Fwhats-new-with-the-ovhcloud-developer-advocate-team-march-2026%2F&amp;action_name=What%E2%80%99s%20new%20with%20the%20OVHcloud%20Developer%20Advocate%20team%20%26%238211%3B%20March%202026&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/03/talks-1024x576.jpg" alt="An advocate giving a talk" class="wp-image-30934" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/talks-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/talks-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/talks-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/talks-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/talks.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p>Every month, the OVHcloud Developer Advocate team creates content, shares knowledge, and connects with the tech community. Here’s a look at what we did in March 2026. 🚀</p>



<h3 class="wp-block-heading">🎙️ “Tranches de Tech” – Our monthly podcast</h3>



<p>A new episode of our French-language podcast Tranches de Tech 🥑 just dropped!</p>



<h5 class="wp-block-heading">🎧 Episode 26:&nbsp;<a href="https://podcast.ausha.co/tranches-de-tech/tranches-de-tech-26-architecte-c-est-une-bonne-situation-ca" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Tranches de Tech #26 &#8211; Architecte, c&#8217;est une bonne situation ça ?</a></h5>



<p>This month we sat down with Alexandre Touret, Architect at&nbsp;<a href="https://worldline.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Worldline</a>&nbsp;to discuss the evolving role of software architects and the growing impact of AI on development practices. From Spotify&#8217;s claim that their devs no longer code, to agentic tools like OpenClaw and Claude Code reshaping workflows. We also cover ANSSI&#8217;s revised open-source policy, IBM tripling junior hires, and the critical responsibility of mentoring the next generation of developers in an AI-driven world.</p>



<h3 class="wp-block-heading">📺 Live on Twitch</h3>



<p>We streamed live on&nbsp;<a href="https://www.twitch.tv/ovhcloud_com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Twitch</a>&nbsp;this month! Here’s what we covered:<br>🎥 Rémy Vandepoel discussed with Hugo Allabert and François Loiseau about our Public VCFaaS. Catch the replay on&nbsp;<a href="https://www.youtube.com/playlist?list=PL0DynEzr_sE4c4cAv9K_qXJNnDFtUE0v5" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">YouTube ▶️</a>.</p>



<h3 class="wp-block-heading">🎤 Conference Talks</h3>



<p>The team hit the road (and the stage) at several conferences this month:</p>



<h5 class="wp-block-heading" id="kubecon-amsterdam---amsterdam-netherlands-">🏴󠁧󠁢󠁥󠁮󠁧󠁿 <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">KubeCon Amsterdam</a>&nbsp;&#8211; Amsterdam, Netherlands 🇳🇱 </h5>



<p>Aurélie Vache gave a talk:&nbsp;<a href="https://kccnceu2026.sched.com/event/2CW4r/the-ultimate-kubernetes-challenge-an-interactive-trivia-game-aurelie-vache-ovhcloud" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">The Ultimate Kubernetes Challenge: An Interactive Trivia Game</a></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/03/aurelie-kubecon-1024x768.jpg" alt="" class="wp-image-30965" style="width:600px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/aurelie-kubecon-1024x768.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/aurelie-kubecon-300x225.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/aurelie-kubecon-768x576.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/aurelie-kubecon-1536x1152.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/aurelie-kubecon.jpg 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h5 class="wp-block-heading" id="voxxed-days-zurich---zurich-switzerland-">🏴󠁧󠁢󠁥󠁮󠁧󠁿 <a href="https://vdz26.voxxeddays.ch/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Voxxed Days Zurich</a>&nbsp;&#8211; Zurich, Switzerland 🇨🇭</h5>



<p>Stéphane Philippart gave a talk:&nbsp;<a href="https://m.devoxx.com/events/vdz26/talks/4692/jbang,-a-java-file-to-rule-them-all%3F-%F0%9F%92%8D" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">JBang, a Java file to rule them all? 💍</a></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/03/voxxed-days-zurich-stephane-1024x576.jpg" alt="" class="wp-image-30950" style="width:640px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/voxxed-days-zurich-stephane-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/voxxed-days-zurich-stephane-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/voxxed-days-zurich-stephane-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/voxxed-days-zurich-stephane-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/voxxed-days-zurich-stephane-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading" id="-community-engagement">🤝 Community Engagement</h3>



<p>We connected with the community through more than just conferences:</p>



<h5 class="wp-block-heading" id="-meetup-tech-speakher--gdg-toulouse---march-12---toulouse-france-">🏫 Meetup Tech Speak&#8217;Her &amp; GDG Toulouse &#8211; March, 12 &#8211; Toulouse, France 🇫🇷</h5>



<p>Aurélie Vache gave one talk: J&#8217;ai packagé mon application en image docker, et maintenant ?</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="771" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/march2026-aurelie-meetup-1024x771.jpg" alt="" class="wp-image-30935" style="width:640px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/march2026-aurelie-meetup-1024x771.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/march2026-aurelie-meetup-300x226.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/march2026-aurelie-meetup-768x578.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/march2026-aurelie-meetup-1536x1157.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/march2026-aurelie-meetup-2048x1542.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h5 class="wp-block-heading" id="-iaam-meetup---march-5----marseille-france-">🏫&nbsp;<a href="https://www.linkedin.com/company/intelligence-artificielle-aix-marseille/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">IAAM meetup</a>&nbsp;&#8211; March, 5 &#8211; Marseille, France 🇫🇷</h5>



<p>Stéphane Philippart gave a talk:&nbsp;<a href="https://www.meetup.com/fr-FR/intelligence-artificielle-aix-marseille/events/313367147/?utm_version=v2&amp;member_id=358247706" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Et si on apprenait à une IA à jouer à chifoumi ? 🪨📃✂</a></p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="800" height="800" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/iaam-stephane.jpg" alt="Stephane's IAAM meetup" class="wp-image-30936" style="width:640px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/iaam-stephane.jpg 800w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/iaam-stephane-300x300.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/iaam-stephane-150x150.jpg 150w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/iaam-stephane-768x768.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/iaam-stephane-70x70.jpg 70w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p></p>



<h5 class="wp-block-heading" id="-sopra-steria-code2learn---march-10-17--18---lyon-nantes-rennes-france-">🏫&nbsp;<a href="https://www.soprasteria.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Sopra Steria Code2Learn</a>&nbsp;&#8211; March, 10, 17 &amp; 18 &#8211; Lyon, Nantes, Rennes, France 🇫🇷</h5>



<p>Stéphane Philippart gave three tech labs: 🧩 Développer avec l&#8217;IA : et si c&#8217;était aussi simple qu&#8217;ajouter une librairie ? 🤘</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/03/sopra-stephane-1024x576.jpg" alt="Stephane's Sopra Steria tech mab" class="wp-image-30937" style="width:640px" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/sopra-stephane-1024x576.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/sopra-stephane-300x169.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/sopra-stephane-768x432.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/sopra-stephane-1536x864.jpg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/sopra-stephane.jpg 1599w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading">📝 Our latest blog posts</h3>



<p>Here are the articles our team published on the OVHcloud Blog this month.</p>



<h5 class="wp-block-heading">📝&nbsp;<a href="https://blog.ovhcloud.com/secure-your-software-supply-chain-with-ovhcloud-managed-private-registry-mpr/" data-wpel-link="internal">Secure your Software Supply Chain with OVHcloud Managed Private Registry (MPR)</a>&nbsp;— by Aurélie Vache</h5>



<p>In this blog post, we explore how OVHcloud Managed Private Registry (MPR) can help you secure your software supply chain. We cover the key features of MPR, including vulnerability scanning, SBOM generation, signature and automation, to show you how to protect your container images and ensure the integrity of your applications.</p>



<h3 class="wp-block-heading">💻 Code Samples and Open Source</h3>



<p>We regularly publish code samples and open-source projects to help you get started with OVHcloud products. Check out our&nbsp;<a href="https://file+.vscode-resource.vscode-cdn.net/Users/sphilipp/Developments/devrel-monthly/blog-posts/what-s-new/github.com/ovh/public-cloud-examples" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">public-cloud-examples</a>&nbsp;repository on GitHub.</p>



<p>New this month:</p>



<ul class="wp-block-list">
<li>🆕 Work with Cilium contributors to implement Kubernetes traffic routing new fields:&nbsp;<a href="https://github.com/cilium/cilium/pull/44771" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">traffic distribution: support PreferSameZone and PreferSameNode</a></li>



<li>🆕 New release:&nbsp;<a href="https://github.com/ovh/pulumi-ovh/releases/tag/v2.12.0" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud Pulumi provider v2.12.0</a></li>



<li>🆕 Contributions in the new&nbsp;<a href="https://github.com/ovh/terraform-provider-ovh/releases/tag/v2.12.0" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud Terraform provider v2.12.0</a></li>
</ul>



<h3 class="wp-block-heading">🗓️ Coming up next</h3>



<p>Here’s a sneak peek at what’s coming next.</p>



<h5 class="wp-block-heading">🗓️ &#8211; April, 8 &#8211; 1h PM CET &#8211; Very Tech Talk Twitch about Managed Kubernetes Service (MKS)</h5>



<p>📺 <a href="https://www.twitch.tv/ovhcloud_com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud Twitch channel</a></p>



<h5 class="wp-block-heading">🗓️ &#8211; April, 16 &amp; 17 &#8211; MixIT, in Lyon</h5>



<p>🎤 Aurélie Vache is giving one talk (Thursday the 16th at 2:40 PM): <a href="https://mixitconf.org/en/2026/comprendre-kubernetes-de-maniere-visuelle" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Comprendre Kubernetes de manière visuelle</a> </p>



<h5 class="wp-block-heading">🗓️ &#8211; April, 22 to 24 &#8211; Devoxx France, in Paris (several OVHcloud speakers 🎉)</h5>



<p><strong>🎁 Come and see us, OVHcloud will have a stand!</strong></p>



<p>🎤 Aurélie Vache is giving one talk (Wednesday the 22nd at 5 PM): <a href="https://m.devoxx.com/events/devoxxfr2026/talks/2723/question-pour-un-cluster-kubernetes-quiz-sur-kubernetes-ses-concepts" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Question pour un cluster Kubernetes : Quiz sur Kubernetes &amp; ses concepts</a></p>



<p>🎤 Stéphane Philippart is giving two talks:</p>



<ul class="wp-block-list">
<li><a href="https://m.devoxx.com/events/devoxxfr2026/talks/5586/-apprendre-notre-ia-apprendre-" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">🤖 Apprendre à notre IA à &#8230; apprendre 🧠</a> on Wednesday the 22nd at 10:30 AM</li>



<li><a href="https://m.devoxx.com/events/devoxxfr2026/talks/2745/dvelopper-avec-lia-et-si-ctait-aussi-simple-quajouter-une-librairie-" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Développer avec l&#8217;IA : et si c&#8217;était aussi simple qu&#8217;ajouter une librairie ?</a> on Wednesday the 22nd at 1:30 PM with Mathieu Busquet from OVHcloud</li>
</ul>



<p>But also other OVHclouders are giving talks! 🥳</p>



<ul class="wp-block-list">
<li>🎤 Benoît Masson and Sébastien Chédor are giving one talk (Thursday the 23rd at 10:30 AM): <a href="https://m.devoxx.com/events/devoxxfr2026/talks/45201/-qr-codes-suivez-les-points-sans-vous-perdre-" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">▣ QR Codes : suivez les points sans vous perdre ! ▣</a></li>



<li>🎤 Benoît Masson and Théo Bougé are giving one talk (Friday the 24th at 2:35 AM): <a href="https://m.devoxx.com/events/devoxxfr2026/talks/7857/noms-de-domaines-la-grande-histoire-des-petites-extensions" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Noms de domaines : la grande histoire des petites extensions</a></li>



<li>🎤 Fanny Bouton is giving one talk (Thursday the 23rd at 1:30 PM): <a href="https://m.devoxx.com/events/devoxxfr2026/talks/37763/informatique-quantique-ce-coupci-on-vous-dit-tout-" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Informatique quantique, ce coup-ci on vous dit tout !</a></li>



<li>🎤 Héla Ben Khalfallah is giving one talk (Friday the 24th at  3:30 PM): <a href="https://m.devoxx.com/events/devoxxfr2026/talks/4015/refactorer-sans-tout-casser-anatomie-des-patterns-de-modernisation-incrmentale" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Refactorer sans tout casser: anatomie des patterns de modernisation incrémentale</a></li>



<li>🎤 Sébastien Ferrer is giving two talks:
<ul class="wp-block-list">
<li><a href="https://m.devoxx.com/events/devoxxfr2026/talks/4019/et-si-crire-du-sql-redevenait-cool-" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Et si écrire du SQL redevenait cool ?</a> on Friday the 24th at 3:30 PM</li>



<li><a href="https://m.devoxx.com/events/devoxxfr2026/talks/4018/dtectives-de-la-prod-rsoudre-lenqute-avant-le-crash" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Détectives de la prod : résoudre l’enquête avant le crash</a> on Friday the 24th at 2:35 PM</li>
</ul>
</li>
</ul>



<h5 class="wp-block-heading">🗓️ New &#8220;Tranches de Tech&#8221; podcast episode</h5>



<p>🎧 All episodes are available on <a href="https://podcast.ausha.co/tranches-de-tech" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Ausha</a> and all your favorite podcast applications!</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 the Developer Advocate team:</p>



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



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



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



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



<p>See you next month! 👋</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%2Fwhats-new-with-the-ovhcloud-developer-advocate-team-march-2026%2F&amp;action_name=What%E2%80%99s%20new%20with%20the%20OVHcloud%20Developer%20Advocate%20team%20%26%238211%3B%20March%202026&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>VMware Cloud Foundation 9: Evolving Private Cloud In One Go</title>
		<link>https://blog.ovhcloud.com/vmware-cloud-foundation-9-evolving-private-cloud-in-one-go/</link>
		
		<dc:creator><![CDATA[Elena Luoto&nbsp;and&nbsp;Thomas Gatignon]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 11:32:55 +0000</pubDate>
				<category><![CDATA[Accelerating with OVHcloud]]></category>
		<category><![CDATA[Broadcom]]></category>
		<category><![CDATA[Private Cloud]]></category>
		<category><![CDATA[VCF]]></category>
		<category><![CDATA[VMware]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=30897</guid>

					<description><![CDATA[They say superheroes are evolved humans. VMware Cloud Foundation 9 is becoming the evolved private cloud platform. Not just a routine upgrade, VCF 9 represents an entire shift in how private cloud infrastructure is built, operated, and consumed, efficiently and cohesively. When companies have traditionally modernized their infrastructure, they’ve upgraded it in pieces: whether compute, [&#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%2Fvmware-cloud-foundation-9-evolving-private-cloud-in-one-go%2F&amp;action_name=VMware%20Cloud%20Foundation%209%3A%20Evolving%20Private%20Cloud%20In%20One%20Go&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[
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<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/03/ChatGPT-Image-Mar-18-2026-03_24_47-PM-1024x683.png" alt="" class="wp-image-30902" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/ChatGPT-Image-Mar-18-2026-03_24_47-PM-1024x683.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/ChatGPT-Image-Mar-18-2026-03_24_47-PM-300x200.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/ChatGPT-Image-Mar-18-2026-03_24_47-PM-768x512.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/ChatGPT-Image-Mar-18-2026-03_24_47-PM.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h2 class="wp-block-heading">They say superheroes are evolved humans. VMware Cloud Foundation 9 is becoming the evolved private cloud platform. </h2>



<p>Not just a routine upgrade, VCF 9 represents an entire shift in how private cloud infrastructure is built, operated, and consumed, efficiently and cohesively.</p>



<p>When companies have traditionally modernized their infrastructure, they’ve upgraded it in pieces: whether compute, networking, storage or automation tools. But over time, this discombobulation can cause problems, including configuration inconsistency, upgrade schedule variations, tool sprawl, complex dependencies, higher operational risk…<br><br>Until today.<br><br>VCF 9 is reframing this old model, so that private cloud operations and cloud consumption can sit at the center of the platform, able to be upgraded in a coordinated, stack-wide manner. Unified by a single lifecycle engine and a consistent policy model, they can now enjoy integrated automation across the full stack.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="902" height="480" src="https://blog.ovhcloud.com/wp-content/uploads/2026/03/VCF-services-image.png" alt="" class="wp-image-30898" srcset="https://blog.ovhcloud.com/wp-content/uploads/2026/03/VCF-services-image.png 902w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/VCF-services-image-300x160.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2026/03/VCF-services-image-768x409.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p>For those organizations who may be modernizing VMware environments – especially those consuming managed services such as OVHcloud’s upcoming <strong>Private VMware Cloud Foundation as-a-Service</strong> – this shift has measurable operational and economic impact. They are being rescued by a new full-stack software platform, you might say.</p>



<p>Read on to better understand the future of VMware Cloud Foundation 9, and what it means for the future of private cloud.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>1. One Interface for Private Cloud Operations</strong></h2>



<p>VCF 9 provides&nbsp;a unified operational experience through the VCF Operations Console.</p>



<p>Instead of managing lifecycle tasks across disconnected tools, administrators are gaining centralized visibility for:</p>



<ul class="wp-block-list">
<li>Fleet-wide lifecycle management</li>



<li>Security posture and compliance</li>



<li>Certificate and identity management</li>



<li>Diagnostics and health monitoring</li>



<li>Global upgrades and patch orchestration</li>
</ul>



<p>This reduces one of the biggest hidden costs in enterprise infrastructure: operational drift.</p>



<p>According to an <a href="https://docs.broadcom.com/doc/idc-the-business-value-of-vmware-cloud-foundation" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">IDC Business Value study</a> sponsored by Broadcom, organizations running VCF environments have reported:</p>



<ul class="wp-block-list">
<li><strong>61% faster deployment of new workloads</strong></li>



<li><strong>34% lower infrastructure costs compared to traditional three-tier environments</strong></li>
</ul>



<p>The key driver is not just automation, it’s platform consistency.</p>



<p>For customers consuming managed VCF services, that will translate into more predictable maintenance windows and reduced operational risk.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>2. A Unified Cloud Consumption Experience</strong></h2>



<p>Private cloud only delivers full value when it behaves like cloud.</p>



<p>VCF 9 strengthens the consumption model through VCF Automation, and is providing:</p>



<ul class="wp-block-list">
<li>A modern self-service interface</li>



<li>Unified APIs for infrastructure provisioning</li>



<li>Infrastructure as Code support</li>



<li>Policy-based governance built into deployment</li>



<li>Integrated Virtual Private Cloud (VPC) constructs for multi-tenancy</li>
</ul>



<p>This allows infrastructure teams to offer curated service catalogs or developer-driven IaaS consumption models – without having to sacrifice governance.</p>



<p>Instead of tickets and manual coordination, application teams will now be able to provision:</p>



<ul class="wp-block-list">
<li>Virtual machines</li>



<li>Networking constructs</li>



<li>Storage volumes</li>



<li>Kubernetes clusters</li>
</ul>



<p>All governed by centralized policies. The result: faster delivery with controlled oversight.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>3. Memory Tiering with NVMe: Production-Ready Efficiency</strong></h2>



<p>With VCF 9, <strong>Advanced NVMe Memory Tiering</strong> allows NVMe devices to function as a second tier of memory, intelligently placing memory pages to extend effective capacity without scaling DRAM costs linearly. In a context where infrastructure costs and hardware availability are becoming critical constraints, this capability helps organizations extract more value from existing servers.</p>



<p>Key enhancements in VCF 9 include:</p>



<ul class="wp-block-list">
<li>DRS and vMotion awareness</li>



<li>Mixed-cluster flexibility (enabled on some hosts or all)</li>



<li>Redundancy support via multiple NVMe devices</li>



<li>Encryption at VM and host level</li>



<li>Default DRAM: NVMe ratio shift to 1:1 (2× memory by default), customizable up to 1:4</li>
</ul>



<p><a href="https://blogs.vmware.com/cloud-foundation/2026/02/25/the-2026-structural-supply-crisis-why-vmware-cloud-foundation-is-the-answer-to-the-2026-hardware-crunch/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Broadcom internal testing observed</a>:</p>



<ul class="wp-block-list">
<li>Up to <strong>40% TCO savings</strong> for most workloads</li>



<li>Up to <strong>25–30% increased CPU utilization</strong></li>



<li>Improved <strong>VM consolidation ratios</strong></li>
</ul>



<p>These results depend on workload profiles, particularly environments with high allocated memory but lower active memory.</p>



<p>In practical terms, Memory Tiering allows organizations to <strong>run more workloads on the same hardware footprint</strong>, improving infrastructure efficiency at a time when compute capacity, DRAM availability, and cost pressures are increasingly shaping infrastructure decisions.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>4. Cost Transparency Built Into the Platform</strong></h2>



<p>Private cloud economics are increasingly under scrutiny. VCF 9&nbsp;integrates:</p>



<ul class="wp-block-list">
<li>Chargeback and showback capabilities</li>



<li>Capacity planning and optimization insights</li>



<li>Cost allocation across tenants</li>



<li>Predictive modeling for infrastructure scaling</li>
</ul>



<p>According to VMware’s internal cloud economics analysis, organizations may be even able to achieve:</p>



<p><em>40% cost reduction compared to native public cloud alternatives</em></p>



<p>Again, results vary by environment, but cost predictability is a core advantage of modern private cloud operating models.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>5. Security, Sovereignty, and Governance by Design</strong></h2>



<p>VCF 9 reinforces security as a built-in platform layer:</p>



<ul class="wp-block-list">
<li>Centralized identity federation</li>



<li>Certificate lifecycle management</li>



<li>Compliance monitoring</li>



<li>Integrated security operations visibility</li>



<li>VPC-aware segmentation</li>
</ul>



<p>This matters for regulated industries and sovereign cloud environments, where operational consistency and policy enforcement are not optional.</p>



<p>Private cloud becomes less about “location” and more about operating model: governance is embedded into infrastructure.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>6. What This Means for OVHcloud Customers</strong></h2>



<p>VMware Cloud Foundation 9 is also changing how service providers design managed environments.</p>



<p>To align with the domain-based architecture and lifecycle model introduced in VCF 9, OVHcloud is developing a new offer: <strong>Private VMware Cloud Foundation as-a-Service</strong>.</p>



<p>Key elements include:</p>



<ul class="wp-block-list">
<li>VCF license portability to OVHcloud</li>



<li>Enforced <a href="https://www.ovhcloud.com/en-ie/identity-security-operations/identity-access-management/" type="link" id="https://www.ovhcloud.com/en-ie/identity-security-operations/identity-access-management/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Identity and Access Management (IAM)</a> policies (avoiding local user models)</li>



<li>Pre-configured vSAN hosts within cluster designs</li>



<li>Seamless maintenance window scheduling</li>



<li>Roadmap including 1-AZ and 3-AZ stretched cluster versions (currently <a href="https://labs.ovhcloud.com/en/vmware-3az/" type="link" id="https://labs.ovhcloud.com/en/vmware-3az/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">in Alpha for business-critical workloads</a>)</li>
</ul>



<p>It’s important to distinguish:</p>



<ul class="wp-block-list">
<li>VCF provides the unified platform. OVHcloud builds the managed operational framework around it.</li>



<li>The goal is not just to run VCF 9, but to operationalize it cleanly, and at scale.</li>
</ul>



<ul class="wp-block-list"></ul>



<ul class="wp-block-list"></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>A Strategic Version, Not a Cosmetic One</strong></h2>



<p>VMware Cloud Foundation 9 marks a fundamental shift:</p>



<ul class="wp-block-list">
<li>From component integration to unified platform</li>



<li>From manual lifecycle orchestration to fleet-wide automation</li>



<li>From infrastructure provisioning to cloud consumption models</li>



<li>From siloed tooling to consolidated operations</li>
</ul>



<p>For infrastructure architects and CTOs, this version matters because it reduces friction across the entire private cloud lifecycle.</p>



<p><strong>Less manual intervention.<br>More deterministic upgrades.<br>Better resource efficiency.<br>Stronger governance.</strong></p>



<p>And for managed service customers, it means a private cloud that behaves like a cloud, but under your control.</p>



<p>VCF 9 is becoming the new private cloud platform built to meet modern demands head-on. Super, by design.</p>



<p>Find out more about VMware on OVHcloud: <a href="https://www.ovhcloud.com/en-ie/solutions/vmware/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://www.ovhcloud.com/en-ie/solutions/vmware/</a></p>



<p>Join the Alpha and be the first to test Private VMware Cloud Foundation as-a-Service: <a href="https://survey.ovh.com/index.php/547617?lang=en" data-wpel-link="exclude">https://survey.ovh.com/index.php/547617?lang=en</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%2Fvmware-cloud-foundation-9-evolving-private-cloud-in-one-go%2F&amp;action_name=VMware%20Cloud%20Foundation%209%3A%20Evolving%20Private%20Cloud%20In%20One%20Go&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>
