Understanding Public Clouds: IaaS, PaaS, & SaaS

來源:互聯網
上載者:User

Understanding Public Clouds: IaaS, PaaS, & SaaS

Contents

Overview

Infrastructure as a Service (IaaS)

Platform as a Service (PaaS)

Software as a Service (SaaS)

Summary

Overview

Several months ago I wrote about the different types of Cloud computing in a post titled: The Many Flavors of Cloud Computing. In that post I described Software as a Service, Platform as a Service and I concluded with a description of Software plus Services which is Microsoft’s marketing pitch on their PaaS and SaaS offerings.

Cloud computing is a dynamic innovation in the software industry. Consequently, much has changed since I wrote my original assessment on Cloud computing. Everything in my previous post is still accurate. My definitions of Software as a Service, Platform as a Service, and Software plus Services are still true. However, in the past year the software industry has seen an “as a service” hype wave. During this hype wave many software vendors attempted to create a Cloud taxonomy that favorably classified their product as a premier Cloud offering. This hype wave is dying down and in the past several months it seems that the industry has settled upon the taxonomy shown in Figure 1.   

Figure 1 – Cloud Computing Taxonomy or Cloud Computing Stack

In this post I would like to describe Cloud computing again. I’ll do this by describing each of the offerings shown in Figure 1. To guide this discussion I will answer the following questions for each of the Cloud offerings shown.

1. Who is the customer?

2. What service is being provided?

3. What is being hosted? (What is the unit of deployment?)

4. What is the pricing structure?

5. What are some real world examples (actual vendors)?

Infrastructure as a Service (IaaS)

In its purest incarnation Infrastructure as a Service (IaaS) offers compute power, storage, and networking infrastructure (such as firewalls and load balancers) as a service via the public internet.  An IaaS customer is a software owner that is in need of a hosting environment to run their software. Originally the term for this type of offering was Hardware as a Service; however, in the past year or so Infrastructure as a Service has gained favor and is now the more common term.

IaaS vendors use virtualization technologies to provide compute power. Therefore the unit of deployment is a virtual machine which is built by the software owner. Figure 2 illustrates how a virtual machine is built for an IaaS environment, uploaded to the environment, configured, and then deployed within the environment. An application (the software owned by the software owner) as well as anything that the application requires will need to be installed on the virtual machine. For example, if an application requires a relational database then the relational database will need to be installed on the virtual machine in addition to the application itself. The virtual machine can then be uploaded to the IaaS vendor’s hosting environment where it can be configured to use the IaaS vendor’s raw storage. Once configured, the virtual machine can be deployed and started via some form of automation which automatically finds available hardware to run the virtual machine. The computers needed to run the application and the raw storage that is needed by the application are owned and supported by the IaaS vendor.

Figure 2 – Infrastructure as a Service

It is important to configuring each virtual machine to use the Cloud vendor’s storage offerings as opposed to using storage that is local to the virtual machine. (The “C:\” drive for example.) Configuring virtual machines in this manner allows the cloud vendor to backup data and provide a more durable form of storage since the data resides outside the virtual machine itself.

Some IaaS vendors offer Cloud Services. Examples of Cloud Services are: Database services, queue services, and services which provide raw storage for any binary data. Cloud services reduce the amount of licensed software that needs to be installed on the virtual machine. These capabilities are typically available via a SOAP or REST API.   If application code can be rewritten to utilize these services instead of software that is installed onto the virtual machine then the customer can reduce their third party license costs and also reduce the amount of software that they need to support at run time.

IaaS vendors will charge based on several line items. Figure 3 below shows a list of common usage metrics that will be measure by most IaaS vendors in order to produce a bill. In other words, a charge for each metric will be seen on the customer’s bill.

Line Item

Description of charge

Compute Usage

per hour used within the billing period

Data Transfer-in

per GB received within the billing period

Data Transfer-out

per GB sent within the billing period

Put/List requests

per Million within the billing period

Storage

per GB used in the billing period

Storage transfer-in

per GB sent to storage within the billing period

Storage transfer-out

per GB sent to storage within the billing period

Storage I/O Requests

per thousand Requests in the billing period

Figure 3 – Typical Pricing Model for IaaS vendors and PaaS vendors

Figure 4 shows a list of a few of the IaaS vendors in the software industry today and their offerings. When comparing the offerings of the various vendors it is helpful to organize their capabilities according to Hosting Environment, Storage, and other Cloud Services.

Vendor

IaaS Offering

Hosting Environment

Storage

Cloud Services

Amazon

Amazon Web Services

Elastic Compute Cloud

Elastic Block Storage

