What is our primary use case?
I am mainly using Google Cloud Run for running microservices and its web APIs, creating GraphQL APIs and validation. I also use it for event-driven processing, uploading files into cloud storage, and scheduling purposes for batch jobs with Cloud Run jobs. I manage operations and background operations such as sending email and updating the database by operating with those into separate services via Cloud Tasks.
How has it helped my organization?
Google Cloud Run has positively impacted my organization in terms of cost savings. It is highly effective since it charges based on CPU and memory, so if it is idle, it does not charge. It has become a cost-effective solution unlike others. It is also time efficient; we do not have to maintain the cluster or think about maintaining it. Auto scaling and those features are already handled by Google Cloud Run, along with fully managed containers, underlying structures, provisional patching, and scaling. It runs on container images, making it easier and portable. You can deploy a container directly from your source code using build packs without having to build a container image yourself. It creates the image of your source code on its own; you just provide the deployment config file and mention all required fields, and it will automatically create the container image.
This can be used for rollbacks, making it easier to roll out new versions using Canary or blue-green deployments, splitting the traffic across different versions of the services. These approaches have helped us tremendously with performance as well as being cost-effective.
What is most valuable?
The best feature of Google Cloud Run is its ability to fully manage auto scaling stateless containers that scale from zero when idle to whatever extreme scale is needed based on traffic. Since it is container-based, you can use any language and any version you want. It deploys in seconds using a single command, and container images get created, allowing me to focus on the code. I basically focus on building the logic rather than caring about how the deployment should occur.
Google Cloud Run offers fast auto scaling and includes built-in traffic management. This helps to track the services and makes them run well with blue-green deployments. The security and secret management and VPC support are also great, making it a native-based open source technology that can run anywhere. These are the standout features of Google Cloud Run.
What needs improvement?
While Google Cloud Run does a great job of reducing costs, to mitigate cold starts, users can set minimum instances, but scaling to zero costs has become a cost-saving advantage even when idle, and idle instance costs might occur. This can be avoided because whenever a heavy container causes a cold start, it affects latency and sensitivity of the application. When it starts from idle to full run, it scales slowly, causing slowness in the service deployed; sometimes some of the APIs fail to respond. It is difficult to identify the bug because it is often due to the idleness of the application and not the code, which can be quite frustrating.
Additionally, simple tasks for developers who just want to run a few lines of code can be more complex. I would say optimizing concurrency can improve the experience; currently, managing multiple containers in a single Google Cloud Run instance becomes quite difficult, especially tasks such as logging and local proxy monitoring. Google provides fully orchestrated alternatives, but Cloud Run is better for scaling. Slowness in applications is a notable issue.
For how long have I used the solution?
I have been familiar with Google Cloud Run for a couple of years; over the last three to four years I have been using it.
Which solution did I use previously and why did I switch?
I have not used Platform9 Managed Kubernetes before; I have used other OpenShift platform. I have not used Northflank, the developer platform for deploying containers and microservices, nor have I seen it in my work.
What other advice do I have?
Google Cloud Run is something I have worked with and I have experience using it. The platform is very user-friendly, simple, and easy to use. The portability is highly portable. Google handles its infrastructure very well, so no infrastructure management has to be taken care of by my organization. You pay only when your code is running; there is no traffic or instance, so cost optimization is automatically handled. These aspects are good for Google Cloud Run.
Day-to-day, I rely on the deployment feature of Google Cloud Run, as we deploy our services on Cloud Run, whatever jobs we are deploying. Basically, for deployment purposes only, we use Google Cloud Run in our day-to-day service.
I can say it is around 30 to 50% time saved by my team since moving to Google Cloud Run. In many regions, the free tier allowance is around 1,000 virtual CPU and 300,000 GB seconds per month, which helps in reducing the cost; you are billed only when your code is running. I can say that 30 to 50% costs have been saved, and we can prevent costs from going high during peak hours by setting the maximum instance count and ensuring CPU memory allocation matches close to the actual service usage. By doing this, we handle it effectively.
For someone considering Google Cloud Run, my advice is to start with a small application since it is pay-as-you-go. Keep things microservice-based so that each service is a small service running without incurring high costs. Optimize for high concurrency and reduce the number of instances, so billing occurs based on request. Design applications to mount on top of cloud storage using Filestore or NFS-based persistent systems and use global variables and lean images; this will help someone run and build their application quickly and efficiently in Google Cloud Run.
Google Cloud Run is a very good tool that I use for deploying applications; its ease of deployment, auto scaling features, and resource optimization are very nice features that help individuals deploy their apps and solutions into the cloud without any hiccups. You just need to configure a couple of services, and since it follows a stateless microservice architecture, the services running take charge only when idle; they do not incur charges otherwise. That is a great aspect of Google Cloud Run. Additionally, GPU performance issues, VPC, and GPU performance are main pain points, but those concerns come later; once you start, you do not need those things until your applications grow larger. I would rate Google Cloud Run around eight out of ten, which reflects ease of deployment, resource optimization, and good documentation; I give it an eight for these aspects. However, I cut two points for storage management and the way it responds to behaviors, as these are drawbacks such as cold start and the complexity of configuring VPC networks.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Google