News Stay informed about the latest enterprise technology news and product updates.

Developers beware: Downsides to developing in the cloud

Google App Engine and Amazon AWS are all the rage with developers right now, but there are downsides to developing in the cloud.

SAN FRANCISCO – Developers at JavaOne this week heard about some of the challenges and strategies involved in developing cloud based applications, notably around security and performance.

Ted Leung and Ashwin Rao, principal engineers at Sun Microsystems, gave a presentation called "Seeding the Cloud" in which they highlighted some key areas for developers to explore.

Leung said developers need to think about what happens when an application scales and multiple images are brought online to address the increased load. While some applications, like basic Web servers, are trivial to scale, more complex applications like ERP need to be able to deal with servers being brought online or turned off. The burden of dealing with this complexity falls on the developers who need to be looking for the ability to control the starting and stopping of images via APIs.

More on cloud development:
Tibco set to bring governance to the cloud

Google App Engine plus Amazon AWS: Best of both worlds

He discussed the software Stack as a Service idea and said it opens up performance and security challenges regarding the different stacks that are brought into the system. Leung asked, "Can you trust a stack that someone else gave you?" He said that he would like to a see a service for providing stacks that are built and certified, but no one is currently doing this commercially.

A further challenge occurs when organizations need to add new services or applications to the stack, running the risk of adding new security holes or performance bottlenecks. They would have to provide a whole series of stacks with different applications optimized for different purposes, he said.

Platform as a Service (PaaS) offerings like Google App Engine and Amazon AWS places further constraints on the kinds of code and applications that can be written. "When you look at PaaS, you need to see what limitations are built into the development and deployment environment," Leung said. Google App Engine, for example, is the most popular PaaS offering at the moment, but it only uses a small subset of Java and is only optimal for a narrow range of applications. It, for example, cannot do background processing.

Cloud development also changes the code efficiency of different programming techniques, according to Leung. "As a Java programmer you understand the cost model, and know what is expensive and what is cheap. When you migrate those applications to the service world, all of that goes out the window. Even though the platform might have similar offerings, the performance characteristics are different."

Dig Deeper on Cloud application development

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.