Need advice about which tool to choose?Ask the StackShare community!
Google Cloud Run vs Serverless: What are the differences?
What is Google Cloud Run? Run stateless HTTP containers on a fully managed environment or in your own GKE cluster. A managed compute platform that enables you to run stateless containers that are invocable via HTTP requests. It's serverless by abstracting away all infrastructure management.
What is Serverless? The most widely-adopted toolkit for building serverless applications. Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster. The Framework uses new event-driven compute services, like AWS Lambda, Google CloudFunctions, and more.
Google Cloud Run and Serverless can be categorized as "Serverless / Task Processing" tools.
"Pay per use" is the top reason why over 3 developers like Google Cloud Run, while over 10 developers mention "API integration " as the leading cause for choosing Serverless.
Serverless is an open source tool with 30.9K GitHub stars and 3.43K GitHub forks. Here's a link to Serverless's open source repository on GitHub.
Run cloud service containers instead of cloud-native services
- Running containers means that your microservices are not "cooked" into a cloud provider's architecture.
- Moving from one cloud to the next means that you simply spin up new instances of your containers in the new cloud using that cloud's container service.
- Start redirecting your traffic to the new resources.
- Turn off the containers in the cloud you migrated from.
When adding a new feature to Checkly rearchitecting some older piece, I tend to pick Heroku for rolling it out. But not always, because sometimes I pick AWS Lambda . The short story:
- Developer Experience trumps everything.
- AWS Lambda is cheap. Up to a limit though. This impact not only your wallet.
- If you need geographic spread, AWS is lonely at the top.
Recently, I was doing a brainstorm at a startup here in Berlin on the future of their infrastructure. They were ready to move on from their initial, almost 100% Ec2 + Chef based setup. Everything was on the table. But we crossed out a lot quite quickly:
- Pure, uncut, self hosted Kubernetes — way too much complexity
- Managed Kubernetes in various flavors — still too much complexity
- Zeit — Maybe, but no Docker support
- Elastic Beanstalk — Maybe, bit old but does the job
- Heroku
- Lambda
It became clear a mix of PaaS and FaaS was the way to go. What a surprise! That is exactly what I use for Checkly! But when do you pick which model?
I chopped that question up into the following categories:
- Developer Experience / DX 🤓
- Ops Experience / OX 🐂 (?)
- Cost 💵
- Lock in 🔐
Read the full post linked below for all details
Pros of Google Cloud Run
- HTTPS endpoints11
- Fully managed10
- Pay per use10
- Concurrency: multiple requests sent to each container7
- Deploy containers7
- Serverless7
- Custom domains with auto SSL6
- "Invoke IAM permission" to manage authentication4
- Cons0
Pros of Serverless
- API integration14
- Supports cloud functions for Google, Azure, and IBM7
- Lower cost3
- Auto scale1
- Openwhisk1