Cloud e Book
Cloud e Book
Cloud e Book
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
Re-make or Re-model?
As developers consider moving
applications to the cloud, to what extent
will they have to re-think familiar go-to
languages to make apps work there?
Re-make or
Re-model?
By Jack Vaughan and Rob Barry
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
As developers
consider moving
applications to the
cloud, to what extent
will they have to rethink familiar go-to
languages to make
apps work there?
cloud computing presents development teams with challenges that may require them to
rethink established ways of building
applications.
One school of thought maintains
that the best bet is to upload applications as they are to the cloud, doing as
little rework as possible. Another
school contends that applications
should be radically re-cast if they are
to fully exploit cloud architecture.
For developers, the issues play out
on several levels. Naturally, language
is essential to programming. So cloud
THE UPSURGE IN
NO SHORTAGE OF LANGUAGES
FOR CLOUD COMPUTING
as is basis.
It starts at one end with just raw
storage and computing capacity. That
is what Amazon is, said John Rymer,
an analyst at Forrester Research Inc.
(who adds that, in fact, Amazon can
field its provisions via Web services).
With Amazon, said Rymer, you dont
have a program model and database.
Languages
for Cloud
Computing
Apex: Salesforce.coms Force.com uses this proprietary language. Apex is a lowlevel language and is said to be built for use by both professional developers and
end users. Visualforce, Force.coms graphics programming interface, is built on
Apex.
Java: One mainstream language making recent inroads in the cloud is Java. This
spring, Python proponent Google opened up its AppEngine platform to include Java
support as well. Meanwhile, Schakra Inc. built a Java software development kit, or
SDK, for Microsoft .NET Services.
.NET: At its launch, Windows Azure was said to support any .NET language, including Iron Python and Iron Ruby. The emerging consensus has most Azure development undertaken with C#.
Python: Early iterations of Googles cloud approach relied on Python. This venerable object-oriented language was instrumental in the companys rise to prominence.
But it is far from mainstream.
Web services: Early cloud interest coincided with the growth of high-level Web
services that employ Web Services Description Language contracts. While lately
Amazon has promoted EC2 as a cloud platform supporting as-is porting of existing
apps built using any language, its Amazon Web Services is an option for cloud computing development.
You name it!: A broadly popular approach to cloud computing seeks to port applications to the cloud on an as-is basisthus not requiring rewrites or special languages. SOATALKBLOG
Scaling
Horizontally
Changing Data
Architectures
Midcloud
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
Low-level programming
likely invites vendor
lock-in, but it also means
programmatic power.
DISTRIBUTED CACHING
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
With memory
architecture in
particular, would-be
cloud architects may
want to revisit their designs to see continued
improvement gains.
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
SCALING HORIZONTALLY
Changing Data
Architectures
Midcloud
Databases dont scale well horizontally [that is, simply adding similar machines to handle work] as a
general rule, Hartley said. They scale
vertically, he noted, but only if you
buy bigger hardware.
Hartley said the material in a database can constrain the scalability of
clouds. You cant just add another
machine for a database as you can
with something like Teracotta, he
said.
In fast, distributed systems, it is
preferable to keep user session information out of the database, and Terracotta software helps in this regard.
You can place session data in distributed memory rather than database
memory, and it will scale horizontally
quite easily, according to Hartley.
Distributed caches and high-availability application clusters have
become bona fide best practices for
some types of Java and SOA applications, said James Staten, a principal
analyst at Forrester Research Inc.
They are very characteristic of the
applications we see going in the
cloud, he said.
One of the key problems of cloudbased implementations is latency
between the components of the application, which is something GigaSpaces and others address.
Among the larger players in a small
legion of data caching providers is
Oracle Corp. When it purchased Tangosol Inc., the maker of the Coherence
caching software line, the database
company delved into the data caching
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
space.
Cameron Purdy, Tangosol founder
and now Oracle vice president of
development, explained what he
described as the distributed caching
space, and its relationship to the
cloud. When e-commerce became a
hot application early in this decade,
session management was immediately a problem. Coherence addressed
the problem with caching and failover.
Among other tasks, Coherence
manages sessions. The technology
can be used for caching highly used
catalog information and so on. By
CHANGING DATA
ARCHITECTURES MIDCLOUD
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
Reduce.
Its often the first thing people try
and do, he said. The real thing to
understand is that it is a batch data-
Various high-level
languages, such as
Hive, can impose data
structure on data files,
so you can use SQL
with MapReduce.
Editors note: This chapter on application development for the cloud is the second part of an e-book on cloud computing that also includes chapters on CIO strategies for the cloud, Software as a Service and Infrastructure as a Service.
Languages
for Cloud
Computing
Distributed
Caching
Scaling
Horizontally
Changing Data
Architectures
Midcloud
q Sign up for the IBM developerWorks Newsletter Cloud Edition to stay in the
know
About IBM:
IBM developerWorks is the premier web-based technical professional resource
and network for millions of developers, IT professionals, and students worldwide,
supporting you in your desire to stay ahead of the latest trends in open
standards, develop skills, solve problems, and collaborate with peers. The Cloud
Computing zone on IBM developerWorks in your entry to technical cloud content
and resources, a cloud community to share ideas, find experts and collaborate on
cloud projects and much more.