Google App Engine

Dhananjay Joijode
8 min readJan 13, 2022

--

I. Introduction

Google App Engine also known as GAE is a cloud computing platform as a service (PAAS) for developing and hosting web applications in the data centers managed by Google. Automatic scaling for web applications is offered by App Engine. This means as the number of requests increases, app engine automatically increases the resources to the web application and vice versa.

Fig. 1. Google App Engine Logo

Users can scale their application from nothing to literally infinity without worrying about infrastructure management. App Engine lets users focus on code and rest of the services are provided by the platform.

Fig. 2. App Engine Interface

Cloud Service Model

Infrastructure as a Service (IaaS) — It is a type of computing infrastructure that is managed over the internet. The merit of using Infrastructure as a Service is that it helps users to eliminate the cost and complexity to purchase and manage the physical servers.

Characteristics -

· Resources are available as a service.

· Services are highly scalable.

· Dynamic and flexible.

· GUI and API-based access.

· Automated administrative tasks.

Platform as a Service (IaaS) — PaaS cloud computing platform is made for the developer to create, test, run, and manage the applications.

Characteristics -

· Accessible to different users through similar development application.

· Easily integral with web services and databases.

· Supports many programming languages and frameworks.

· Provides an important ability to auto-scale.

Software as a Service (IaaS) SaaS (on-demand software) is a software in which cloud service provider hosts the applications. Users can access the applications with the help of internet and web browser.

Characteristics -

· Central location management.

· Remote server hosting.

· Can be accessed over the internet.

· The services are purchased on the pay-as-you-go model.

Fig. 3. Cloud Service Model

II. App Engine Architecture

The following flowchart shows the hierarchy of an App Engine application running with multiple services. In this flowchart, the application has two services that in turn have multiple versions, and two of those versions are actively running on multiple instances.

Fig. 4. App Engine Architecture

III. Languages used in App Engine

Table 1. Languages used in App Engine

IV. App Engine Vs. Compute Engine

Compute Engine — Google Compute Engine is an IAAS offering of Google. It lets users create Virtual Machines, allocate computing resources, and select your own SSD or HDD. This type of service is most useful to small businesses as they have complete control over the virtual machines as well as its load capacities.

App Engine — It operates as Platform as a Service(PaaS).User’s focus is only on the application. Google will manage the resources required to run the application. Thus, app engine users must manage less but also have less control. The applications hosted on it are highly scalable and reliable even when there is high traffic.

Different users prefer different things based on their preference. If a user doesn’t want to waste time to gather expertise regarding Compute Engine and is comfortable with the data being on public cloud, then App Engine is the best choice. But if the user is willing to bear some extra costs for complete control over the VM’s then Compute engine is the best choice for him.

V. Features and Benefits of App Engine

Fig. 5. Features of App Engine

Features -

Collection of Development Languages and Tools The App Engine supports various programming languages for developers. Docker containers can import libraries and frameworks. One can develop and test an app locally using the SDK containing tools for deploying apps. Each programming language has its SDK and runtime. The following languages are offered by App Engine — Python, PHP, Java, Ruby, C#, Node.js, .NET and GO.

Fully Managed App Engine allows one to add a web application code to the platform while managing the infrastructure for the user. The engine makes sure that user’s web apps are secure, running and saves them from malware and threats by enabling the firewall.

Pay-as-you-Go A pay-as-you-go model is in place. It means one pays only for the services that one uses. Google App Engine automatically scales up resources when the traffic of the application increases and scales down when it decreases.

Effective Diagnostic Services Cloud Monitoring and Cloud Logging helps developers to scan the bugs in an application. The app reporting document aids to fix bugs in real time.

Splitting of Traffic The incoming traffic is automatically routed to different versions of the apps. This is a part of A/B testing. One can plan the consecutive increments based on what version of the app is most suitable.

Fig. 6. Benefits of App Engine

Benefits –

