C H A P T E R 1
■ ■ ■
Beginning Google App Engine
By now, you've heard about cloud computing. It's gone from a forward-looking
concept that was adopted quickly by cutting-edge development communities to
a serious requirement for a growing number of businesses. This topic focuses on
Google App Engine, one of the leading cloud-based development platforms on the
market. Powering some of Google's own offerings, like Google Wave and Google
Moderator, App Engine provides an affordable, efficient, and scalable platform for
developing web applications. App Engine supports both a Java runtime, which we'll
cover in this topic, and a Python runtime.
Cloud Computing and App Engine
A lot of vendors are staking claims to platform offerings “in the cloud.” Currently, it's
our opinion that Google, Amazon.com, and Salesforce.com are leading the charge in
both the development community and the enterprise-computing space. There are
three main, accepted levels of cloud-computing offerings. They are Infrastructure as
a Service (IaaS),), Platform as a Service (PaaS),), and Software as a Service (Saas).).
Each has unique features and benefits, but there are some commonalities as well.
Any cloud-computing offering should have certain characteristics. Above all,
it should be multitenant. A key component of a true cloud-computing platform,
multitenancy is a type of software architecture where one instance of the offering
is used to serve multiple tenants. The alternative, single tenancy, is how you're
probably designing solutions today. Each customer (or business group, or client)
gets her own server, database, application layer, and interface. In contrast, a
multitenant application would have a single instance of all these layers and would
partition the client's data programmatically. Multitenancy is a shared trait among
offerings at the IaaS, PaaS, and SaaS layers.