- Pip install Boto3 - Thu, Mar 24 2022
- Install Boto3 (AWS SDK for Python) in Visual Studio Code (VS Code) on Windows - Wed, Feb 23 2022
- Automatically mount an NVMe EBS volume in an EC2 Linux instance using fstab - Mon, Feb 21 2022
Software as a Service (SaaS)
The NIST defines Software as a Service (SaaS) like this: “The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure.” In my opinion, this explanation causes confusion. I think such explanations are the reason why many IT pros reject cloud computing as something new.
The term SaaS was first mentioned in a paper from the Software & Information Industry Association (SIIA) in 2001, which makes no reference to cloud computing. In fact, SaaS is perfectly possible without any cloud infrastructure involved. For instance, if a service provider requires human interaction before a software service can be provisioned, then, according to the NIST’s own definition of cloud computing, the provider’s SaaS doesn’t run on cloud infrastructure.
Software as a Service
There are only two requirements for SaaS: the software runs on the provider’s own infrastructure and the software is rented by the consumer. The location of the service doesn’t have to be virtualized, you don’t need resource pooling and rapid elasticity, and the service doesn’t even have to be measured. Of course, SaaS and the cloud harmonize well, but so do many other new and old information technologies and concepts.
The main confusion stems from the fact that many equate “cloud computing” with “online services,” which is, of course, nonsense. If that were the case, then we really don’t need the term “cloud computing” at all.
Infrastructure as a Service (IaaS)
The same can be said about Infrastructure as a Service (IaaS). Some cloud providers offer IaaS, but cloud infrastructure is not a requirement for IaaS. An organization can rent a whole data center from a service provider without using cloud technology. The point about IaaS is that hardware resources such as CPU power, storage, and networks are rented, but consumers run and manage the operating system either on the rented infrastructure or on their own infrastructure.
For instance, a server virtualization solution offered as a service counts as IaaS. In this case, the consumer installs the operating system on the rented infrastructure. Storage as a Service (STaaS) is another typical IaaS example. Like in the first example, the consumer must manage the operating system, albeit, in this case, the operating system runs on-premises and the API of the infrastructure provider is used to access the storage.
According to this definition, classical hosting providers also offer IaaS.
Platform as a Service (PaaS)
If IaaS is essentially about renting hardware resources and SaaS is about renting software, then Platform as a Service (PaaS) must be about renting a platform. Thus, there suddenly appears to be a third fundamental IT category beside software and hardware. Can that be? Not really. In my opinion, PaaS is a sub category of SaaS. A platform such as ASP.NET is, of course, software. The difference between PaaS and other SaaS forms is that, with PaaS, consumers run their own software on top of the software that is provided as a service.
SaaS, PaaS, and IaaS compared
Actually, IaaS always also involves the renting of software, such as server virtualization software. However, I think my IaaS characterization above is correct because hardware is always delivered together with software. For example, even if you buy a server without an operating system, the server always comes with BIOS, which is also software. The point about IaaS is that computation capabilities are provided without an operating system and this implies that you can run any (platform independent) software to utilize these resources.
From my point of view, it would be better in most cases to avoid the term SaaS and talk about Application as a Service (AaaS) instead of SaaS to avoid confusion.
Thus, the easiest way to differentiate between IaaS, PaaS, and SaaS is that, with IaaS, consumers essentially can install any kind of software on rented hardware (sometimes as with (STaaS) on their own hardware), PaaS means that consumers can only install a special type of software on rented software, and AaaS means that consumers can install nothing on rented software. SaaS is either PaaS or AaaS.
Because analysts and journalists love to juggle as many technical terms as possible, many new “aaSes” have been added to the cloud concept jungle lately. Here are just a few, with a short description.
Desktop as a Service (DaaS)
Desktop virtualization provided as a service is called Desktop as a Service (DaaS). There was quite a buzz on the web a couple of days ago when Amazon announced Workspaces. In my view, this won’t change the fact that Virtual Desktop Infrastructure (VDI) will stay a relatively unimportant transition technology.
Process as a Service (PraaS)
Process as a Service (PraaS) is another sub category of SaaS. A service provider not only offers independent software solutions as a service but integrates all applications in a way that portrays the business process of the consumer.
Communication as a Service (CaaS)
I added Communication as a Service (CaaS) to the list to demonstrate that there is still much room for more aaSes. Of course, you can provide any kind of application type as a service, and so it also works with Voice over IP (VoIP), instant messaging (IM), or video conferencing, which fall under CaaS.
Cloud as a Service (CaaS)
Cloud as a Service (CaaS) is a good example of how carelessly concepts in computer science are often defined compared to other scientific disciplines. CaaS not only stands for Communication as Service but also for Cloud as a Service. The latter means that a service provider offers a whole cloud infrastructure as a service. Sometimes CaaS can also mean Cluster as a Service, but I am too tired to add an extra paragraph for it.
Anything as a Service (XaaS)
This is my favorite. It stands for the fact that anything can be provided as a service. Typical examples are PaaS (Pizza as a Service), LaaS (Love as a Service), or NaaS (Nonsense as a Service). The biggest NaaS infrastructure provider I know is Facebook. 😉