All Time Availability When one develops and deploys a web application on the cloud, remote access is enabled for the applications. Google App Engine is the right choice that lets the developers develop applications remotely, the infrastructure needs are managed by cloud service.

Ensure Faster Time to Market For the web applications to succeed, making sure that faster time to market is very crucial. The diverse tool repository and other functionalities make sure that the Google Cloud application development and testing time is reduced, which eventually guarantees faster launch time for MVP and consecutive launches.

Easy to Use Platform Codes need to be written only by developers. With no configuration and server management required, one eliminates all the stress of managing and deploying the code. App Engine makes it easy to use the platform, with which one can focus on other concurrent web applications and processes. App Engine automatically handles the traffic increase by patching, provisioning, and monitoring.

Increased Scalability As a company grows, the scalability also increases. It is an important aspect that assures success and competitive advantage. Whenever the traffic to the web application increases, the app engine automatically scales up the resources and scales down when the traffic decreases.

Improved Savings With Google App Engine, the customers do not have to spend extra on server management of the app. The Google Cloud service is best at taking care of the backend process. The resources automatically scale up or scale down based on how the app performs in the market, which makes sure of the right pricing.

VI. Standard Vs. Flexible Environment

Standard Environment — Google Cloud has already defined instance classes such as B1, B2, B4, …, F4_1G. This is more like a managed VM where the app engine has already defined VM configurations, and we will be charged based on instance running hours.

Advantages -

· Zero downscaling is possible.

· Automatic security patches for managed VMs.

· Very practical development environment.

· Deployment happens in no time.

· VM Instance comes up in seconds if auto-scaling is required.

Disadvantages -

· There is no direct way of consuming compute engine resources from app engine

· No SSH access to VMs from the standard environment. This means less flexibility in integration with third party systems.

· All instances of the application live in a single time zone.

Flexible Environment — The VMs are managed and operated by the team using the environment. Unlike a standard environment, clients will be charged based on the resource usage.

Advantages -

· Docker has access and support for Secure Socket Shell . This is an important difference which opens a lot of possibilities.

· Access to compute engine resources as the Virtual Machines will be handled by the compute engines to effectively execute the requests by clients.

· Support for background threads and found to be very scalable when they are used with multi-threaded architecture.

Disadvantages -

· Instance startup and deployment time more when compared to standard environment

· App Engine APIs & Services such as NDB, Users API, Memcache and Images API have no access.

VII. Use Cases

Scalable Mobile Backends — App Engine scales the environment of hosting for developers who are building their first mobile application or looking to reach out to existing developers through a mobile experience. It offers easy integration with Firebase which provides user-friendly frontend mobile platform along with a back end that is both scalable and reliable.

Modern Web Applications — One can efficiently reach customers by deploying web applications on App Engine. With no configuration deployments and zero server management, it allows users to focus on just writing the scripts. Moreover, it scales to support sudden traffic spikes without any hassle.

Companies that use App Engine –

· Snapchat

· YouTube

· Disney

· Coca-Cola

· Philips

VIII. Pricing

The pricing is different for the apps that are built using the standard environment or the flexible environment. The charges are incurred from all the other Cloud products irrespective of the environment. The charges are also dependent upon the products that are used, along with the App Engine.

Table 2. Standard Environment Charges
Table 3. Flexible Environment Charges

IX. Conclusion

Google App Engine is Google’s platform as a service offering that allows developers and companies to build and run applications using its advanced infrastructure. These applications are required to be coded in one of a few supported languages such as, Java, Python, PHP, Go, etc. It also needs the use of Google query language and Google Big Table is the database used. Applications must follow the above-mentioned standards. The two environments in App Engine are Standard and Flexible. Both have different charges for different instances and resources. Many popular companies such as Snapchat, YouTube, New York Times are using App Engine for deployment. Due to easy deployment, maintenance, and high scalability, it is the preferred choice of the developers.

References

[1] Google App Engine Official Website

[2] Developer Notes

[3] Wikipedia Article

[4] Use Cases

[5] Pricing

--

--