Webcastor, a Lyon-based company specializing in audiovisual capture and streaming, migrated to Scaleway in particular to take advantage of the GPU Instances essential for accelerating video encoding, one of the most important tasks in the video sector. In this interview, Geoffrey Signorato, Technical Lead on StreamFizz, the video management platform created by Webcastor, explains how Scaleway meets all his needs.
Could you introduce us to Webcastor?
Geoffrey Signorato: Webcastor is an audiovisual service provider specialized in the capture of conferences and events, and publisher of a SaaS video platform for professionals, local authorities and public administrations. Founded in 2003, the company employs a dozen people, mainly in the Lyon region.
I joined Webcastor in 2020, to develop the StreamFizz SaaS solution, our own streaming platform, which was conceived some ten years ago. It was important for us to have control over functionalities such as live streaming, or sending an RTMP stream to offer a playback page in a dedicated window, without going through Facebook or YouTube, so that the full service remains sovereign.
The fact that the data doesn’t go to the USA can be a true differentiating factor, particularly with the local authorities we work with. We also count archivists among our customers; they are reassured by the fact we’re fully French [hosted] too.
What are the main cloud services needed to work with video?
Above all, we need to encode our videos ourselves, rather than going through AWS, which is like putting them in a black box. To do this as quickly as possible, we need GPU machines that run fast and smoothly. We use NVIDIA GPU-3070 instances for this purpose.
The storage of video files has to be on a French cloud, and accessible from anywhere, so for that we use Scaleway's Object Storage solutions.
Next, user data is managed by PostgreSQL databases; and compute applications (PRO-S XXS) run on Scaleway Instances as well.
Everything is held in a Kubernetes infrastructure, on Kapsule, which enables us to define rules to automate everything, for example to automatically add clusters whenever we have usage peaks. Before, we used to switch on the Instances ourselves. Today, Kapsule has bought us peace of mind. We just had to learn how to use it.
Finally, we also use Container Registry, which enables us to store all our Docker images; and your Private Network / VPN services.
Today, 90% of our infrastructure is with Scaleway, so we can say that our cloud video needs are well covered!
All that's left is the part of our video player that generates stats: the raw logs are on Azure CosmosDB, which is very fast, and made specifically for that purpose. We'd like to migrate this part in the medium term, ideally to Managed Document Database. Finally, our CDN is with Bunny CDN, because Scaleway doesn't offer one.
Why did you decide to move to Scaleway, and how?
It happened in several stages. When I arrived in 2020, the Instances and databases were already with Scaleway.
In 2023, all our videos, i.e. 20TB of data, moved from Azure to Scaleway’s Object Storage.
In early 2022, we began the major project of moving everything to Scaleway's Kubernetes environment. We took the time to learn and test everything for our three environments: dev, beta and prod. The last one made its transition in June 2023. In the same year, the orchestrator/encoder was developed, to integrate everything into the K8s environment. This has enabled us to be more efficient and flexible in terms of encoding, as the system automatically creates new GPU Instances if encoding needs increase.
What was the most challenging part of this Kubernetes transition?
The GPU part of K8s is quite complex. It doesn't offer the same flexibility as a conventional CPU, not least because a GPU can't separate itself. So our first challenge was to reproduce in K8s the automatic scaling we had before (without K8s).
Then we had to optimize the cost, because GPUs are quite expensive. So we had to make sure that the Instances didn't turn on for nothing. If a new video appears to be encoded, you have to wait between five and ten minutes for a GPU to switch on. This is quite a long time, and required a great deal of testing between us and Scaleway.
But in the end, it was the switch from CPUs to GPUs for video encoding that made all the difference. Today, we can go four times faster for four times less. Before, our CPUs cost the same per hour as GPUs, and they forced us to encode videos one by one. With GPUs, we can encode up to three videos in parallel per Instance, thanks to orchestration.
The switch to Object Storage didn't go so well, but that's more a limitation of S3 [than Scaleway], and it took us a while to master it.
What pre-migration tips would you give to other companies?
- Master the tech first. For example, we had neither the required skills nor resources in DevOps or Kubernetes. We had to learn the basics, and we managed to migrate everything without being experts. Today, our infrastructure is much more reliable: we've only had one ‘service down’ in the last two years. Otherwise, we're still largely on 99.9% SLA.
- Have a vision on paper of the architecture you want, at least the broad outlines. Then refine it bit by bit, and implement it.
- Don't go too fast, for example by copy-pasting code; don't leave any gray areas!
How did you find Scaleway’s customer support?
It's the only thing that can be optimized. This was the first time Scaleway had to support a move to Kubernetes with GPUs in this way. So there was quite a bit of back-and-forth, especially as it has since been demonstrated that certain elements of the NVIDIA drivers needed to be repaired. But we got there in the end!
Yes, we paid about €2000 to Azure to export our 20TB of video. Scaleway storage costs two to three times less than Azure. And the lack of internal egress fees with you is very appreciable.
What are your next steps on the cloud?
- Migrate our database to Scaleway from Azure: I've tried Serverless SQL Database, but it would be better to have a service that scales automatically
- Migrate our CDN to Scaleway, when you offer one
- Try NVIDIA's new L4 GPU Instances, which are well suited to video encoding. Billing by the minute is much more advantageous for us than by the hour, where every hour started is due
- Test your private networks: it's important that we minimize the number of entry points for hacking > we're very attentive to this, as it can be catastrophic for a company like ours (what's more, Azure is a real pain in this respect).