Over on the official blog for Google Cloud, an announcement just went out showcasing the latest changes for Cloud Functions, which is part of Google Cloud’s suite of serverless products. For those in the serverless space and have been users of Google Cloud for a while, you’re probably already aware that the second generation of cloud functions was already “powered by Cloud Run”, and in this latest update, this second generation now gets a name change and a whole pile of extra features which were previously only part of Cloud Run.
Introducing Cloud Run Functions 🎉
Previously, there was some argy bargy between the two platforms and having to decide which was better for your use case and business need, functions or run, but now, according to the blog:
With Cloud Run functions, we’ve created a unified serverless platform for all your workloads, so you don’t have to choose between the two.
Hooray!
Why do I care?
On the face of it, it doesn’t actually seem like a big deal, so why should anyone care? Well, if you did think this way, let me try and change your mind. In my opinion, this is actually a pretty big deal. Automatically, all functions now get the goodness of cloud run features, that previously required a bit more work if you just wanted to run some code. Things like direct VPC egress and storage volumes and even the new fandangled access to GPU cards or even some of the much-needed access to sidecars for stuff like telemetry if your org requires it.
Cloud functions on the second generation platform will automatically continue to work without needing to change anything. This includes APIs, terraform modules and gcloud commands, if that’s how you roll. You’ll automatically get access to all the new stuff, once converted.
What’s the deal with Gen1 now?
Apparently gen 1 functions are being “rebadged” with Cloud Run Functions (1st gen). Because of the specialised hardware that the first gen functions runs on, it won’t be automatically upgraded or get newer features going forward so I’d consider it on life support for now. Google does say on their support page that they plan to continue support for gen 1, but plans can change.
If you want to check out the difference between generations, here’s a support page outlining the differences: https://cloud.google.com/functions/docs/concepts/version-comparison
Gemini also gave a pretty useful response too, which added a few extra things that appear to be correct that the support page doesn’t mention. Here’s the response I got when I prompted it: https://g.co/gemini/share/c437f2bba8ec. Specifically, Gemini calls out identity platform hooks which can run functions that must be in gen 1 (at time of writing). There’s also a couple of other things, like binary auth hooks and analytics events.
In summary
I think this is a good move. Consolidating the serverless banner under the Cloud Run suite of features and tools is good. It makes running code in a serverless fashion easy. Do you need a container? Fine. Just want to run a few lines of code without wanting to manage a container or any of the build steps? Also fine. In both cases you get the same suite of tools and monitoring capabilities as well as hardware configurations.
Now both of these product offerings are going to get the best of both worlds under the Run banner. And I’m all for it.