Google App Engine is a fully managed serverless platform, which requires zero server management to use. It comes with two environments:
- The standard environment allows an instance to run in the sandbox with supported language, it has limited CPU and memory options without persistent disk attached, moreover it doesn’t support SSH and VPN 🥺 . Sounds pretty disappointing right? but the primary goal of App Engine is to provide a hands-free set up for those who absolutely don’t want to care about the server management, so surprisingly App Engine standard is actually popular.
- The Flexible environment gives you freedom on programming language and computing power, it runs within a Docker container… wait doesn’t it sounds familiar? Yes, it remains me Cloud Run, and in fact, Google recommends flexible users to use Cloud Run instead. In the end, if you want to take control of the container images, why not go one step further.
AWS Beanstalk (first of all who reads Beanstalk as beansTalk instead of BeanStalk 🙋♀️🙋♂️) gives you the freedom to deploy and manage applications without the learning curve of the infrastructure underneath: load balancing, scaling, health check, and capacity provisioning. It took the declarative approach, that you tell Beanstalk what you want with a configuration file, and it handles everything for you, all you need is to upload the app code.
AWS Lambda vs Google Cloud Function
Both Lambda and Cloud Function provides service with zero admin, it is even simpler to set up than App Engine or Beanstalk. In my opinion, these two products won’t be the decision-maker for one to choose between AWS and GCP. If you are an AWS user who needs a serverless event-driven solution, you would use Lambda and vice versa with GCP.
Some interesting use cases for Lambda and Cloud Function:
- Send email confirmation
- Generate image thumbnails
- Analytic logs on the fly
- Anything that you can deploy as an isolated function