The days when organizations carefully cultivated vast data centers consisting of an endless sea of hardware and software are not over, at least not yet. However, the groundwork for their eventual transformation and downsizing is rapidly being laid in the form of something increasingly known as "cloud computing." This network-based model for computing promises to move many traditional IT capability out to 3rd party services on the network.
The promise of cloud computing has captured the industry's imagination this year for two big reasons. The first is the growing realization that cloud computing can successfully be used to strategically cut costs and drive innovation. And the second is that current offerings are getting very close to being ready for prime-time use in enterprise environments.
When Web behemoth Google officially entered the cloud computing arena back in April of this year, the space became a hot topic in IT circles almost overnight, despite the long history of availability from major vendors such as Amazon and Sun as well as a number of pioneering smaller vendors such as 3Tera and Egenera.
Other major IT players include IBM, Dell, HP, Intel, and Yahoo are all making serious investments in cloud computing research or major infrastructure Om Malik reported this week. ZDNet's Mary Jo Foley is also tracking Microsoft's movement in this space with project 'Midori'.
Why was Google's entry a signature moment in cloud computing? Most likely because it brought the necessary critical mass to an industry which was growing steadily but had yet to break out into the mainstream. Google has a well-known reputation for globally scalable applications that can reliably service millions of concurrent users while successfully controlling costs and efficiency in everything from power and bandwidth to storage and processing power. So when they claimed that anyone can now "build scalable web apps on top of Google's infrastructure" it received considerable attention.
Cloudy IT: Increase efficiency while innovating
The twin challenges of driving the high costs of information technology down while providing innovative new solutions to improve the business are two forces that often come into direct opposition in the modern IT shop. Businesses must keep costs down to stay competitive while at the same time investing in new ideas that will offer compelling new products and services to those same customers.
These two objectives come into opposition since new spending (on things like R&D) is usually required to successfully innovate while at the same time the pressure is on to provide the same services for less than it cost last year. Companies have come to expect to reap the cost dividend from trends such as Moore's Law, outsourcing, and year-over-year productivity improvements.
Interestingly, it's at this very intersection of issues that cloud computing appears especially compelling. By offering easy access to more efficient IT capabilities across computing, storage, and applications while providing direct and immediate access to both external innovation and innovation capability, cloud computing offers an on-demand, scalable, and repeatable resource that can be used the solve two of the major challenges facing IT departments today. We'll see in a moment how cloud computing can help with these issues in ways that traditional on-premises computing is hard pressed to match.
Aspects of the cloud
Cloud computing significantly changes many aspects of enterprise computing acquisition, operations, and governance, usually though not always for the better. These aspects are:
- Reduced capital expenditures - Upfront costs are dramatically reduced since the onus of initial computing infrastructure investments rests primarily on the cloud computing provider. Ongoing costs are also lower due to economies of scale and multi-tenancy, which allows access to the lower cost of cloud computing resources even for very infrequent tasks.
- Low barrier to entry - Because hardware and software does not have to be acquired, installed, provisioned for every need and resources can be tapped on-demand, often in real-time, cloud computing can be as easy as moving existing applications into a hosted data center, although this depends entirely on the architectural model of the cloud computing provider.
- Multitenancy - Multiple customers share many of the same resources in the cloud computing model. This sharing both distributes cost and enables economies of scale in terms of centralization of resources including real estate, bandwidth, and power. Multitenancy is one of the key enablers of efficiency while at the same time posing certain security issues.
- Security - In theory, cloud computing can be more secure than do-it-yourself computing since shared costs allow larger overall investment in security processes and infrastructure. However, there remain worries about access and control over an organization's sensitive data, though to-date the security record of cloud computing has been quite good.
- Scalability and performance - Cloud computing can provide access to very high levels of scale without enormous costs of traditional infrastructure. Resources don't have to kept on hand for peaks that then remain dormant much of the time and their costs stranded during valleys. Performance of cloud computing can also be very good since many providers have data centers around the world to keep the processing reasonably close to those accessing it over the network. However the distances between the business and the services in the cloud are usually greater than from a local data center. The resulting latency can frequently be a bit larger than with local resources though often quite acceptable for many applications.
- Centralization vs. federation - Cloud computing can be centralized such as Amazon and Salesforce or it can be highly distributed using such peer-to-peer capabilities as provided by BitTorrent or Arjuna. Both methods provide access to economies of scale but as Tim O'Reilly observed this week, building on federated computing computing resources often makes more sense than building on a centralized model, despite the former's rather nascent state at the moment.
- Service-oriented - Cloud computing is a service delivered over the network, but true service-orientation allows such services to be componentized, pluggable, composable, and loosely coupled. OpenID is a good example of such a service that has a well-defined interface and for which there are many providers in the cloud which are essentially interchangeable. Cloud computing has become increasingly service-oriented, with Amazon probably being the farthest along in maturity and breadth of services. In the end, cloud computing is making the Web truly become a Global SOA.
It should be noted that the Web itself is the largest cloud computing resource in existence. Its millions of highly distributed computing nodes have been the most successful model overall in terms of providing value to 3rd party users, and not the walled-garden network providers of yore such as AOL, Prodigy, or MSN. This is likely a crucial hint as to where the ultimate future of cloud computing will lie, with an increasing emphasis on switchable, federated services and less on proprietary, centralized services. Otherwise cloud computing, though invariably based on open source products, could become the next bastion of commercial, platform lock-in.
Clouds of different colors
It's difficult to have a discussion of cloud computing these days without talking about Platform-as-a-Service (PaaS). Paas, another hot acronym du jour, is essentially a cloud computing service that has been opened up into a platform that others can build upon, similar to the way that Windows or LAMP are platforms designed to be built upon. Utility computing is another common phrase in cloud computing discussions and primarily focuses on the business model of cloud computing with a "pay for what you use" model that reduces the waste and underutilization of traditional corporate data centers. While these are both important aspects of cloud computing, they don't completely describe the individual types of cloud computing capability available today.
Within cloud computing itself there are a number of distinct types of services that can be provided and current vendors in the space tend to focus on one specific area or another. It should also be noted that by selecting a cloud computing type and vendor, you are also selecting an architecture. This is a significant decision since the architecture of a cloud computing service will dictate what how it can be used, what standards are supported, the amount of lock-in that is being imposed, and the flexibility, security, performance, and just about every other aspect, including ultimately what it's possible to do.
Here are some of the types of cloud computing services that are emerging today:
- Compute Clouds - Amazon's EC2, Google App Engine, and Berkeley's BOINC are all examples of compute clouds, albeit with very different models. Both of these services allow access to highly scalable, inexpensive, on-demand computing resources that run the code they are provided. Compute clouds are the most general purpose cloud computing services and can be used for a variety of purposes. While enterprises can use any of these services today, they are largely absent the standard management, monitoring, and governance capabilities that large organizations would expect and be familiar with. Amazon does offer enterprise-class support today for their compute cloud and its infrastructure and it's highly open nature allows anyone to run the infrastructure management pieces they choose. There are also an emerging set of enterprise cloud computing offerings such as Terremark's Enterprise Cloud that are designed for enterprise use.
- Cloud Storage - Storage was one of the first major services to appear in the cloud and remains one of the most popular and well-addressed segments in the cloud computing realm. A list of 100 cloud storage services was recently released showing how crowded this market already is. Security and cost are the top issues and vary widely across offerings with Amazon's S3 being the market leader at present.
- Cloud Applications - Software applications that rely on infrastructure in the cloud fall into this category. Cloud applications are an off-premises form of Software-as-a-Service (SaaS) and can range from Web apps that are delivered into users entirely via a browser to hybrids like Microsoft Online Services, which is explicitly offloads hosting and IT management into the cloud, and consists of both native and Web clients with application infrastructure hosted elsewhere.
One type of cloud computing tends to defy traditional categorization and that's harnessing human workers in the cloud, as a service. This is best exemplified by Amazon's intriguing offering, Mechanical Turk, which plugs thousands of people into its on-demand cloud. This model includes any service which provides a consistent, service-oriented interface over a network to interact with people in a directed, collaborative manner. This is an on-demand form of outsourcing as well a cloud-based form of crowdsourcing.
Getting ready for cloud computing in the enterprise
Like so many aspects of Web 2.0, the industry is moving a lot faster than most businesses are currently able to keep up with. Cloud computing, however, may offer such significant and easily accessed economic advantages that it has a good chance of being adopted a bit faster than usual. Particularly as leases come off of data center resources, many IT shops will begin to take a hard look at "cloudsourcing" part of their capabilities and operations in their next round of infrastructure improvements in an incremental fashion.
The first candidate cloud computing pilots will generally be outside of core IT and will be of secondary and tertiary importance to the organization. Forward thinking organizations will begin trying out providers and learning the cloud computing ropes, though certain organizations, like government agencies and others managing extremely vital information, will likely be the last to take the leap. Like any form of outsourcing, fully leveraging the cloud will take some time to get good at as IT departments get clarity around lock-in, security, scalability, reliability, governance, and real-world costs. However, it's clear that the forecast for enterprise IT is increasingly "cloudy" for the next few years.
Are you using or planning to use cloud computing in your organization this year? Why or why not?