What is App Engine? - Google Project Hosting

advertisement
GOOGLE APP ENGINE
ABSTRACT
Google App Engine was first released as a beta
version in April 2008. It is a platform for developing
and hosting web applications in Google-managed
data centers. Google’s App Engine opens Google’s
production to any person in the world at no charge.
Much like Google gives us all free email with an
amazing amount of long term storage, we now have
the ability to run the software that we write in
Google’s data centers.Google App Engine is cloud
computing technology.Google App Engine is
software that facilitates the user to run his web
applications on Google infrastructure. It is more
reliable because failure of any server will not affect
either the performance of the end user or the
service of the Google.It virtualizes applications
across multiple servers and data centers.
Table Of Content
 Introduction
 Cloud Computing
 Advantages of Cloud computing
 Era of Google App Engine
 About Google App Engine
 Languages Used
 Services
 Applications
 Future Scope
 References
Chapter 1
Introduction
About Google App Engine
App Engine applications are easy to build, easy to
maintain, and easy to scale as your traffic and data
storage needs grow. With App Engine, there are no
servers to maintain You just upload your
application, and it's ready to serve users.
Google App Engine supports apps written in several
programming languages. With App Engine's Java
runtime environment, you can build your app using
standard Java technologies, including the JVM, Java
servlets, and the Java programming language or any
other language using a JVM-based interpreter or
compiler, such as JavaScript or Ruby. App Engine
also features a dedicated Python runtime
environment, which includes a fast Python
interpreter and the Python standard library. The
Java and Python runtime environments are built to
ensure that your application runs quickly, securely,
and without interference from other apps on
systems.
App Engine manages infrastructure for users. It
provides a development platform for users to
create apps,and it leverages the infrastructure as a
hosting platform.
Before explaining google app engine in detail we are
explaining Cloud computing in brief
Chapter 1.1
CLOUD COMPUTING:
Cloud Computing is a term that is often bandied
about the web these days and often attributed to
different things. It is a platform, and even an
operating system. Some even link it to such
concepts as grid computing which is a way of taking
many different computers and linking them
together to form one very big computer.
However, this may not be the complete definition.
As a developer, we need a more detailed definition.
We may be outsourcing actual hardware,
application development and hosting, or only wish
to run online software from other providers. In
other words, what we outsource to cloud vendors
may and will be different from what other people or
companies do every situation is different, as are the
cloud service levels.
Several reasons drive companies to investigate or
adopt cloud computing services, with the primary
reason being cost. Small companies can't afford a
large amount of hardware nor the staff that goes
along with it. Large companies may find the costs of
maintaining and managing their own datacenters to
be prohibitive, or perhaps they have made a
significant investment only to discover that much of
their resources idling away.
Now explaining what Google App Engine is, and
even more importantly, what it isn't.here we’ll
explain how App Engine came into picture and what
problems it aimed to solve,also discussing which
cloud service level it operates at.
Describing how to use App Engine as well as what
are it's services & APIs, discussing what types of
apps it's suited for.
Chapter 2
Chapter 2.1
Era of Google App Engine
Google App Engine made a splash when it launched
in the spring of 2008. It was different from most
other cloud systems backin the day because it was
neither IaaS (Infrastructure-as-a-Service, e.g.,
Amazon EC2) nor SaaS (Software-as-a-Service, e.g.,
Salesforce). It was something in-between and
ushered in the era of PaaS (Platform-as-a-Service).
Instead of a fixed application (SaaS) or raw
hardware (IaaS),App Engine managed your
infrastructure for users. Furthermore, it provided a
development platform users get to create apps, not
used the one provided by the cloud vendor, and it
leveraged the infrastructure as a hosting platform.
Chapter 2.2
What is App Engine?
The development-to-release cycle is minimized
because high-level services that developers would
normally have to build are already available via an
App Engine API. A development server is provided
to let users test their code (with certain limitations)
before running in production. And finally
deployment is simplified as Google handles that all.
Outside of setting up an account and billing
structure, there is no machine setup or
administration as Google takes care of all logistics
there too. Even as your app is running with
fluctuating network traffic, the App Engine system
auto-scales up to allocate more instances of your
app as needed, then similarly releases resources
when no longer needed.A web developer can now
use Google's infrastructure, finely tuned for speed
and massive scaling, instead of trying to build it
themselves. In the past, developers would create an
app, generally need a machine or web hosting
service that could host a LAMP stack, administer
each of the "L", "A", "M", and "P" components, and
somehow made the app globally accessible.
Moreover, developers were also generally
responsible for the load-balancing, monitoring, and
reporting of their systems, and to reiterate one of
the most difficult and expensive things to build
scaling. All of these are taken care of by App Engine.
Chapter 3
Why App Engine Exist?
By now, you have a good idea as to why Google
developed App Engine. To put it simply, to remove
the burden of being a system administrator from
the developer. Using a LAMP stack involves
choosing a distribution of Linux, choosing of the
kernel version, etc., configuring PHP and an Apache
web server. There is also the need to run and
manage a database server (MySQL or otherwise)
and other aspects of a running system (monitoring,
load-balancing, reporting). The list continues with
managing user authentication, applying software
patches and performing upgrades, each of which
may break your app, bringing even more headaches
for developers/sysadmins.
Other than the actual application, everything else is
nearly orthogonal to the solution that developers
are trying to create for their customers. App Engine
attempts to handle these complexities to let you
focus on your app(s). An app running on App Engine
should be easy to build, manage, and scale.
Chapter 3.1
What is’nt App Engine?
Some users confuse Google App Engine with
Amazon's EC2 service. The problem is that this is an
apples to oranges comparison. Both operate at
different cloud service levels, and each have their
strengths and minuses. With App Engine, you only
need to worry about your application and let
Google take care of hosting and running it for you.
With EC2, you're responsible for the app, but also
its database server, web server, operating system,
monitoring, load-balancing, upgrades, etc. This is
the reason why typically, the costs for IaaS services
run lower than that of PaaS services because with
PaaS,
you're
"outsourcing"
more
work/responsibility.
Chapter 3.3
Language Runtime
App Engine lets engineers use familiar development
tools and environments to build their applications.
This includes the Python, Java, and Go languages.
Because App Engine supports Java, a host of other
languages which run on the Java Virtual Machine
(JVM) are also supported... these include (but are
not limited to): Scala, Ruby (JRuby), Groovy, PHP
(Quercus), JavaScript (Rhino), and Python (Jython).
(If you're curious about the Jython support (running
Python on the Java runtime vs. the pure Python
runtime), it's a great way to leverage a legacy Java
codebase while developing new code in Python as
Jython code can work with both Python and Java
objects.)
Sandbox
Security is gravely important. Developers (typically)
would not be interested in letting other
applications/users get any kind of access to their
application code or data. To ensure this, all App
Engine applications run in a restricted environment
known as a sandbox.
Chapter 4
Services
"To make useful apps with!" You want to use
outbound sockets to talk to other processes, and
perhaps you may want inbound sockets to listen for
service requests.That's what the e-mail and XMPP
APIs are for.Google provides both its traditional
NoSQL scalable datastore or access to the relational
MySQL-compatible Google Cloud SQL service.The
list of all the services that are available to users
changes quite often as new APIs are created. At the
time of this writing, the following services/APIs are
available to developers:
 App Identity
 Appstats
 Backend
 XMPP
 Cloud Storage
 Conversion
 Datastore
 (Full-Text) Search
 Images
 Mail
 Memcache
 Namespaces/Multitenancy
 NDB (new database)
 Auth (authorization)
 Pipeline
 Prospective Search
