1
votes

I've been building serverless applications on AWS for the past few years, utilizing services such as Lambda, DynamoDB, SNS, SQS, Kinesis, etc., relying on the Serverless framework for local development and deployments. Due to professional reasons, I have now to switch to Google Cloud and I've been exploring the serverless space in that platform. Unfortunately, at first glance it doesn't seem to be as mature as AWS, which I don't know whether it's true or just caused by my lack of expertise. The reasons that make me claim that are basically the following:

  • There is no logical grouping of functions and resources: on AWS, Lambda functions are grouped in Applications, and can be deployed as a whole via SAM or the Serverless framework, which also allow creating any associated resource (databases, queues, event buses, etc.). It seems that on GCP functions are treated as individual entities, which makes managing them and orchestrating them harder.
  • Lack of tooling: both the SAM cli and the Serverless framework provide tools for local development and deployments. I haven't found anything on GCP like the former (the Functions Framework seems to cover it partially, but it doesn't handle deployments), and even though that the latter supports GCP, it's missing basic features, such as creating resources other than functions. What is more, GCP is not in the core framework and the plugin is looking for maintainers.
  • Less event sources: Lambda is directly integrated with a long list of services. On the other hand, Cloud Functions is integrated with just a few services, making HTTP triggers the only option on most cases. It seems they're trying to address this issue with Eventarc, but I don't think it's generally available yet.

Does anybody have any tips on how to setup a local environment for this kind of applications and how to manage them effectively?

1
If you narrow your comparison between AWS and GCP to Cloud Functions, thus YES, AWS is much more mature. But, have a try on Cloud Run, you can group your endpoint and you don't need tooling because it's cloud native (run everywhere not only on GCP). You have a better flexibility, scalability, the pricing is awesome,... You can also have a look to the old-but-still-there App Engine standard. It's a new paradigm, with different pattern and practices. Not better or worse, simply different! - guillaume blaquiere

1 Answers

0
votes

Here some documentation that might be helpful for your case, even though required to take a deep look into it.

Configure Serverless VPC Access (which i think applies for 'setting up your local environment').

Cloud Run Quick start (which contains how to built and deploy serverless services with GCP Cloud Run using node.js, python, java, etc.