This story was originally published on April 6, 2009, and is brought to you today as part of our Best of ECT News series.
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 isstored. However, the cloud environment presents a set of drawbacks that cloudapplication developers sometimes ignore to the detriment of users,according to Javier Soltero, CEO of Hyperic. His company providesmonitoring 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 arestoring your data,” Soltero told TechNewsWorld. Soltero elaborates on this viewpoint in his blog.
Cloud computing, according to Soltero, imposes two dilemmas for developers. The firstis that cloud app developers become responsible for all three phasesof 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).
Unfolding the Dilemma
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 datacenter provider, whether it’s Google or Amazon or some other largesupplier, doesn’t implicitly remove the need for some level ofoperation by the person providing the service,” he argued.
The problem, as he sees it, is that developers like thecloud since it lets them bypass operations or control agents and servetheir environment needs quickly. In contrast, the cloud lets developersbuild and launch applications themselves without waiting for hardwareto be purchased, racked and stacked. The red flag is that fewdevelopers have an operations background, leaving application users togo it alone.
“The simplest mundane application to some critical businessapplication is at risk if some IT team hasn’t responded properly,”Soltero explained.
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 ofsales 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 developsit,” Morris told TechNewsWorld. “Cloud computing is one of the fastest-growing trends involved on the operations side of business. Useracceptance rates are quicker. I see the trend where developers are notbypassing the operation but are becoming an integral part of it.”
In an on-premise solution, the developer’s job stops with creating theapplication. It becomes somebody else’s job to maintain and supportit, noted Morris.
In some of the cloud computing applications that are built today,engineering and manufacturing take over and are responsible forsupporting that cloud environment. However, Morris said his company considers theother side of that scenario as well.
“Our development team had to consider the end-user and the platformthe application would be used on. We realized that our developmentteam was going to have a role in managing and supporting theapplication,” he said.
What Do You Need?
It all depends on the integrity of the companydeveloping the application, its vision, its mission, and its proclivity to cut corners, according to Morris. It comes down tothe consumers coming back and asking questions about how they aregoing to access their data and how the developer’s application isgoing to keep their data separate from everybody else’s.
“Especially in light of recent news reports of breaches, security is abig aspect for end-users. Developers need, from the start, to look intothings from the customer’s point of view and have answers to thingsbefore they start developing. Scalability is a huge concern fordevelopers who are building a cloud computing app,” Morris said.
Developers must consider whether their cloud applications are going to beused by a single, small organization or by tens of thousands of organizations.Writing an application that is going to be partof a cloud computing environment is a challenge for any development team.
“There are a lot of tie-ins from developments in all facets of ourbusiness, and if you shortcut that, you run the risk of havingproblems,” warned Morris.
New Starting Place
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 duringtransmission to the cloud, Morris explained. So now developers have tothink about the data in the retail space and the data as it sits atrest. That means looking at the encryption, he said.
“Does this become an encumbrance to the developer? The SLA has to bethe starting point. It starts at the beginning. If the developer hasdone the homework, it shouldn’t hamper him,” he stated.
Cloud computing may be the next step in the evolutionof utility computing, and it promises to have a substantial impact onthe way that organizations provide IT services to consumers in thefuture, noted Jim Damoulakis, CTO of GlassHouse Technologies, an ITinfrastructure consulting and services firm.
“From GlassHouse’s perspective, cloud computing provides anotheroption in terms of providing a given level of service,” Damoulakistold TechNewsWorld.
Five challenges are inherent in the app development process as itrelates to cloud computing, he said. The first challenge is the lackof common standards and APIs (application programming interfaces) amongcloud service providers. As a result, a developer is often left wondering whether to write toAmazon’s standards — or Google’s, Microsoft’s, 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’scomponents if a developer wants to maintain the option of keepingportions of the application in-house and putting other parts out in the cloud.
A developer’s fourth challenge is how to deal with system securityconcerns, and the fifth is performance consistency in terms of dataaccess.