uCloud Lab

Cloud Computing

What is a cloud?

Cloud computing is a term used to describe both a platform and type of application. A cloud computing platform dynamically provisions, configures, reconfigures, and deprovisions servers as needed. Servers in the cloud can be physical machines or virtual machines. Advanced clouds typically include other computing resources such as storage area networks (SANs), network equipment, firewall and other security devices.

Cloud computing also describes applications that are extended to be accessible through the Internet. These cloud applications use large data centers and powerful servers that host Web applications and Web services. Anyone with a suitable Internet connection and a standard browser can access a cloud application.

Definition

A cloud is a pool of virtualized computer resources. A cloud can:
  • Host a variety of different workloads, including batch-style back-end jobs and interactive, user-facing applications
  • Allow workloads to be deployed and scaled-out quickly through the rapid provisioning of virtual machines or physical machines
  • Support redundant, self-recovering, highly scalable programming models that allow workloads to recover from many unavoidable hardware/software failures
  • Monitor resource use in real time to enable rebalancing of allocations when needed
Cloud computing environments support grid computing by quickly providing physical and virtual servers on which the grid applications can run. Cloud computing should not be confused with grid computing. Grid computing involves dividing a large task into many smaller tasks that run in parallel on separate servers. Grids require many computers, typically in the thousands, and commonly use servers, desktops, and laptops.

Clouds also support nongrid environments, such as a three-tier Web architecture running standard or Web 2.0 applications. A cloud is more than a collection of computer resources because a cloud provides a mechanism to manage those resources. Management includes provisioning, change requests, reimaging, workload rebalancing, deprovisioning, and monitoring.

Benefits

Cloud computing infrastructures can allow enterprises to achieve more efficient use of their IT hardware and software investments. They do this by breaking down the physical barriers inherent in isolated systems, and automating the management of the group of systems as a single entity. Cloud computing is an example of an ultimately virtualized system, and a natural evolution for data centers that employ automated systems management, workload balancing, and virtualization technologies.

A cloud infrastructure can be a cost efficient model for delivering information services, reducing IT management complexity, promoting innovation, and increasing responsiveness through realtime workload balancing.

The Cloud makes it possible to launch Web 2.0 applications quickly and to scale up applications as much as needed when needed. The platform supports traditional Java�� and Linux, Apache, MySQL, PHP (LAMP) stack-based applications as well as new architectures such as MapReduce and the Google File System, which provide a means to scale applications across thousands of servers instantly.

Large amounts of computer resource, in the form of Xen virtual machines, can be provisioned and made available for new applications within minutes instead of days or weeks. Developers can gain access to these resources through a portal and put them to use immediately. Several products are available that provide virtual machine capabilities, including proprietary ones such as VMware, and open source alternatives, such as XEN. This paper describes the use of XEN virtualization.

Many customers are interested in cloud infrastructures to serve as platforms for innovation, particularly in countries that want to foster the development of a highly skilled, high-tech work force. They want to provide startups and research organizations with an environment for idea exchange, and the ability to rapidly develop and deploy new product prototypes.

In fact, HiPODS has been hosting IBM��s innovation portal on a virtualized cloud infrastructure in our Silicon Valley Lab for nearly two years. We have over seventy active innovations at a time, with each innovation lasting on average six months. 50% of those innovations are Web 2.0 projects (search, collaboration, and social networking) and 27% turn into products or solutions. Our success with the innovation portal is documented in the August 20 Business Week cover story on global collaboration.

Cloud Architecture

Everyone wants a part of the cloud. But getting a part is like grabbing at mist. You have to understand the architecture of cloud computing, and you need the proper tools.

Much of the information on cloud computing is disseminated by vendors with an interest in shaping our perceptions to their advantage. But if we step back from the specific implementations and look at the essentials of the architecture, a clearer picture begins to emerge.

Here's the complete picture, which shows you what's behind the cloud:

The cloud really just connects the user's client computer to a bubble in the server field. That bubble contains a virtual machine for running the user application on its host platform. The virtual machines are arrayed in application space balloons, which can expand and contract based on demand. Multiple balloons for different service offerings can operate in the same server field, allowing multiple tenants to share server resources.

On the user's client computer, a universal remote presents a virtual application and allows the user to control it. The application is really running on one of the servers in the server field, but to the user there is little difference between a virtual application and a real one running on their own computer. The user interface may be exactly the same. The only meaningful difference is that the user will have direct access too storage in the cloud and easier access to joint resources with other users.

For a public cloud, the Big Net Connection is the Internet. Typically, a browser server as the universal remote. The applications may be new ones specifically designed for the cloud, such as Salesforce.com or Google Apps, or they may be enterprise applications that have been ported, such as SharePoint or an Oracle application. As time goes on we may well see existing applications re-released with cloud versions.

In cloud architecture, there are really three levels
  1. The customer level
  2. The service level
  3. The infrastructure level
The service level is composed of applications, running on platforms that provide various processing resources such as computing, communication and storage.

Each of these components has an owner, and one entity can own all or part of the components, contracting out for the others it dosen't own. In a completely private cloud, a company may choose to use its own server farms with virtualized application and storage servers that use a corporate-wide intranet to provide ubiquitous access to all users. In this case, all of the components may be owned by one company. But the true value of the cloud comes from public clouds that allow multiple entities to use cloud architecture to share resources, thus reducing overall overhead.

For example, Amazon.com provides Amazon Web Services (AWS), which allows companies to rent infrastructure. A company may put up its own services and then provide those services to the public. They may build and deploy their own applications, using an open source platform, and thus own the entire service level. Their customers own the client servers and browsers that provide access. Each entity achieves a unique advantage:

Amazon earns profits form fees for AWS. The service company can provide services without deploying data centers. They also can scale quickly to customer demand. Aside from the costs of developing their application, the IT costs are variable with demand, allowing them to retain capital dollars for marketing and other uses. The custom can receive the services anywhere they can get an Internet connection.