The Cloud: What it is and What it ain’t

January 24th, 2011 @

Cloud computing is a software engineering revolution. But what about all that buzz: are you excited, confused or annoyed? The cloud is first and foremost a blend of ideological and technological movements converging at the right place and time (which makes it all the more exciting, confusing and annoying). In this article, I’ll dissect what this hot air is really all about. Just as importantly, I’ll discuss what it isn’t.

Face it: things haven’t been this interesting in a long time. We’re in the middle of a software engineering revolution, folks, and clarity is in short supply. There are still many unknowns and misconceptions about the cloud. If we’re going to make the best use of this technology, we need to thoroughly understand it. Let’s see if this list of what the cloud is and ain’t can help.

The cloud is… An elastic paradigm for computation with a particular emphasis on service. You, the client, needs a particular hardware or software service. This can be infrastructure (IaaS: Infrastructure as a service), an application platform (PaaS: platform as a service), an application solution (SaaS: Software as a service) or any other letter you feel like prefixing to “aaS”. Me, the provider, supplies you the service. You get to use a slice of the service and pay only for what you need. If you need a bigger slice, I can easily increase it and charge you a little more. This is great for you because you can manage your costs effectively. You convert massive up-front capital expenditures into much smaller but perpetual operational expenditures. You don’t need to buy the entire service, you just rent it. Virtualization is often part of the offering but is not mandatory – more of an implementation detail.

The cloud ain’t… A new concept. The idea of infrastructure as a service, where a provider gives you network infrastructure, has been around for a long time. Similarly, the concept of using a website, where you don’t install anything on your desktop, is essentially a SaaS. What’s really new is that the cloud ideology bundles and clearly articulates these concepts.

Is… All about scalability. Cloud computing’s main focus is about achieving massive scale. The NoSQL movement, which is all about foregoing traditional relational database, has offered alternative techniques and technologies to fulfill the promise of making massively scalable storage systems. It has done so mainly by sacrificing beloved concepts such as data consistency and integrity in favor of replication, eventual consistency and key/value storage types. The consequences of this shift for real-world systems has not yet been accounted.

Ain’t… Necessarily the tool to solve all problems. In the case of persistence, it’s important to remember that life existed before and will exist after NoSQL. Some problems are well solved by relational databases. Ask yourself this: do you really need to forgo time-tested relational concepts to achieve massive scale? Is your website really the next Do you really need a chainsaw or will tweezers do?

Is… Something that forces you to think differently about security, compliance, governance, trust, dependability and outsourcing. What happens to your data when you outsource your storage? Who is legally responsible to keep your data private and safe? Will your service provider comply with government agency demands? Will your service provider go bankrupt just before your website’s busy season? Suddenly, the concept of owning rather than renting is starting to look good.

Ain’t… Something that early adopters have necessarily thought through. We are still in the infancy stage of this paradigm shift.

Is… A term that has been abused. Don’t add to the abuse by saying “let’s put this app on the cloud” when all you really mean to say is “let’s make this app accessible by anyone on the Internet”. The worst offenders are tech CEOs and Microsoft TV commercials.

Ain’t… a fad.