Chapter 4.1
Advantages Of GAE
A pre-configured architecture that makes app
development easier (once you know the
concept)
Automatic scalability
Multi-site replication as the default
RDBMS or NoSQL databases available
Disadvantages Of GAE
Vendor dependency - relatively hard to port
applications to other platforms
Only three languages supported out of the box
(Java, Python and Go)
Chapter 4.2
Application
Step 1:

Select the File menu > New > Web
Application Project (If you do not see this menu
option, select the Window menu > Reset
Perspective..., click OK, then try the File menu
again.) Alternatively, click the New Web
Application Project button on the toolbar.

Click 'Next'

Unselect 'Use
option.(note).
Google
The following screen appears.
Web
Toolkit'
Step 2:

2)The "Create a Web Application Project"
wizard opens. For "Project name," enter a name
for your project, such as 'CodeLabEx0' for the
project described in the Code Lab Exercise 0.
For "Package," enter an appropriate package
name, such as com.google.appengine.codelab.
Step 3:
 Run Application
 Open a browser instance and type 'http://localhost:8888/' to launch application deployed.
Step 4:
Uploading
Chapter 5
Future Scope
GAE is a premium service, providing massive
scalability for low effort. That's difficult to get
elsewhere in the market. GAE serves more than 1.5
billion pages views a day across all applications.
They will be focusing on supporting other languages
in AppEngine (I would bet on Java being the next
one available) rather than extending Python
frameworks support.
References
cloud.google.com/appengine
.wikipedia.org/wiki/Google_App_Engine
www.softlayer.com/Cloud/Asia-Pacific
Download