Today a student in my 70-532 course, Pankaj, asked about the difference between Paas, IaaS, and SaaS within Azure. Specifically he wanted some examples, so let me list a few.
I found this helpful diagram that might set up this discussion.
This comes from Microsoft.
To translate the above.
- IaaS means that Microsoft takes care of the data center as a building, networking, firewalls, security, servers, storage, backup and recovery.
- PaaS means that Microsoft takes care of maintaining the operating system, provides development tools, handles database management, and provides tools for business analytics. With IaaS, you’d be responsible for all of that.
- SaaS covers the above plus Microsoft provides the application that you are just one customer (one tenant) inside.
Infrastructure as a Service – IaaS
One example of IaaS is any Virtual Machine product. Anything that gives you control of a piece of “hardware” (it’s not really control of hardware because a VM is virtual). Anything found under the Compute menu of Azure Portal can be counted as IaaS. Also networking pieces like VNets and storage pieces like Azure Storage.
Examples include:
- Virtual Machines
- Windows Server 2016 Datacenter
- Red Hat Enterprise Linux
- Ubuntu Server
- Data Science Virtual Machine
- SQL Server 2016 SP1 Enterprise on Windows Server 2016
- Miscellaneous firewall and third-party network products
- Virtual networks and subnets
- Public IP
- Load balancers
- Traffic Manager
- Azure Blob Storage
- Azure File Storage
These are the fundamental pieces of any network (self-hosted or cloud), and nothing else.
Platform as a Service – PaaS
Best known as the core Azure App Services, which is web apps, mobile apps, API apps, logic apps and function apps. If you think of what a “platform” means though, it means you can build your application on top of it. PaaS often runs inside an App Service Plan or an App Service Environment, but not always. But when you’re creating one of these, it’s clear you are creating an “app” and have to give it an “app name”.
When working with platform as a service, you are creating your own “instance” of these services. You give them names, and you can start and stop them.
- Web App
- Web App + SQL
- Mobile App
- API App
- Logic App
- Function App
- WordPress Web App
- SiteCore Web App
- Joomla! Web App
Software as a Service – SaaS
Finally, software as a service is an application which Microsoft Azure provides to you, which you can configure, but is a fully functioning application that you cannot modify the core features of. Often these have special and unique features. You are an tenant in these multi-tenant applications and are not running your own version of this.
- Azure Search
- SQL Database
- HDInsight
- Cosmos DB
- Azure Active Directory
Service Fabric
I’ve seen Service Fabric described as PaaS.
Basically, it’s a set of servers that you can provision but Microsoft provides a ton of functions on top of that to automatically management deployment and balancing of microservices, to give it automatic healing, etc. The Service Fabric is a platform on which you deploy your applications. You don’t control those servers and cannot remote into them.
Hope that clears it up. Let me know if you have any questions.