Thanks to nkhumpreys I was introduced to the three “.. as a service” concepts from cloud computing. Even though I have been using the cloud I had never heard the terms before but they classified the tools I had been using. Here’s my overview.
SASS – Software As A Service
The top of the stack where the user interacts with an application which handles the processing and storage of data. Like a desktop application you access through a web browser. The user is not usually developing code.
Typical Billing: on a monthly subscription
PAAS – Platform As A Service
A software platform is provided which abstracts away some of the elements of the cloud – normally the scalability elements. This allows a developer to write a piece of code that processes a job (e.g. output a page of a website) and not worry about how many concurrent instances there are. This is great for services that might have unpredictable demand or where there are bursts of activity – such as algorithm that runs for 5 minutes every hour.
Generally the platform makes restrictions on the type of languages of the software and the code must be written in a way so it can execute in parallel – think problems that would work under Map Reduce.
Typical Billing: based on resource usage at a granular level – e.g. amount of bandwidth or number of CPU cycles used.
IAAS – Infrastructure As A Service
The renting of a piece of infrastructure for a short period (e.g. a server) in small increments (often hourly). This reduces the need to keep spare servers to deal with load fluctuation – new servers can be rented on an hourly basis when required. This provides full access of the instance server including shell access and installed libraries.
Typical Billing: per instance per hour