17-Cloud Environment - Google App Engine-29-09-2023
17-Cloud Environment - Google App Engine-29-09-2023
Methodologies
1
Fall-Semester 2023-2024 SCOPE
CSI3001- Cloud Computing
Methodologies
Course Outcome
Analyze and study the basics of cloud computing, cloud
CO1 models, and its applications
1
Fall-Semester 2023-2024 Dr. R. Arumuga Arun SCOPE
CSI3001- Cloud Computing Methodologies
Module IV
Cloud Environments
Google AppEngine
5
SCOPE
CSI3001- Cloud Computing Methodologies
Introduction
• Google App Engine is a PaaS implementation that provides services
for developing and hosting scalable Web applications.
• It is a distributed and scalable runtime environment
• It leverages Google’s distributed infrastructure to scale out
applications facing a large number of requests by allocating more
computing resources to them and balancing the load among them.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Introduction
• The platform is logically divided into four major components:
1. Infrastructure,
2. The run-time environment,
3. The underlying storage, and
4. The set of scalable services that can be used to develop
applications.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Infrastructure
6
SCOPE
CSI3001- Cloud Computing Methodologies
Infrastructure
• AppEngine hosts Web applications, and its primary function is to
serve users’ requests efficiently.
• To do so, AppEngine’s infrastructure takes advantage of many
servers available within Google data centers.
• For each HTTP request, AppEngine locates the servers to
process the request, evaluates their load, and, if necessary,
allocates additional resources (i.e., servers) or redirects the
request to an existing server.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Infrastructure
• The infrastructure is also responsible for monitoring application
performance and collecting statistics on which the billing is
calculated.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Runtime Environment
• The runtime environment represents the execution context of
applications hosted on AppEngine.
• With reference to the AppEngine infrastructure, which is
always active and running.
• The run-time comes into existence when the request handler
starts executing and terminates once the handler has completed.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Runtime Environment
Sandboxing
• One of the major responsibilities of the runtime environment is
to provide the application environment with an isolated and
protected context.
• Application can execute without causing a threat to the server
and without being influenced by other applications in the
provided context.
• In other words, it provides applications with a sandbox.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Runtime Environment
Sandboxing
• Therefore, sandboxing is achieved by means of modified
runtimes for applications that disable some of the common
features normally available with their default
implementations.
• If an application tries to perform any operation that is
considered potentially harmful, an exception is thrown and the
execution is interrupted.
• Some of the operations that are not allowed in the sandbox
include writing to the server’s file system. SCOPE
6
CSI3001- Cloud Computing Methodologies
Runtime Environment
Sandboxing
• For example, Accessing the computer through network besides
using Mail, executing code outside the scope of a request,
processing a request for more than 30 seconds, and etc.,
6
SCOPE
CSI3001- Cloud Computing Methodologies
Runtime Environment
Supported runtimes
• Currently, it is possible to develop AppEngine applications using
three different languages and related technologies: Java, Python,
and Go.
• AppEngine currently supports Java 6, and developers can use the
common tools for Web application development in Java, such
as the Java Server Pages(JSP), and the applications interact
with the environment by using the Java Servlet standard.
• Support for Python is provided by an optimized Python 2.5.2
interpreter. SCOPE
6
CSI3001- Cloud Computing Methodologies
Runtime Environment
Supported runtimes
• To support application development, AppEngine offers a rich
set of libraries connecting applications to AppEngine services.
• In addition, developers can use a specific Python Web
application framework called Webapp, simplifying the
development of Web applications.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Storage
• AppEngine provides various types of storage, which operate
differently depending on the volatility of the data.
Static fileservers
• Web applications are composed of dynamic and static data.
• Dynamic data are a result of the logic of the application and
the interaction with the user.
• Static data often are mostly constituted of the components that
define the graphical layout of the application or data files.
• These files can be hosted on static file servers, since they are not
frequently modified. 6
SCOPE
CSI3001- Cloud Computing Methodologies
Storage
Static fileservers
• Such servers are optimized for serving static content, and users
can specify how dynamic content should be served when
uploading their applications to AppEngine.
Data Store
• DataStore is a service that allows developers to store semi-
structured data.
• Data Store can be considered as a large object database in which
to store objects that can be retrieved by a specified key.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Storage
Data Store
• The underlying infrastructure of DataStore is based on Bigtable.
• It is a redundant, distributed, and semi-structured data store
that organizes data in the form of tables.
• DataStore also provides facilities for creating indexes on data
and updating data within the context of a transaction.
• Indexes are used to support and speed up queries.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Application services
• Applications hosted on AppEngine take the most from the
services made available through the run-time environment.
• These services simplify most of the common operations that are
performed in Web applications.
• For example: access to data, account management, integration
of external resources, messaging and communication, and
asynchronous computation.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Application services
UrlFetch
• One of the interesting features of UrlFetch is the ability to set
deadlines for requests so that they can be completed (or aborted)
within a given time.
• The ability to perform such requests asynchronously allows the
applications to continue with their logic while the resource is
retrieved in the background.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Application services
MemCache
• This is a distributed in-memory cache that is optimized for fast
access and provides developers with a volatile store for the
objects that are frequently accessed.
• The caching algorithm implemented by MemCache will
automatically remove the objects that are rarely accessed.
• The use of MemCache can significantly reduce the access time to
data.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Application services
Account management
• Web applications often keep various data that customize their
interaction with users.
• These data normally go under the user profile and are attached to
an account.
• AppEngine simplifies account management by means of Google
Accounts.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Compute services
• Users navigate the Web pages and get instantaneous feedback in
response to their actions.
• This feedback is often the result of some computation happening
on the Web application, which implements the intended logic to
serve the user request.
• Sometimes this approach is not applicable since it consumes long
computations.
• A good design for these scenarios provides the user with immediate
feedback and a notification once the required operation is
completed. 6
SCOPE
CSI3001- Cloud Computing Methodologies
Compute services
• AppEngine offers additional services such as Task Queues and
Cron Jobs that simplify the execution of computations those that
cannot be performed within the timeframe of the Web request.
Task Queues
• Task Queues allow applications to submit a task for a later
execution.
• This service is particularly useful for long computations that
cannot be completed within the maximum response time.
• The service allows users to have up to 10 queues that can execute
tasks. 6
SCOPE
CSI3001- Cloud Computing Methodologies
Compute services
Cron jobs
• It is possible to schedule the required operation at the desired
time by using the CronJobs service.
• This behavior can be useful to implement maintenance operations
or send periodic notifications.
6
SCOPE
CSI3001- Cloud Computing Methodologies
Thank you
5
SCOPE 1