Dana Moore is a Division Scientist at BBN Technologies
Cloud computing is coming of age. It provides virtually unlimited computing resources in a wide variety of offerings. It offers new business models as to how to leverage, package, and access computing resources. An actual example illustrates some of the cloud's potential. Franz Inc, makers of advanced Semantic Web tools, wanted to test its software product across dozens of machines and databases. The problem was that Franz didn't have machines or the software and obtaining them was cost prohibitive -- in excess of $100,000 -- not to mention the delays in acquisition and configuration. However, the test was critical. It would demonstrate the product's value and provide a credible differentiation from the competition. What to do? Franz opted for a cloud solution, staging its service on Amazon's S3. The company ran its complex tests in a few days, and gained a wealth of insights and performance data to evaluate -- and at a cost of less than $200. For Franz, cloud computing changed the competitive analysis and understanding of performance in the large at a fraction of the cost and time.
Cloud Computing: What is It?
Cloud computing is nothing more nor nothing less than network-accessible, on-demand computing resources. The computing resources can range from low-level resources such as memory and disk space to high-level resources such as access to an Oracle database, or an entire CRM system, or offloading an enterprise payroll service. Gartner sees this as two major divisions -- the low end of cloud computing focuses on resources with virutalized systems, while the high end focuses on large scale services or Software-as-a-Service (SAAS). They are distinct, but both part of cloud computing. The resources, selected based on your needs, are available on-demand with charges based on actual usage. You pay for what you use.
Cloud computing is very much the opposite of most modern enterprise computing expense model which pay for a set of computer resources based on peak needs with significant latency, and bureaucracy, to increase the number of computer resources. Many enterprise resource stand idle waiting for the new product release or some other peak interaction period. And if your demand estimates are wrong, which most likely they often are, you have unhappy users or unhappy accountants (or both!). Cloud computing dramatically changes the cost profile from peak cost to average cost. It also changes the allocation cycle form weeks and months to minutes and seconds. There are also some dark clouds too. There are currently no cloud standards or, for that matter, long established cloud offerings. Confounding the dilemma, there are dozens of cloud offerings from almost every major computer vendor. Each vendor's offerings are different, some dramatically so. This reflects the nascent nature of cloud computing -- vendors experiment with service offerings, pricing, and the like. You can also be assured that not all will survive. And if that isn't enough, you can even establish your own internal cloud to more efficiently use your existing computing resources. No wonder there is some discomfort with this revolutionary change. But with most discomfort comes opportunity.
Put simply, cloud computing aims to better leverage computing resources from the mundane but critical needs of memory and processing to huge potential of massively networked applications. So where to start? First, let's acknowledge the most frequently encountered comment made by seasoned IT managers, which is "This cloud computing stuff is too ephemeral, too difficult to manage and control for me. I feel that my resources are too much 'out of sight' for me and my staff." This concern is perfectly comprehensible -- if you can no longer walk behind the machine and simply pull the plug; if you can't unplug the machine from the LAN, do you still control it? But consider a crashed disk drive on your desktop PC -- the data are in a sense "tangible." Everything on your drive is sitting right there in front of you, tantalizingly you, taunting you, and yet totally not "accessible." Our comfort with physicality must wane for in many ways it has been eclipsed by the current levels of abstraction and virtualization found in the modern enterprise. The only thing truly novel about cloud computing is how extreme it gets. We may smile at the naivete of the example, the dichotomy between "visible and tangible" versus "remote but accessible" is perfectly human; it's in our hunter/gatherer genes to want resources to be at arm's length. The notion is actually rather ironic though, given the distributed nature of our enterprise data farms and the offsite backup sites we purposely locate far from our primary data centers to assure survivability.
Two Ways of Thinking About Cloud Services
IT managers considering integration with or movement to cloud services divide rather neatly into two intellectual camps, one that normally thinks in terms of software as a service, and the other which thinks in terms of creating platforms as a service. Gartner, Wikipedia, and others discuss these two points of view which we will call "cloud-ists" and "compute-ists".
If you are a "cloud-ist", then you look at the phenomenon through the lens of Software-as-a-Service (SaaS,) and the idea is that anything your IT shop can offer -- anything from emulating a complete operating system to, payroll services, to CRM -- resides on systems "out there" on the net, provisioned and maintained by "someone else." One alias often heard as it applies this point of view is that cloud computing is tantamount to using OPM, in this case meaning other peoples' machines. This camp tends not to think below the level of a specific application or composite application that might be composed (the term "mashed-up" is often heard in this context) by using exposed APIs of specific applications
If you are a "compute-ist", then you see things more or less as existing in the mould of Platform-as-a-Service (PaaS), where PaaS is pretty full scope. Wikipedia lists a host of capabilities under the sobriquet including application design, development, testing, deployment and hosting. Database facilities, and security are also directly exposed in a PaaS implementation, whereas in the SaaS view, they are most frequently not exposed. You can look at Google Application Engine (GAE) as exemplifying the SaaS viewpoint and Amazon Web Services (AWS) and representative of PaaS.
Both SaaS and PaaS expect to interact with the user via lightweight clients (commonly the client is entirely delivered through the browser), but PaaS can exist either inside or external to your own data center, and not necessarily off premise. The PaaS point of view might be more commonly found amongst government and academic IT managers, while the first is probably more common amongst smaller and newer companies, researchers and independent software developers.
If you're a "cloud-ist", you may well have heard of some impressive examples of using OPM. It's well known that the ability to accommodate sudden growth in the demand curve is a critical success factor. At this writing, one of the continuing and acknowledged problems confounding Twitter's market growth is the frequency of service outages caused by demand spikes. Balancing the need for reserve compute capacity with the need to preserve capital has confounded more than one promising startup. A well-known problem for an exciting new offering is the phenomenon of being "dugg" (mentioned on Digg's website) or "slashdotted" (being mentioned on slashdot.org) This creates a wellspring of excitement (generally a good thing) and drives an immediate and inordinate amount of traffic to a site (possibly disastrous). Being able to understand the effect of flash traffic -- and even better to mitigate against -- it is a significant differentiator between two similar services, and one which only a few years ago would have absorbed significant working capital. Observe this at work in the following example which illustrates the importance of understanding how your offering will respond to peaks in user demand, and getting the data nearly free.