One of the areas on which we reached clear agreement in the G-Cloud and App Store phase 2 was the definition the layers of the stack, infrastructure, platform and software, and their scalable, standardised “as a service” modes. Pleasingly, our delinations were very similar to prior work from two decades ago by IBM, except that ours incorporate virtualisation.
The diagram shows what we agreed we mean by Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (right hand side) and the areas encompassed by the individual terms infrastructure / platform / software on the left. A better term than “software” might be “application” since the platform part is also really just software, but SaaS has already gained wide acceptance.
It is assumed that “as a service” means all services within the definition are fully integrated up to and including the respective level, thus incorporating any sub-levels. Therefore, SaaS providers could either sub-contract to a PaaS provider, or would incorporate the PaaS themselves and provide it as part of the SaaS “stack”. In turn the IaaS could be sub-contracted or incorporated. The customer would see an integrated service.
It is also worth explaining the overlap between ‘platform’ and ’software’; that is because some advanced platforms are built on complex software solutions which go well beyond just operating systems and a bit of infrastructure software.
For example, one could consider bare operating system as the platform, with the bespoke software application incorporating its own software infrastructure elements (eg. a bespoke CRM solution). One might also consider a Linux-Apache-MySQL-PHP stack as the platform in its entirety, with only the PHP code itself being the software/application layer. The key differentiator between ‘platform’ and ’software’ is that a platform is standardised and to an extent commoditised, with the software being the bespoke / custom element. A platform would also often, but not always, be highly scalable across multiple servers.
Standardised / commoditised software (hosted application) services, as opposed to bespoke / custom deployments, would most likely be considered to be SaaS.
Until this point many experienced readers might be saying, “Yes, that that is just hardware, middleware and software renamed!”. To a large extent you would be right, with one small exception being subtle differences between modern platform/middleware, but there is an important difference between the old concept of “hardware” and ours of “infrastructure”: virtualisation.
It was agreed among the G-Cloud team that the virtualisation should now be considered as part of the hardware layer since it has become such an integral method of dividing and provisioning hardware resources. It is important to note that we drew the line precisely between the virtualisation layer (ie. the hypervisor) and operating system, viewing a bare-bones virtual machine without operating system or kernel as the unit(s) of hardware.
Of course, virtualisation is not ubiquitous. Indeed for many systems including highly scalable ones upon which PaaS and SaaS stacks are built do not use any virtualisation (Google App Engine does not, for example). In such cases one would simply view the stack without the virtualisation layer with the boundary between infrastructure and platform being between the physical hardware and operating system layers.
Another critique of this model could be that the “interconnecting network” appears to link directly from the software layer through to the client device. In reality, of course, all network traffic has to sink back down through the layers from the software to via the networking & firewalling layer, then on to the client device. To keep the stack looking like a stack, however (which is correct from a logical perspective), it is better to stick the client device on top rather than off to one side. In the full postulated functional of the G-Cloud logical architecture the connections are more explicitly shown in a 2D rather than linear model. Hopefully that will be in the public domain soon!