App Engine

Swadesh Kelkar
6 min readJan 24, 2022
Credit: (Source)

What is Google App Engine ?

Google App Engine is a cloud based Platform as a Service (PaaS) product from Google that allows developers to create and deploy flexible and scalable apps. We don’t have to worry about handling infrastructure when we scale our product from zero to planet-size. We can design our apps using a variety of popular languages, packages, and frameworks, and then let App Engine handle providing resources and scaling application instances based on the market. As the requests for an application grows, App Engine allocates extra resources to the web — based application to meet the extra demand. App Engine allows us to focus on coding while the platform takes care of the rest. Applications are separated into sandboxes and distributed across various servers.

Google App Engine fundamentally supports apps written in PHP, Java, Go, Python, Node.js, Ruby and .NET, but it can also support other languages using “custom runtimes.” Only in a conventional environment, not in a flexible environment, is the service free up to a particular amount of utilised resources. Bandwidth, Additional storage, or instance hours that the programme requires are paid for. It was first launched as a preview version in April 2008, and it was then made available to the general public in September 2011.

Components of an application

The App Engine app is initiated under Google Cloud project. It is created when we create an application resource. The App Engine application is a top-level container that contains the service, version, and instance resources that make up the app. When we establish an App Engine app, all of our resources, including the app code as well as a collection of settings, metadata, and credentials, are produced in the region we specify.

The hierarchy of an App Engine app with several services is depicted in the diagram below. The Application has two services in this diagram, each with multiple versions, and two of those versions are active on multiple instances.

Credit: (Source)

Services

Large apps can be factored into logical components that can safely access App Engine capabilities and interact with one another using services in App Engine. App Engine services, in general, function like microservices. As a result, one can run their entire app in a particular service or build and deploy several services to run as a microservices cluster.

An app that handles client requests, for example, can have multiple services that each perform distinct duties, such as Api calls from mobile devices. Internal, administrative requests are another form of request. Backend processing, like billing pipelines as well as data analysis, is another task. Each App Engine service is made up of the app’s source code and the App Engine configuration settings that go with it. We deploy a set of files to a service to represent a particular version of that service, and each time we push to that service, we create new versions of that same service.

Versions

Within each service, having numerous versions of an app allows users to swiftly switch between multiple versions of that application for rollbacks, running tests, or other short events. By relocating or dividing traffic, one can route it to one or more particular versions of their app.

Instances

The services’ versions execute over one or more instances. App Engine adjusts applications to meet the load by default. Apps will scale up or down the number of instances operating to offer consistent performance or to decrease expenses by reducing idle instances.

Credit: (Source)

Features of App Engine

Popular programming languages

Applications can be built in Node.js, Java, Ruby, C#, Go, Python, or PHP.

Fully managed

A completely managed environment allows us to focus on the code while App Engine takes care of the infrastructure.

Powerful application diagnostics

Monitoring the app’s health and performance with Cloud Monitoring and Cloud Logging, and detecting and repairing errors quickly can be done using Cloud Debugger and Error Reporting.

Application versioning

We can build development, test, staging, and production environments with ease, and host multiple versions of the app.

Application security

Defining access restrictions using App Engine firewall and leveraging managed SSL/TLS certificates by default on the custom domain at no extra cost helps to secure the application.

App Engine Limitations

Vendor lock-in

Users encounter data migration challenges to alternative NoSQL databases due to vendor lock-in, which is a significant restriction of the Google App Engine. It can be difficult to move apps from one platform to another.

Read-only access to the file system

Many potential users are put off by the fact that Google App Engine users have read-only file system access. Data must be kept in a distributed setup because it does not enable writing to local files.

Not all languages and frameworks are supported

Not all popular programming languages and frameworks are supported by App Engine. Users can only use Node.js, Java, Ruby, C#, Go, Python, or PHP. To use additional languages, users must use the custom runtimes feature.

Expensive versus pure IaaS deployment

In comparison to self-hosted options, Google App Engine is a costly option. It is more expensive than an IaaS implementation, and costs might rise as demand expands.

Google App Engine Pricing

Let’s now take a look at the pricing of the app engine. Users of Google App Engine can sign up for a usage-based subscription. Google also provides a no-cost quota for trying out the service.

Free Quota

Google App Engine’s free quotas provide a tiny quantity of resources for apps. Users are charged for any resources they use that are not included in the free package.

Paid Plan

The App Engine is a usage-based or pay-as-you-go service. Users are charged for the goods and add-ons they use, and the Google Cloud website’s pricing calculator can help them estimate costs. To meet the demands of different customers, Google App Engine pricing is divided into two categories: Standard and Flexible. Where applicable, both price models include Cloud Based product charges. Below are the two pricing scenarios:

  • Standard Environment

The Standard Environment’s pricing starts with a free quota. When users exceed the free quota’s limited resources, they are charged more. Instance classes have different hourly billing rates, and there are two forms of scaling: basic scaling and manual scaling. When the number of idle instances exceeds the user-specified limits, further instance durations are not put into consideration.

  • Flexible Environment

There is no free quota under the Flexible Environment price plan. Users’ applications are deployed as virtual machines under this plan. The virtual machine is billed on a per-second basis, with a one-minute minimum usage fee requirement. The variables vCPU, Memory, Network Out, and Persistent Disk are the primary factors of charges.

Conclusion

We conclude that the App Engine designed by Google is a scalable platform with consistent performance, however it does have some limits due to its architecture and development tool and environment restrictions. App Engine applications are easy to create and maintain, and they also assist us in scaling our traffic and data storage requirements.

Contributors
Sumedh Joshi
Chinmay Kanchanwar
Swadesh Kelkar
Neeraja Khire

References:

  1. https://habr.com/en/post/504814/

2. https://blog.back4app.com/what-is-app-engine/

3. https://medium.com/@sunguy/everything-about-google-app-engine-6b9ff37b93e0

4. https://cloud.google.com/appengine/docs/standard/python/an-overview-of-app-engine

5. https://cloud.google.com/appengine#section-4

6. https://en.wikipedia.org/wiki/Google_App_Engine

--

--