Many of these tools or upgrades are relatively new, so you may need to deal with their limitations. "In my own experience, the Microsoft Windows Azure Platform does not allow mixed languages in a web site. Site templates, controls, app_code, and several other components need to be run as a single language. We had to convert our SQL Service Broker based queuing technology to a custom queuing solution," says Patel.
Design for Scalability
"Cloud services are only as scalable as the underlying web application. If the web application has inherent programming bottlenecks, moving the application into the cloud will not help."
Jeffrey Huckaby, rackAID
One promise of cloud computing is the ease by which its infrastructure can scale. Some developers interpret this as, "...So a developer doesn't have to think about it anymore," but experienced techies see the situation differently.
"The cloud isn't the equivalent of more hardware to throw at the problem. Yes, it provides seemingly limitless scalability, but only if the system is architected in such a way as to make use of it," explains Marc LaFleur, chief architect for Parlance Corporation, managed service provider of speech-enabled communication applications. "If your application relies on session data stored in memory, you will quickly discover a major bottleneck."
Designing applications for more scalability requires you to know more, not less. "In working with many start-up SaaS providers and social networking type sites, I've often run into programmers that do not grasp scalability concepts," says Jeffrey Huckaby, rackAID CEO. "Cloud services are only as scalable as the underlying web application. If the web application has inherent programming bottlenecks, moving the application into the cloud will not help."
Learn to distribute workloads correctly between functional units, he advises, and properly profile your code. "When you are writing an application for relative low loads or growing your user base slowly, you have time to work in improvements. However, when you are launching a Facebook application, you may not have time to work out kinks. Using a code profiler, such as XDebug, can work wonders," says Huckaby.
Don't assume that your code is scalable any more than you'd assume it's inherently secure. "Your app will be bigger than anything you did before," says Jan Aleman, CEO of Servoy. "Your app really has to scale. Talk to some people that have done it before; tech people love to talk."
Another obvious concern is the security of cloud applications and the data on which they rely.
With the cloud, your in-house security techniques are suddenly used outside the company firewall. "You can often get away with a relatively simple security scheme when you're dealing with a line-of-business application within your organization," says Parlance's LaFleur. Your in-house systems typically have some integrated security baked-in, perhaps leveraging Active Directory. "Once in the cloud, however, things are quite different," he says. "Developers need to think about both authentication ('I am who I say I am') and authorization ('what data/systems I have access to') early on in the process. It is also important to brush up on what laws may govern your data (HIPPA and SOX for example)."