Does cloud computing cause a dilemma for application developers? Does it present problems that devs would not face in building software for earth-bound applications?
Developers face common problems regardless of where their program's data is stored. However, the cloud environment presents a set of drawbacks that cloud application developers sometimes ignore to the detriment of users, according to Javier Soltero, CEO of Hyperic. His company provides monitoring and management software for all types of Web applications, whether cloud-hosted or on-premise.
"While the cloud is very exciting and extremely beneficial and super helpful in helping productivity, one of the things not getting attention is that things can still happen regardless of where you are storing your data," Soltero told TechNewsWorld. Soltero elaborates on this viewpoint in his blog.
Cloud computing, according to Soltero, imposes two dilemmas for developers. The first is that cloud app developers become responsible for all three phases of the application: building, deploying and managing. The second dilemma is rooted in service level agreements (SLAs) that developers must consider to avoid becoming trapped between a rock (the SLA the developer provides to customers) and a hard place (the SLA that the cloud provides to the developer).
The Dilemma Unfolded
The problem predates cloud technology, according to Soltero, but it is an evolving conundrum.
"The idea that you are relying on services provided by a giant data center provider, whether it's Google (Nasdaq: GOOG) or Amazon (Nasdaq: AMZN) or some other large supplier, doesn't implicitly remove the need for some level of operation by the person providing the service," he argued.
The problem, as he sees it, is that developers like the cloud since it lets them bypass operations or control agents and serve their environment needs quickly. In contrast, the cloud lets developers build and launch applications themselves without waiting for hardware to be purchased, racked and stacked. The red flag is that few developers have an operations background, leaving application users to go it alone.
"The simplest mundane application to some critical business application is at risk if some IT team hasn't responded properly," Soltero explained.
Strong Reactions
This viewpoint, however, has its objectors. Some software developers do not buy into the notion that the job should end with deployment. One of them is Sean Morris, director of
sales
for Digitech Systems, a provider of on-demand and on-premise enterprise content management (ECM) software.
"It really depends on the application and the company that develops it," Morris told TechNewsWorld. "Cloud computing is one of the fastest-growing trends involved on the operations side of business. User acceptance rates are quicker. I see the trend where developers are not bypassing the operation but are becoming an integral part of it."
Roles Changing
In an on-premise solution, the developer's job stops with creating the application. It becomes somebody else's job to maintain and support it, noted Morris.
In some of the cloud computing applications that are built today, engineering and manufacturing take over and are responsible for supporting that cloud environment. However, Morris said his company considers the other side of that scenario as well.
"Our development team had to consider the end-user and the platform the application would be used on. We realized that our development team was going to have a role in managing and supporting the application," he said.
What's Needed?
It all depends on the integrity of the company developing the application, its vision, its mission, and its proclivity to cut corners, according to Morris. It comes down to the consumers coming back and asking questions about how they are going to access their data and how the developer's application is going to keep their data separate from everybody else's.
"Especially in light of recent news reports of breaches, security is a
big aspect for end-users. Developers need, from the start, to look into
things from the customer's
point of view and have answers to things
before they start developing. Scalability is a huge concern for
developers who are building a cloud computing app," Morris said.
Developers must consider whether their cloud applications are going to be used by a single, small organization or by tens of thousands of organizations. Writing an application that is going to be part of a cloud computing environment is a challenge for any development team.
"There are a lot of tie-ins from developments in all facets of our business, and if you shortcut that, you run the risk of having problems," warned Morris.
New Starting Point
However, one point of agreement between Morris and Soltero focuses on the SLA and the problems it presents.
Users today want to know that their data is protected during transmission to the cloud, Morris explained. So now developers have to think about the data in the retail space and the data as it sits at rest. That means looking at the encryption, he said.
"Does this become an encumbrance to the developer? The SLA has to be the starting point. It starts at the beginning. If the developer has done the homework, it shouldn't hamper him," he stated.
New Question Sets
Cloud computing may be the next step in the evolution of utility computing, and it promises to have a substantial impact on the way that organizations provide IT services to consumers in the future, noted Jim Damoulakis, CTO of GlassHouse Technologies, an IT infrastructure consulting and services firm.
"From GlassHouse's perspective, cloud computing provides another option in terms of providing a given level of service," Damoulakis told TechNewsWorld.
Five challenges are inherent in the app development process as it relates to cloud computing, he said. The first challenge is the lack of common standards and APIs (application programming interfaces) among cloud service providers. As a result, a developer is often left wondering whether to write to Amazon's standards -- or Google's, Microsoft's (Nasdaq: MSFT), or another's.
The second challenge is avoiding lock-in to one service vendor. The third is figuring out how to bridge and manage an app's components if a developer wants to maintain the option of keeping portions of the application in-house and putting other parts out in the cloud.
A developer's fourth challenge is how to deal with system security
concerns, and the fifth is performance consistency in terms of data
access.

Headline Feeds







