Other issues that can affect development and testing involve network delays and latency and the size of network pipes, especially in certain parts of the world. Embarcadero has research and development centers in Scotts Valley, Calif., Monterey, Calif., Toronto, St. Petersburg, Fla., and Iasi, Romania, plus a sprinkling of smaller teams and individuals throughout the world.
Embarcadero's geographically diverse development environment "makes it harder to synchronize check-ins, builds, and automated testing," Intersimone says. To solve some of this, developers do local builds and regional builds, as well as on the code check-in, on the virtual servers available to all. Developers also do local builds on their own machines. Embarcadero ensures these don't fall out of sync with the master versions on the private cloud by using Subversion, an open source tool for source code control.
"When a build occurs, an automated test is run to validate the build," Intersimone says. "Then notifications go to all development teams and the build is automatically pulled over a Chinese wall to a large number of automated test virtual machines at our development centers." Automated and manual tests are done on the resulting build to verify the status, and emails go out to other team members after this process is completed. "All of this happens continuously during a project's development lifetime," he says.
Cloud development gotcha 6: It's easy to let the meter run unnecessarily on the cloud
Another potential problem is wasting money on cloud fees. Developers can easily forget or neglect to turn off virtual machines they aren't using. "I've heard from some clients that let developers go wild with virtual machine resources that sometimes the developers would just leave stuff up and running, say over a weekend," Gartner's Knipp says. "When it was on an in-house, capitalized server, this was no big deal. But when it is on usage-metered, leased resources as with public cloud computing, this is a waste of money."
Knipp says he expects this to become a new challenge for enterprises as they roll out private cloud initiatives.
While there's little risk in getting a big, unexpected bill for developer virtual machine usage in a private cloud, "in a self-service, private IaaS environment, a developer can spin up VMs and never turn them off," Knipp says. "These will effectively eat up resources from machines that are not being effectively utilized and could result in the organization buying too much capacity as planning gets skewed."
Cloud development gotcha 7: Cloud licenses can contain surprising deployment restrictions
Among the nontechnical issues with the cloud that can have an impact on development are licensing restrictions. Two years ago Kelly Services, a national temp agency, decided to use cloud-based development for many of its homegrown applications, with Salesforce.com's Force.com platform acting as the delivery vehicle.
Cloud development has brought benefits such as faster turnaround time on app development and lower costs, says Joe Drouin, CIO at Kelly Services. But the company also encountered some unexpected issues with licensing, specifically regarding what types of user seats it had and what limitations they carried. For example, a seat might have a set number of objects a user could access. As a result, "at some points we were surprised by what we could or couldn't do" with development, Drouin says.