Introduction
AI workloads are pushing organizations toward multi-cloud strategies, driven by rapid technological change and the search for affordable pricing. Challenges like GPU shortages, unpredictable cloud costs, data-governancy, and security rules make relying on a single cloud risky and potentially expensive.
However, managing multiple clouds manually is painful, to say the least. It creates fragmentation, adds significant operational complexity and cost, and can lead to poor performance if network latency is overlooked. When developing, deploying, and executing applications becomes too tightly coupled to a single platform, we advise our customers to switch to Ryax.
Ryax eliminates the complexity of porting applications and creating custom tools for every cloud provider. As a unified orchestration layer across infrastructures, it enables you to deploy and run workflows seamlessly, whether on a cloud provider, an on-premise cluster, or even an HPC system.
And one thing we have learned recently is that putting all you compute-eggs in the same cloud-basket can lead to huge disappointments.
But how do we implement this multi-cloud approach? The process is simple: the initial investment involves porting your application workflows to the Ryax framework. After doing that, you will get a platform that automatically selects the best infra based on your priorities on three objectives: cost, performance and location.
A Practical Example: A Video Detection Workflow
Let's consider a real-world application: a video detection workflow. This workflow has four steps:
- Receive a user request with a video.
- Extract frames (images) from the video.
- For each frame, apply a pattern-matching algorithm, draw a bounding box around the detected object, and add a label with the pattern name and confidence level (using special colors for known patterns).
- Reassemble the annotated frames into a new video.
To illustrate, imagine an input video of a busy street:
The goal is to produce an output video with the detected objects identified, like this:
An example of this workflow is shown below (the code is available here for the curious):
A typical implementation would require managing numerous external libraries and dependencies. It would also involve instantiating VMs or serverless functions on a specific cloud provider (like AWS Fargate), a process that must be repeated for each provider.
Ryax simplifies this process dramatically. Ryax workflows are built from "actions"—self-contained, in other words,containerized applications that include all necessary libraries and binaries. Because these applications are orchestrated by Kubernetes, Ryax can deploy, run, and manage them anywhere Kubernetes is supported. Since every major cloud provider (AWS, Google Cloud, Azure, Scaleway, IBM Cloud, Vultr, you name it) supports Kubernetes, you can easily run your applications on the most affordable, fastest, or most suitable resources available.
Multi-Cloud Execution in Practice
Let's see how easy it is to run this application across multiple clouds. Ryax provides a "Deploy" tab for each action, allowing you to pin-point exactly where you want it to run.
For instance, we can choose to run the "cut video" step on the local AWS infrastructure by simply selecting it from the available locations.
For the tfdetection step, we might want to use a smaller server on Scaleway. This is achieved with a single click, without any manual effort.
Finally, the action that reassembles the video could be configured to run on the infrastructure with the best price at that moment, regardless of the cloud provider.
Conclusion
This article is for potential users and customers who struggle with porting applications between cloud providers. We've shown how Ryax simplifies deploying across multi-cloud infrastructures, allowing you to either manually assign workloads to a specific infrastructure or use smart criteria like cost for automatic placement. With Ryax, you can deploy, execute, and manage your application anywhere with just a few clicks.
For the sake of brevity, we've remained high-level, and we hope we've left you with questions, such as:
• Is it easy to port my application to Ryax?
• Can I integrate my own HPC infrastructure?
• How does Ryax packaging ensure security and reproducibility?
• Is it easy to connect multiple clusters with Ryax?
• Does Ryax optimize resource usage within a cluster?
Spoiler alert: the short answer to all these questions is Yes. To provide detailed answers, we'll keep you posted with a weekly blog post explaining our "secret sauce" for keeping you in control of your own infrastructure.
