By Mike Pontacoloni
Google App Engine is a straightforward example of cloud computing: You create an application, but your storage, bandwidth, and hosting needs are provided by Google’s computers, not yours. Such simplicity is only apparent on paper, though. Making the move from traditional IT development to cloud-based development comes with challenges.
Google’s Fred Sauer said that a primary challenge developers face is learning to work with a non-relational distributed database architecture. Whereas a centralized architecture requires data to be retrieved in a sequence, a distributed architecture allows data to be retrieved simultaneously. According to Sauer, developers must to learn to create applications that suit this pattern.
There are other challenges as well, such as limited developer access to file systems on the cloud machines and restrictions against opening arbitrary network sockets and requests. You can read about these challenges and others in “Google App Engine developer discusses distributed architecture challenges” from SearchCloudComputing.com
It bears mentioning that Google’s view of a distributed non-relational data model is best exemplified by MapReduce and Hadoop data implementations. A new Yale computer science project seeks to combine characteristics of both Hadoop and RDBMSs.