j3ffyang @ twitter

Comments off

j3ffyang @ twitter

Comments off

j3ffyang @ twitter

Comments off

j3ffyang @ twitter

Comments off

j3ffyang @ twitter

Comments off

j3ffyang @ twitter 2009-02-26

Comments off

Cloud Computing with Linux

Source: http://www.ibm.com/developerworks/linux/./l-cloud-computing

Author: M. Tim Jones, Consultant Engineer, Emulex Corp.

Click the source URL to view the original article. I brief some key points with diagrams

Figure 1. Cloud Computing migrates resources within internet

Figure 2. Virtualization and resource use

Figure 3. The layers of Cloud Computing

Figure 4. Cloud Computing landscape

Linux and open source in the Cloud

Software-as-a-Service

SaaS is the ability to access software over the Internet as a service. An early approach to SaaS was the Application Service Provider (ASP). ASPs provide subscriptions to software that is hosted or delivered over the Internet. The ASP delivers the software and charges fees based on its use. In this way, you don’t purchase the software but simply lease it on an as-needed basis.

Example SaaS
An interesting example of traditional versus SaaS applications is the application life cycle management tool from SoftwarePlanner.com. This company offers their tool using the traditional model, where customers host the application suite within their enterprise, or as SaaS, where customers host the application suite and make it available over the Internet.

Another perspective on SaaS is the use of software over the Internet that executes remotely. This software can be in the form of services used by a local application (defined as Web services) or a remote application observed through a Web browser. One example of a remote application service is Google Apps, which provides several enterprise applications through a standard Web browser. Remotely executing applications commonly rely on an application server to expose needed services. An application server is a software framework that exposes APIs for software services (such as transaction management or database access). Examples include Red Hat JBoss Application Server, Apache Geronimo, and IBM® WebSphere® Application Server. Many other application servers exist, and an extensive list is included in Resources.

Another recent example of SaaS is Google’s Chrome browser. The browser is an ideal environment as a new desktop through which applications can be delivered (either locally or remotely) in addition to the traditional Web browsing experience. (For more information, see Resources.)

Platform-as-a-Service

PaaS can be described as an entire virtualized platform that includes one or more servers (virtualized over the set of physical servers), operating systems, and specific applications (such as Apache and MySQL for Web-based applications). In some cases, these platforms can be predefined and selected; in others, you can provide a VM image that contains all the necessary user-specific applications.

One interesting example of a PaaS is Google App Engine. App Engine is a service that allows you to deploy your Web applications on Google’s very scalable architecture. App Engine provides you with a sandbox for your Python application that can be referenced over the Internet (and additional languages will be supported in the future). App Engine provides Python APIs for persistently storing and managing data (using the Google Query Language, or GQL) in addition to support for authenticating users, manipulating images, and sending e-mail. The sandbox in which the Web application runs restricts access to the underlying operating system. Although App Engine limits the functionality available to your application, it supports the construction of useful Web services. Check out Resources for more information.

Note: Deploying applications in App Engine is free within certain bandwidth and storage constraints. To build production Web sites with App Engine, usage fees are assessed.

Another example of a PaaS is 10gen, which is both a cloud platform and a downloadable open source package for creating your own private cloud. A software stack similar to App Engine, 10gen provides similar functionality to App Engine—with certain differences. With 10gen, you can develop applications in Python as well as the JavaScript and Ruby programming languages. The platform also uses the sandbox concept to isolate applications and provide a reliable environment over a large number of computers (built, of course, on Linux) using their own application server.

Infrastructure-as-a-Service

IaaS is the delivery of computer infrastructure as a service. This layer differs from PaaS in that the virtual hardware is provided without a software stack. Instead, the consumer provides a VM image that is invoked on one or more virtualized servers. IaaS is the rawest form of computing as a service (outside of access to the physical infrastructure). The most well-known commercial IaaS provider is Amazon Elastic Compute Cloud (EC2). In EC2, you can specify a particular VM (operating system and application set), and then deploy your applications on it or provide your own VM image to execute on the servers. You’re then billed simply for compute time, storage, and network bandwidth.

The Eucalyptus project (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) is an open source implementation of Amazon EC2 that is interface-compatible with the commercial service. Like EC2, Eucalyptus relies on Linux with Xen for operating system virtualization. Eucalyptus was developed at the University of California, Santa Barbara, for the purpose of cloud computing research. You can download it from the university’s Web site (see Resources), or you can experiment with it via the Eucalyptus Public Cloud with certain restrictions.

Another EC2 style of IaaS is the Enomalism cloud computing platform. Enomalism is an open source project that provides a cloud computing framework with functionality similar to EC2. Enomalism is based on Linux, with support for both Xen and the Kernel Virtual Machine (KVM). But unlike other pure IaaS solutions, Enomalism provides a software stack based on the TurboGears Web application framework and Python.

Comments off