There are three different abstraction levels in the cloud computing paradigm:
- Infrastructure as a Service (aka IaaS)
- Platform as a Service (aka PaaS)
- Software as a Service (aka SaaS)
IaaS provides the computing infrastructure through empty virtual machines for your software running as SaaS. This is also true for the Apache Spark on OpenStack.
PaaS, in contrast, takes away from you the burden of installing and operating an Apache Spark cluster because this is provided as a Service. In other words, you can think it as a layer like what your OS does.
Finally, SaaS is an application layer provided and managed by cloud computing paradigm. To be frank, you won't see or have to worry about the first two layers (IaaS and PaaS).
Google Cloud, Amazon AWS, Digital Ocean, and Microsoft Azure are good examples of cloud computing services that provide these three layers as services. We will show an example of how to deploy your Spark cluster on top of Cloud using Amazon AWS later in this chapter.