“Cloud services” is now almost a household word. If you don’t know the difference between PaaS, IaaS and SaaS, that’s fine, because a lot of people don’t.

“Cloud” is actually a metaphor for the Internet. “Cloud computing” is actually the use of the Internet to access applications, data, or services stored or run on remote servers.

Any company that uses an Internet-based approach to computing, storage, and development can technically be called a cloud company. However, not all cloud companies are created equal. Not everyone is a CTO, so sometimes it can be a bit of a headache to see the words behind the cloud.

First, clouds are also layered

Any company that offers its services over the Internet can be called a cloud computing company. Cloud computing has several layers: Infrastructure, Platform, Software, and as-a-service. Infrastructure is at the bottom, platforms are in the middle, and software is at the top. Other “soft” layers can be added on top of these layers.


IaaS: Infrastructure-as-a-Service

The first layer is called IaaS, sometimes called Hardware-as-A-Service, and a few years ago if you wanted to run enterprise applications in your office or on your company’s website, you had to buy servers or some other expensive Hardware to control the local applications and get your business running.

But now with IaaS, you can outsource your hardware somewhere else. IaaS companies provide off-site servers, storage, and networking hardware that you can rent. Saving on maintenance costs and office space, companies can leverage this hardware to run their applications at any time.

Some of the big IaaS companies include Amazon, Microsoft, VMWare, Rackspace and Red Hat. But these companies have their own expertise. Amazon and Microsoft, for example, offer you more than IaaS. They also lease their computing power to you to host your website.

2. PaaS: platform-as-a-Service

The second layer is called PaaS, sometimes called middleware. All of your company’s development can be done in this layer, saving time and resources.

PaaS offers a variety of web-based solutions for developing and distributing applications, such as virtual servers and operating systems. This saves you money on hardware and makes it much easier to collaborate between scattered studios. Web application management, application design, application hosting, storage, security and application development collaboration tools.

Some of the big PaaS providers are Google App Engine,Microsoft Azure, Force.com,Heroku, Engine Yard. Recent start-ups include AppFog, Mendix and Standing Cloud

3. SaaS: software-as-a-Service

The third layer is called SaaS. This layer is the one that touches your everyday life, mostly through a web browser. Any application on a remote server can run over the network, which is SaaS.

The services you consume enter these categories entirely from web sites such as Netflix, MOG, Google Apps, Box.NET, Dropbox or Apple’s iCloud. Although these web services are used for business, entertainment or both, they are part of the cloud.

Some SaaS applications for business use include Citrix’s GoToMeeting, Cisco’s WebEx, Salesforce’s CRM, ADP, Workday, and SuccessFactors.

4. Comparison between Iaas and Paas

A PaaS provides a development and running platform as a service for users, while an IaaS provides VMS or other resources as a service for users. Next, PaaS and IaaS are compared in seven areas:

1) Development environment: PaaS basically provides developers with a complete set of development and testing environment including IDE, while IaaS users mainly use the development environment they are familiar with before, but it is not very convenient to use because of the lack of integration with cloud.

2) Supported applications: IaaS mainly provides virtual machines, and common virtual machines support multiple operating systems, so IaaS supports a wide range of applications. But if you want to make an application to run on a PaaS platform is not an easy thing, because not only need to ensure that the application is based on the platform supported by the language, but also to ensure that this application can only call this platform supported by the API, if the application calls the platform is not supported by the API, you will need to modify the application.

3) Open standards: Although many IaaS platforms have some proprietary features, IaaS is making steady progress in cross-platform and avoiding vendor lock-in due to protocols such as OVF. PaaS isn’t as good, as both Google’s App Engine and Salesforce’s Force.com have proprietary apis.

4) Scalability: The PaaS platform automatically adjusts resources to help applications running on it better cope with sudden traffic. IaaS platforms require developers to manually adjust resources to cope.

5) Integration rate and economy: The integration rate of PaaS platform is very high. For example, Google App Engine, a representative of PaaS, can carry tens of thousands of applications on a server. However, the integration rate of common IaaS platform is less than 100 at most and generally around 10, making IaaS less economical than PaaS.

6) Billing and Supervision: Because PaaS platform in billing and regulation both reached the IaaS platform can not only match the operating system level, for example, CPU and memory usage, etc, but also can be applied, for example, the application of the reaction Time (Response Time) or how much application of transaction, etc., which will improve the accuracy of billing and management.

7) Learning difficulty: Developing and managing applications in IaaS is similar to the existing way, while developing applications in PaaS may require learning a new language or framework, so the learning difficulty in IaaS is lower.

PK in the future

In today’s cloud computing environment, IaaS is very mainstream, whether Amazon EC2, Linode or Joyent, etc., all have a place, but with Google App Engine, The introduction of PaaS platforms, such as Salesforce’s Force.com and Microsoft’s Windows Azure, has brought PaaS to prominence. Speaking of the future of the two, especially the competition between the two, I personally believe that IaaS will be the first choice of developers in the short term due to the advantages of IaaS model in terms of supported applications and learning difficulty. However, in the long term, Due to the high integration rate and economy of PaaS, PaaS will replace IaaS as the “new darling” of developers if it can solve the challenges such as versatility and supported applications.