SimpleDB

Simple Storage Services (S3)

CloudFront

Simple Queue Services (SQS)

Elastic MapReduce

ServePath

GoGrid

GoGrid Cloud Hosting

GoGrid Cloud Storage

None.

Rackspace

Mosso|The Rackspace Cloud

Cloud Servers

Cloud Sites

Storage is integrated with the Cloud Servers offering.

Cloud Files

Figure 4 – IaaS Vendors

To summarize, the value of IaaS is that compute power, storage and supporting infrastructure (firewalls, and load balancers) can be acquired and utilized on-demand. These datacenter capabilities do not need to be purchased and owned by the customer. IaaS allows these capabilities to be turned on and off at will and customers are only charged for what they use when they use it. IaaS is also a flexible offering that often appeals to infrastructure architects. Infrastructure architects like IaaS because it provides an infrastructure based approach to outsourcing datacenter workloads to the Cloud. If an application can be virtualized it can be uploaded to an IaaS environment and run. Figure 5 summarizes Infrastructure as a Service.

Customer

Software owner that would like an application hosted in the internet for their end users.

Offering

Compute power, storage, and networking infrastructure. Some IaaS vendors may also provide Cloud Services.

Unit of deployment

Virtual Machine Image

Pricing structure

Compute usage per hour, data transfer in/out per GB, IO requests per million, storage per GB, data transfer in/out to storage per GB, data storage requests per thousand. All charges per billing period. For more details see Figure 3.

Examples

Amazon, GoGrid, and Rackspace. For more details see Figure 4.

Figure 5 - IaaS Summary

Platform as a Service (PaaS)

A Platform as a Service (PaaS) also offers compute power, storage, and networking infrastructure as a service via the public internet. However, PaaS environments also offer a runtime environment for compiled application code. This means that an entire virtual machine does not need to be built, configured and uploaded. Only the application code needs to be uploaded and started. PaaS environments also offer an array of Cloud Services. We will see why Cloud services are important when I discuss the runtime environment. A customer of a Platform as a Service offering is also a software owner that is in need of a hosting environment for their application.

A PaaS environment provides compute power by providing a runtime environment for application code. Therefore the unit of deployment is a package that contains application code or some compiled version of the application code. This is shown in Figure 6.  

The application package shown in Figure 6 only contains what was developed by the software owner using a programming environment that is supported by the PaaS vendor.  For example, Microsoft’s Azure Services Platform supports the .NET Framework and php. As another example Google’s App Engine supports Java and Python. Another distinction between PaaS environments and IaaS environments is that most PaaS vendors provide some collection of Cloud Services that provide capabilities for storing data, connecting to other services, orchestrating calls to other services, billing, and authentication/authorization just to name a few. This is necessary because third party components cannot be uploaded and run. By using Cloud services software owners can eliminate their dependencies on licensed third party software.

Figure 6 – Platform as a Service

Another capability of PaaS environments is that scale can be specified via configuration and provided automatically by the environment. For example, if you need three instances of a web user interface in order to deal with anticipated load then this could be specified in a configuration file and the environment would deploy your three instances automatically. While PaaS environments can do more for the application in terms of reducing third party dependencies and providing scale it does come with an expense. You must code to the capabilities of the environment and you are locked into your vendor’s platform. If you do not want to be locked into a specific vendor and you need flexibility in order to deploy existing assets then an IaaS environment is best.

PaaS environments cater more to the developer than the infrastructure architect. In addition to providing a runtime environment and cloud services a PaaS vendor may also provide an Interactive Development Environment that allows for offline development of an application by emulating the runtime environment on the developer’s workstation. The interactive development environment may also provide tools that package up the custom solution and deploy it to the PaaS environment directly from the IDE itself.

The pricing model for a typical PaaS vendor will be the same as the model shown in Figure 5. This should not be a surprise because a running application requires the same resources as a running virtual machine. In other words, storage, bandwidth, and compute power.

The three biggest PaaS providers today are Google, Microsoft and Salesforce.com. The table below (Figure 7) lists each of these vendors and their offerings. The Runtime environment and the Cloud services of each vendor are also listed.

Vendor

PaaS Offering

Runtime Environment

Cloud Services

Google

Google App Engine

Java Runtime Environment

Python Runtime Environment

Datastore (Java, Python)

Google Accounts (Java, Python)

Image Manipulation (Java, Python)

Mail (Java, Python)

Memcache (Java, Python)

URL Fetch (Java, Python)

Microsoft

Azure Services Platform

Windows Azure

Access Control Service

SQL Services

Workflow Services

Service Bus

Live Services

