Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
App Engine standard environment
2.1.
Standard environment languages and runtimes
2.2.
Instance classes
2.3.
Quotas and limits
3.
App Engine standard environment runtimes 
3.1.
App Engine first-generation runtime support
3.2.
Similarities between first- and second-generation runtimes
4.
Long-term support for legacy runtimes 
4.1.
Commitment
4.1.1.
Security updates
4.1.2.
Support for App Engine bundled services
5.
App Engine flexible environment 
5.1.
Runtimes
5.2.
Features
6.
Known issues in the App Engine flexible environment 
6.1.
Unexpected reduction in the number of instances
7.
Frequently Asked Questions
7.1.
What is an example of Google App Engine?
7.2.
Is Google App Engine an IaaS or PaaS?
7.3.
Who makes use of Google App Engine?
7.4.
What constitutes Google App Engine's fundamental elements?
8.
Conclusion
Last Updated: Mar 27, 2024

Environments for Google App Engine

Author Aditi
0 upvote
Master Python: Predicting weather forecasts
Speaker
Ashwin Goyal
Product Manager @

Introduction

A cloud computing platform as a service called Google App Engine allows users to create and host web apps in data centers under Google's control. Applications are distributed across several servers and are sandboxed. App Engine offers a fully managed environment for the development and scalability of serverless web applications. You may select from various well-liked programming languages, libraries, and frameworks when creating your apps. Then, you can leave it up to the App Engine to provide servers and scale your app instances in response to demand.

Let’s dive into the article for more information about the environments for Google App Engine.

google app engine

App Engine standard environment

The foundation of the App Engine standard environment is a set of container instances running on Google's network. One of the many runtime options is predefined in containers.

Building and deploying an application that functions dependably even under high demand and with a lot of data is simple with the standard environment. Applications are run in a safe, sandboxed environment that enables the standard environment to scale servers to handle increased traffic and divide requests among several servers. Your application operates in a safe, dependable environment separate from the server's hardware, operating system, and physical location.

Standard environment languages and runtimes

The default environment supports the following languages:

  • Python
  • Java
  • Node.js
  • PHP
  • Ruby
  • Go

Instance classes

Each instance's memory and CPU allocations, as well as the amount of free quota and the cost per hour after your program uses up the free quota, are determined by the instance class.

Runtime generation affects the RAM restrictions. The memory cap applies to all runtime generations and considers both the memory your program requires and the memory the runtime needs to function. The Java runtimes consume more memory when running your app than other runtimes. Utilize the instance class property in your app.yaml file to override the default instance class.

Quotas and limits

You can enable premium applications to augment the 1 GB of data storage and traffic provided to you for free in the default setting. To ensure the system's stability, some features do, however, impose restrictions that are unrelated to quotas.

Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

App Engine standard environment runtimes 

There are two generations of runtime environments in the App Engine standard environment. The second-generation runtimes greatly enhance the possibilities of App Engine. It can also do away with some of their restrictions. The similarities and differences between the first- and second-generation runtimes are discussed on this page.

app engine standard environment runtime

App Engine first-generation runtime support

There are no plans to discontinue any other App Engine first-generation runtimes. The second-generation runtimes represent App Engine's future development; however, users of the first-generation runtimes will still get support and necessary system updates.

Similarities between first- and second-generation runtimes

  • Scale-up time in response to traffic spikes is almost immediate.
  • Applications are created utilizing a standardized build procedure.
  • identical SLA for GA services
  • support for same gcloud commands and a similar GCP terminal interface
  • Free tier

Long-term support for legacy runtimes 

Language versions no longer updated by open source communities are supported by legacy runtimes. The following legacy runtimes will receive long-term support in the App Engine standard environment from Google because many App Engine customers still rely on these language versions:

  • Python 2.7
  • Java 8
  • Go 1.11
  • PHP 5.5

Commitment

In keeping with our more than the ten-year tradition of supporting your apps as you advance into the future at your own pace, Google is dedicated to offering long-term support for these runtimes.

We will gradually implement the following adjustments to sustain these runtimes in the future:

  • Restore the runtimes to their open-source, unforked states as much as feasible. To safely operate your programs in our data centers, we have to restrict and change several of the runtimes severely. We can provide a long-term secure, scalable environment for these runtimes by altering how we operate the runtimes in our data centers.
  • Include comprehensive build systems that handle asset repositories, native component builds, and package repositories.

Google might have to deprecate some of the updates that you are currently using APIs or development tools.

Security updates

Your software may be vulnerable to flaws for which no publicly available patch exists as communities discontinue supporting versions of their languages. As a result, switching to a runtime with a supported language is safer than continuing to run your program on some App Engine runtimes.

To ensure the security of the languages, we will cooperate with open source organizations and suppliers whenever possible. As long as those updates are available, we will update the runtimes with operating system updates and security fixes.

Google can't guarantee that every API your app utilizes will be fixed. Only libraries for more recent versions of the language may provide fixes.

Support for App Engine bundled services

Blobstore, Memcache, and Task Queues are just a few of the bundled App Engine services and APIs offered by the Python 2.7, Java 8, Go 1.11, and PHP 5.5 runtimes.

In a few second-generation runtimes, you can still access several of these packaged services and APIs: 

  • Java 11
  • Python 3 
  • Go 1.12 or later

