Application development and testing in the cloud are gaining popularity, as more businesses launch public and private cloud computing initiatives. Cloud development typically includes integrated development environments, application lifecycle management components (such as test and quality management, source code and configuration management, continuous delivery tools), and application security testing components.
Although technology executives and developers with experience in cloud-based development say there are clear benefits to developing in these environments -- such as costs savings and increased speed to market -- they also caution that there are challenges and surprises to look out for.
[ Get the no-nonsense explanations and advice you need to take real advantage of cloud computing in InfoWorld editors' 21-page Cloud Computing Deep Dive PDF special report. | Stay up on the cloud with InfoWorld's Cloud Computing Report newsletter. ]
Just how common development in the cloud is likely to become isn't clear. But industry analysis shows it's on the rise. In a February 2011 research note, Gartner said clients that attended the firm's symposia in 2010 expressed "sharply increased interest" in cloud computing to enhance the development and maintenance of existing custom Web applications.
"I see it the most in prototyping and parallel branch development, but there's also huge growth in the load- and performance-testing space," says Eric Knipp, a principal research analyst at Gartner.
If you're looking to venture into cloud development for the first time, here are nine types of hurdles you might encounter and suggestions on how to address them from developers who've actually done the work.
Cloud development gotcha 1: The cloud doesn't always work like the "real world"
Developers might find that the configuration they use in production is hard to replicate on cloud services. For example, with an application you develop in the cloud before bringing back to run locally, you might need to test against a legacy system that you can't simply copy onto a cloud service, Knipp says: "That means there might be a lot more stuff that developers have to stub out to get a test app up and running."
Service virtualization technology can help, Knipp says, and developers can take advantage of market offerings that enable multiple/parallel branch development. Take the case of iTKO, which offers a software suite called Lisa that helps companies move enterprise applications into the cloud.
Developers accustomed to noncloud development might also encounter surprises when it comes to building Web applications in the cloud. For instance, Greg Taylor, who built an online registration application for the Ohio Music Education Association, wasn't expecting that he'd need such a thorough understanding of database structure and how users would interact with it when he created the application.
The app, which handles the registration of school music performers in statewide music contents, uses a MySQL database as the back end and Alpha Five 10.5 from Alpha Software for the front end. "I am coming from a FileMaker Pro background [and] that product is extremely forgiving with regards to database structure," Taylor says. "A poor design can still be used with a reasonable amount of success."
But developing with MySQL forced Taylor to be extremely organized so that the Web app would have the best performance possible. Going back to the table structure to add more fields is time-consuming, as it involves rotating between different development tools, Navicat for MySQL and Alpha Five for the actual Web page design, he says. The first tool creates the database structure, while the second one creates the pages the user interacts with in order to enter and edit information in the database.
"This may not be an issue for developers leveraging a database that has already been created," Taylor says. "They would simply use Alpha Five to develop the Web pages that a user would access. In my case, I was simultaneously developing both the database and the Web pages, which would have required me to switch between the development tools if I had not planned carefully."
To avoid that ongoing round-tripping, Taylor had to change his database development approach: "By developing a clear ERD [entity relationship diagram] with all needed fields first, my Web app is efficient and my overall development time is greatly reduced."
In some cases, cloud development tools do work like the real world -- at least, of yesterday's version of the real world. Jeff Hensley, HRIS senior analyst at DaVita, a health care firm specializing in kidney dialysis, was surprised that developers working in the cloud needed to use command-line tools, XML, and SQL, "which reminded me of the old DOS days." He expects that old-school approach to change over time as adoption increases.
DaVita is using both cloud-based application delivery platforms and hosted servers to develop and deliver human resources data warehouse and business intelligence applications.
Cloud development gotcha 2: Some apps aren't ideal for development in the cloud
The more hard-to-access or hard-to-replicate systems an application integrates with, the more difficult it is to develop and test it on cloud computing resources, Knipp says.
For example, Dan Stueck, vice president of IT for Faith Educational Ministries, avoids developing high-end applications in the cloud that have extreme data security or regulatory restrictions, or rely on legacy coding projects, such as those in Cobol. "Those two are probably best kept in house," he says, "the first due to the obvious security concerns, and the second because of the 'dead' language issue."
Where Stueck has used the cloud is to run a development server on Amazon.com's public cloud service and to build a student information system, student transcript archive, and home schoolbook selling application in the cloud.
Cloud development gotcha 3: Developers often dislike the unfamiliar cloud territory
Cloud computing is still relatively new to a lot of organizations, and it can be a disruptive technology, including in the development arena. 20/20 Cos., a provider of outsourced sales services, used the Force.com cloud platform from Salesforce.com to build a custom application that allows outsourced reps to enter sales data into 20/20's order-to-invoice-to-payroll tool.
"The thing that was probably most unexpected was how well the entire [cloud development] project was received by the management and sales teams and everyone who uses the system, [and] how poorly it was received by the IT organization and in particular developers," says Mark Warren, chief architect at 20/20.
The IT people were accustomed to working with Microsoft .Net, SQL Server, Java, and other traditional development platforms, Warren says, and Force.com was a completely different model. "If you know SQL and Java, that's your toolbox, and you're not going to want to go to this completely alien platform that's coming in," Warren says.
As a result, the sales application was developed primarily by business staff, not by IT developers. That brought its own set of challenges, Warren says, the biggest of which was a lack of understanding among the businesspeople about change management and IT governance. "IT has a level of discipline that businesspeople are not used to having enforced on them," Warren says. "We had to bring them up to speed on change management issues."
As for addressing the reluctance of technology people to develop in a cloud environment, there are programs IT can implement to help adopt cloud computing internally, Warren says. "Training is certainly a good method to facilitate," he says. "However, unless the culture of IT is open to new methods and technologies, organizational change [getting new developers] may be the only option."
Cloud development gotcha 4: Lack of documentation hinders cloud developers
DaVita's Jensley was surprised by the lack of documentation to help developers understand the cloud and the tools and resources that can be used to build applications in that environment.
"I would definitely expect that to change as the demand increases and more and more companies begin adapting the cloud concept," Hensley says. "We were able to combat that by partnering with a consulting firm."
Next page: Network woes that plague private clouds...