After the launch, Google Functions didn’t get any attention for sometime before the company started investing in the platform. While it is nowhere comparable to AWS Lambda in terms of the feature set or developer adoption, it has been slowly gaining traction. While Google Functions alone is not very interesting, the spectrum of services offered by the company with Google Kubernetes Engine on one end and Google Functions on the other end is interesting for any organization with diverse sets of application needs. In this blog post, we will discuss the pros and cons of the service and explain how it fits the application needs.
Like AWS Lambda, Catalyst, Azure Functions, and others, Google Functions allows developers to deploy applications without having to worry about managing the underlying infrastructure. It provides a simple developer interface and allows applications to scale to the planet-scale automatically. At this moment, they support many languages like Node.js, Python, Go, Java, and .NET. Just like our previous analysis of AWS Lambda, we will highlight the advantages and challenges of using Google Functions.
Google Functions Advantage
- Simplified user experience. Makes it easy for developers to get started and automatically scale their applications. Unlike in the case of AWS Lambda, the number of steps required to deploy the functions is less and the platform also installs the dependencies automatically taking the load out of developers. Much better developer and DevOps experience than AWS Lambda, in our opinion. If you are a developer who has used both the services, we will like to hear from you
- Comes packaged with an HTTP endpoint which can be used as a trigger
- Better integration with monitoring, tracing, and logging tools (Stackdriver), making it easy for developers to troubleshoot the applications
- It is built on top of Knative which is also the underlying fabric for Google Run. This allows developers to deploy a diverse set of services and not restricted by the kind of use cases supported by Functions as a Service offering. This also makes it more open (not open source) than the proprietary competitors
- Integration with Google Cloud big data services allows use cases like real-time stream processing and other big data use cases without much operational overhead
- The feature set is very limited compared to a competing service like AWS Lambda. Unless Google invests more resources and gives importance to Google Functions like other container-based services, AWS Lambda will have more developer mindshare
- Some benchmarks show that the performance is not comparable to AWS Lambda. This article offers some benchmarks on performance explaining their rationale to move from Google Functions to AWS Lambda
In short, if you are a developer who is starting, AWS Lambda or other services like Catalyst might be a good place to start. However, if you are a Google Cloud user or want a spectrum of services to deploy microservices and cloud functions, Google Functions along with Google Run, Google Kubernetes Engine, and Google App Engine may be a good choice.