1. Introduction
The emergence of the computer networks and the Internet allowed the creation of several different computing paradigms. Some relevant examples of such paradigms are cloud computing, distributed computing, fog computing, and edge computing.
In particular, cloud computing consists of the provisioning of computing services over the Internet.
The central characteristic of cloud computing is accessing resources and applications remotely. So, users with simple machines with an Internet connection can access great computing power.
Furthermore, the cloud paradigm promoted of as-a-Service offerings (also known as X-as-a-Service or Anything-as-a-Service).
The main idea behind X-as-a-Service is to provide different computing services typically accessed in an API-like manner through a console in a web browser. So, we can have, for example, Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS), Network-as-a-Service (NaaS), among many others.
In this tutorial, we’ll specifically study some as-a-Service offering models. At first, we’ll briefly explore the X-as-a-Service paradigm, focusing on its main requirements and concepts. Next, we’ll investigate three as-a-Service offering models: IaaS, PaaS, and SaaS. Finally, we’ll see a systematic summary comparing these models.
2. X-as-a-Service: a Cloud-enabled Paradigm
Let’s consider the early years of computing before the Internet spread everywhere. In this scenario, if we need more processing power or resources, we are typically required to buy new equipment or upgrade the existing ones.
Before the emergence of the internet and cloud computing, the processing centers were in the vast majority local. It means that all the computing power of these centers was physically located in a single centralized place.
When the Internet became a viable option, the single place processing centers could transform into distributed processing centers connected through a network.
The scheme to deliver and access computing resources over the Internet received the name cloud computing.
Cloud computing created new market niches by allowing the offering of multiple computing-related services over the Internet, a phenomenon which we know now as X-as-a-Service.
2.1. An Overview of X-as-a-Service Characteristics
X-as-a-Service is the paradigm that presents a myriad of computing resources and applications as a service provided to customers. Thus, instead of buying multiple hardware equipment or application licenses, customers can only contract a service, maintaining it as long as necessary.
The X-as-a-Service paradigm intrinsically requires a cloud environment. In such a way, we can access the contracted services through the Internet.
Commonly, X-as-a-Services companies provide remote terminals and web dashboards to enable the customers to manage and monitor the contracted services.
The following figure shows a general scheme of the X-as-a-Service paradigm:
Moreover, customers can adjust the contracted services on-the-fly according to the market model of X-as-a-Service companies.
For instance, companies adopting a pay-as-you-go model allow customers to set the maximum and minimum use of a contracted resource. So, it is possible to scale up and down resources considering the demand.
We’ll explore the Software-as-a-Service, Platform-as-a-Service, and Infrastructure-as-a-Service in the following section. However, there exist many other as-a-Service offerings nowadays. Let’s see a brief description of specific ones:
- Database-as-a-Service: usually enabled by database providers maintaining databases in data centers connected to the Internet. Customers buy storage and send their data to these remote database centers
- Game-as-a-Service: a manner to monetize free-to-play games. The idea is to continuously update the game with new content, including new items sold to the players
- Logging-as-a-Service: services that collect multiple logs from different equipment, ingest and process them, and provide summarized and aggregated information to the customers
3. XaaS Offerings: IaaS, PaaS, and SaaS
As we saw in the previous section, there are several different offerings in the context of XaaS. Some of these offerings are specific, such as Game-as-a-Service. However, we have offerings with a broad scope, such as Infrastructure-as-a-Service, Platform-as-a-Service, and Software-as-a-Service.
In this way, the following subsections present and discuss the most relevant broad scope offerings of the XaaS paradigm.
3.1. Infrastructure-as-a-Service (IaaS)
Infrastructure-as-a-Service provides different computing resources to the customers. These resources may be available in public, private, or hybrid cloud.
Computing resources encompass a myriad of base hardware and software. We can see these resources being from processing and storage to network functions and security applications.
For example, a customer of an IaaS provider can demand general-purpose virtual machines with a specific amount of dedicated resources, such as memory, disk storage, and CPUs. Furthermore, he can also request load balancers and firewalls to compose his network infrastructure.
In general scenarios, computing resources obtained from a particular IaaS provider can cooperate with computing resources from another provider. So, we can, for instance, instantiate our network functions with an IaaS provider and end-user services with another one. Thus, they can work with each other through the Internet.
The following image depicts a high-level scenario of a customer deploying a service with computing resources of IaaS providers:
It is relevant to highlight that since virtualization is a popular way to provide computing resources in IaaS, several cloud orchestrators are employed in this context. OpenStack, Apache CloudStack, and OpenNebula are examples of such orchestrators.
We can cite as examples of IaaS providers the Amazon EC2, Google Compute Engine, Rackspace, and Windows Azure.
3.2. Platform-as-a-Service (PaaS)
Platform-as-a-Service provides developing platforms to the customers. The main idea is to abstract configuration-level tasks, such as setting up the network, instantiating virtual machines, and installing operating systems and other applications.
PaaS offerings are widely employed to create programming environments. So besides providing the previously cited resources, it also supports programming languages interpreters and compilers, code editors, debugging tools, and testing sandboxes.
In such a way, programmers can focus exclusively on developing code instead of concerning with background tasks and requirements.
The following image shows an abstract example of a PaaS programming environment:
Furthermore, PaaS offerings usually enable the customers to host and execute their applications on the same platform used to develop them. In this case, we can see PaaS offerings operating in a layer on top of IaaS offerings.
We can cite as instances of PaaS platforms the Google App Engine, Stratos, Heroku, and Force.
3.3. Software-as-a-Service (SaaS)
Software-as-a-Service, also called on-demand software, provides software resources for end-users. SaaS centralizes several software instances in the infrastructure of a provider. So, customers can only buy licenses and access these resources through the cloud.
In this way, the most valuable about SaaS is bypassing the end-user from tackling the installation and configuration of programs and applications. Thus, software instances are provided ready for use, requiring only adjustments of internal options of the provided software.
Most SaaS providers enable their customers to access contracted software through a thin client in a web browser. This characteristic makes it much easier for the customers to access several programs and applications using a simple terminal machine.
The following image represents a software provided through a SaaS offering:
Moreover, another appealing characteristic of SaaS is that the providers are responsible for keeping the software instances updated, releasing the customers from downloading and applying patches.
Famous examples of SaaS-provided software are Microsoft Office 365, WHMCS billing, Instagram, Facebook, and Gmail.
4. Systematic Summary
Cloud computing represented a paradigm shift in the computing scenario. Computing resources, previously locally managed, got moved to the cloud. This movement made possible the creation of new business models, such as XaaS.
In the context of XaaS, we have multiple offerings tailored for different computing resources and customer groups. So, in this tutorial, we in-depth explored the offerings called Infrastructure-as-a-Service, Platform-as-a-Service, and Software-as-a-Service.
In a naive explanation, we can understand these offerings as transportation options in a city. If we don’t use any XaaS offering, it is similar to having our car: we can go anywhere or do anything with it, but we are the only ones responsible for its maintenance.
If we rent a car, it is similar to using an IaaS offering. We still drive anywhere we want, and we need to refuel when necessary. However, car maintenance is not our problem anymore, and we don’t need to think about taxes: we only pay the rent.
The option to take taxis can be seen as using a PaaS offering. We don’t need to drive the car and be concerned about the fuel, the taxes, or the car maintenance. However, we are still in control of where the taxi goes and still able to define its route.
Finally, taking public transportation is quite similar to using a SaaS offering. We don’t need to be concerned about any maintenance aspects, and we are not in control of the route. However, we can choose the best transportation option that leads us where we want to go.
The following table exhibits some technical differences between IaaS, PaaS, and SaaS:
XaaS Offerings
IaaS
PaaS
SaaS
Primary Product
Computing infrastructure and resources (memory, processing, networking, etc.).
A platform, including computing resources to use it, to develop software systems.
A pre-installed and pre-configured program or application, and a thin client to access and use it.
Technical Knowledge Requirements
Set up the computing environment that will use the resources.
Configuration of the platform to accomplish specific needs.
The underlying environment is ready; technicalities are abstracted.
Resource Examples
Virtual machines; Disk storage; Network functions.
Runtimes; Databases; Web servers.
E-Mail; Editors (text, presentation, spreadsheet); Social networks.
5. Conclusion
In this tutorial, we studied the XaaS offerings of IaaS, PaaS, and SaaS. At first, we had a brief review of the X-as-a-Service paradigm. Then, we particularly investigated the XaaS offerings of Infrastructure-as-a-Service, Platform-as-a-Service, and Software-as-a-Service. Finally, we saw a systematic summary comparing the studied offerings.
We can conclude that cloud computing marked a change in the computing world. For instance, the cloud allowed the emergence of the XaaS paradigm. This paradigm, in turn, changed the way of purchasing and interacting with software systems.
In particular, IaaS, PaaS, and SaaS are popular offerings of the XaaS paradigm. These offerings enabled customers to get from raw computing resources to ready-to-use programs simply and effectively.