Google App Engine vs Google Cloud Functions

Need advice about which tool to choose?Ask the StackShare community!

Google App Engine

10.2K
8K
+ 1
611
Google Cloud Functions

479
476
+ 1
25
Add tool

Google App Engine vs Google Cloud Functions: What are the differences?

Introduction

Google App Engine and Google Cloud Functions are two cloud computing services offered by Google Cloud. While both services allow developers to build and deploy applications and services on Google's infrastructure, they have some key differences in their functionalities and purposes.

1. Scalability and Flexibility:

Google App Engine provides a platform for developers to build and run applications without needing to manage the underlying infrastructure. It offers automatic scaling based on demand, allowing the application to handle varying levels of traffic. On the other hand, Google Cloud Functions is a serverless compute service that allows developers to write small, single-purpose functions that automatically scale up or down as needed. It provides greater flexibility as developers can focus on writing just the code they need for specific tasks.

2. Deployment and Execution:

With Google App Engine, developers deploy their applications as a whole, and the application runs continuously, with instances automatically created or terminated based on traffic. In contrast, with Google Cloud Functions, developers deploy individual functions that are triggered by specific events or HTTP requests. The functions run in ephemeral environments and are executed only when triggered, resulting in quicker deployment and more efficient resource utilization.

3. Pricing Model:

Google App Engine pricing is based on the number of instances used, along with additional charges for certain resources like storage and network usage. In contrast, Google Cloud Functions pricing is based on the number of function invocations, along with the total compute time and memory used during the execution of those functions. This difference in pricing models allows developers to choose the most cost-effective option based on the nature and requirements of their applications.

4. Environment and Language Support:

Google App Engine provides a runtime environment where developers can choose from several language options, including Java, Python, Go, and more. It offers a wide range of built-in services and APIs for various application requirements. On the other hand, Google Cloud Functions supports multiple language runtimes, including Node.js, Python, and Go. While it offers a simplified programming model, the available services and APIs are more limited compared to App Engine.

5. State Management:

Google App Engine provides a built-in datastore for data storage and retrieval, allowing developers to easily manage the state of their applications. It offers mechanisms for strong consistency and data durability. In contrast, Google Cloud Functions provides a more stateless execution environment. It is designed to be event-driven and reactive, where the functions typically process individual requests or events without relying on persistent state management.

6. Development Workflow and Integration:

Developers using Google App Engine typically follow a more traditional development workflow, where they build, test, and deploy the entire application as a unit. App Engine integrates with popular development tools and frameworks, allowing for easy integration into existing workflows. Conversely, Google Cloud Functions promotes a more modular and microservices-oriented development approach. The serverless nature of Cloud Functions allows developers to focus on writing separate functions for specific tasks, promoting code reusability and easier management of individual components.

In Summary, Google App Engine and Google Cloud Functions differ in terms of scalability, deployment and execution, pricing, environment and language support, state management, and development workflow and integration. These differences make them suitable for diverse use cases and enable developers to choose the appropriate service based on their specific requirements.

Advice on Google App Engine and Google Cloud Functions

What are the best options to host a Spring Boot application that acts as a receiver and publisher from Google Cloud Pub/Sub. I am using Google App Engine to do that, but there is Google Cloud Dataflow and Google Cloud Run that can be used. Which is the best option that can be used for this purpose and also that can handle the failover scenarios as well. Thanks!

See more
Replies (2)
Stephen Fox
Artificial Intelligence Fellow · | 3 upvotes · 3.8K views

You should probably stick with App Engine Standard, if you need customization of some sort and your app needs to do more than just Pub/Sub. If all you're doing is short processing of messages (e.g. pub/sub + writing to a data store), use Cloud Run.

Google Cloud offers the continuum from fully managed to fully manual infrastructure, so it really depends on how much control you want to hand over versus getting things done for you. I've engaged with teams that really just needed App Engine, but were reinventing it with Compute Engine because they didn't know better. Others were trying to use Cloud Functions for the job of Cloud Run. Trust the docs and you'll prosper.

See more
Recommends

This is an major concerning topic for discussion. For any applications to do something with the data, first have to decrypt it. Creating a potential window of opportunity for hackers. For this I have been using Daton's Google Cloud Storage

See more
Decisions about Google App Engine and Google Cloud Functions
Clifford Crerar
Software Engineer at Bidvest Advisory Services · | 9 upvotes · 69.1K views

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.
See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Google App Engine
Pros of Google Cloud Functions
  • 145
    Easy to deploy
  • 106
    Auto scaling
  • 80
    Good free plan
  • 62
    Easy management
  • 56
    Scalability
  • 35
    Low cost
  • 32
    Comprehensive set of features
  • 28
    All services in one place
  • 22
    Simple scaling
  • 19
    Quick and reliable cloud servers
  • 6
    Granular Billing
  • 5
    Easy to develop and unit test
  • 5
    Monitoring gives comprehensive set of key indicators
  • 3
    Really easy to quickly bring up a full stack
  • 3
    Create APIs quickly with cloud endpoints
  • 2
    No Ops
  • 2
    Mostly up
  • 7
    Serverless Applications
  • 5
    Its not AWS
  • 4
    Simplicity
  • 3
    Free Tiers and Trainging
  • 2
    Simple config with GitLab CI/CD
  • 1
    Built-in Webhook trigger
  • 1
    Typescript Support
  • 1
    Blaze, pay as you go
  • 1
    Customer Support

Sign up to add or upvote prosMake informed product decisions

Cons of Google App Engine
Cons of Google Cloud Functions
    Be the first to leave a con
    • 1
      Node.js only
    • 0
      Typescript Support
    • 0
      Blaze, pay as you go

    Sign up to add or upvote consMake informed product decisions

    What is Google App Engine?

    Google has a reputation for highly reliable, high performance infrastructure. With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.

    What is Google Cloud Functions?

    Construct applications from bite-sized business logic billed to the nearest 100 milliseconds, only while your code is running

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Google App Engine?
    What companies use Google Cloud Functions?
    Manage your open source components, licenses, and vulnerabilities
    Learn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Google App Engine?
    What tools integrate with Google Cloud Functions?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Google App Engine and Google Cloud Functions?
    Heroku
    Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.
    DigitalOcean
    We take the complexities out of cloud hosting by offering blazing fast, on-demand SSD cloud servers, straightforward pricing, a simple API, and an easy-to-use control panel.
    AWS Lambda
    AWS Lambda is a compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.
    Kubernetes
    Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
    AWS Elastic Beanstalk
    Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.
    See all alternatives