The Cloud Dilemma for Developers

Written by Javier Soltero
February 3rd, 2009 | 7 Comments | Posted in IT Industry

windows-clouds2We at Hyperic have been speaking with lots of companies about their plans to move various development efforts into the cloud.  Over the last few years our strongest relationships have been with operations teams and systems administrators, but since launching Cloudstatus and our AMI version of Hyperic HQ we are speaking with more and more developers about building and deploying apps [in the cloud].

Developers like the cloud since it lets them bypass operations (i.e., the control agents) and serve their environment needs quickly. In the cloud, developers can build an application and launch it themselves, on their own, without waiting for hardware to be purchased, racked & stacked.  Without waiting for hardware or virtualization capacity planning, electricity consumption plans, cooling or green discussions to finish. If you’re a developer, the cloud offers speed! The cloud is way cool. You’re the man. But developers too often forget to ask themselves what happens afterwards?  Who will make sure the app is always available?  Apps in the cloud will still have performance issues and will still break.

The first cloud dilemma for developers… For better or for worse (up for debate), by publishing to the cloud devs become responsible for all three phases of the application – build, deploy and manage – whereas typically they are only responsible for the build stage.  Red flag – few developers have an operations background. And they usually know little about application performance monitoring, or the tools of this trade.

Developers often misstep by putting a web application up on Amazon’s EC2 cloud computing environment assuming that bad code, bad programming or a poor choice of architecture is somehow not a problem, or that it will somehow work out in the end. Wrong. Wrong. Wrong.  Can the ease of spinning up a new AMI in a nanosecond mask application performance problems like malformed queries, memory leaks and runaway processes?  Maybe, but the issues will catch up with you and you’ll be running up lots of unnecessary charges on AWS.

The second cloud dilemma for developers is subtle but should frighten any business that has to stand behind a service or application that it hosts in the heavens. This dilemma is centered around service level agreements (SLAs) that developers must consider to avoid becoming become trapped between a rock and a hard place.

The Rock: The SLA the developer provides to customers
The Hard Place: The SLA that the cloud provides to the developer

Almost never shall the two meet. What developer wants to be on the hook for a customer SLA that REQUIRES MORE THAN the cloud platform’s SLA? You’d be surprised how many developers make this bad decision and don’t even know it.

With the cloud, It comes down to this — performance, cost and availability are at the center of a very important job that rests in the hands of someone who typically doesn’t have the experience to make those decisions alone, the developer. That’s a dilemma no business wants to find itself in.

We believe that companies have two options.  One: continue to leverage our friends, the ops guys, to make sure your applications perform — wherever they may live.  And two: wait for the inevitable evolution of the role of developers  –  some will learn new skills and address the monitoring and management challenges head on.

How about you? Are your apps in the cloud rock solid? Do you see any “epic fails” in the cloud that you don’t see on-premise?  Who manages your apps in the cloud?

If you like this post then please consider subscribing to our RSS feed. You can also subscribe by email and have new articles sent directly to your inbox.

Leave a Reply 11082 views, 6 so far today |

Related Posts

Follow Discussion

7 Responses to “The Cloud Dilemma for Developers”

  1. George Says:

    Great Article Javier,

    Deployment management, pre and post support, customer service, security and legal issues have to be addressed.

    While I’m leary of moving all apps to the cloud (I am after all an ops person), my advice would be to tread carefully, and make sure you have every issue addressed.

    What is the physical Security like? Who is responsible for backups and what happens if by some event all of your data is lost?

    There is a ‘perfect cheap solution’ that cloud computing is masqurading around as and it’s time to tell it like it is.

    Thank you,

    G

  2. Doug Says:

    There is no requirement that developers manage their apps in the cloud. For companies with a current non-cloud dev, test, deploy scenario, why would they not follow a similar path for the cloud?

    Do you think Microsoft would drop a version of Word onto Windows Live without testing or having their IT folks check it out?

    What the cloud does is make it much easier for the one person shop to get their products to the mass market. They’ve always had the dev/test/production hats on anyway, so what has changed?

    doug

  3. Javier Says:

    Doug,

    Good questions. First, a lot of cloud adopters from companies with established dev-test-deploy are going to the cloud because the ‘deploy’ portion of the process is too slow (perhaps for all the right reasons). Look at all the prominent enterprise case studies for AWS and notice how they all involve an “ops was the obstacle” kind of motivation. Operations teams are having to catch up with the responsibility of managing applications built outside their controlled infrastructure. This will take time, new tools, and new processes.

    Second, I think you’re comparing apples to oranges here. The developers I am referring to aren’t working at Microsoft building a cloud enabled version of Word (which coincidentally as you point out would run on their own company’s cloud infrastructure). I’m referring to developers building apps on Amazon AWS or Google AppEngine (and similar offerings).

    Finally, yes, the cloud is fast, easy, and at least initially affordable way to get applications out to market. Developers doing this have little or no experience managing this type of infrastructure and too often are going in expecting the cloud provider to somehow insulate them from the problems associated with scaling and running apps. The majority of these types of web developers have never had “dev/test/production” hats on.

    -javier

  4. John Says:

    @Javier

    “Second, I think you’re comparing apples to oranges here. The developers I am referring to aren’t working at Microsoft building a cloud enabled version of Word (which coincidentally as you point out would run on their own company’s cloud infrastructure). I’m referring to developers building apps on Amazon AWS or Google AppEngine (and similar offerings).”

    That’s Doug’s point, those people building apps on AWS or AppEngine are one man shows who have had to wear all the hats in the first place.

    Again, what has changed? We have two classes of developer’s which will continue to act in the same manner as before, only with the need for new knowledge on the part of the latter.

    In any case, I urge everyone to check out Erlang. Easy management and concurrency for your backend apps built into the vm. Its amazing.

    http://nickelcode.com/2008/12/15/erlang-and-cloud-computing-a-fine-pair-indeed/

Trackbacks

  1. Cloud Droplets #55 The 1955 Double Die Cloud | IT Management and Cloud Blog  
  2. Programming news roundup: Embarcadero’s new pricing plans, cloud computing’s limitations, and more | Programming and Development | TechRepublic.com  
  3. CRM Outsiders » Blog Archive » The Changing Nature of the Developer Thanks to Cloud Computing.  

Leave a Reply