As developers experiment with cloud application development, some new and not-so-new issues are coming up. Most of these concerns—security, reliability, data integration—are not unique to the cloud. They are important for all development projects, not just those that run on virtual servers outside company walls.
But the cloud is forcing developers to look at these issues in a new light, and to address them in the context of a new infrastructure and set of tools that are still emerging. We asked experts what cloud developers should be worrying about. Here’s a summary of the guidance they offered:
Security is No. 1
No surprise that this is a top concern that developers cite when considering cloud projects, according to Evans Data. On the cloud, it’s crucial to ensure that data and applications can be accessed only by those authorized to do so, said Colleen Smith, vice president of SaaS at development tool company Progress Software. Of course, that advice applies to virtually all applications, she said. “But access management and identity management are less of a concern for on-premise apps.”
Also key for cloud apps is making sure data is encrypted for privacy reasons, and for compliance with government regulations such as HIPAA and PCI, which mandate encryption, said Fausto Bernardini, director of cloud services enablement for IBM Global Technology Services.
Don’t reach and out and ask for data
Even the simplest cloud applications typically pass data to and from on-premise systems. “You need to exercise tight control over how this is done,” said Michael Lester, manager of product management at CA Technologies, formerly Computer Associates. “Cloud apps should never reach out and ask for data,” he said.
Instead, data should be passed back and forth using secure Web services at scheduled times. You can make that happen as often as the application requires, but it should never occur randomly, he explained.
“You have to understand the cloud platform and how it interacts with on-premise applications,” added Saugatuck Technology vice president and analyst Mike West. “That is one of the architectural challenges of the cloud.”
Looking at the user interface through a new lens
The cloud is also forcing developers to think about UI issues in a new way—even if they have years of experience designing them, said Progress’ Smith. “When you deploy in the cloud, the user interface must be easy to use and flexible, since the application is typically accessed from a wide array of locations, with users coming in on various different devices.”
When you are writing an HR application for the cloud, it’s tempting to model the user interface of that app on the user interface found in existing on-premise HR apps, said Smith as an example. But this is a mistake, she cautioned.
“A user interface that works well for an on-premise application isn’t likely to fly in the cloud,” she said. To come up with the right solution, developers need to hone in on exactly who the user is. “The needs of HR employees who do payroll [on premises] are very different from the needs of HR employees who do resume review on the cloud,” she said.
Make it personal
Another issue that developers need to rethink for the cloud is personalization—the process of customizing apps for individual users, said Smith. On-premise apps are likely to undergo a lot of customization, and those changes are typically hard-coded, she said. “A better approach for cloud application is use templates, where users select customization options. You need to think about this at the outset.”
Keep things flowing
Cloud applications demand that developers take into account how these new apps will integrate with existing on-premise solutions, and what the workflows are, said Saugatuck Technology’s West. “Cloud apps [when they need to access data] must exit the app, look up information in an on-premise solution [such as CRM and ERP], and take that information back to the cloud,” he said. It’s important to map out the workflows as the application is developed rather than waiting to tackle application challenges later, he said.
Make sure it’s available
Sometimes developers focus so heavily on an application’s functionality that they forget to factor in performance issues, said Progress’ Smith. “You don’t want the first app you put out there [on the cloud] not to work,” she said.
IBM’s Bernardini recommends that developers build redundancy and fault tolerance into the software itself instead of addressing those issues after the fact.
SUBHED: Staying productive
Smith predicted that the move to cloud-based projects will change the way we define development cycles. “If you are developing for the cloud, productivity is really important. Development cycles will run from two weeks to three months,” she said. It’s crucial for developers to adopt the quick-change mindset, she said. “We put things up on the cloud. End users come in, and we make changes based on what users do.”
Who owns the data if an app is abandoned?
Like any new technology, the cloud will give us new things to worry about, said Mike Rozlog, product manager of Delphi solutions for development tool maker Embarcadero. “Cloud apps are likely to be abandoned when owners of those apps miss a payment to the service provider. That raises questions of who owns the data, particularly sensitive data,” he said.
“Will it automatically go to the cloud provider?” Not many of these situations have occurred yet, but looking ahead, these types of issues we will have to address, he said.
Cloud development tools are still a work in progress
West offered a final piece of advice for developers pursuing cloud projects. “Keep in mind that many of the cloud-based development tools and services are not fully mature, so deployment to those platforms can be fairly primitive.” But this isn’t necessarily a bad thing, he said.
“Experimentation by its very nature is an education. Developers are turning to the cloud to educate themselves.”