Your program can access the same functionality as traditional runtimes by calling the bundled services APIs through idiomatic language libraries. The bundled services are available on the more recent runtimes to give you greater freedom. You can switch to the unbundled services (Python, Java, Go) or keep utilizing the App Engine bundled services.

App Engine flexible environment 

Using App Engine, developers can concentrate on what they do best: developing code. The Program Engine flexible environment, based on Compute Engine, automatically scales up and down your app while balancing the load.

Runtimes

By offering a custom Docker image or Dockerfile from the open source community, you can alter these runtimes or offer your runtime.

  • Go
  • Java 8
  • PHP 5 / 7
  • Python 2.7 / 3.6
  • .NET
  • Node.js
  • Ruby
  • Custom runtimes

Features

  1. Customizable infrastructure - App Engine flexible environment instances are Compute Engine virtual machines, so you can utilize your own Docker containers, custom libraries, and SSH for debugging.
  2. Performance options - You can select from a variety of CPU and memory setups. The App Engine flexible environment will provide the appropriate infrastructure for you based on the amount of CPU and memory required by each instance of your application.
  3. Native feature support - Features including content delivery networks, microservices, authorization, SQL and NoSQL databases, traffic splitting, logging, versioning, and security scanning are all natively supported.
  4. Managed virtual machines - App Engine controls your virtual machines to make sure that:
  • Instances are examined for health, treated when necessary, and co-located with other project services.
  • Updates that are crucial and backward compatible are automatically applied to the base operating system.
  • Instances of VM are automatically located based on your project's settings and location worldwide. For optimum performance, Google's management services ensure that all of a project's VM instances are co-located.
  • Every week, VM instances are restarted. Google's management services resume when any required operating system and security updates are installed.

Known issues in the App Engine flexible environment 

  • You may need to wait 1-2 minutes after using the gcloud app deploy to deploy your application before it begins to serve at https://PROJECT ID.REGION ID.r.appspot.com. You can encounter HTTP 503 failures in the interval.
  • If the project-specific organization policy for your project bans access to external IPs, for instance:
    • The efficient constraint/computing.vmExternalIpAccess policy value is DENY_ALL.
    • The efficient constraint/computing.vmExternalIpAccess policy by setting only certain VM instances is permitted.

Because these limitations are not immediately identified, deployments may run out of time and fail. Run the command gcloud beta resource-manager org-policies describe compute.vmExternalIpAccess —project=my-project —effective to view the organization policy for your project.

  • The "Count/sec" metric displayed in the "Summary" graph of the App Engine dashboard may dramatically decrease when you deploy a new version of an existing service in the App Engine flexible environment using gcloud app deploy. Over the next 5 to 10 minutes, the metric will gradually revert to the anticipated request count.
  • It is impossible to set up your app, so requests are automatically redirected to HTTPS in the App Engine Flexible Environment. This differs from the App Engine standard environment, where a secure setting is available.
  • Your project can be charged for the agent.googleapis.com-prefixed metrics if you assign a user-managed service account to an App Engine flexible environment version. These agent metrics are typically not billed to your project. We advise using the App Engine default service account until this problem is fixed.

Unexpected reduction in the number of instances

  • Rarely a zone failure or a group of instances ceasing to function could result in an unanticipated decrease in the number of instances running your application. Google advises overprovisioning your application to avoid this and keep your system above the required minimum number of instances. When deploying an App Engine flexible environment application, you can specify the min num of instances size. The following are some situations that could reduce the minimum number of instances in the App Engine flexible environment:
    • updating instances in flexible environments
    • Zonal failure (Stockout problems, such as when your region reaches the CPU limit you chose, etc.)

We advise providing 50% more instances than necessary in the flexible App Engine environment because three zones are used to distribute your instances in this configuration.

Frequently Asked Questions

What is an example of Google App Engine?

An Android messaging app that keeps user log data is an example of an application made in GAE (Google App Engine). The app can use the Firebase Realtime Database to automatically synchronize data across devices by storing user messages and writing event logs.

Is Google App Engine an IaaS or PaaS?

Google App Engine is a Platform as a Service (PaaS) that enables users to utilize Google's compute and storage infrastructure without having to deal with the implementation issues related to IaaS servers and storage.

Who makes use of Google App Engine?

The App Engine is presently being used by some major corporations, including Accenture, Snapchat, YouTube, Khan Academy, etc.

What constitutes Google App Engine's fundamental elements?

Application, services, versions, and instances make up the App Engine hierarchy. The customer requires an application that combines many services, each of which may have different versions deployed in instances.

Conclusion

In this article, we have extensively discussed the environments for Google App Engine. We have also explained the App Engine standard environment, flexible environment, and more in detail.

We hope this blog has helped you enhance your environments for Google App Engine knowledge. If you would like to learn more, check out our articles on introduction to cloud computingcloud computing technologies, and all about GCP and AWS Vs. Azure Vs. Google Cloud. Practice makes a man perfect. To practice and improve yourself in the interview, you can check out Top 100 SQL problemsInterview experienceCoding interview questions, and the Ultimate guide path for interviews.

Do upvote our blog to help other ninjas grow. Happy Coding!

thank you image
Previous article
Google App Engine
Next article
Key Concepts of Cloud Bigtable
Live masterclass