The relationship between them can be analyzed from two main perspectives: one is from the perspective of user experience. From this perspective, the relationship between them is independent because they are facing different types of users. The second is from a technical point of view, from which they are not a simple inheritance (Saa…..)

Two or three service modes

According to the definition of the most commonly used and authoritative NIST(National Institute of Standards and Technology), cloud computing is mainly divided into three service modes, and the classification of these three layers is mainly from the perspective of user experience:

Software as a Service, or SaaS, this layer provides applications as services to customers.

Platform as a Service (PaaS) provides a development Platform as a Service to users.

Infrastructure as a Service. IaaS for short, this layer provides VMS or other resources as services for users.


1. SaaS model

role

The SaaS model allows users to access applications running in the cloud directly from a web connection and a browser, without having to worry about installation and costly initial hardware and software investments. SaaS is primarily aimed at ordinary users.

product

Our main products include: Salesforce Sales Cloud, Google Apps, Zimbra, Zoho, IBM Lotus Live, etc.

function

When it comes to the functions of SaaS, it can also be considered that in order to implement SaaS services, what functions need to be completed by the provider? There are four main aspects:

Anytime, Anywhere access: Users can access this SaaS service anytime or anywhere with an Internet connection.

Support public protocols: By supporting public protocols (such as HTML4/5), it is easy for users to use.

Security: SaaS providers need to provide security mechanisms, not only to keep user data stored in the cloud completely secure, but also to implement security mechanisms (such as HTTPS) on the client side to protect users.

Multi-tenant mechanism: The multi-tenant mechanism not only supports a large number of users more economically, but also provides a certain degree of customizability to meet the special needs of users.

2. PaaS mode

role

Through PaaS this mode, the user can in a include SDK, documentation, and testing environment, the development of the platform is very convenient to write application, and whether the deployment, or at run time, users have no need for the server, operating system, network and storage resources such as the management, the PaaS supplier is responsible for handling all the tedious work, Moreover, PaaS is very impressive in terms of integration rate, for example, a server running Google App Engine can support thousands of applications, that is, PaaS is very economical. The primary users of PaaS are developers.

product

Main products include: Google App Engine, Force.com, Heroku and Windows Azure Platform.

function

In order to support the operation of the entire PaaS platform, what functions should the supplier provide? It has four main functions:

Friendly development environment: By providing SDK and IDE tools, users can easily develop and test applications locally.

Rich services: The PaaS platform provides a wide variety of services to upper-layer applications in the form of apis.

Automatic resource scheduling: Also known as scalability, this feature will not only optimize system resources, but also automatically adjust resources to help the applications running on it better cope with sudden traffic.

Fine-grained management and monitoring: PaaS provides application-level management and monitoring, for example, the ability to observe application performance and specific values (e.g., throughput and response time) to better measure application health, and the ability to accurately measure the resources consumed by application usage for better billing.

IaaS mode

role

In IaaS mode, users can obtain required resources such as virtual machines or storage resources from the supplier to load related applications. Meanwhile, the IaaS supplier takes care of the complicated infrastructure management. IaaS can support a wide range of applications on virtual machines through it. The main users of IaaS are system administrators.

product

Main products include: Amazon EC2, Linode, Joyent, Rackspace, IBM Blue Cloud, Cisco UCS, etc.

function

In what ways do IaaS vendors need to manage their infrastructure to provide resources to their users? Or what capabilities does IaaS cloud have? The seven basic functions of IaaS are listed in Virtualization and Cloud Computing:

Resource abstraction: Physical resources can be better scheduled and managed using resource abstraction (for example, resource pooling).

Resource monitoring: By monitoring resources, the efficient operation of the infrastructure can be ensured.

Load management: Through load management, applications deployed on the infrastructure can better cope with emergencies and make better use of system resources.

Data management: For cloud computing, data integrity, reliability, and manageability are the basic requirements for IaaS.

Resource deployment: That is, automating the entire resource process from creation to usage.

Security management: The primary goal of IaaS security management is to ensure that infrastructure and the resources it provides can be accessed and used legally.

Billing management: Detailed billing management enables users to use resources flexibly.

Next, I’ll give you a little introduction to the three forms of cloud and the benefits of cloud computing.

4. The relationship between the three modes

The relationship between them can be analyzed from two main perspectives: one is from the perspective of user experience. From this perspective, the relationship between them is independent because they are facing different types of users. The second is technical. From this point of view, they are not a simple inheritance relationship (SaaS based on PaaS and PaaS based on IaaS), because SaaS can be based on PaaS or directly deployed on Top of IaaS, and PaaS can be built on top of IaaS or directly on physical resources.