When most of think of serverless, we think of compute runtimes. This makes perfect sense as compute is what we usually talk about with regards to serverless. But what about other use cases?
One thing I have started to see a major increase in is with serverless data services. Not just product offerings but also entire companies dedicated to this idea. So I figured I would talk about this in my newsletter.
Serverless Data?
People always say that the cloud is just using someone else’s server. I add to that by saying that the cloud is just abstractions on top of abstractions. When you break it down, cloud comes in one of three buckets: compute, storage, and network. All cloud services are abstractions built on top of these three blocks.
You may see a managed database service or data pipelines or ML platforms but at the end of the day, they are some combination of compute, storage and network and that’s how it will be billed by most providers.
So how can data be serverless? A good portion of data is storage and it seems like an anti-pattern to make it “serverless”. Serverless is a “pay-per-use” model. The idea is that you don’t pay when you are not using the service. But storage is “forever” so it doesn’t really seem to make sense.
Well when we talk about databases (for example), there are actually two operations layers.
Storage is where the data ultimately resides and rests until it is retrieved
Compute is used to process the data.
If I am using a PostgreSQL database, anytime I run a SQL query to execute a CRUD (CREATE, READ, UPDATE, DELETE) task, I am using a compute runtime. It may be for only a few seconds but a compute runtime is used to execute that tasks. CPU and memory is being consumed and therefore can be metered and charged. This is what we can make serverless. We can have serverless runtimes that spin down when not needed then when we need to do some form of operation, spin it up then back down.
Kafka Can Be Serverless
It is no secret that I love Kafka. Why wouldn’t I? It is arguably the most popular open source real-time data streaming tool. In some ways, it kind of invented the space.
One company that I keep reading about is RedPanda. They started in 2019 and ultimately created a “serverless Kafka”. Now to be clear, it isn’t Kafka “per se” but it is Kafka API compliant. In a sense, this means that you can use it the same way you use Kafka and it’s APIs. If you understand Kafka, you can use this service.
Looking at the pricing model, it does charge for storage and tht is a persistent charge. However, when it comes to processing, they only charge based on the read/write actions of the data.
One thing that makes it a bit different than traditional models is that it’s not a time charge. When we look at paradigms such as FaaS, users are charged per second. However, data streaming isn’t a “app” per se. So the pricing model would be a bit different.
Here we see them charge per gigabyte per month. What makes this serverless? No idle workers. Often times you are paying for idle VMs for the data processing.
This is what is cool to me. Now Google Cloud has PubSub which doesn’t charge for workers but it is also proprietary. A whole company dedicated to a serverless OSS data streaming platform is unique to me.
Serverless PostgreSQL
I have talked about Neon.tech before but in the past two weeks, I came across an article noting their launch of their “serverless Postgres.” This is big news for them as they are a relatively new startup (founded in 2022).
The news is that the product is now generally available (GA) which means it’s ready for production usage. They are now ready to onboard customers and support their applications.
AWS tried to launch a serverless Postgres offeing but plans to shut it down by the end of 2024. This product is Aurora Serverless v1. There is a v2 coming out but it missing a key serverless component; the ability to scale to zero.
This, to many, was a sign that serverless Postgres was just not feasible. After all, if the largest cloud provider couldn’t make it technologically feasible, what hope does a startup have?
But startups have one advantage, the desire to innovate. I think many large companies eventually become bureaucratic and have to be accountable to The Street so they tend to be more cautious. Startups can be experimental and, quite frankle, have to be if they want to succeed.
With companies like Neon and another, The Nile, it seems like people are working to find ways.
Closing thoughts
I think we will continue to see growth in the “serverless database” market. We are seeing a paradigm shift in the cloud computing world where people are starting to focus more on the developer and obscure infrastructure.
While this usually applied only to compute runtimes, the way people are thinking of it in terms of databases can make major strides for serverless compute.
I will definitely being keeping my eyes on “serverless data services” and write more about it here and on my primary blog, jasonsmith.io. If you want to learn more about serverless data streaming, please see my blog section dedicated to it at serverlesseventing.com (which I will be restarting in Q3 2024).
Photo by Markus Spiske: https://www.pexels.com/photo/green-and-white-line-illustration-225769/