Open source code and Linux application in cloud computing

Source: Internet
Author: User
Keywords Applications cloud computing
Tags access an application app application application server application servers applications asp
Cloud computing and storage transform physical resources, such as processors and storage, into scalable, shareable resources on the Internet (computing and storage as services). While virtualization is not a new concept, the sharing of physical systems through server virtualization does make resources much more scalable and much more efficient. Cloud computing enables users to access large scale computing and storage resources, and they do not have to know the location of those resources and how they are configured. As you would expect, Linuxreg plays a very important role here.    Explore cloud computing and understand the mysteries.

Recently, no technical website has not mentioned the so-called cloud Computing (cloud computing). Cloud computing is really about providing computing resources (computers and storage) in the form of services. This involves the ability to dynamically extend services to more computers and storage in a simple, transparent way. All of this is analogous to the idea behind utility computing (utility computing). In utility computing, computing resources are seen as a metering service, like more traditional utilities such as water or electricity. Their differences lie not in the goals behind these thoughts, but in the existing technologies that combine to make these ideas real.


One of the most important concepts behind cloud computing is scalability, and the key to achieving it is virtualization (virtualization). Virtualization gathers multiple operating systems and applications on a shared computer to make better use of the server. Virtualization also allows for online migrations, so when a server is overloaded, an instance of an operating system (and its applications) can be migrated to a new, less-busy server.


Externally, cloud computing simply moves computing and storage resources out of the enterprise and into the cloud. Users define resource requirements (such as computing and WAN, bandwidth requirements), and cloud providers assemble these components in their infrastructure.

Cloud computing migrating resources over the Internet


The goal of cloud computing is to make these resources cheaper than the resources you can provide and manage. In addition to reducing costs, cloud computing has greater flexibility and scalability. Cloud computing providers can easily extend virtual environments to provide greater bandwidth or computing resources through the provider's virtual infrastructure.


The environmental advantage of cloud computing is that it can virtualize and share resources between different applications to improve server utilization. The following illustration shows an example. In this example, different applications use 3 separate platforms, each running on its own server. In the cloud, you can share (virtualize) servers between multiple operating systems and applications, reducing the number of servers. Fewer servers mean less space (less space for data centers) and less power for refrigeration (less carbon footprint).

Virtualization and Resource Usage


Now let's explore how Linux and the open source community can contribute to the cloud computing landscape. As you may have guessed, Linux and open source code play an extremely important role.


Software-as-a-service


SaaS is access to software on the Internet as a service. An early SaaS approach is the creator Service Provider (ASP). ASP provides subscriptions to software stored or delivered on the Internet. The ASP delivers the software and charges according to the use of the software. This way, you don't have to buy the software, just hire the software on demand.


Another aspect of SaaS is the use of remotely executed software on the Internet. This software can be a service used by a local application (defined as a Web service) or a remote application that is seen through a Web browser. An example of remote application services is Google Apps, which provides some enterprise applications through a standard Web browser. To execute applications remotely, it is often necessary to rely on an application server to advertise the required services. An application server is a software framework that publishes APIs for software services (such as transaction management or database access). Specific examples are Red Hat JBoss creator Server, Apache Geronimo and Ibmreg; Webspherereg; Creator Server. There are also a number of other application servers, and a detailed list is given in the Resources section.


Another recent example of SaaS is Google's Chrome browser. This browser is an ideal environment for a new desktop, and can be used to deliver applications (either locally or remotely), in addition to the traditional Web browsing experience. (See Resources for more information.)


Platform-as-a-service


PaaS can be described as a complete virtual platform that includes one or more servers (virtual on a 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 other cases, you can provide a VM image that contains all of the user-specific applications.


An interesting example of PaaS is the Google App Engine. APP Engine is a service that lets you deploy WEB applications on Google's highly scalable architecture. APP Engine provides a sandbox for Python applications that can be referenced over the Internet (more languages will be supported in the future). In addition to supporting user authentication, mirroring operations, and e-mail delivery, APP Engine also provides PYTHONAPI for persistent storage and management of data (using Google Query Language or GQL). The sandbox where the Web application runs will limit access to the underlying operating system. Although app Engine limits the functionality available to applications, it supports the construction of useful Web services. See the Resources section for more information.


Note: Deploying applications in App Engine is free within certain bandwidth and storage constraints. However, if you want to build a production Web site with App Engine, you need to evaluate the usage fee.


Another example of PaaS is 10gen, which is both a cloud platform and a downloadable open source package that can be used to create your own private cloud. 10gen is a software stack similar to app Engine that provides functionality similar to the app Engine-but there are some differences. With 10gen, you can use Python and JavaScript. And the Ruby programming language to develop an application. The platform also uses sandbox concepts to isolate applications, and many computers that use their own application servers (of course, built on Linux) provide a reliable environment. Infrastructure-as-a-service


IaaS is the delivery of the computer infrastructure in the form of services. This layer differs from PaaS in that it provides only virtual hardware and no software stack. The customer provides a VM image that is invoked on one or more virtual servers. IaaS is the most primitive form of computing as a service (except access to the physical infrastructure). The most famous commercial IaaS provider is the Amazon elastic Compute Cloud (EC2). In EC2, you can specify a specific VM (operating system and application set), and then deploy the application to it, or provide a VM image to be executed on the server. Then, you only need to pay for calculation time, storage, and network bandwidth.


The Eucalyptus project (elastic Utility Computing architecturefor linking Your Programs to useful BAE) is an open source implementation of the Amazon EC2, It is compatible with the commercial service interface. Like EC2, Eucalyptus relies on Linux and Xen for operating system virtualization. Eucalyptus was developed by the University of California (Santabarbara) for cloud computing research. You can download it from the university's Web site (see Resources), or experience it through Eucalyptus Publiccloud, although there are some limitations.


Another EC2-style IaaS is the enomalism cloud computing platform. Enomalism is an open source project that provides a cloud computing framework that functions like EC2. Enomalism is based on Linux and supports both Xen and Kernel Virtual Machine (KVM). Unlike other pure IaaS solutions, Enomalism provides a software stack based on the TurboGears WEB application framework and Python.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.