Java architecture pattern and design pattern (11)-the difference between IaaS, PaaS, and SaaS

Original link

 

More and more software is beginning to adopt cloud services.

Cloud services are just a general term, which can be divided into three categories.

  • IaaS : Infrastructure services, Infrastructure-as-a-service
  • PaaS : Platform service, Platform-as-a-service
  • SaaS : Software service, Software-as-a-service

What is the difference between them?

IBM's software architect Albert Barron once used pizza as a metaphor to explain this problem. David Ng further extended it to make it more accurate and understandable.

Imagine you are a catering business and plan to start a pizza business.

You can produce your own pizza from start to finish, but this is more troublesome and requires a lot of preparation, so you decide to outsource part of the work and use other people's services. You have three options.

(1) Option 1: IaaS

Others provide the kitchen, stove, and gas, and you use these infrastructures to bake your pizza.

(2) Option 2: PaaS

In addition to infrastructure, others also provide pizza crusts.

You just need to sprinkle your own ingredients on the crust and let him bake it for you. In other words, all you have to do is to design the taste of the pizza (seafood pizza or chicken pizza), and others will provide platform services to let you implement your own design.

(3) Option 3: SaaS

The pizza is made directly by others, without your intervention, what you get is a finished product. All you have to do is to sell it, repack it at most, and print your own logo.

The above three schemes can be summarized into the following picture.

From left to right, the workload (the blue part in the picture above) is getting less and less, IaaS> PaaS> SaaS.

Corresponding to software development, it is the picture below.

SaaS means that software development, management, and deployment are all handed over to a third party. You don't need to care about technical issues and can be used out of the box. Almost all Internet services that ordinary users come into contact with are SaaS. Here are some examples.

  • Customer Management Service Salesforce
  • Team collaboration service Google Apps
  • Storage Service Box
  • Storage service Dropbox
  • Social services Facebook / Twitter / Instagram

PaaS provides a software deployment platform (runtime), which abstracts away hardware and operating system details, and can be scaled seamlessly (scaling). Developers only need to pay attention to their own business logic, not the bottom layer. The following are all PaaS.

  • Heroku
  • Google App Engine
  • OpenShift

IaaS is the bottom layer of cloud services and mainly provides some basic resources. The difference between it and PaaS is that users need to control the bottom layer by themselves to implement the logic of using the infrastructure. The following are all IaaS.

  • Amazon EC2
  • Digital Ocean
  • RackSpace Cloud

Microsoft's Azure cloud service has a picture that explains the differences between these three models.

In the above figure, the green part is determined by the cloud service provider, and the purple part is determined by the user. It can be seen that in the SaaS mode, users do not have any autonomy and can only use the given application; in the PaaS mode, they can install the application by themselves, but cannot customize the operating system; in the IaaS mode, it is provided by the cloud service provider (virtual) The hardware can be selected and customized starting from the operating system.

Reference link

(Finish)

Guess you like

Origin blog.csdn.net/lsx2017/article/details/114005472