Volumes Technical Preview: Blazing-fast NVMe SSD for Your Data
4 minReady? Day three of Koyeb launch week is on!
When you deploy your apps on Koyeb, your data is on ephemeral disks. While this works great for stateless applications, this is challenging for stateful workloads like databases. Just in time to save the day, we are launching the technical preview of Volumes!
You can now use Volumes to persist data between deployments, restarts, and even when services are paused.
We're gradually onboarding users to ensure the best experience for everyone. To access Volumes, join the preview.
What are Volumes?
Backed by blazing-fast NVMe SSD, Volumes are a key building block to support a wide range of new workloads on the platform including distributed databases, object storage, or any full-stack applications requiring long-term storage.
Volumes are running on the same physical machine as your services. This ensures low latency and high throughput for your applications. Koyeb Volumes are available in all regions and for all Instance types, including GPUs.
Volumes are local and as such they might fail as they are bound to a single machine. You need to rely on a distributed software to maintain high-availability and prevent data loss. Keep in mind that there is no redundancy here and fault-tolerance is on you.
During the technical preview, Volumes are free of charge.
Volumes Use Cases
Lots of applications need persistent data. Here are some of the applications that you will now be able to run in production on Koyeb thanks to Volumes:
- Queue systems like RabbitMQ, Kafka, NATS, or Temporal
- Databases like MySQL, PostgreSQL, Clickhouse, SQLite, Redis, or MongoDB
- Vector databases like Weaviate or Milvus
- Search and analytics engines like Elasticsearch, Quickwit, or Meilisearch
- Storage like MinIO, Ceph, or S3 compatible storage.
And many more! During the next weeks, we will add more applications to our deploy catalog to help you get started in seconds with stateful services.
Of course, you can always deploy your own applications and services using Volumes. We can't wait to see what you will build!
Next up, here is a quick demo of how to create your first Volume and attach it to a Service running on Koyeb using the CLI.
Getting Started with Volumes
Volumes provide additional, persistent, storage capacity for your services and come in addition to your instances provided ephemeral disk.
Each Volume you create is:
- region-aware, meaning that for now, they need to be attached to services running in the same region.
- formatted on a single partition partition with an ext4 filesystem
- automatically encrypted at rest using AES256
To provision a new Volume, we introduced the volume
command in the Koyeb CLI.
To create a new Volume named hello-volumes
with a size of 10 GB in Frankfurt, execute the following command:
Once the Volume is created, we can attach it to any service, new or existing.
Attaching a Volume to a new service
To create a new service and attach the Volume previously created, we will use the app init
command.
For instance,to deploy and run a MySQL service with data persistence, run the following command:
Here, the --volume
option attaches and mounts the hello-volumes
volume at the path /var/lib/mysql
which is used by MySQL to store its data.
Attaching a volume to an existing service
To attach and mount a volume to an existing service, use the koyeb service update
command.
For instance, to attach and mount the hello-volumes
volume at the path /mnt/data
of a service named my-service
, execute the following command:
Pretty easy, right? Volumes provide a foundational primitive to build and run stateful applications on Koyeb with minimal effort.
What’s Next?
We're excited to see what you will build with Koyeb Volumes and we're looking forward to your feedback to help us shape the product.
New to Koyeb? To get started with Koyeb, you can sign up today and start deploying your first Service today.
Wishing you and your apps blazing-fast deployments! 🚀
Keep up with all the latest updates by joining our vibrant and friendly serverless community or follow us on X at @gokoyeb.