Cloud Computing and the 10X Effect

14 Comments

In the IT industry, technology and the usage evolves faster than in perhaps any other industry. As a rule of thumb, systems can grow 10 times under their current architecture or paradigm, then they must be re-architected. This 10X effect causes old technologies to become obsolete and new ones to emerge. It also underlies the massive shift to cloud computing.

The last major computing infrastructure paradigm shift happened in the ‘80s when “client/server” was introduced as the new way to design business applications. Those applications typically ran on x86 computers – aka PCs.

Then, in the ‘90s, the “client” part of this overall design was disrupted and changed with the advent of the Internet. Instead of having applications running on a desktop PC accessing application servers on other PCs, we started accessing applications through web browsers which did little more than rendering on your own desktop or laptop computer. Now, 10-15 years later, we’re seeing the “server” side of client/server disrupted and replaced by cloud computing.

A New Architecture for More Devices

The underlying driver of these changes is the 10X effect — writ large. The early Internet had around 10 million users. Today we have on the order of one billion users (100X) on the Internet, and up to three billion if you count Internet-enabled mobile phones too. Whereas in the early days of the Internet, there were perhaps one million websites, today we have about 100 million active websites (100X). The total number of Internet connected devices is today around five billion (a 100X growth from about a decade ago), and the boldest predictions say that in the next few years this number will grow to a trillion! That’s 200X the current number.

These massive growth numbers, stepping up two or three orders of magnitude in about a decade, are forcing us to look for a new way to design our IT systems. The old architecture is completely unable to handle the new compute load, so we must re-architect the systems on all levels. Cloud computing is the new architecture.

Cloud computing is a term that reaches from the lowest piece of computer hardware all the way up to the highest level of web and mobile services. Google’s (s goog) search is a cloud service. Salesforce.com (s crm) is a cloud company. Apple’s iTunes (s aapl) is music and entertainment in the cloud. Amazon Web Services (s amzn) is cloud computing, as is Microsoft (a msft) Azure. Cloudera, RightScale and Eucalyptus are innovators of infrastructure software for the cloud. The modern servers produced by Dell (s DELL) and HP (s hpq) are made for cloud computing, as are the new storage solutions from giants like EMC (s emc) and NetApp (s ntap) and from newer players such as Fusion-io.

Computers and the Three Musketeers

Whereas in current IT systems, computers and other resources are hardwired to serve just one specific set of users or set of applications, cloud computing lets any computer serve any need of any user. Computers are finally learning from the Three Musketeers: one for all and all for one.

Interestingly, the converse can be true as well in the cloud. When usage shoots through the roof (think of a mobile game that suddenly becomes popular), all cloud computers can be put to the use of one single application. Compute resources such as servers, storage devices and network equipment, can be called to duty and sent back on leave in an instance. This is called “elasticity.”

The “one for all and all for one” principle is possible because computer and software engineers have made sure that compute resources are fungible, i.e. mutually replaceable. You’d think engineers would have made this possible decades ago, but this has been a very hard nut to crack. It requires new thinking so new products (both software and hardware) are ready to operate across multiple computers from the start. This may sound like a natural thing to do, but so far in our history of computing, most software and hardware products were designed to function on their own with little interaction with other similar products.

Fungible compute resources that produce enormous elasticity are the only way to serve the growing Internet. When we reach the point of having one trillion connected devices, those connected devices all need service from the underlying computer network, but they do so at unpredictable times and with unpredictable workloads. It’s totally impossible to have servers devoted to certain uses — sitting there idly waiting for the user or the application to need them. Such a model would require close to a trillion servers. But with cloud computing, resources can be shared across the cloud, and a much smaller number of servers can successfully serve the fluctuating needs of the users and the connected devices. With fewer servers, we save time, money and energy.

As compute loads grow 10 times, 100 times and even 1,000 times, we need new architectures for our IT systems. In cloud computing, it is all about creating elasticity by making the compute resources fungible. When any computer can step in at any time to do any computation needed, scaling will no longer be an issue.

Marten will sharing his thoughts on “The Future of the Cloud” at our Structure 2011 event in June.

Marten Mickos is CEO of Eucalyptus Systems.

14 Comments

Paul Calento

I’d argue that cloud computing is a paradigm, with underlying architectures potentially changing over time. But while today we’re talking about a return to server-side apps. Is tomorrow, as mobile devices get more powerful the return of client/server?

David Robins

In the near future the majority of clients will be mobile devices. Soon anybody could connect a mobile device to a keyboard and LCD monitor and have a full fledged PC on the go. This model is supported nicely by cloud competing paradigm. As the CPU in the mobile devices get more powerful and the storage migrate to the cloud, The most used clients will be mobile devices.

PaulCarneyJr

Jinesh Varia from Amazon wrote a great white paper back in January, 2010, that outlines some concepts of cloud computing that support your premise: “Scriptable Infrastructure”, proactive scaling and most importantly: building modern-day software by decoupling its dependencies. That last one in particular requires software engineers to look at how they build software from an entirely different angle than we are used to.

We need to stop depending on in-memory session state and depend on data stores like MongoDB so that application servers can scale to whatever level is needed. He also talks about programming for failure so that software errors are handled gracefully and the user is directed to systems that will work.

It is an exciting time as we face a new revolution in how the “cloud” resources will allow us to build applications in very different ways. Keep us up-to-date on what you are hearing and seeing – we appreciate it!

Tyler`

So, cloud computing requires not only that the servers be interconnected and “fungible”, but also that the software running on those servers be designed and programmed to be interconnected and “fungible” as well?

I’m still a little confused when it comes to what cloud computing actually means; I’ve seen so many ‘definitions’…

Paulus A Carr

Nice to see cloud computing being embraced more, the concept has been around for several years. Loudcloud comes to mind.

Eddie

This is a nicely written article (especially for people who are peripheral to cutting edge IT) – I might have titled it differently since its not merely a factor of 10 but the article describes scales (I’d use “orders of magnitude”).

Jack

The new internet design has to be unblockable. China will change rapidly if free flow of information is allowed to touch her shores. Speed and the inability to block should be key considerations

shenzhen

Sorry Jack, I’m afraid the contrary is true. Chinese gov’t is building it’s own cloud servers in one city. It’ll be easier for her to control one spot instead of mounting the great firewalls.

Puneet Choudary Yamparala

Actually it was not the computing technology which was major hindrance for the growth of cloud computing. The engineers would have made progress in that direction a decade ago if the users were ready to access such technology. It is only very recently that a majority of users have access to broadband internet.

The same concept applies to mobile cloud computing, people are not willing to allocate resources to solving the issues around mobile computing because it is not yet a big enough market.

– Puneet
Apptivo.com

Comments are closed.