
Cloud Google has a good introduction on these differences, I'm pasting it here in case it's lost:
To understand cloud and the different models to choose from, it can help to think about it in terms of housing:
- On-premises: If you decide to build your house from scratch, you do everything yourself. You’ll need to source the raw materials and tools, put everything together, and run to the store every time you need anything. This is similar to running an application on-premises, where you own everything from the hardware to your applications and scaling.
- Infrastructure as a service: If you are busy, you might consider hiring a contractor to do the work. You tell them how you want the house to look and how many rooms you want, and they take the instructions and build your home. IaaS works in a similar way for your applications. You rent the hardware to run your application on, but you are responsible for managing the OS, runtime, scale, and all the data. Example: Compute Engine
- Containers as a service: If buying a home is just too much work due to the maintenance it comes with, you can choose to rent instead. The basic utilities are included, but you bring your own furniture and make the space yours. With containers, you can bring a containerized application, so you don't have to worry about the underlying operating system but still have control over scale and runtime. Example: Google Kubernetes Engine (GKE)
- Platform as a service: If you don’t want to worry about furnishing your living space, you can rent a furnished house. PaaS lets you bring your own code and deploy it but leaves the server management and scaling up to the cloud provider. Examples: App Engine, Cloud Run
- Function as a service: If you just need a small dedicated place to work away from your home, you can rent a desk in a coworking workspace. Similarly, FaaS allows you to build and deploy a small piece of code, or a function, that performs a specific task. The cloud provider adds scale if needed when a function executes. Example: Cloud Functions
- Software as a service: Now, imagine you move into a finished house (rented or purchased), but you have to pay for upkeep, such as cleaning or lawn care. SaaS is the same—you pay to use a complete application for a specific purpose that is managed, maintained, and secured by the cloud provider, but you are responsible for taking care of your own data. Example: Google Workspace
Choosing which is right for you: pros and cons
When it comes to choosing whether cloud IaaS, PaaS, or SaaS is right for your business, there are different advantages and disadvantages to each service model.
In addition, it’s important to understand that all three are not mutually exclusive, where you can only choose a single service model. It’s possible to choose one for your needs, but you can also decide to combine it with another one or even use a mix of all three along with more traditional IT infrastructure.
Let’s take a look at some of the most common advantages and disadvantages for each model:
IaaS pros Highest level of control over infrastructureOn-demand scalabilityNo single point of failure for higher reliabilityReduced upfront capital expenditures (for example, pay-as-you-go pricing)Fewer provisioning delays and wasted resources Accelerated development and time to market | IaaS cons Responsible for your own data security and recoveryRequires hands-on configuration and maintenance Difficulties securing legacy applications on cloud-based infrastructure |
CaaS prosIdeal for running, managing, and scaling microservicesStreamlined development speeds up time to marketMore control and configuration of networks and application componentsIncreases workload portability between environments, such as hybrid cloud and multicloudBuilt-in performance monitoring and container orchestration | CaaS consSome CaaS solutions have limited language support available depending on the cloud service providerContainer security risks may increase when using CaaS as they share the same kernel with the OS (although they are considered safer than VMs) |
PaaS pros Instant access to a complete, easy-to-use development platformCloud service provider is responsible for maintenance and securing infrastructure Available over any internet connection on any deviceOn-demand scalability | PaaS cons Application stack can be limited to the most relevant componentsVendor lock-in may be an issue depending on the cloud service providerLess control over operations and the overall infrastructureMore limited customizations |
SaaS prosEasy to set up and start usingThe provider manages and maintains everything, from hardware to softwareSoftware is accessible over any internet connection on any device | SaaS consNo control over any of the infrastructure or security controlsIntegration issues with your existing tools and applications Vendor lock-in may be an issue depending on the cloud service providerLittle to no customization |