BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles OOPSLA Debate: Cloud Computing for the Wrong Reasons

OOPSLA Debate: Cloud Computing for the Wrong Reasons

Trying to keep up with the buzz and hype of Cloud Computing is like being on a conference call with 100 people shouting into a megaphone. Having been around for the latest 20 years of computer science evolution, it's still a bit of a surprise (or maybe it isn't) that we end up with the same deafening choir each time a new technology emerges. The technology evolution cycle of 4-5 years means further opportunities to make more money. Computing has evolved from mainframe to client-server, case-tools, dot-com, enterprise architectures like EJB and DCOM, SOA and now Cloud Computing. The IT-business has always been and will always be about making money.

So what are the reasons for people to look to Cloud Computing as the next best thing? Letís start with the typical developers and architects; they really like the concept of Infrastructure-as-a-Service. No wonder, many of them have been living in a straightjacket for most of their lives where internal IT or outsourcing vendors have been a bottleneck in the development phase. Now they can finally write applications and deploy anywhere they want without anyone interfering.

For typical big brand vendors with complex technology stacks Cloud Computing provides a new distribution channel for their product and services. Since they pre-configure and pre-package the services, it can (allegedly) be used by people who do not have the necessary skill or experience to appropriately configure and operate the product. Big business will also find that it is a way to earn money on surplus hardware. Since there are very few cloud computing standards customer retention will be very high due to vendor lock-in.

For business executives IT based on Cloud Computing makes sense. It offers a economic model of pay-as-you-go. It is easy to balance cost with income - a dream come true...

For academic researchers Cloud Computing represent a fantastic opportunity with numerous areas to explore. It even makes past research efforts in parallelism, scaling and virtualization relevant.

So what is Cloud Computing really?

  • It's more of the stuff you don't need
  • It's not the holy grail of reusable services
  • it's not the general purpose Swiss army knife of development and hosting

If all you need is a bicycle, having a space shuttle instead isn't a good thing (even when it's at the cost of a bicycle). The keyword is complexity. What do you do when it doesn't start? What do you do when it doesn't behave as you wanted? How do you change its behaviour? Unless you are a rocket scientist you're out of luck. Do you have the requirements for all (or even most) of the features? Do you have the skill and experience to use the architecture on your own? If you don't, it doesn't matter whether you are using Cloud Computing or not...

"Software development is expensive so we should reuse as much as possible". Yeah, here is news for you: for 40 years we have been trying to reuse code and it hasn't worked! Cloud Computing represents no fundamental change in the challenges we face when reusing software. Reuse requires both very similar requirements and context. The main problem today is that every customer has a slightly different context for use and a slightly different requirements. It may become easier from a technical point to integrate services within the same cloud, but complexity will increase in areas like security and quality of service. Reuse of data with simple services (map/geodata services) has some benefits, but it won't change that fact that you still need a developer to code the new functionality.

IT refers to more than just Internet start-up companies such as Facebook and Amazon. It is about supporting the business processes. Some processes can be supported with the use of Cloud Computing, but most shouldn't. It is a decent hosting platform for suitable applications, but most applications require integration, security and flexibility that impossible to support on general purpose Cloud Computing platform.

Software-as-a-Service is a nice idea, but it is not for everyone. The number and types of standards that will arise in Cloud Computing will make SOA and services look like child's play, and most will be ignored so we are not really moving on at all! Rewriting software that already works is really expensive and has few real business values. Let's face it, only a small percentage of software will become Cloud-oriented in the next 5-10 years. And by that time the next big thing will have already happened to make Cloud Computing obsolete.

So what are the right reasons to use Cloud Computing? It is great for niche solutions like:

  • Startup companies without technical infrastructure and with the need of rapid scalability
  • Data centric reuse like geodata, government information etc.
  • Office desktops (mail-, browser-, calendar-type applications)
  • Gaming (server based 3D-rendering with cheap terminals)
  • Businesses with dynamic high volume processing
  • Applications with high volume and relaxed security requirements

So what should the developer really look for? Internal IT departments and/or hosting vendors with adequate self-service solutions where security, standards, patching etc. are well taken care of. Environments which enable the development of "bicycle" solutions based on what you need and not what you get for free. In fact, academic researchers should stop fuelling the Gartner's hype curve with unrealistic expectations for Cloud Computing and let time to market and productive requirements drive the sustainability of emerging technologies like Cloud Computing.

Big vendors should probably realize that "more of the stuff you don't need" isn't the way to go. They need to "help developers deliver what they promise" with less complexity.

Business executives should change how their IT-organization work. The emergence of Agile and Lean thinking makes it possible to create a much closer bond between business and IT. Making it possible to switch from a cost-oriented approach (how much will it cost me) to an income oriented approach (how much money did I earn based new functionality I got in the previous release).

We challenge you to respond to this article and prove us wrong. Give us real use scenarios, not hype and buzz! For anyone that would like to join us in a face-to-face in a "Duel at Dawn", we will be at the Cloud Computing Workshops at OOPSLA 2009.

Rate this Article

Adoption
Style

BT