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.
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.
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.
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.
“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.”
“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.”
Embarcadero is using its virtualized data center for application building and testing. “For internal private clouds, we have a couple of options: choosing the scheduled date/time, and staging which servers are done in a certain order,” Intersimone says. “There are automated build and automated smoke test processes that are running all the time in our main private cloud and also in regional development offices.”
To get a more available environment, Intersimone says he’s looking into a cloud container and virtual private network offering from CohesiveFT that can be installed in public and private clouds to provide on-demand scaling, failover, disaster recovery, and disaster readiness.
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 byusing 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.
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 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.
Kelly has experienced performance issues between cloud-based applications and its on-premise systems as well as among multiple applications in the cloud. It’s difficult to troubleshoot these issues because the company often can only track transactions in its own infrastructure, Drouin says.
To minimize integration issues, Kelly developers try to use cloud providers’ APIs whenever possible; that’s been fairly easy to do because many cloud providers expose their APIs, Drouin says.
The familiarity of the development tools and the speed of the development and test environments have been pluses for the firm, says Graham Astor, director of global solutions at Avanade. But “being on a quickly evolving cloud development platform means it’s necessary to update best practices frequently,” he says.
Azure is on a two-month release cycle of performance and feature improvements, so Avanade meets monthly with members of the Microsoft product teams to get a heads-up on what’s coming. Would others get that kind of access? “I have no idea,” Knipp says, “but it is in Microsoft’s interest to get as many consulting firms as possible on board with Azure, in order to drive adoption.”
Despite the learning curve, cloud development is appealing
Despite the potential challenges, for many organizations application development in the cloud rather than sticking with traditional methods makes sense, for the same reasons that cloud computing in general makes sense: elasticity of resources and cost, and reduced operational complexity, both of which lead to shorter completion time.