Salesforce.com

Force.com

Apex Code for business logic

Visualforce for user interfaces

Database Services

Web Service APIs

Figure 7 – PaaS Vendors

Customer

Software owner that would like an application hosted in the internet for their end users.

Offering

Runtime environment for application code, Cloud Services, Compute power, storage, and networking infrastructure.

Unit of deployment

Application Package

Pricing structure

Compute usage per hour, data transfer in/out per GB, IO requests per million, storage per GB, data transfer in/out to storage per GB, data storage requests per thousand. All charges per billing period. For more details see Figure 3.

Examples

Google’s App Engine, Microsoft’s Azure Services Platform, and Salesforce.com’s Force.com. For more details see Figure 7.

Figure 8 - PaaS Summary

Software as a Service (SaaS)

The basic idea behind Software as a Service (SaaS) is simple. With SaaS an entire finished application can be available on-demand from some SaaS vendor. The application exists in the cloud (not in an on-premise datacenter) and can be consumed from any browser. Therefore, the customer of a SaaS vendor is the end user. This is shown in Figure 9. Here we see that the SaaS vendor is not only offering an entire application to the end user but that the SaaS vendor is also responsible for providing the compute power, storage, and networking infrastructure necessary to run the application. Now the SaaS vendor may utilize a third party IaaS or PaaS vendor to provide the compute power, storage, and networking infrastructure but this does not always have to be the case. The application may be implemented in such a way that it directly consumes resources without the need for third party infrastructure services or platform services. As a matter of fact, most of the popular SaaS offerings today are built in this fashion. Figure 10 shows the different environments that can be used to host a SaaS Application. As IaaS and PaaS offerings become more mature and more popular I expect to see more SaaS offerings built on top of IaaS and PaaS environments.

Figure 9 – Software as a Service

Figure 10 – Three ways to host a SaaS Application

Since SaaS vendors deal directly with the end user there is no unit of deployment. In other words, there is no third party that needs to upload an asset to be run by the SaaS vendor. The SaaS vendor owns the application which is up and running and available on-demand and is also responsible for the hosting environment.

The value of SaaS is that complete applications are available over the internet on demand. The End user does not need to license and support the software in the traditional fashion. The end user also does not have to purchase and support the infrastructure that the application runs upon. The pricing structure for SaaS offerings is usually a per user per month fee. Some examples of SaaS vendors are shown in Figure 11. Figure 12 is a summary of SaaS.

Vendor/IaaS Offering

SaaS Brand

Offerings

Microsoft

Microsoft Online Services

Exchange Online

SharePoint Online

Dynamics CRM Online

Office Live Meeting

Office Communications Online

Salesforce.com

SalesForce CRM

Sales

Marketing

Service

Partners

IBM

LotusLive

LotusLive Engage

LotusLive Connections

LotusLive Meetings

LotusLive Events

LotusLive iNotes

LotusLive Notes

Figure 11 – SaaS Vendors

Offering

Finished application on-demand

Customer

End User

Unit of deployment

Not Applicable

Pricing structure

Per user, per month

Examples

See Figure 10

Figure 12 - SaaS Summary

Summary

Understanding Cloud computing and its many forms can be tricky. However, categorizing the various offerings according to Infrastructure, Platform, and Software services can help when trying to understand the full array of cloud offerings. In this post I investigated IaaS, PaaS, and SaaS. I did this by describing, for each style of cloud computing, the customer, the offering, the hosting environment, and the pricing structure. A summary of these discussion points can be found in Figure 13. Along the way I also discussed the potential value and provided some real world examples.

Type

Customer

Unit of Deployment

Offering

Pricing Structure

IaaS

Software Owner

Virtual Machine Image

· Runtime environment for virtual machines

· Cloud storage

· May have Cloud Services

All charges per billing period.

· Compute usage per hour

· Data transfer in per GB

· Data transfer out per GB

· I/O requests per million

· Storage per GB

· Storage transfer in per GB

· Storage transfer out per GB

· Storage I/O requests per thousand

For more details see Figure 3.

PaaS

Software Owner

Application Package

· Runtime environment for application code

· Cloud Storage

· Cloud Services

All charges per billing period.

· Compute usage per hour

· Data transfer in per GB

· Data transfer out per GB

· I/O requests per million

· Storage per GB

· Storage transfer in per GB

· Storage transfer out per GB

· Storage I/O requests per thousand

For more details see Figure 3.

SaaS

End User

Not Applicable

The SaaS vendor does business directly with the End User

· Finished applications

Per user, per month

Figure 13 – Summary of Cloud Computing Offerings

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.