In my previous post, “How to Explain Cloud Computing to Your Girlfriend?” , we introduced the cloud computing, even though we mentioned in the article is using cloud computing services, but different services to meet the needs of users is different, some companies may only need to rent the server, some companies may need a complete set of services, and some individuals may wish to direct can be obtained by paying a web site, etc.

Therefore, cloud computing can be divided into three categories based on the type of service, namely Infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). These three cloud computing services are sometimes called cloud computing stacks because they build stacks and they sit on top of each other.

This article takes a look at what IaaS, PaaS, and SaaS are.

IaaS

Infrastructure as a Service (IaaS) refers to Infrastructure as a Service. IT provides IT infrastructure as a service over the network and charges users based on the actual resource usage.

To use a simple analogy, IaaS services have advantages similar to shared kitchen services.

The business provides the user with kitchen, cooker, gas stove, oven, rice cooker and so on a series of kitchen supplies. Users need to buy their own rice, noodles, vegetables, condiments, and processing.

With IaaS services, users can deploy and run any software, including operating systems and applications, on the infrastructure provided by cloud service providers.

Users do not have the right to manage and access the underlying infrastructure, such as servers, switches, hard disks, etc., but they have the right to manage the operating system, storage content, install management applications, and even manage network components.

In short, IaaS allows users to manage all functions on top of the operating system. Common IaaS services include virtual machines, virtual networks, and storage.

PaaS

Platform as a Service (PaaS) refers to Platform as a Service. It is a cloud computing service that provides computing platform and solution services.

Again, use the shared kitchen analogy.

In addition to the kitchen and kitchenware, the restaurant also provides clean and cut vegetables, seasoned meat, dumpling wrappers and dumpling fillings. To enjoy a meal, users need to fry, heat or boil it, without having to do a lot of complicated preparation.

PaaS gives users the ability to create, develop, and deploy applications on their associated infrastructure using programming languages, libraries, services, and development tools supported by cloud service providers.

Users do not need to manage the underlying infrastructure, including networks, servers, operating systems, or storage. They can only control applications deployed on operating systems in the infrastructure and configure configurable parameters for the environment hosted by the application.

SaaS

Software-as-a-service (SaaS) refers to Software as a Service, which provides Software services over the network.

SaaS platform providers deploy application software on their own servers. Customers can order the required application software services from the vendor through the Internet according to the actual work needs, and pay fees to the vendor according to the number of ordered services and the length of time, and obtain the services provided by the SaaS platform provider through the Internet.

SaaS is more like a delivery platform than the shared kitchen of IaaS and PaaS.

SaaS is equivalent to the restaurant directly to provide prepared dishes for everyone, but also provide delivery service. For a fee, users can enjoy different types of delicacies and order directly from places with takeaway outlets.

SaaS gives users the ability to use applications from cloud service providers running on cloud infrastructure. Applications can be accessed from a variety of client devices through lightweight client interfaces such as web browsers (for example, Web-based E-mail) or program interfaces.

Users do not need to manage or control the underlying cloud infrastructure, including network, servers, operating systems, storage or even individual application functions, with the possible exception of limited user-specific application configuration Settings.

The SaaS maturity model is divided into four levels based on whether the SaaS application is configurable, high performance, and scalable. Each level adds one of three features over the previous level:

  • Many times development

    • In this model, the software service provider customizes and deploys a set of software for each customer. Each customer uses a separate database instance and application server instance. The data structure in the database and the application code may have been customized to meet customer requirements.

  • Multiple deployments in one development

    • Different configurations to meet the needs of different customers, without the need for specific customization for each customer, to reduce the cost of custom development.

    • However, the deployment architecture of the software has not changed much, and one running instance is still deployed independently for each customer. However, each running instance runs the same code and is configured differently to meet the individual needs of different customers.

    • A common way to implement configurability is through MetaData.

  • Develop once and deploy once

    • The multi-tenant application architecture is usually the real meaning of SaaS application architecture, which can effectively reduce the hardware and operation and maintenance costs of SaaS applications and maximize the scale effect of SaaS applications.

  • Don’t need to develop

    • Extend the level 3 Multi-Tenant SingleInstance system to multi-Tenant MultiInstance. End users are first connected to the Tenant Load Balance layer and then assigned to different instances. With multiple instances sharing access with a large number of users, we can allow an application to scale horizontally almost indefinitely.

conclusion

This article introduces three forms of cloud computing: IaaS, PaaS, and SaaS, using a kitchen example.

From IaaS to PaaS to SaaS, service providers are providing more and more services and products, while the average user is taking on less and less work.

From left to right, the user’s workload (shown in green in the figure above) decreases with the use of the corresponding cloud service, IaaS > PaaS > SaaS.

IaaS is the lowest layer of cloud services and mainly provides basic resources. Common products are Amazong EC2, Ali Cloud and so on.

PaaS provide a software deployment platform that abstracts hardware and operating system details and can be seamlessly scaled. Developers only need to focus on their own business logic, not the underlying layer. Common products are Heroku and so on.

SaaS is software that is developed, managed and deployed by a third party without technical concerns. Common products are Gmail, PayPal, etc.



References:


https://baike.baidu.com/item/IaaS

https://baike.baidu.com/item/PaaS

https://baike.baidu.com/item/saas

https://www.zhihu.com/question/20387284

http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html